Cisco Nat

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску

Настрока NAT на ASR1001

Заметка появилась по-тому что нормальной инструкции я не нашел и как всегда пришлось писать самому
Всего настройка состоит из нескольких частей
Тут просто пример самой простой настройки "выпускать клиентов в мир через НАТ", без хитрых схем "тут натим, тут не натим"

Вообще про NAT в Cisco

Если коротко, то для человека вскомленного iptables это полный пиздец.
Более-менее внятный мануал как обычно Сети Для Самых Маленьких


Static

  • Статический это один-к-одному, в этом случае на один внешний адрес приходится один внутренний (и наоборот) и работает оно сразу в обе стороны
ip nat inside source static 172.16.6.5 198.51.100.2

Самый тупой из возможных вариантов - один-в-один, причем насколько я понимаю, в двух направлениях

Dynamic

ip nat inside source list 100 pool pool_name
  • IP адреса Access List 100 снатить в адреса определенные в pool_name
  • Кому адресов не хватило - не работаеют
  • Что бы работало нужно включить трансляцию портов overload
  • Можно НАТить "в интерфейс" : ip nat inside source list 101 interface fa0/1 overload

Проброс внешних портов на внутренние

  • Примеры
    • ip nat inside source static tcp 172.16.6.61 3389 198.51.100.2 3389
    • ip nat inside source static tcp 172.16.6.66 3389 198.51.100.2 3398

Особенности

Вообще для разных железок настройки совершенно разные

Как связаны объекты в конфиге

  • "Что натить?" - ACL (в терминах iptables это -s / -d <IP> или список из ipset, т.е. условия), какие адреса будут подвергнуты нату - определяет обычный access-list (acl), при этом deny в этом acl означает "не делать нат" а не "дропнуть пакет"
  • "Во что натить?" - NAT POOL (в терминах iptables это -j SNAT --to-source <IP>) определяет ip nat pool
  • "Соответствия NAT POOL - <ACL>?" - ip nat inside, определяет настройку вида "этих натим в один адрес, а тех в другой
  • "На каких интерфейсах применять?"

ACL

Простая конфигурация, предпологает что трафик между "своими" сетями никак не натится, а натится только трафик в "мир"

  • deny означает "не натить", а не "дропнуть" трафик
no  access-list extended ACL-allow-nat-for-100-64-1-0-and-192.168.128.0
ip access-list extended ACL-allow-nat-for-100-64-1-0-and-192.168.128.0
 deny   ip any 192.168.0.0  0.0.255.255
 deny   ip any 172.16.0.0   0.15.255.255
 deny   ip any 10.0.0.0     0.255.255.255
 deny   ip any 100.64.0.0   0.0.255.255
 deny   ip any 94.154.39.0  0.255.255.255
 permit ip 192.168.128.0    0.255.255.255 any
 permit ip 100.64.1.0       0.0.255.255 any
 deny   ip any any
 exit

ip nat pool

Определяет адрес или адреса "в которые натить"
Формат такой:

ip nat pool <Имя Пула> <Начальный Адрес> <Конечный Адрес> prefix-length <Длинна префикса от 1 до 30>

  • Имя - все понятно
  • Начальный/конечный адреса определяют размер пула и могут быть одинаковыми, если нужен нат в 1 адрес
  • prefix-length (или netmask что одно и то же, минимальная маска 255.255.255.252) - наиболее непонятная часть


prefix-length

prefix-length нужен для того что бы определить размер сети, в которую делается NAT и исключить начальный адрес и широковещательный
Это лучше пояснить на примере, так как звучит как бред:

  • есть интерфейс, который смотрит во внешний мир, на нем есть адрес 1 - 198.18.0.254/24
  • есть пул с начальным адресом 198.18.0.0 и конечным 198.18.0.255, и вот что бы при нате не занимать первый и последний адреса и придумана эта маска
  • Но для моего случая ASR1001 это похуй - "Do not configure the interface IP address as part of the IP address NAT pool." (https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/ipaddr_nat/configuration/xe-16/nat-xe-16-book/iadnat-addr-consv.html)

ip nat pool - пример

ip nat pool NAT-POOL-for-100-64-1-0-and-192-168-128-0 100.127.255.1 100.127.255.1 prefix-length 24
  • NAT-POOL-for-100-64-1-0-and-192-168-128-0 - имя пула, по которому на него можно ссылаться
  • 100.127.255.1 100.127.255.1 - диапазон адресов, в примере один адрес
  • prefix-length 24 - значение длинны префикса взято от фонаря, так как для этой платформы адрес не должен быть назначен на интерфейсе (см выше)

ip nat inside

Интерфейсы

Ключевые для NAT параметры интерфейсов тут:

  • ip nat inside
  • ip nat outside

Внутренний

interface Port-channel1.101
 encapsulation dot1Q 101
 ip dhcp relay information trusted
 ip dhcp relay information policy-action keep
 ip unnumbered Loopback101
 ip helper-address 100.100.100.1
 ip helper-address 100.100.100.11
 ip helper-address 192.168.88.1
 ip nat inside
 service-policy type control ISG-CUSTOMERS-POLICY
 ip subscriber routed
  initiator unclassified ip-address ipv4

Внешний

interface Port-channel1.54
 description Uplink
 encapsulation dot1Q 54
 ip address 172.31.100.194 255.255.255.252
 ip nat outside
!

Всякие примеры тонкой настройки

1

https://forum.nag.ru/index.php?/topic/88510-cisco-asr-1000-nat-overload/page/2/

ip nat settings mode cgn
no ip nat settings support mapping outside
ip nat translation timeout 14400
ip nat translation tcp-timeout 3600
ip nat translation pptp-timeout 7200
ip nat translation udp-timeout 3600
ip nat translation max-entries all-host 1000
ip nat pool White_pool_for_NAT xx.xx.xx.xx xx.xx.xx.xx netmask xx.xx.xx.xx
ip nat inside source list 100 pool White_pool_for_NAT overload

2

что-то на 3.11.1 прошивке FTP не работает через NAT.

ip nat settings mode cgn
no ip nat settings support mapping outside
ip nat settings pap limit 1000
ip nat translation timeout 300
ip nat translation tcp-timeout 180
ip nat translation udp-timeout 180
ip nat translation syn-timeout 180
ip nat translation dns-timeout 120
ip nat translation icmp-timeout 120
ip nat translation max-entries 2000000
ip nat translation max-entries all-host 500
ip nat pool 1300 X.X.X.1 X.X.X.2 prefix-length 30
ip nat pool 1301 X.X.X.5 X.X.X.6 prefix-length 30
ip nat pool 1302 X.X.X.9 X.X.X.10 prefix-length 30
 
ip nat inside source list 1300 pool 1300 overload
ip nat inside source list 1301 pool 1301 overload
ip nat inside source list 1302 pool 1302 overload

Ссылки