Особенности фильтрации маршрутов — различия между версиями

Материал из Cisco CCNP
Перейти к навигации Перейти к поиску
imported>Artem
imported>Artem
Строка 15: Строка 15:
 
выражение означает, что адрес должен начинаться с “192.168”, а маска быть /24. Т.е. совпали сети 192.168.0.0/24, 192.168.100.0/24, 192.168.200.0/24, etc.
 
выражение означает, что адрес должен начинаться с “192.168”, а маска быть /24. Т.е. совпали сети 192.168.0.0/24, 192.168.100.0/24, 192.168.200.0/24, etc.
  
 +
Ext ACL может использоваться для фильтрации при редистрибуции как в IGP, так и в BGP. Например, если мы возьмём предыдущий access-list 101 и используем его в route-map так, как в примере ниже:
  
−
This extended access-list syntax can also be used in a route-map for redistribution filtering in both IGP and BGP. For example if we took the previous access-list 101 and matched it in a route-map as follows:
+
route-map OSPF_TO_RIP permit 10
 +
  match ip address 100
 +
!
 +
router rip
 +
  redistribute ospf 1 metric 1 route-map OSPF_TO_RIP
  
−
route-map OSPF_TO_RIP permit 10
+
Результатом будет перераспределение маршрутов из OSPF в RIP, но только тех, что вида 192.168.X.X/24.
−
match ip address 100
+
При использовании extended access-list в distribute-list в IGP может возникнуть путаницу из-за того, что синтаксис ACL меняется. В предыдущем примере нормальное поле “source” в ACL представляло network address, а “destination” - subnet mask. В IGP distribute-list “source” поле в ACL совпадает с адресом источника обновления (update source of the route), а “destination” - network address. Такое использование ACL позволяет нам контролировать сети, которые мы получаем, но, что более важно, что мы может контролировать и от кого мы их получаем. Приведу в пример топологию:
−
!
 
−
router rip
 
−
redistribute ospf 1 metric 1 route-map OSPF_TO_RIP
 
−
 
 
−
This syntax would say that we want to redistribute OSPF routes into RIP, but only those which are 192.168.X.X/24.
 
−
 
 
−
The confusion for this extended access-list implementation is that when it is called as a distribute-list in IGP the syntax changes. In the previous examples the normal “source” field in the ACL represents the network address, where the “destination” field represents the subnet mask. In IGP distribute-list application the “source” field in the ACL matches the update source of the route, and the “destination” field represents the network address. This implementation allows us to control which networks we are receiving, but more importantly who we are receiving them from. Take the following topology:
 
  
 
R1, R2, and R3 share an Ethernet network 123.0.0.0/8 that is running RIP. Both R1 and R2 are advertising the identical prefixes 10.0.0.0/8 and 20.0.0.0/8 to R3. Their configurations are as follows:
 
R1, R2, and R3 share an Ethernet network 123.0.0.0/8 that is running RIP. Both R1 and R2 are advertising the identical prefixes 10.0.0.0/8 and 20.0.0.0/8 to R3. Their configurations are as follows:
  
−
R1#show ip int brief | exclude unassigned
+
R1#show ip int brief | exclude unassigned
−
 
+
−
Interface                  IP-Address      OK? Method Status Protocol
+
Interface                  IP-Address      OK? Method Status Protocol
−
FastEthernet0/0            123.0.0.1      YES manual up    up
+
FastEthernet0/0            123.0.0.1      YES manual up    up
−
Loopback0                  10.0.0.1        YES manual up    up
+
Loopback0                  10.0.0.1        YES manual up    up
−
Loopback1                  20.0.0.2        YES manual up    up
+
Loopback1                  20.0.0.2        YES manual up    up
−
 
 
−
R1#show run | begin router rip
 
−
router rip
 
−
version 2
 
−
network 10.0.0.0
 
−
network 20.0.0.0
 
−
network 123.0.0.0
 
−
 
 
−
R2# show ip int brief | exclude unassigned
 
  
−
Interface                  IP-Address      OK? Method Status Protocol
+
R1#show run | begin router rip
−
FastEthernet0/0           123.0.0.2      YES manual up    up
+
router rip
−
Loopback0                  10.0.0.1        YES manual up    up
+
  version 2
−
Loopback1                  20.0.0.2        YES manual up    up
+
  network 10.0.0.0
 +
  network 20.0.0.0
 +
  network 123.0.0.0
  
−
R2#sh run | begin router rip
+
R2# show ip int brief | exclude unassigned
−
router rip
+
−
  version 2
+
  Interface                  IP-Address      OK? Method Status Protocol
−
  network 10.0.0.0
+
  FastEthernet0/0            123.0.0.2      YES manual up    up
−
  network 20.0.0.0
