У нас есть Cisco 2800 (фактически два с HSRP), настроенный для обслуживания нескольких хостов в локальной сети, и VPN, которая используется для их настройки. Устройство имеет 2 интерфейса: один обслуживает несколько VLAN во внутренней сети, один подключен к интернет-провайдеру и содержит множество общедоступных IP-адресов с HSRP с настроенным шлюзом по умолчанию. Интерфейс ISP отмечен снаружи, интерфейс LAN отмечен внутри. Моя цель - ограничить доступ к порту для определенного хоста, что переводится следующим образом:
ip nat inside source static LAN_IP OUTSIDE_IP route-map RM-NOVPN
Насколько мне известно, это означает, что хост открыт для любого внешнего соединения, и позволяет ему подключаться и быть видимым по тому же глобальному IP-адресу OUTSIDE_IP. Я попытался ограничить количество портов, доступных для внешнего подключения, до минимума с помощью ряда таких утверждений:
ip nat inside source static tcp LAN_IP PORT1 OUTSIDE_IP PORT1 route-map RM-NOVPN
Это работает, но если я отключу полную трансляцию NAT, хост теряет возможность инициировать подключения к Интернету. Я пробовал создать динамический перевод с такой перегрузкой:
ip nat pool HOSTPOOL OUTSIDE_IP OUTSIDE_IP mask 255.255.255.224
ip nat inside source route-map RM_NOVPN2 pool HOSTPOOL overload
route-map RM_NOVPN2 deny 10
match ip address AL-CRYPTOMAP-VPN
!
route-map RM_NOVPN2 permit 20
match ip address AL-HOST
!
ip access-list standard AL-HOST
permit LAN_IP
!
AL-CRYPTOMAP-VPN
список доступа криптокарты для трафика VPN. Тот же список используется в RM_NOVPN, чтобы предотвратить преобразование через NAT трафика, исходящего из VPN.
Эта конфигурация не работает, поскольку хост не может инициировать подключения к Интернету. Причина неизвестна, учитывая, что со статическим полным NAT хост обменивался данными. Вопрос в том, можно ли решить эту задачу только грамотным использованием NAT? На данный момент мы не можем установить полный ACL для входящего трафика на внешнем интерфейсе.
Обратите внимание, что это не ASA, поэтому я не могу использовать прославленный графический интерфейс и трассировщик пакетов для отладки потока пакетов или чего-то еще. Версия Cisco IOS указывается как 12.4.
К сожалению, с моей конфигурацией чистое решение NAT невозможно. Причина указана Вот:
В. Можно ли создать конфигурацию со статической и динамической трансляцией NAT?
А. Да. Однако тот же IP-адрес нельзя использовать для статической конфигурации NAT или в пуле для динамической конфигурации NAT. Все общедоступные IP-адреса должны быть уникальными. Обратите внимание, что глобальные адреса, используемые при статической трансляции, не исключаются автоматически из динамических пулов, содержащих такие же глобальные адреса. Необходимо создать динамические пулы, чтобы исключить адреса, назначенные статическими записями.
Очевидно, если Cisco имеет статический NAT, даже если на основе порта, настроенный для IP-адреса назначения, он вообще не может поддерживать динамический NAT для того же IP-адреса. Там также было сказано, что «если появляется пакет, не имеющий соответствия статическому NAT, он передается без NAT». Следовательно, когда LAN_IP пытается выполнить NAT за пределами порта с не указанным в списке портом на static, пакет не-NAT обрабатывается, а затем отбрасывается как поддельный на внешнем интерфейсе, или, по крайней мере, соединение никогда не устанавливается, потому что адрес источника - LAN_IP, а не OUTSIDE_IP. Жалко.
Применение NAT напрямую к интерфейсу приведет к тому, что сервер будет отправлять данные как другой IP, чем OUTSIDE_IP, и поскольку этот сервер является почтовым сервером, почта, отправленная с неправильного IP-адреса, будет отклонена в месте назначения из-за защиты SPF / DKIM.