Cisco Nat
Настрока NAT на ASR1001
Заметка появилась по-тому что нормальной инструкции я не нашел и как всегда пришлось писать самому
Всего настройка состоит из нескольких частей
Вообще про NAT в Cisco
Если коротко, то для человека вскомленного iptables
это полный пиздец
Static
- Статический это один-к-одному, в этом случае на один внешний адрес приходится один внутренний (и наоборот) и работает оно сразу в обе стороны
ip nat inside source static 172.16.6.5 198.51.100.2
Самый тупой из возможных вариантов - один-в-один, причем насколько я понимаю, в двух направлениях
Dynamic
- inside / outside
- global
- ip nat enable (но NAT Virtual Interfaces (NVIs) are not supported in the Cisco IOS XE software.)
Вообще для разных железок настройки совершенно разные
Как связаны объекты в конфиге
- "Что натить?" -
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
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
Интерфейсы
Внутренний
Внешний
Всякие примеры тонкой настройки
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