+
  Loopback0                  10.0.0.1        YES manual up    up
−
  network 123.0.0.0
+
  Loopback1                  20.0.0.2        YES manual up    up
  
−
R3#show ip route rip
+
R2#sh run | begin router rip
−
R    20.0.0.0/8 [120/1] via 123.0.0.2, 00:00:00, Ethernet0/0
+
router rip
−
                [120/1] via 123.0.0.1, 00:00:00, Ethernet0/0
+
  version 2
−
R   10.0.0.0/8 [120/1] via 123.0.0.2, 00:00:00, Ethernet0/0
+
   network 10.0.0.0
−
                [120/1] via 123.0.0.1, 00:00:00, Ethernet0/0
+
  network 20.0.0.0
 +
  network 123.0.0.0
  
−
From this output we can see that R3 has the two prefixes installed twice, once from R1 and once from R2. Now let’s suppose that prefix 10.0.0.0/8 we only want to receive from R1, while prefix 20.0.0.0/8 we only want to receive from R2. We can accomplish this with an extended access-list as follows:
+
R3#show ip route rip
 +
R    20.0.0.0/8 [120/1] via 123.0.0.2, 00:00:00, Ethernet0/0
 +
                [120/1] via 123.0.0.1, 00:00:00, Ethernet0/0
 +
R    10.0.0.0/8 [120/1] via 123.0.0.2, 00:00:00, Ethernet0/0
 +
                [120/1] via 123.0.0.1, 00:00:00, Ethernet0/0
  
−
R3#conf t
+
Из этого вывода видно, что у R3 оба префикса присутствуют дважды, по одной записи для R1 и R2. Теперь представим, что мы хотим получать префикс 10.0.0.0/8 только от R1, а 20.0.0.0/8 от R2. Делаем следующую конфигурацию ACL
−
Enter configuration commands, one per line. End with CNTL/Z.
 
  
−
R3(config)#access-list 100 permit ip host 123.0.0.1 host 10.0.0.0
+
R3#conf t
−
R3(config)#access-list 100 permit ip host 123.0.0.2 host 20.0.0.0
+
Enter configuration commands, one per line.  End with CNTL/Z.
−
R3(config)#router rip
+
−
R3(config-router)#distribute-list 100 in Ethernet0/0
+
R3(config)#access-list 100 permit ip host 123.0.0.1 host 10.0.0.0
−
R3(config-router)#end
+
R3(config)#access-list 100 permit ip host 123.0.0.2 host 20.0.0.0
−
R3#clear ip route *
+
R3(config)#router rip
−
R3#show ip route rip
+
R3(config-router)#distribute-list 100 in Ethernet0/0
−
R    20.0.0.0/8 [120/1] via 123.0.0.2, 00:00:00, Ethernet0/0
+
R3(config-router)#end
−
R    10.0.0.0/8 [120/1] via 123.0.0.1, 00:00:00, Ethernet0/0
+
R3#clear ip route *
 +
R3#show ip route rip
 +
R    20.0.0.0/8 [120/1] via 123.0.0.2, 00:00:00, Ethernet0/0
 +
R    10.0.0.0/8 [120/1] via 123.0.0.1, 00:00:00, Ethernet0/0
  
−
We can see now R3 only has one entry for each prefix, with the 10.0.0.0/8 coming only from R1 and the 20.0.0.0/8 coming only from R2. The disadvantage of this application however is that we cannot distinguish prefixes based on their netmask. For example we could not say that we want to receive prefix 172.16.0.0/16 from only R1 and prefix 172.16.0.0/24 only from R2. For this implementation in IGP we would use a prefix-list that is called from a distribute-list with the “distribute-list prefix” syntax under the routing process.
+
Теперь видно, что R3 имеет по одной записи для каждого из префиксов так, как нужно по условию задачи.  
 +
The disadvantage of this application however is that we cannot distinguish prefixes based on their netmask. For example we could not say that we want to receive prefix 172.16.0.0/16 from only R1 and prefix 172.16.0.0/24 only from R2. For this implementation in IGP we would use a prefix-list that is called from a distribute-list with the “distribute-list prefix” syntax under the routing process.
  
  

Версия 16:51, 3 мая 2014

Особенности использования extended ACL в distribute-list

Возможно использование extended access-list c distribute-list, однако, синтаксис может немного смутить, так как он отличается от использования в других местах (например, фильтрации пакетов). Когда extended ACL используется в distribute-list для BGP он работает в точности как prefix-list. Это значит, что вы можете искать совпадения как по адресу, так и по префиксу маски. Другими словами, если у вас есть префиксы 10.0.0.0/8 и 10.0.0.0/16 в можете задать правило, что не просто сеть должна быть 10.0.0.0, но и маска иметь определённый вид. Для prefix-list это выглядело бы, например, так

