distribute-list 分發列表

【聲明】
本文轉載自紅茶大叔,若有侵權,請告知刪除.

 redis

1、工具概述app

distribute-list分發列表是用於控制路由更新的一個工具,只能過濾路由信息,不能過濾LSA。
distribute-list 分發列表
如上圖,R一、R二、R3運行RIP。R2在初始狀況下,會將本身的路由表更新給R1,其中假設包含三條路由1.0、2.0及3.0。如今咱們能夠經過在R2上部署分發列表distribute-list,使得R2在更新給R1的路由信息中過濾掉3.0這條路由。這就是分發列表的一個使用示例。固然,它還有更加普遍的應用。ide

2、部署要點工具

分發列表是用於控制路由更新的一個工具,只能過濾路由信息,不能過濾LSA。所以:分發列表在距離矢量路由協議中使用,不管是in或者是out方向,都能正常的過濾路由。可是在鏈路狀態路由協議中的工做就有點問題了。
The command distribute-list out works only on the routes being redistributed by the Autonomous System Boundary Routers (ASBRs) into OSPF. It can be applied to external type 2 and external type 1 routes, but not to intra-area and interarea routes.

1.對於距離矢量路由協議
distribute-list 分發列表oop

路由器之間,傳遞的是路由信息,分發列表對路由信息是有絕對的控制權的。所以若是是in方向,那麼經過部署分發列表,能夠過濾特定的路由,使得執行分發列表的本地路由路由表發生變化,同時,本地路由器在更新路由信息給下游路由器的時候,實際上更新的內容是受分發列表影響以後的條目。
同時在out方向,也是沒有問題的。 學習

2.對於鏈路狀態路由協議,如OSPF
distribute-list 分發列表3d

值的注意的是,對於OSPF這樣的鏈路狀態路由協議,路由器之間傳遞的消息再也不是路由信息了,而是LSA,而分發列表是沒法對LSA進行過濾的。所以,在鏈路狀態協議中部署分發列表,就須要留意了:
in方向,分發列表只能在本地收到LSA後,生成路由的那一剎那進行路由的過濾,執行分發列表的路由器本身路由表會被分發列表影響(可是本地LSDB仍然是有LSA的),並且該路由器仍會將LSADB中的LSA發送給鄰居,所以本地被過濾的路由,鄰居還有。
out方向,分發列表只能工做在執行路由重發布動做的那個ASBR上,且只能針對外部引入的路由起做用。由於OSPF執行重發布時,其實這些外部路由是以路由的形式引入進來的,所以分發列表在這個場合下可以正常工做,可是若是不是本地始發的外部路由,或者是內部的OSPF路由,out方向的分發列表均一籌莫展。
distribute-list 分發列表
例如在R1上重發布直連進OSPF,用out方向的分發列表可過濾掉1.1.1.0這條外部路由。但R1重發布進來的路由,若是在R2上用out方向的分發列表試圖阻擋R3接受路由或LSA,則沒法,由於這不是本地始發的外部路由。code

3、配置命令orm

1.In方向router

R1(config-router)#distribute-list 1 in ? // 都是接口
Async Async interface
BVI Bridge-Group Virtual Interface
CDMA-Ix CDMA Ix interface
Dialer Dialer interface
FastEthernet FastEthernet IEEE 802.3
Multilink Multilink-group interface
Port-channel Ethernet Channel of interfaces
Tunnel Tunnel interface
Vif PGM Multicast Host interface
Virtual-PPP Virtual PPP interface
Virtual-Template Virtual Template interface
……

2.OUT方向
R1(config-router)#distribute-list 1 out ? // 接口或協議
Async Async interface
BVI Bridge-Group Virtual Interface
Dialer Dialer interface
FastEthernet FastEthernet IEEE 802.3
Loopback Loopback interface
Multilink Multilink-group interface
Port-channel Ethernet Channel of interfaces
Tunnel Tunnel interface
Virtual-PPP Virtual PPP interface
Virtual-Template Virtual Template interface
Virtual-TokenRing Virtual TokenRing
bgp Border Gateway Protocol (BGP)
connected Connected
eigrp Enhanced Interior Gateway Routing Protocol (EIGRP)
ospf Open Shortest Path First (OSPF)
rip Routing Information Protocol (RIP)
static Static routes
……

4、應用場合

1.配置示例1(單一路由協議環境下-RIP)
distribute-list 分發列表
初始狀況下,R3可以學習到R1的三條loopback路由,以及192.168.12.0/24路由。如今咱們不但願R3學習到192.168.3.0/24的路由,那麼能夠在R2上以下配置:
R2(config)# access-list 1 deny 192.168.3.0
R2(config)# access-list 1 permit any
R2(config)# router rip
R2(config-router)# distribute-list 1 out fa 1/0
固然,在R3上,用in方向的分發列表也能夠達到一樣的效果。

