четверг, 25 июня 2020 г.

Включение NAT на Cisco Nexus 9200


При включении 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 на локальном интерфейсе не позволит натировать входящий из локального сегмента трафик (обратный и\или прямой).