При включении NAT на Cisco Nexus 9200 выяснилось, что ему нужно выделять TCAM и т.к. эта фича не является дефолтовой, то и TCAM свободного под неё нет. Поэтому надо перераспределить имеющийся TCAM - где-то уменьшить, а в NAT добавить.
config# feature nat
Дальше смотрим наличие TCAM под NAT - ему по умолчанию выделено 0
# sh hardware access-list tcam region
NAT ACL[nat] size = 0 (по умолчанию здесь 0 - NAT не работает)
Ingress PACL [ing-ifacl] size = 0
VACL [vacl] size = 0
Ingress RACL [ing-racl] size = 2304 (здесь много, но занято не всё, см. show hardware access-list resource utilization )
Ingress RBACL [ing-rbacl] size = 0
Ingress L2 QOS [ing-l2-qos] size = 256
Ingress L3/VLAN QOS [ing-l3-vlan-qos] size = 512
Ingress SUP [ing-sup] size = 512
Ingress L2 SPAN filter [ing-l2-span-filter] size = 256
Ingress L3 SPAN filter [ing-l3-span-filter] size = 256
Ingress FSTAT [ing-fstat] size = 0
span [span] size = 512
Egress RACL [egr-racl] size = 1792
Egress SUP [egr-sup] size = 256
Ingress Redirect [ing-redirect] size = 0
Egress L2 QOS [egr-l2-qos] size = 0
Egress L3/VLAN QOS [egr-l3-vlan-qos] size = 0
Ingress Netflow/Analytics [ing-netflow] size = 512
Ingress NBM [ing-nbm] size = 0
TCP NAT ACL[tcp-nat] size = 0
Egress sup control plane[egr-copp] size = 0
Ingress Flow Redirect [ing-flow-redirect] size = 0
Ingress RACL Lite [ing-racl-lite] size = 0
Ingress PACL IPv4 Lite [ing-ifacl-ipv4-lite] size = 0
Ingress PACL IPv6 Lite [ing-ifacl-ipv6-lite] size = 0
Узнаем сколько занято в TCAM:
#show hardware access-list resource utilization
Ingress RACL 6 2298 0.26 !(занято 0,26% от всех 2304, берем немного отсюда: 512, новое значение будет 1792 )
Урезаем (указываем новый, уменьшенный размер) TACM у Ingress RACL на 512 (2304-512=1792)
#conf t
config#hardware access-list tcam region ing-racl 1792
Выделяем высвобожденные ранее 512 на NAT:
config#hardware access-list tcam region nat 512
(Для применения требуется перезагрузка)
Контролируем выделенный TCAM на NAT:
#sh hardware access-list tcam region
NAT ACL[nat] size = 512 (512 появилось здесь)
Ingress PACL [ing-ifacl] size = 0
VACL [vacl] size = 0
Ingress RACL [ing-racl] size = 1792 (512 забралось отсюда)
Ingress RBACL [ing-rbacl] size = 0
Ingress L2 QOS [ing-l2-qos] size = 256
Ingress L3/VLAN QOS [ing-l3-vlan-qos] size = 512
Ingress SUP [ing-sup] size = 512
Ingress L2 SPAN filter [ing-l2-span-filter] size = 256
Ingress L3 SPAN filter [ing-l3-span-filter] size = 256
Ingress FSTAT [ing-fstat] size = 0
span [span] size = 512
Egress RACL [egr-racl] size = 1792
Egress SUP [egr-sup] size = 256
Ingress Redirect [ing-redirect] size = 0
Egress L2 QOS [egr-l2-qos] size = 0
Egress L3/VLAN QOS [egr-l3-vlan-qos] size = 0
Ingress Netflow/Analytics [ing-netflow] size = 512
Ingress NBM [ing-nbm] size = 0
TCP NAT ACL[tcp-nat] size = 0
Egress sup control plane[egr-copp] size = 0
Ingress Flow Redirect [ing-flow-redirect] size = 0
Ingress RACL Lite [ing-racl-lite] size = 0
Ingress PACL IPv4 Lite [ing-ifacl-ipv4-lite] size = 0
Ingress PACL IPv6 Lite [ing-ifacl-ipv6-lite] size = 0
NAT настраивается как обычно, но есть ограничение:
в VPC-моде PBR отбирает трафик у NAT и натирования не происходит, поэтому надо обходиться только статическими маршрутами. Т.е. если есть несколько UP-линков, то PBR на локальном интерфейсе не позволит натировать входящий из локального сегмента трафик (обратный и\или прямой).