2.配置示例2(單一路由協議環境下-RIP)
distribute-list 分發列表
在R2上若是作以下配置:
R2(config)# access-list 1 deny 192.168.3.0
R2(config)# access-list 1 permit any
R2(config)# router rip
R2(config-router)# distribute-list 1 in fa0/0
那麼,首先R2本身的路由表會發生改變,3.0的路由被過濾掉了,同時R3也就是下游RIP路由器,3.0也學不到。

3.配置示例3(單一路由協議環境下-OSPF)
distribute-list 分發列表
R2的配置以下:
R2(config)# access-list 1 deny 192.168.3.0
R2(config)# access-list 1 permit any
R2(config)# router ospf 1
R2(config-router)# distribute-list 1 in fa0/0
注意這時候,首先在R2的路由表裏,3.0的路由就被幹掉了。注意,這時候實際上,area內OSPF路由器產生的LSA已是裝載到了R2的OSPF database之中,而在R2從OSPF database中計算路由,並準備將路由條目裝載進路由表以前,in方向的分發列表發生做用了,將3.0的路由過濾掉了,所以R2的路由表中,是沒有3.0的OSPF路由的。可是,雖然R2本身路由表裏沒3.0路由,這不妨礙R2將相關LSA泛洪給R3,所以,R3仍然是有1.0、2.0、3.0以及12.0的OSPF路由的。

4.配置示例4(單一路由協議環境下-OSPF)
distribute-list 分發列表
如今咱們在R2上作以下配置:
R2(config)# access-list 1 deny 192.168.3.0
R2(config)# access-list 1 permit any
R2(config)# router ospf 1
R2(config-router)# distribute-list 1 out
R3的路由表會是什麼狀況?實際上,沒有任何影響,R3能學習到全網的路由。至於爲何,我相信前面已經解釋的很是清楚了。

5.配置示例5(單一路由協議環境下-OSPF out方向分發列表)
distribute-list 分發列表
分發列表,部署在OSPF這樣的鏈路狀態路由協議中,若是要用out方向,則只能用在這樣的場合。
如上圖,在R1上部署,R1使用重發布直連的方式引入這三條外部路由,那麼out方向的分發列表,只能在R1上部署,且對這三條路由產生做用。
R1(config)# access-list 1 deny 192.168.3.0
R1(config)# access-list 1 permit any
R1(config)# router ospf 1
R1(config-router)# redistribute connected subnets
R1(config-router)# network 192.168.12.1 0.0.0.0 area 0
R1(config-router)# distribute-list 1 out
上述配置實現後,R1將過濾掉3.0路由。

6.配置示例6 協議間重發布時部署分發列表
distribute-list 分發列表
RIP重發布進OSPF
狀況1
R2的配置以下:
access-list 1 permit 1.1.1.0
router ospf 1
redistribute rip metric 10 subnets
distribute-list 1 out rip
這裏這條命令的意思是,從RIP路由協議重分發過來的路由中,只容許1.1.1.0出去(到OSPF協議,沒有方向,只要是運行了OSPF的接口)
R3的路由表裏,只有1.1.1.0的路由

狀況2
在R2上開設loopback接口2.2.2.0/24,R2既重發布RIP進OSPF,又重發布直連進OSPF
access-list 1 permit 1.1.1.0
router ospf 1
redistribute connected subnets
redistribute rip metric 10 subnets
network 192.168.23.0 0.0.0.255 area 0
distribute-list 1 out
// 在R3上只有1.1.1.0的路由,也就是說distribute-list 1 out 此處這條命令,對全部從外部注入進OSPF的路由都生效,最終只有1.1.1.0路由存活下來。而不斷路由的來源是直連路由,仍是RIP。

狀況3在R2上開設loopback接口2.2.2.0/24,R2既重發布RIP進OSPF,又重發布直連進OSPFaccess-list 1 permit 1.1.1.0router ospf 1redistribute connected subnetsredistribute rip metric 10 subnetsdistribute-list 1 out rip// R3的路由表中有路由:1.1.1.0 、 2.2.2.0 、 192.168.12.0// 也就是屏蔽掉了從RIP重發布進來的除了1.1.1.0之外的路由,並重發佈本地直鏈接口  [我的總結]注意對於狀態路由協議OSPF應用distribution-list 的應用,這種狀況下,通常應用在路由重發布進ospf進程時使用。

相關文章
相關標籤/搜索