CCNP6:重發布技術+路由策略(Route-map)2019.6.18修改

CCNP6:重發布技術+路由策略(Route-map)

說明:本次講解的環境爲VMwarePro14.0上運行的webiou,使用CRT作爲遠程登陸工具。

一、認識重發布:

1、什麼是重發布?

重發布(redistribute別名:重發布、重分發、重新分配):
一臺設備同時運行於兩個協議或者兩個進程,默認從兩端學習到的路由條目不共享。重發布技術是 人爲 進行的共享,通過這種技術可以實現不同協議(或同一協議不同進程,例如OSPF)之間的路由條目共享。

2、使用重發布技術時的注意事項:

(1)必須存在 ASBR——自治系統邊界路由器(協議邊界路由器)
(2)必須考慮 種子度量
協議間共享路由時,度量是不攜帶到新的路由協議中的,因此需要在ASBR中導入路由時需要添加起始度量(種子度量)

3、重發布使用規則:

(1)將A協議發佈到B協議時,在 ASBR上的B協議中配置。
(2)將A協議發佈到B協議時,將 ASBR上所有通過A協議學習,及ASBR直連到A協議中的所有路由全部共享到B協議中。

名詞 註釋
單點單向重發布 一臺ASBR運行A、B兩種協議, A協議發給B協議,B協議不發往A協議
單點雙向重發布 一臺ASBR運行A、B兩種協議, A協議發給B協議、B協議也發給A協議
多點單向重發布 一臺ASBR運行多種協議,協議之間發送是單向的
多點雙向重發布 一臺ASBR運行多種協議,多個協議兩兩之間共享路由條目

4、重發布的幾種發佈方式:

方式 註解
A→B 將一種動態路由協議發佈到另一種動態路由協議中。
靜態→B 將ASBR上的 靜態路由 發佈到動態路由協議中。
直連→B 將ASBR上非B協議內工作的 直連路由 發佈到B(動態路由協議)中

接下來我就以下圖爲例,將幾種協議的重發布進行講解。
在這裏插入圖片描述

二、配置重發布

1、搭建實驗環境:

底層如上圖搭建,我們以R2爲中心,讓幾個路由器之間互相重發布,選取RIP、OSPF、EIGRP來作爲講解本實驗的主要協議。
(1)R1與R2之間直連網段爲12.1.1.0網段,R2與R3之間直連網段爲23.1.1.0網段,R2與R4之間直連網段爲24.1.1.0網段。
(2)R1、R2、R3、R4的環回分別是1.1.1.1/24、2.2.2.2/24、3.3.3.3/24、4.4.4.4/24
(3)R1運行的是RIPv2協議、R3運行OSPF協議、R4運行EIGRP協議。R2每種協議都運行,並分別將s0/0、s0/1、s0/2宣告到RIP、OSPF、EIGRP中,R2的環回不宣告。
①在R1上運行RIP協議:

R1(config)#router rip
R1(config-router)#version 2
R1(config-router)#no auto-summary
R1(config-router)#network 12.0.0.0
R1(config-router)#network 1.0.0.0

②在R2上配置rip、ospf、eigrp協議

R2(config)#router rip 
R2(config-router)#version 2
R2(config-router)#no auto-summary 
R2(config-router)#network 12.0.0.0 

R2(config)#router ospf 1
R2(config-router)#router-id 2.2.2.2
R2(config-router)#network 23.1.1.2 0.0.0.0 a 0

R2(config)#router eigrp 90
R2(config-router)#no auto-summary 
R2(config-router)#network 24.0.0.0

③在R3上配置ospf協議

R3(config)#router ospf 1
R3(config-router)#router-id 3.3.3.3
R3(config-router)#network 23.1.1.1 0.0.0.0 a 0
R3(config-router)#network 3.3.3.3 0.0.0.0 a 0

④在R4上配置eigrp協議

R4(config)#router eigrp 90
R4(config-router)#no auto-summary 
R4(config-router)#network 24.0.0.0
R4(config-router)#network 4.0.0.0

2、RIP的重發布:

注意:導入動態路由協議時,如果沒有加種子度量,默認爲無窮大。因此在沒有加種子度量的時候,就無法收到其他路由器的路由表。

(1)A→B:

①將OSPF導入RIP:

