Со временем обрывки знаний и умений становится все труднее удержать в голове. Они расползаются по уголкам памяти заполняя все свободное место. Извлекать необходимое на свет становится все сложнее. Этот блог - рабочая записная книжка.

Tuesday, December 4, 2007

uRPF loose mode

Не так давно я уже писал о Unicast Reverse Path Forwarding технологии и одной из отличитильных особенностей реализации была невозможность её использования при асинхронном рутинге. Связано это с тем, что проверка достижимости проводилась с помощью cef для каждого конкретного интерфейса.
Времена меняються! Собственно они изменились еще с версии 12.2Т IOS, просто я узнал об этом только сейчас. :)

Итак. Старый режим, известный как uRPF, теперь называется uRPF strict mode, а новый uRPF loose mode.
Изменения в первую очередь касаються работы с асинхронным рутингом. Теперь проверка достижимости адреса источника осуществляется для всех интерфейсов. Другими словами неважно откуда пришел пакет, если есть дорога обратно то он легитимен.

Настроить такое поведени можно с помощью команды
ip verify unicast source reachable-via выполненой в контексте интерфейса.

RouterA (config-if)# ip verify unicast source reachable-via {rx|any} [allow-default] 
rx - возврат к истокам. strict mode, проверять достижимость источника только для интерфейса через который пакет получен
any - loose mode, проверять доостижимость через любой доступный интерфейс
allow-default - использовать ли для проверки default route

Дополнительно loose mode отбрасывает пакеты с адресами источника:
- адреса зарезервированные для специального применения (0/8, 127/8);
- адреса предназначенные для частных сетей (RFC 1918);
- адреса которые рутятся в интерфейс null на рутере.


Легкий debug
Проверить "работает ли эта штуковина" можно следующими способами:

RouterA# show ip interface Serial1/1 | in verif
RouterA# show ip traffic | in RPF

В обоих случаях можно увидеть счетчики RFP. Увеличение которых, показывает отброшенные пакеты.

No comments: