Понадобилось мне тут настроить Policy-based routing на JuniperSRX, о котором я уже рассказывал. Дело-то, в общем-то нехитрое, и найти решение несложно… но пусть будет, для себя. Кстати, в Juniper это называется немного иначе: Filter-based forwarding, он же FBF. Для него предназначен даже специальный тип routing-instance под названием forwarding.
Тем более, что у меня случай чуть сложней: мне нужно организовать PBR внутри VRF.
Заходим на роутер в режиме конфигурации и приступаем:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | #Здесь мы в настройках нашего Virtual Router указываем #что будем инжектить в RIB-группу #direct-connected маршруты set routing-instances BRANCH_VR routing-options interface-routes rib-group inet RIB_BW_TEST_RSRV #ну а затем в настройках RIB-группы делаем, собственно, импорт set routing-options rib-groups RIB_BW_TEST_RSRV import-rib BRANCH_VR.inet.0 #Настраиваем инстанс PBR, у меня это филиал в Краснодаре #Не забываем указать нужный static route edit routing-instances set PBR_BW_TEST_KRD_RSRV instance-type forwarding set PBR_BW_TEST_KRD_RSRV routing-options static route 172.19.100.100/32 next-hop 192.168.0.2 set PBR_BW_TEST_KRD_RSRV description "Bandwidth test to KRD Branch" top edit firewall family inet #здесь мы указываем, что все пакеты, идущие на 172.19.100.100/32 #заворачиваются в PBR_BW_TEST_KRD_RSRV set filter FW_BW_TEST_RSRV term 0 from source-address 0.0.0.0/0 set filter FW_BW_TEST_RSRV term 0 from destination-address 172.19.100.100/32 set filter FW_BW_TEST_RSRV term 0 then routing-instance PBR_BW_TEST_KRD_RSRV #добавляем count, чтобы можно было считать попадающие в правило пакеты set filter FW_BW_TEST_RSRV term 0 then count COUNT_KRD_RSRV #весь трафик, не попадающий под условия, мы выпускаем set filter FW_BW_TEST_RSRV term 1 then accept top #указываем, что PBR_BW_TEST_KRD_RSRV будет через RIB-group получать #маршруты от BRANCH_VR set routing-options rib-groups RIB_BW_TEST_RSRV import-rib PBR_BW_TEST_KRD_RSRV.inet.0 #применяем фильтр к интерфейсу set interfaces reth0 unit 314 family inet filter input FW_BW_TEST_RSRV |
Будьте особенно аккуратны, если используете не filter, а filter list, позволяющий вешать на интерфейс несколько правил кряду. Если в одном из правил у вас затесалось безусловное “then accept”, то трафик до PBR может и не дойти :).
Вот так все просто.