在R2中的rip協議中配置:

R2(config)#router rip
R2(config-router)#redistribute ospf 1 metric 2

在R1上查看路由表發現R3的路由表已經進入R1注意度量值跳數爲2
在這裏插入圖片描述

②將EIGRP導入RIP:

在R2中的協議中配置:

R2(config)#router rip
R2(config-router)#redistribute eigrp 90 metric 2

(2)將靜態(缺省)→B

我們先給R2上隨便添一條缺省,這樣R2的路由表中就有一條靜態的缺省路由。然後進RIP,將靜態重發布到RIP中。

R2(config)#ip route 0.0.0.0 0.0.0.0 loopback 0
R2(config)#router rip
R2(config-router)#redistribute static

在R1上查看路由表:
在這裏插入圖片描述
由此我們發現在重發布靜態路由時:即使我們沒有添加種子度量,R1也可以學習到R2上靜態的路由。是因爲靜態的默認種子度量爲1,但是我們也可以加種子度量。

(3)直連→B

對於重發布R2上的直連網段( R2環回、23.1.1.0、24.1.1.0 網段),其默認的種子度量也爲1。配置如下:

R2(config)#router rip
R2(config-router)#redistribute connected 

此時我們再查看R1的路由表
圖5-9
注意 : 運行 OSPF 協議的R3有23.1.1.0網段的直連,在我們第一次把 OSPF 倒入到 RIP 中的時候(第(1)中的第①步),我們可以看到它的度量值爲2,但是當我們將直連重發布到rip中的時候,我們通過上圖發現原本的度量由2跳轉變爲了1跳。爲什麼會轉變呢?這是因爲 R1對兩次重發布進來的同一網段的度量進行了對比,選取其中度量小的路由並加載到路由表中

3、OSPF的重發布

(1)A→B

RIP、EIGRP 導入 OSPF

R2(config)#router ospf 1
R2(config-router)#redistribute rip subnets(子網)
R2(config-router)#redistribute eigrp 90 subnets

注意事項:
①:subnets在導入無類別路由(攜帶掩碼)時必須攜帶,否則無法導入無類別路由。 如果不攜帶就會出現這樣的提示:
% Only classful networks will be redistributed
②:默認導入的RIP路由爲類型2
  類型O*E2:種子度量爲20,在內部傳遞時,不疊加內部的度量值。
  在這裏插入圖片描述
③:如果存在多臺ASBR設備,但需要導入相同的路由時,可以將 修改類型 爲1;
  類型O*E1:種子度量爲20,在內部傳遞時疊加內部的度量值。
  指令如下:

修改種子度量:R2(config-router)#redistribute rip(eigrp) subnets metric ?
修改種子類型:R2(config-router)#redistribute rip(eigrp) subnets metric-type 1

在這裏插入圖片描述

(2)靜態→B

我們再給R2隨便寫一條普通的靜態路由,在將靜態路由導入到OSPF中。
注意:OSPF的缺省路由比較特殊,只能通過專用的命令導入缺省路由 。配置如下

R2(config)#ip route 99.1.1.0 255.255.255.0 loopback 0

R2(config)#router ospf 1
R2(config-router)#redistribute static subnets     重發布普通靜態路由
R2(config-router)#default-information originate 	 重發布缺省靜態路由

普通靜態:默認進入路由類型爲2、種子度量爲20
缺省路由:默認進入路由爲類型2,種子度量爲1
如果需要修改種子度量或類型的配置如下

R2(config-router)#default-information originate  metric ?
R2(config-router)#default-information originate  metric-type ?

在這裏插入圖片描述

(3)直連→B

R2(config)#router ospf 1
R2(config-router)#redistribute connected subnets 

在這裏插入圖片描述
注:默認進入路由爲 類型2種子度量爲20

4、EIGRP的重發布

(1)A→B

配置如下:

R2(config)#router eigrp 90
R2(config-router)#redistribute rip metric 1544 100 255 1 1500
R2(config-router)#redistribute ospf 1 metric 1544 100 255 1 1500

注意:必須添加種子度量,默認爲無窮大
1544 100 255 1 1500 分別代表帶寬、延時、可靠性、負載、MTU
其中帶寬建議根據網絡的實際帶寬來修改,其他參數已經爲最優參數。
倒入後,我們查看R4的路由表:

