Задача: Отфильтровать принимаемые на R1 по OSPF маршруты по router-id от маршрутизатора R3.
Имеем маршрутизатор R1 с router-id 192.168.100.1 со следующей конфигурацией:
router ospf 1 router-id 192.168.100.1 area 0.0.0.0 enable exit enable exit interface gigabitethernet 1/0/1 ip firewall disable ip address 192.168.1.1/24 ip ospf instance 1 ip ospf exit interface gigabitethernet 1/0/2 ip firewall disable ip address 192.168.10.2/24 ip ospf instance 1 ip ospf exit
От R2 и R3 имеющих router-id 192.168.100.2 и 192.168.100.3 соответственно, маршрутизатор получает по OSPF маршруты:
R1(config-ospf)# do sh ip route ospf O E2 * 172.16.0.0/24 [150/1/10000] via 192.168.10.1 on gi1/0/2 [ospf1 18:01:01 from 192.168.100.3] (192.168.100.3) O 192.168.10.0/24 [150/1] dev gi1/0/2 [ospf1 17:31:28 from 192.168.100.1] (192.168.100.1) O E2 * 192.168.147.0/24 [150/1/10000] via 192.168.1.2 on gi1/0/1 [ospf1 17:59:54 from 192.168.100.2] (192.168.100.2) O 192.168.1.0/24 [150/1] dev gi1/0/1 [ospf1 17:59:17 from 192.168.100.2] (192.168.100.2)
Решение: Для выполнения задачи создадим следующий route-map на R1:
object-group network source_router ip address-range 192.168.100.3 exit route-map net_in rule 1 match ip route-source object-group source_router action deny exit rule 2 exit exit
Далее применим данный route-map к OSPF на R1:
R1# config R1(config)# router ospf 1 R1(config-ospf)# route-map net_in in R1(config-ospf)# end R1# commit R1# confirm
Теперь маршрутизатор будет принимать маршруты только от маршрутизатора R2:
R1# sh ip route ospf O 192.168.10.0/24 [150/1] dev gi1/0/2 [ospf1 17:31:28 from 192.168.100.1] (192.168.100.1) O E2 * 192.168.147.0/24 [150/1/10000] via 192.168.1.2 on gi1/0/1 [ospf1 17:59:54 from 192.168.100.2] (192.168.100.2) O 192.168.1.0/24 [150/1] dev gi1/0/1 [ospf1 17:59:17 from 192.168.100.2] (192.168.100.2)
Данный способ также актуален и для фильтрации маршрутов в BGP.