ip prefix-list PREFIX1 permit 10.0.0.0/8

Если использовать extended access-list в BGP, следует обратить внимание, что синтаксис листа меняется с совпадения пары source и destination (ip access-list NUM permit ip <source> <source mask> <dst> <dst mask>) на совпадение адреса и маски маршрута. Аналогичный ext ACL для префикса выше выглядел бы так

access-list 100 permit ip host 10.0.0.0 host 255.0.0.0

Данное выражение означает буквально следующее: сеть должна быть в точности 10.0.0.0, маска в точности 255.0.0.0. Например,

access-list 101 permit ip 192.168.0.0 0.0.255.255 host 255.255.255.0

выражение означает, что адрес должен начинаться с “192.168”, а маска быть /24. Т.е. совпали сети 192.168.0.0/24, 192.168.100.0/24, 192.168.200.0/24, etc.

Ext ACL может использоваться для фильтрации при редистрибуции как в IGP, так и в BGP. Например, если мы возьмём предыдущий access-list 101 и используем его в route-map так, как в примере ниже:

route-map OSPF_TO_RIP permit 10
 match ip address 100
!
router rip
 redistribute ospf 1 metric 1 route-map OSPF_TO_RIP

Результатом будет перераспределение маршрутов из OSPF в RIP, но только тех, что вида 192.168.X.X/24. При использовании extended access-list в distribute-list в IGP может возникнуть путаницу из-за того, что синтаксис ACL меняется. В предыдущем примере нормальное поле “source” в ACL представляло network address, а “destination” - subnet mask. В IGP distribute-list “source” поле в ACL совпадает с адресом источника обновления (update source of the route), а “destination” - network address. Такое использование ACL позволяет нам контролировать сети, которые мы получаем, но, что более важно, что мы может контролировать и от кого мы их получаем. Приведу в пример топологию:

R1, R2, and R3 share an Ethernet network 123.0.0.0/8 that is running RIP. Both R1 and R2 are advertising the identical prefixes 10.0.0.0/8 and 20.0.0.0/8 to R3. Their configurations are as follows:

R1#show ip int brief | exclude unassigned

Interface                  IP-Address      OK? Method Status Protocol
FastEthernet0/0            123.0.0.1       YES manual up     up
Loopback0                  10.0.0.1        YES manual up     up
Loopback1                  20.0.0.2        YES manual up     up
R1#show run | begin router rip
router rip
 version 2
 network 10.0.0.0
 network 20.0.0.0
 network 123.0.0.0
R2# show ip int brief | exclude unassigned

Interface                  IP-Address      OK? Method Status Protocol
FastEthernet0/0            123.0.0.2       YES manual up     up
Loopback0                  10.0.0.1        YES manual up     up
Loopback1                  20.0.0.2        YES manual up     up
R2#sh run | begin router rip
router rip
 version 2
  network 10.0.0.0
 network 20.0.0.0
 network 123.0.0.0
R3#show ip route rip
R    20.0.0.0/8 [120/1] via 123.0.0.2, 00:00:00, Ethernet0/0
                [120/1] via 123.0.0.1, 00:00:00, Ethernet0/0
R    10.0.0.0/8 [120/1] via 123.0.0.2, 00:00:00, Ethernet0/0
                [120/1] via 123.0.0.1, 00:00:00, Ethernet0/0 

Из этого вывода видно, что у R3 оба префикса присутствуют дважды, по одной записи для R1 и R2. Теперь представим, что мы хотим получать префикс 10.0.0.0/8 только от R1, а 20.0.0.0/8 от R2. Делаем следующую конфигурацию ACL

R3#conf t
Enter configuration commands, one per line.  End with CNTL/Z.

R3(config)#access-list 100 permit ip host 123.0.0.1 host 10.0.0.0
R3(config)#access-list 100 permit ip host 123.0.0.2 host 20.0.0.0
R3(config)#router rip
R3(config-router)#distribute-list 100 in Ethernet0/0
R3(config-router)#end
R3#clear ip route *
R3#show ip route rip
R    20.0.0.0/8 [120/1] via 123.0.0.2, 00:00:00, Ethernet0/0
R    10.0.0.0/8 [120/1] via 123.0.0.1, 00:00:00, Ethernet0/0

Теперь видно, что R3 имеет по одной записи для каждого из префиксов так, как нужно по условию задачи. The disadvantage of this application however is that we cannot distinguish prefixes based on their netmask. For example we could not say that we want to receive prefix 172.16.0.0/16 from only R1 and prefix 172.16.0.0/24 only from R2. For this implementation in IGP we would use a prefix-list that is called from a distribute-list with the “distribute-list prefix” syntax under the routing process.


Ссылки

Using Extended Access-Lists In A Distribute-List