在這裏插入圖片描述
注意:重發布到EIGRP的路由,使用字母 D EX 標記,且管理距離變爲170,而OSPF110、RIP120都不會發生改變。

(2)靜態→B

配置如下:

R2(config)#router eigrp 90
R2(config-router)#redistribute static 

默認爲主機最佳度量

(3)直連→B

配置如下:

R2(config)#router eigrp 90
R2(config-router)#redistribute connected

默認爲主機最佳度量

5、總結

在一臺運行多種協議的ASBR上要做到全網可達,就需要將該ASBR上運行的協議兩兩之間進行重發布,如下圖示意:
在這裏插入圖片描述
配置命令總結如下:

協議 RIP OSPF EIGRP
重發布
RIP
redistribute rip subnets(metric、metric-type) redistribute rip metric 1544(可改) 100 255 1 1500
重發布
OSPF
redistribute ospf 1 metric 2 redistribute ospf 1 metric 1544 100 255 1 1500
重發布
EIGRP
redistribute eigrp 90 metric 2 redistribute eigrp 90 subnets(metric、metric-type)
重發布
靜態
redistribute static(metric) 靜態:redistribute static subnets(metric、metric-type)
缺省:default-information originate(metric、metric-type)
redistribute static(metric)
重發布
直連
redistribute connected(metric) redistribute connected subnets(metric、metric-type) redistribute connected(metric)

三、單點雙向重發布

在這裏插入圖片描述
由於篇幅有限,單點雙向重發布與第二節配置一樣,只是圖略微有所變化,這裏不在演示。只是需要注意的是,R2、R4雙向重發布後,R1是可以學到OSPF的路由的,R5也可以學到RIP的路由。特別地,如果在OSPF中加入一條缺省,R1是可以學到的。但如果給RIP中加入一條缺省,OSPF是學不到的,需要敲專用的指令。
注意事項:
DV協議默認接收所有重發布進入的路由,包括缺省條目,

LS協議(例如OSPF)在正常重發布時不接收缺省路由,需要專用指令。

四、多點雙向重發布

說明:爲了更深入的理解多點雙向重發布,我會以該圖作爲講解雙向重發布的示例:

在這裏插入圖片描述
多點雙向重發布:原本一臺ASBR設備運行着多種協議,現在使用兩臺甚至多臺ASBR來頂替原本只有一臺的ASBR設備。這樣做的目的是爲了更穩定,可以做備份。但是必然也會帶來很多的問題:選路不佳、路由回饋。

1、搭建實驗環境:

配置底層、宣告路由網段即可,R1的環回是1.1.1.1/24,其餘的以此類推。由於之前已經演示,這裏不在做演示。

2、在R2、R4上進行雙向重發布

R2配置如下: R4配置如下
R2(config)#router rip
R2(config-router)#redistribute ospf 1 metric 1
R2(config)#router ospf 1
R2(config-router)#redistribute rip subnets
R4(config)#router ospf 1
R4(config-router)#redistribute rip subnets
R4(config)#router rip
R4(config-router)#redistribute ospf 1 metric 1

3、多點雙向重發布所帶來的問題:

(1)選路不佳:

①R1的路由表:

此時進行這樣配置由於種子度量都是1,理論上來說R1到OSPF域內應該有4個等開銷負載均衡。但是出現了5個,我們會發現原本在RIP中的R4的環回也出現了負載均衡,這是不應該的,原因是因爲出現了路由回饋。
在這裏插入圖片描述
在這裏插入圖片描述
出此之外我們可以看到去往R2的環回的兩條路由,一個掩碼是24位,一個掩碼是32位,這是因爲R2上顯示直連環回的網段爲掩碼爲24位,而32位掩碼的路由是R4通過把OSPF精確學習到的路由重發布到RIP中去的。爲了防止它影響我們的觀察,我們可以把OSPF中的R2和R3環回的工作類型方式改了,改成點到點模式。這樣我們看到的就都是24位了,配置和結果如下:

R2(config)#int lo0
R2(config-if)#ip ospf network point-to-point 
R3(config)#int lo0
R3(config-if)#ip ospf network point-to-point 

在這裏插入圖片描述

②R3路由表:

