路由策略專題(二)之分發列表(Distribute-List)

前面的博文中咱們講到了具體的路由的抓取工具,感興趣的同窗能夠參考上篇博文:《路由策略專題(一)之路由抓取工具
數據庫


這篇博文中,咱們將詳細講解一下分發列表(Distribute-List)。分發列表在IGP中使咱們經常使用的一種路由控制工具之一。能夠同各類IGP協議進行協同工做。ide


distribute-list:是一種用於路由更新的工具,只能過濾路由信息,而不能過濾LSA。所以在調用的時候咱們須要注意的是不一樣的路由協議下的不一樣點。工具

因此咱們按路由協議的種類進行劃分。能夠與ACL或者PREFIX-LIST搭配使用spa


在距離矢量協議中(RIP和EIGRP)設計

在距離矢量中路由之間,路由器之間傳遞的是路由信息,分發列表能夠分別做用於in方向和out方向,不管在哪一個方向都可以實現對路由的控制。也就是說,若是要針對某條路由,既能夠在某個路由器的出方向控制接收路由器能收到那些路由,也能夠在接收路由器上作過濾入站的路由以達到路由的控制的目的。3d


分發列表工做流程圖以下:router

圖片.png


在鏈路狀態協議下:blog

如OSPF,協議自己傳遞的是LSA而不是路由信息。所以distribute-list在應用上也應該多多注意。接口

在in方向調用,而影響的並非路由信息,而是在由數據庫生成路由表的過程當中。而在LSDB中的LSA會繼續向其餘路由器傳遞而不受到影響。所以效果只能做用於路由器自己而沒法對其餘路由器構成影響。進程

所以在此類協議中對out方向的調用有必定要求,只會影響本地始發的OE和ON路由,只能在ASBR上,在重分佈的信息生成相應的LSA以前發生並做用,阻止了某條具體的路由造成LSA傳遞給鄰居。對於其餘類型的路由和其餘路由器上沒有做用。換句話說,只有在執行了重分佈的路由器上而且只對重發布進來的路由有效。


工做流程圖以下:

圖片.png



配置命令:


在協議進程下

in方向

distribute-list 1 in [接口]

out方向

distribute-list 1 out[接口|協議]

注意:沒法在OSPF的進程下在出方向調用接口



示例1(單一路由環境,且路由協議爲距離矢量的):

要求R3收不到192.168.2.0/24這條路由。

這裏以EIGRP爲例,RIP操做相同不作多餘贅述。

圖片.png


咱們先來看一下三個路由器的路由表

圖片.png

配置:

R3(config)#ip prefix-list 2.0 deny 192.168.2.0/24

R3(config)#ip prefix-list 2.0 permit 0.0.0.0/0 le 32

R3(config)#router eigrp 1

R3(config-router)#distribute-list prefix 2.0 in e0/0

一樣,能夠在R2的out方向調用,也能夠實現只在R3上過濾的目的

圖片.png

經過實例1和2分析能夠驗證,Prefix-list在距離矢量路由協議中過濾了對應的路由,而且會對下游路由器形成影響。



實例2(單一路由環境OSPF)要求R3上收不到這條192.168.2.0/24這條路由

圖片.png

環境說明,路由條目192.168.0.0/2四、192.168.1.0/2四、192.168.2.0/24這三條路徑均由R1經過重分佈引入ospf。

配置:

在R3的E0/0入方向上

R3(config)#ip prefix-list 2.0 deny 192.168.2.0/24

R3(config)#ip prefix-list 2.0 permit 0.0.0.0/0 le 32

R3(config)#router ospf 1

R3(config-router)#distribute-list prefix 2.0 in e0/0

配置與距離矢量協議同樣發現能夠實現

注意:沒法在OSPF在出方向調用接口

圖片.png


可是若是調用在R2入方向調用接口e0/0呢?

R2(config)#ip prefix-list 2.0 deny 192.168.2.0/24

R2(config)#ip prefix-list 2.0 permit 0.0.0.0/0 le 32

R2(config)#router ospf 1

R2(config-router)#distribute-list prefix 2.0 in e0/0

經過觀察路由表咱們能夠看出來,僅僅在R2上丟失了這條路由,而在R3上沒有。這與咱們以前所說的一致,由於沒法阻止LSA的傳播,所以只是在加路由表的瞬間會有所影響。可是不會影響到下游的路由器,那麼這樣會存在一個問題。那就是若是在R3上若是ping丟失的路由會ping不一樣。這是因爲R5丟失了該路由的緣故。經過查看LSDB咱們能夠看到雖然R2上沒有了這條路由可是LSDB中依然存在關於192.168.2.0/24的LSA描述信息。

所以咱們在距離矢量路由器中使用的時候應該注意這點。不然會形成排錯時沒必要要的麻煩。

圖片.png


實例3(單一鏈路狀態協議下,在ASBR的出方向調用)

拓撲圖如同實例二,環境也是如同實例二

R1上配置

