Вопрос, казалось бы, очень простой, но я не смог найти на него вразумительного ответа. Итак, трафик, для которого не нашлось конкретного маршрута, по-умолчанию направляется в интернет через Async1.interface Ethernet0
ip address a.b.c.d 255.255.255.0
ip nat insideinterface Async1
ip address negotiated
ip nat outsideip nat inside source list Inet interface Async1 overload
ip route 0.0.0.0 0.0.0.0 Async1
Список Inet определяет, кого и куда следует пускать. Проблема состоит в том, что пакеты, не удовлетворяющие этому acl, всё равно уходят через Async1, только не оттранслированные. Понятно, что дальше провайдера они не уйдут, но канал забивать не хочется.
Подскажите, пожалуйста, каким образом мне пускать наружу только пакеты, подлежащие NAT-у? Если вешать acl на выход с Async1, то возникают проблемы с DDR, т.к. адрес negotiated, а до его получения "интересующие" пакеты не добираются до интерфейса, чтобы инициировать дозвон. Возможно, тут надо использовать policy routing или какой "хитрый" nat?Заранее признателен,
Сергей.
если вешать acl на пакеты входящие на ethernet?
>если вешать acl на пакеты входящие на ethernet?Тоже не годится, т.к. кроме инета есть динамические маршруты на другие сети, и на входе ещё неизвестно, куда пакеты адресованы.
вам правильно сказали...
ACL который указывается в NAT - ничего не ограничивает, предназначен только для того, чтобы указывать, какие адреся натить...ACL на интерфейсе - запрещает или разрешает доступ
>вам правильно сказали...
>ACL который указывается в NAT - ничего не ограничивает, предназначен только для
>того, чтобы указывать, какие адреся натить...
>
>ACL на интерфейсе - запрещает или разрешает доступЭто я и сам прекрасно понимаю. Мне нужно именно запрещать или разрешать доступ, но делать это до NAT-а, когда ещё известен source-адрес. Допустим, имеется acl следующего вида:
ip access-list extended Inet
remark Proxy
permit tcp host proxy_server gt 1024 any eq www
permit udp host proxy_server gt 1024 any eq domain
permit tcp host proxy_server gt 1024 any eq 443
permit tcp host proxy_server gt 1024 any eq ftp
permit tcp host proxy_server gt 1024 any gt 1024
remark Inet-users
permit tcp some_addresses gt 1024 any eq pop3
permit tcp some_addresses gt 1024 any eq smtp
permit icmp some_addresses any echo
remark DNS servers
permit udp host dns_1 gt 1024 any eq domain
permit tcp host dns_2 gt 1024 any eq domainЕсли я повешу его на выход с Async1, он будет блокировать всё, т.к. пакеты, уходящие с асинка имеют сорсом адрес этого асинка.
Если повесить его на вход Ethernet0, будут недоступны сети, подключенные к другим интерфейсам. Используется динамическая маршрутизация, имеются маршруты в том числе и к адресам из зарегистрированного диапазона, т.ч. невозможно предсказать, куда пойдёт пакет.
Если с асинка выпускать только пакеты, имеющие сорсом его адрес, то перестаёт работать DDR, т.к. когда у интерфейса нет адреса, NAT не работает. К тому же адрес у Async1 устанавливается автоматически и в acl его не пропишешь.
Как тут быть, я даже не знаю...
Единственное, что приходит в голову - прописать дефолтный маршрут на loopback, а с него сделать route-map на async.interface Ethernet0
ip address a.b.c.d 255.255.255.0interface Loopback0
ip nat inside
ip policy route-map inet-accessinterface Async1
ip address negotiated
ip nat outsideip nat inside source list Inet interface Async1 overload
route-map inet-access permit 10
match ip address Inet
set interface Async1ip route 0.0.0.0 0.0.0.0 Loopback0
Интересно, будет ли это работать? Уж как-то не очень красиво выглядит. Никто ничего подобного не делал?
а поставить на асинк аксселист на аут который будет рубить пакеты неотранслированные?
Ещё бы знать, как это сделать. Есть ли чёткий критерий того, оттранслирован пакет, или нет?
>Ещё бы знать, как это сделать. Есть ли чёткий критерий того, оттранслирован
>пакет, или нет?конечно если пакет идет наружу с интерфейса со все еще внутренним IP источника а на IP самого интерфейса то значит он не транслирован
если у вас сеть к примеру 192.168.0.0 255.255.255.0
то создаете простой ацл
access-list 11 deny 192.168.0.0 0.0.0.255
access-list 11 permit anyпотом заходите на интерфейс
conf t
in acync 0 (или какой там у вас)
ip access-group 11 outили можно сделать сразу аксселист который выпускает наружу только пакеты с реальными IPшниками вашей сети
access-list 11 permit x.x.x.x 0.0.0.255в любом случае наружу пакеты неоттранслированные с внутренних IP уходить не будут
>если у вас сеть к примеру 192.168.0.0 255.255.255.0
>
>то создаете простой ацл
>access-list 11 deny 192.168.0.0 0.0.0.255
>access-list 11 permit any
>Это я пробовал в первую очередь, при этом, как уже упоминалось, не работает дозвон по требованию. Когда связь не установлена, асинк не имеет адреса, nat не работает, пакеты идут на интерфейс неоттранслированными, блокируются ацл-ом и не инициируют дозвон. Можно, конечно создать acl такого вида:
permit содержимое листа Inet
deny вся остальная сеть
permit anyНа этом, скорее всего, и придётся остановиться. Только выглядит это как-то некрасиво: правила доступа в интернет (довольно громоздкие) приходится дублировать в двух акцес-листах, а мне их иногда приходится менять. Одним листом никак нельзя обойтись?
а зачем дублировать?
сначала нужно отфильтровать на изернете все что разрешено
остальное денаить сразу
а на нат просто разрешить все
потому что уже отфильтровано
>а зачем дублировать?
>сначала нужно отфильтровать на изернете все что разрешено
>остальное денаить сразу
>а на нат просто разрешить все
>потому что уже отфильтрованоК сожалению, это невозможно, по причине, указанной ранее. Может быть, я не совсем чётко её описал, потому повторюсь. Кроме Ethernet0 и Async1, есть ещё интерфейс Serial0, подключенный к ведомственной сети. Маршрутная информация из той сети приходит по протоколу eigrp, через сериал доступно множество адресов из интернет-диапазона, на которые нужно пускать всех. Таким образом, на асинк направляется трафик, для которого не нашлось конкретного маршрута. Я просто не смогу написать ацл, фильтрующий трафик на езернете, т.к. до маршрутизации я не знаю, куда этот трафик направляется.
Как воткнуть acl между рутингом и натом?