我們在查看R3的路由表,理論上來說R3到RIP域中應該都等開銷負載均衡。但是卻一條等開銷都沒有。
在這裏插入圖片描述

③R2的路由表:

我們可以看到R2的路由表除了去往R1、R3環回的路由和34.1.1.0網段的路由是正確學習到的方式,其他的都有問題。
在這裏插入圖片描述

④R4的路由表:

我們可以看到R4中一條RIP的路由都沒有學到,問題也很大。
在這裏插入圖片描述
總結:出現了等開銷負載均衡,必然會出現選路不佳,這是由於導入的路由原有度量值被去掉,故只要進行多點雙向重發布,必然選路不佳。 比如說R1去往R2的環回,按理所有流量下一跳是12.1.1.2最好,但是一部分流量的下一跳爲14.1.1.2,繞了一大圈。

(2)路由回饋:

當RIP和OSPF(ISIS)之間進行多點雙向重發布時, 由於RIP(120)的管理距離大於OSPF(110) ,導致ASBR優選OSPF路徑,最終將RIP的路由重新發回RIP。因此當RIP和EIGRP進行多點雙向重發布的時候,由於EIGRP的外部重發布距離是170大於RIP(120)正常是不會出現路由回饋的。但是依然會選路不佳。
在這裏插入圖片描述

4、部分解決路由回饋:

(1)實現等開銷負載均衡:

那麼我們第一步就是修改管理距離:

因此要想解決以上問題:我們需要把圖掰正,讓R1到OSPF域內等開銷負載均衡, R4到RIP域內等開銷負載均衡,解決路由回饋。

我們之前說到在R1上多了一條去往R4環回的等開銷負載均衡,是因爲OSPF的管理距離小於RIP導致R4的環回發生了路由回饋,因此我們可以把去往R4的管理距離加大。

R2(config)#router ospf 1
//從該RID學習到的所有路由條目管理距離修改爲121
R2(config-router)#distance 121 4.4.4.4 0.0.0.0
(數值分別代表:管理距離、另一臺ASBR的RID、反掩碼)

同理我們也需要在R4上修改去往R2的管理距離。

R4(config)#router ospf 1
R4(config-router)#distance 121 2.2.2.2 0.0.0.0

關於這個命令補充一下:它還可以基於ACL來僅針對部分路由,進行管理距離的修改,在命令結尾可以加 ACL編號。

(2)檢查路由表:

①R2路由表:

我們發現大部分R2的路由都已經恢復正常,但是還有一條去往R4環回的路由有問題。R2在去往R4的環回時,竟然優選管理距離大的OSPF。這是爲什麼呢?
原因:
在這裏插入圖片描述
OSPF收斂速度比RIP快,R2優先學習到R4的環回,標記爲OE2。緊接着將這條路由重發布到了RIP中,度量爲1跳,由於R1到R4的度量也爲1跳,且R1收到的都是去往R4環回的路由,那麼此時R1就會負載均衡。

因此,根據水平分割原理,R1是不會把R4給R1管理距離爲120的度量給R2。最後導致R2只有OSPF域內學習到的管理距離爲121的去往R4環回的路由。

解決方法:
不讓R2將該路由給R1,或者加大R1到R2之間的度量比R1到R4的度量大。當不存在等開銷負載均衡後,R1就會把管理距離小的路由給R2,R2比對之後機會選擇正確的路由了。
在這裏插入圖片描述
在這裏插入圖片描述

②R4路由表:

我們發現R4的路由表已經恢復正常,一切路由均正確。
在這裏插入圖片描述
總結:即便通過修改管理距離,解決路由回饋之後,也可能因爲協議收斂速度的穩定,導致部分路由依然回饋中,無法完美解決,因此我們還需要使用路由策略進行解決。

5、路由策略解決路由回饋:

(1)使用前綴列表:

首先製作前綴列表讓R2拒絕將去往R4環回的路由從s0/0口發出去,然後在RIP協議中調用。

R2(config)#ip prefix-list xxx deny 4.4.4.0/24
R2(config)#ip prefix-list xxx permit 0.0.0.0/0 le 32
R2(config)#router rip
R2(config-router)#distribute-list prefix xxx out s0/0