R1(config)#ip prefix-list 2.0 deny 192.168.2.0/24

R1(config)#ip prefix-list 2.0 permit 0.0.0.0/0 le 32

R1(config)#router ospf 1

R1(config-router)#distribute-list prefix 2.0 out

經過現象觀察咱們能夠看到,在R2和R3上均不存在了192.168.2.0/24這條路由

圖片.png


同時咱們查看一下R1的LSDB能夠發如今ASBR R1並無生成相關的5類LSA,這纔是R2和R3上沒有這條路由的根本緣由。

圖片.png


實例4(多路由協議重分佈之一)

環境說明,R一、R2運行EIGRP,R二、R3運行OSPF。R2上作單點雙向重分佈。

拓撲圖以下:

這樣R3能夠收到關於192.168.0.0/24 192.168.1.0/24 192.168.2.0/24這三條路由。咱們要求OSPF全部的路由器(不包括R2)不能收到192.168.2.0這條路由,而且全部的EIGRP路由器(R2除外)不能收到10.0.3.0/24這條路由

圖片.png


咱們先來看一下R1和R3的路由表。肯定一下初始狀態的路由均爲正常存在的。通過驗證發現的確存在所需路由

圖片.png


實驗配置:

R2:

首先咱們禁止在OSPF區域收到192.168.2.0這條路由。

配置以下命令

R2(config)#ip prefix-list DENY-EIGRP seq 5 deny 192.168.2.0/24

R2(config)#ip prefix-list DENY-EIGRP seq 10 permit 0.0.0.0/0 le 32

R2(config)#router ospf 1

R2(config-router)#distribute-list prefix DENY-EIGRP out eigrp   1      #這裏out方向跟的是eigrp,意思是針對EIGRP 1經過重分佈引入的外部路由

相似的咱們在EIGRP區域禁止10.0.3.0

R2(config)#ip prefix-list DENY-OSPF seq 5 deny 10.0.3.0/24

R2(config)#ip prefix-list DENY-OSPF seq 10 permit 0.0.0.0/0 le 32

R2(config)#router eigrp 1

R2(config-router)#distribute-list prefix DENY-OSPF out ospf 1    #這裏out方向跟的是ospf,意思是針對EIGRP 1經過重分佈引入的外部路由


咱們再次查看一下R1和R3的路由,發現相應的路由已經經過過濾達到效果

圖片.png


實例5(多路由協議環境重分佈之二)

繼續沿用上一個實驗的環境,咱們在R2上咱們作一個小小的配置改動。R2有一個直連網段,假設是2.2.2.0/24,R2把這個直連網段同時既重分佈進EIGRP又重分佈進OSPF。

圖片.png


咱們先來查看一下R3的路由表確保R2重分佈的路由已經在R3上有所體現

圖片.png


假設咱們不容許R3收到這條R2的直連網段2.2.2.0/24這個信息,若是咱們作了如下的操做,那麼會怎麼樣呢?

R2(config)#ip prefix-list DENY-CONNECTED seq 5 deny 2.2.2.0/24     

R2(config)#ip prefix-list DENY-CONNECTED seq 10 permit 0.0.0.0/0 le 32

R2(config)#router ospf 1

R2(config-router)#distribute-list prefix DENY-CONNECTED out connected  


咱們再來查看一下R3的路由表,結果發現這條路由信息依然存在於R3的路由表中。那這又是爲何呢?這是由於咱們不只僅在把這條路由重分佈進了OSPF同時也重分佈進了EIGRP這就致使了雖然咱們經過上面的命令DENY掉了直連的重分佈,可是經過EIGRP又再一次重分佈進了OSPF之中。所以就存在了這樣的信息。

圖片.png


那麼針對這個應該怎麼作呢?咱們能夠經過經過下面這個命令在原有的EIGRP-DENY這個preffix-list中插入一個條目來實現。

R2(config)#ip prefix-list DENY-EIGRP seq 6 deny 2.2.2.0/24    #注意咱們這裏插入的爲seq值爲6

可是這樣咱們作了兩次關於同一條路由的禁止過於繁瑣。這一段命令來涵蓋咱們以前的全部操做。

R2(config)#ip prefix-list DENY-ALL seq 5 deny 2.2.2.0/24

R2(config-router)#ip prefix-list DENY-ALL seq 10 permit 0.0.0.0/0 le 32

R2(config)#router ospf 1

R2(config-router)#distribute-list prefix DENY-ALL out         #注意這裏的out以後沒有跟任何的參數(協議),這裏就是默認了經過全部方式得到的外部路由。


再次查看R3的路由表發現這是2.2.2.0/24這個路由被成功的過濾掉了。


本篇文檔就介紹到這裏,但願能幫助到你。本博客內全部內容均爲博主一個字一個字碼上去的,而且專門設計了專門的實驗拓撲。

須要實驗拓撲的小夥伴能夠關注一下我,給我私信或者加個人QQ,我能夠將個人實驗拓撲分享給你。謝謝

相關文章
相關標籤/搜索