Cisco Nat
Настрока 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
после отключения alg nat ftp (no ip nat service ftp) пассивный ftp режим ожил, активный естественно нет.
3
Всем привет!
Продолжу тему ната.
А как там с количество nat трансляций на asr-1001x, сколько максимально возможно ?
И еще есть вопрос по работе ната , на ericson есть команда exclude well-known которая исключает из работы ната порты до 1024, ну то есть на белых адресах которые используются для ната исключаются из работы эти порты.
Как с этим на цисках, никто не знает?
Отвечу сам себе, настроил Nat
ip nat settings mode cgn no ip nat settings support mapping outside ip nat settings pap limit 60 ip nat translation timeout 300 ip nat translation tcp-timeout 1800 ip nat translation pptp-timeout 1800 ip nat translation udp-timeout 60 ip nat translation finrst-timeout 10 ip nat translation syn-timeout 10 ip nat translation dns-timeout 10 ip nat translation icmp-timeout 10 ip nat translation port-timeout tcp 80 360 ip nat translation port-timeout tcp 8080 360 ip nat translation port-timeout tcp 1600 180 ip nat translation port-timeout tcp 110 180 ip nat translation port-timeout tcp 25 180 ip nat translation max-entries all-host 2000 ip nat pool NAT_POOL_180.10.42 180.10.42.0 180.10.42.254 netmask 255.255.255.0 ip nat inside source list ACL_NAT_180.10.42 pool NAT_POOL_180.10.42 overload ip forward-protocol nd
Циска умная, сама исключает порты до 1024:
Router#sh ip nat translations Pro Inside global Inside local Outside local Outside global tcp 180.10.42.0:1050 10.90.0.33:61737 --- --- tcp 180.10.42.0:1027 10.90.0.33:61712 --- --- tcp 180.10.42.0:1029 10.90.0.33:62011 --- --- tcp 180.10.42.0:1045 10.90.0.33:61770 --- --- tcp 180.10.42.0:1036 10.90.0.33:62013 --- --- tcp 180.10.42.0:1049 10.90.0.33:61846 --- --- tcp 180.10.42.0:1033 10.90.0.33:61692 --- --- tcp 180.10.42.0:1046 10.90.0.33:61772 --- --- tcp 180.10.42.0:1039 10.90.0.33:61721 --- --- tcp 180.10.42.0:1048 10.90.0.33:61960 --- --- tcp 180.10.42.0:1032 10.90.0.33:61691 --- --- tcp 180.10.42.0:1025 10.90.0.33:61680 --- --- tcp 180.10.42.0:1041 10.90.0.33:62014 --- --- tcp 180.10.42.0:1031 10.90.0.33:61671 --- --- icmp 180.10.42.0:1 10.90.0.33:18 --- --- tcp 180.10.42.0:1051 10.90.0.33:61777 --- --- tcp 180.10.42.0:1035 10.90.0.33:61696 --- --- tcp 180.10.42.0:1026 10.90.0.33:61668 --- --- tcp 180.10.42.0:1042 10.90.0.33:61905 --- --- tcp 180.10.42.0:1028 10.90.0.33:62010 --- --- tcp 180.10.42.0:1037 10.90.0.33:61784 --- ---