我們查看R1、R2的路由表
在這裏插入圖片描述
在這裏插入圖片描述
到這裏R2、R4的路由表已經恢復正常。
我們再查看R3的路由表:
在這裏插入圖片描述
由於前綴列表可準確的抓取網絡網段,但是由於拒絕某個網段在實際工程中很不好,一個網段斷開就會導致相應的路由失去,因此還是建議用偏移列表調整路由的度量值,實現路徑備份。這兩種選一種即可。

(2)使用偏移列表:

R2(config)#access-list 1 permit 4.4.4.0
R2(config)#router rip
R2(config-router)#offset-list 1 out 1 s0/0

在這裏插入圖片描述
在這裏插入圖片描述
我們發現這兩種方式都可以實現等開銷負載均衡,此時這張圖的路由回饋已經全部解決。實現了R1到OSPF域等開銷,R3到RIP域等開銷。R2和R4路由表全齊,接下來我們還需要解決選路不佳的問題,讓R1到R2環回和23.1.1.0網段的下一跳12.1.1.2,去往34.1.1.0網段的下一跳爲14.1.1.2;同理R3也一樣。

6、路由策略解決選路不佳:

R2策略、配置 R4策略、配置
R2使用偏移列表,增大一條路徑,是指走另一條路 R4使用Route-map減小路徑的度量值
R2(config)#access-list 2 permit 34.1.1.0
R2(config)#router rip
R2(config-router)#offset-list 2 out 1 s0/0

R2(config)#ip prefix-list q permit 12.1.1.0/24
R2(config)#route-map q permit 10
R2(config-route-map)#match ip address prefix-list q
R2(config-route-map)#set metric 10

R2(config)#route-map q permit 20
R2(config)#router ospf 1
R2(config-router)#redistribute rip subnets route-map q
R4(config)#ip prefix-list q permit 14.1.1.0/24
R4(config)#ip prefix-list q permit 4.4.4.0/24

R4(config)#route-map q permit 10
R4(config-route-map)#match ip address prefix-list q
R4(config-route-map)#set metric 10

R4(config)#route-map q permit 20
R4(config)#router ospf 1
R4(config-router)#redistribute rip subnets route-map q

在這裏插入圖片描述

在這裏插入圖片描述
到這裏該圖的選路不佳已經全部解決,我們可以從路由表中看到它們的下一跳均爲正確的選路方式。
最終總結:要想要解決多點雙向重發布的選路不佳的問題,第一要解決的路由回饋,使一個域到另一個域實現等開銷負載均衡;第二解決的是選路不佳,使用路由策略讓它們進行正確的選路。

而解決路由回饋,需要先將管理距離掰正,然後修改度量解決路由回饋。

五、路由策略

路由策略:在控制層面抓取流量後,對流量進行修改,之後影響路由器路由表的生成,最終達到干涉選路的目的。

1、抓取控制層面流量:

(1)ACL:

訪問控制列表,設計用於干涉數據層面流量,也可以用來抓取控制層面流量(不能精確匹配) 可以爲 所有 的路由策略服務。

(2)前綴列表:

專用於抓取控制層面的網絡號,爲 分發列 表和 Route-map 服務。

配置 註解
r2(config)#ip prefix-list xxx permit 2.2.2.0/25 掩碼爲25
r2(config)#ip prefix-list xxx permit 3.3.3.0/24 le 30 掩碼範圍24-30
r2(config)#ip prefix-list xxx permit 4.4.4.0/24 ge 30 掩碼範圍30-32
r2(config)#ip prefix-list xxx permit 5.5.5.0/24 ge 25 le 30 掩碼範圍25-30
r2(config)#ip prefix-list xxx permit 0.0.0.0/0 le 32 允許所有
r2(config)#ip prefix-list xxx permit 0.0.0.0/0 匹配缺省
r2(config)#ip prefix-list xxx seq 11 deny 1.1.1.0/24 插入序列號爲11,默認序列號+5遞增

le、ge使用規則:len < ge-value <= le-value
匹配規則:至上而下逐一匹配,上條匹配按上條執行,不再查看下條,末尾隱含拒絕所有。

2、策略:

(1)偏移列表:

僅適用於DV(RIP/EIGRP)協議,在控制層面流量的入或出口上抓取路由條目,增大度量值,可以疊加。只能使用ACL爲其服務。

(2)分發列表:

在控制層面流量的入口或出口上,限制路由條目的傳遞

