Сегодня с утра неожиданно открыл для себя что-то новое, но сильно приятное.
Для кого-то это может быть очевидно, но я, почему-то, раньше не сталкивался. Так что, возможно, кого-то это предостережет от подобных проблем в будущем.
Есть такая топология (ну, конечно, она совсем не такая, но суть отражает):
Есть ASA, в частности ASA 5520 с софтом 8.4(4), у которой множество интерфейсов и подынтерфейсов.
В DMZ «висит» некий вебсервер, слушающий запросы на порту 8443 и доступный, благодаря правилу NAT (см. рисунок) со стороны всех остальных интерфейсов ASA через 443 порт.
Как-то однажды, вчера вечером, оказалось что интерфейс inside2 (на деле это 802.1q подынтерфейс) нам больше не нужен и его можно удалить.
Это и было успешно сделано (no interface inside2). Казалось бы — ну удалили один из интерфейсов, и что с того?
Сегодня с утра, неожиданно обнаружилось что вебсервер стал недоступен для внешнего мира.
После короткого траблшутинга и осмотра логов, оказалось, что то самое правило трансляции для вебсервера в DMZ почему-то успешно самоликвидировалось.
В результате попыток осознать взяимосвясь того, как связано удаление интерфейса с испарением правила NAT, пришел к выводу, что всему виной
ключевое слово any в том самом правиле трансляции.
Т.е. ASA увидела, что некто собирается лишить ее одного из интерфейсов. Осознав это она начала искать, какие правила NAT используют этот интерфейс. Ни одного такого правила она не нашла, но нашла правило, в котором в качестве destination интерфейса был указан any. Ну а так как any включает в себя все интерфейсы, она просто удалила правило целиком.
Вывод такой: если у Вас в конфиге присутствуют правила трансляции (в моем случае это был Auto Nat, но, что-то мне кажатся, что и Manual Nat даст тот же результат), указывающие в качестве одного из интерфейсов, участвующих в трансляции, ключевое слово any, то после удаления любого из интерфейсов, все такие правила успешно исчезнут.
Опять же, вероятно где-то об этом написано, но для меня было неожиданностью.
Автор: Andrew119