пятница, 4 февраля 2011 г.

ZBF и Traceroute


В версии IOS 12.4 при использовании Zone-Based Firewall  для корректной работы утилиты traceroute требуется разрешить прохождение ICMP пакетов port-unreachable (type 3, code 3) и ttl-exceeded(type 11, code 1) без инспекции.

Для этого создаем ACL:

ip access-list extended TRACE
 permit icmp any any port-unreachable
 permit icmp any any ttl-exceeded

ip access-list extended ICMP
 permit icmp any any port-unreachable
 permit icmp any any ttl-exceeded
 permit icmp any any packet-too-big


Класс:

class-map type inspect match-all TRACE
 match access-group name TRACE

class-map type inspect match-all ICMP
 match access-group name ICMP



И объявляем политику так, чтобы эти пакеты не инспектировались, а пропускались как есть:

1.   Внутрь

policy-map type inspect ISP-SELF
 class type inspect  TRACE
  pass
 class type inspect ISP-SELF
  inspect
 class class-default
  drop log


2.   Наружу

policy-map type inspect SELF-ISP
 class type inspect ICMP
  pass
 class type inspect SELF-ISP
  inspect
 class class-default
  drop

2 комментария:

  1. Не работает. Я так понимаю, цискин traceroute работает по udp, и пакеты с роутера не выходят. В случае добавления inspect udp результат ноль.

    ОтветитьУдалить
    Ответы
    1. Да, по UDP. Пакеты выходят. Если Вы запретов не ставили, чего бы им не выходить? Но голого инспект UDP тут мало. Надо разрешить прохождение ответных входящих ICMP типов port-unreachable (type 3, code 3) и ttl-exceeded(type 11, code 1) без инспекции. По крайней мере так было год назад на той конкретной версии IOS. Сейчас вообще уже могли бы это доработать, конечно. Завтра, если будет нечем заняться, могу еще раз стенд собрать и проверить, если надо.

      Удалить

Примечание. Отправлять комментарии могут только участники этого блога.