①抓流量:

使用ACL或者前綴列表均可

R2(config)#ip prefix-list xxx deny 4.4.4.0/24
R2(config)#ip prefix-list xxx permit 0.0.0.0/0 le 32
②定製策略
R2(config)#router rip
R2(config-router)#distribute-list prefix xxx out s0/0    再R2的出接口s0/0上調用名爲xxx的偏移列表

注意:若在OSPF協議中使用分發列表,只能入向調用,不能出向調用。因爲OSPF要保證整個拓撲要完整,接收方收到拓撲後,可以不把拓撲的結果放到路由表裏。但是一定要發送放進行發送。
還可以在重發布進行時,直接限制條目的發佈規則。不在接口上操作,而是在流量從A協議緩存區進入B協議緩存區時就限制。有助於節約設備性能。

r3(config)#router rip 
r3(config-router)#distribute-list prefix qq out ospf 1

將OSPF發佈到RIP時生效。
由於偏移列表只可以增加度量值,如果是RIP一旦度量值加大,必然會導致工作範圍的減小。分發列表只能限制路由可不可以傳遞,功能性也很弱。因此最常用的路由策略Route-map就出來了。

(3)Route-map:

可以對控制層免流量進行大量的行爲,在重發布、BGP選路、ziPBR(策略路由)三方面可以大量應用。
搭建實驗環境:
在這裏插入圖片描述
該實驗是說將R7上的4個環回通過重發佈讓R9學到以後,1.0爲正常通過,2.0拒絕通過,3.0種子度量類型改爲E1,4.0保持原有E2類型將度量值降低至10,12.1.1.0網段種子度量類型改爲E1並將度量值加到50

R8(config)#router ospf 1
R8(config-router)#redistribute rip subnets

我們查看R9的路由表:在這裏插入圖片描述

①抓流量:使用ACL或訪問控制列表
ACL 控制列表
R8(config)#access-list 1 permit 1.1.2.0 R8(config)#ip prefix-list a permit 1.1.4.0/24
R8(config)#access-list 2 permit 1.1.3.0 R8(config)#ip prefix-list b permit 12.1.1.0/24
②定製Route-map:
定製Route-map 註釋
R8(config)#route-map x deny 10
R8(config-route-map)#match ip address 1
創建x列表,大動作拒絕,序號10
匹配ACL列表1
R8(config)#route-map x permit 20
R8(config-route-map)#match ip address 2
R8(config-route-map)#set metric-type type-1
WW列表的序號20,大動作允許
匹配ACL列表2
小動作爲類型修改爲1
R8(config)#route-map x permit 30
R8(config-route-map)#match ip address prefix-list a
R8(config-route-map)#set metric 10

匹配前綴列表a
修改種子度量值爲10
R8(config)#route-map x permit 40
R8(config-route-map)#match ip address prefix-list b
R8(config-route-map)#set metric-type type-1
R8(config-route-map)#set metric 50
R8(config)#route-map x 50 空列表允許所有

策略寫好後,還需要在重發布時調用:

R8(config)#router ospf 1
R8(config-router)#redistribute rip subnets route-map x

在這裏插入圖片描述
我們發現一切都跟我們計劃的一樣。這裏要說明的是由於12.1.1.0網段的度量類型爲E2,因此在計算度量時還需要進行疊加內部度量,出現了114,如果時E2那麼50就是50。

Rout-map配置規則
1、在創建route-map時,若不配置大動作,動作爲允許;不配置序號,那麼序號永遠爲10,故從第二條開始必須配置序號
r2(config)#route-map x
r2(config-route-map)#
2、在抓取流量時,使用允許,在route-map中來拒絕流量
3、匹配規則—從上往下逐一匹配,上條匹配按上條執行,不再查看下條,末尾隱含拒絕所有
4、不匹配及匹配所有,不執行及不做任何小動作,僅按大動作執行。故大動作爲允許的空表,標示允許所有
5、存在或or與and 關係:可以用或關係同時匹配3條流量,對它們做同一種策略。
route-map ccsp permit 10
match ip address 1 2 3 或關係
set metric 10
set metric-type type-1 與關係
set origin egp 2
6、在一個序號中,匹配流量只能匹配一種抓取流量的協議,ACL或者前綴列表。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章