Недавно столкнулся с проблемой, когда добавление динамического NAT к интерфейсу нарушало весь транслируемый трафик, проходящий через интерфейс, с ошибками RPF. Мы обнаружили, что добавление команды привело к тому, что фильтрация обратного пути NAT начала отбрасывать большую часть трафика на интерфейсе, ранее проверка RPF не выполнялась (или, по крайней мере, ранее не отображалась в packet-tracer
полученные результаты).
Интерфейс уже имел сотни исключений NAT, статических и динамических политик NAT, но добавление первого динамического NAT (с небольшим ограничением источника / 29 и интерфейсом назначения, не связанным с 99% сбоев трансляций) вызвало сбои.
Вот что его сломало:
nat (Public) 33 172.16.14.0 255.255.255.248 outside tcp 0 0 udp 0
global (Voice) 33 10.0.8.180 netmask 255.255.255.255
Правило, на которое ссылаются в RPF Fails, было основным правилом PAT для внутренней стороны; Ничто в добавленной конфигурации не должно помешать успешной отмене этого правила:
Phase: 9
Type: NAT
Subtype: rpf-check
Result: DROP
Config:
nat (public) 0 0.0.0.0 0.0.0.0 outside
nat-control
match ip Public any inside any
no translation group, implicit deny
policy_hits = 7274
Additional Information:
Полный packet-tracer
результаты до добавления NAT: http://pastey.net/149630 и после: http://pastey.net/149631
Итак, возникает вопрос: действительно ли NAT RPF ведет себя так - фильтрация только для интерфейса, когда к этому интерфейсу подключен динамический NAT? Почему динамический NAT сработал, а NAT с динамической политикой (которые ведут себя точно так же, но с указанным источником и назначением вместо одного источника) - нет? Или это всегда происходило, просто с неявным разрешением на интерфейсе, пока не появился динамический NAT, который затем превратился в неявное запрещение, если правила не совпадают?
5520 работает под управлением 8.2.2, если нужно.
Глядя на первые результаты трассировки пакетов, кажется, что у вас включен nat control. Если вы добавляете динамический nat к внешнему интерфейсу при включенном контроле nat, тогда весь трафик интерфейса должен соответствовать оператору nat. Руководство по настройке Cisco ASA серии 550 - Настройка управления NAT
Вот почему вы видите изменение поведения после применения динамического nat. Управление NAT применяется к внешней стороне, и существующие правила NAT для внешней стороны не подходят для этой ситуации. Трудно быть более конкретным, не увидев config. Самым простым решением будет отключение nat control (без nat-control).
Вы пытаетесь выполнить NAT с интерфейса с более низким уровнем безопасности на интерфейс с более высоким уровнем безопасности? Если это так, вам нужно сделать статический NAT, потому что, насколько я знаю, вы не можете использовать динамический NAT в таких случаях.
Если у вас несколько интерфейсов WAN, NAT может пересылать ваш пакет из неправильного интерфейса, а uRPF может отбрасывать их из-за неправильного адреса (Ссылка: Cisco). У вас случайно не включена Cisco Express Forwarding?