Архив рубрики: NAT

ISR 4331 и DNS Doctoring

Столкнулся с проблемой, что при попытке изнутри сети отрезолвить белую A запись, которая ссылается на белый ИП Cisco ISR 4331, возвращается ИП того устройства, с которого идёт запрос на внешний ДНС.

Как выяснилось, ISR по умолчанию при NAT рассматривает A-записи ДНС ответов и подменяет адреса не только заголовка, но и содержимого. В инете везде встречал вариант решения

no ip nat service alg tcp dns
no ip nat service alg udp dns

Но у меня на такое ругается и синтаксис вот такой:

no ip nat service dns udp
no ip nat service dns tcp

Если вопрос о статическом NAT, то пишут, что решается ключевым словом no-payload

Cisco NAT и правило permit ip any any

Получил новый ISR 4331 и попытался быстро перекинуть конфиг со старой Cisco. При этом у меня не заработали все внешние туннели, не пинговался хост снаружи и не было возможности подключиться по снаружи по ssh. Решение было найдено тут.

На маршрутизаторах cisco при задании слова ip nat outside трансляции начинают отрабатывать не только для адресов, находящихся за интерфейсами, помеченными как ip nat inside, но и для трафика самого маршрутизатора, даже инициированного от имени внешнего интерфейса.

Таким образом, если мы устанавливаем сессию на адрес маршрутизатора на порт 22, то отвечать он будет с порта 22, но если вдруг подпадет под правило динамического НАТ, то произойдет подмена порта с 22 на некий, из нижнего диапазона (1-1023) и мы не увидим (проигнорируем) ответ

И действительно в конце весьма длинного ACL для NAT было правило permit ip any any.

При создании NAT всегда нужно, что бы в ACL отсутствовало правило permit ip any any. Как вычитал в какой то доке (к сожалению потерял ссылку), начиная с какого то IOS какой то серии (вспомнить бы:)), данное правило будет игнорироваться. Но сейчас его нужно избегать самостоятельно. Естественно правило типа permit ip 10.0.0.0 0.255.255.255 any вполне работает.