SPF算法&外部路由選擇
LSDB經過描述一個有向圖來描述網絡拓撲結構
幀中繼NBMA網絡(非廣播多路訪問)
R2到R1的距離:10
R2到R3的距離:10
計算設備到網段的距離
(R一、R二、R3在同一個網段以內)
SPF算法的步驟:
一、計算本身到達節點(路由器)的距離(transit、point-to-point、virtual-link)
二、計算到達葉子的距離(路由條目)的 距離(stubnet)
1.首先計算R2到達R1的距離,10
2.計算R2到2的距離,節點的距離加上R1所通告的路由的距離,10+200=210,累加COST值
以RT1爲根節點
1.以RTA爲根節點
2.查看本身的Router LSA
分析與本身相鄰節點的網絡類型,生成候選列表
P-2-P:鏈接節點的鏈路
StubNet:路由
3.計算到根最短路徑的相鄰節點
一臺設備以本身爲根,首先去看本身發送的1類LSA,經過1類LSA去看有哪些鏈路信息是跟節點互聯的,將這些鏈路信息所有放到候選列表裏面,在候選列表中找出最短路徑;把最短路徑放到最優列表裏面,同時將這個鏈路信息從這個候選列表裏面刪除掉,最優的放到最短路徑樹裏面
4.RTA選擇了RTB,如今RTA會去看RTB所通告的Router LSA,看RTB上面有哪些鏈路信息,看RTB所通告的Router LSA;在點到點裏面,LinkID是鄰居的router ID,能夠經過這個去查鄰居,RTB通告的LSA。
5.經過RTB,進行擴展
經過1類LSA只能知道到達這個網段N6的距離,但並不知道這個網段上是否還有其餘節點,經過DR通告的2類LSA,知道這個網絡上有哪些節點信息
經過這個2類LSA,知道這個網絡上有哪些節點,下表的是網絡上節點的router-id,而後能夠把這些設備的router-id放到候選列表中
會保持COST值最小的 一個,3和4中隨便選一個,好比如今把3放到最短路徑樹列表裏面,能夠獲取一個LINK ID,根據這個LINK ID再去查,查到3多通告的一個router LSA,根據這個LSA再去看3所通告的一個鏈路信息
由於這個Transiet 10.3.1.1已經在最短路徑樹裏面,把4放到候選列表裏面,這樣候選列表爲空,再看4所通告的LSA,發現點到點(P-2-P)和TransNET(廣播網)已經在最短生成樹裏面不須要放。
6.經過計算把全部的最短路徑樹列表裏面的LINK ID所有看完了,看完之後候選列表爲空,能夠畫出圖。經過第一輪計算,能夠計算出這個網絡上有哪些節點,能夠把本身到節點的距離算出來
7.第二步,須要看每個節點所經過的stubNet的鏈路類型,這些都是路由,累加就能夠了,根據stubNet擴展葉子
經過這兩輪計算,能夠計算出到達節點和到達葉子的距離
爲何2類LSA用的是DR接口的IP地址而不是DR設備的Router id?
由於每臺設備都會用Router id去表示一個Router LSA,若是用Router ID做爲LINK ID使用的話,在廣播網裏面可能只會找到DR設備所通告的Router LSA而找不到2類LSA,
爲了區分2類LSA才用的接口IP地址,它的目的是須要將DR所通告的Router LSA和2類LSA所區分開,用不一樣的地址來表示。
一邊是廣播網,一邊是點到點,爲何能夠創建鄰居傳遞LSA可是沒有路由?
由於他們兩個的SPF算法不同,算不出來路由
爲何2類LSA用的是DR接口IP地址?
這種作法是用於區分DR所通告的1類和2類LSA
【實驗配置】:一邊是點到點,一邊是廣播網
53:40
把1改爲廣播網 ,2改爲點到點
在R2上有1發送的Router LSA
以R2爲根,計算到達其餘節點的距離,須要看R2本身所發送的Router LSA
R2#show ip ospf database router self-originate //查看本身所發送的Router LSA
有兩條鏈路:第一條是 點到點的 類型,第二條是Stub Network
選點到點的類型,計算到達節點距離,須要將LINK ID和Metric放到候選列表裏面;
接下來利用LINK ID去查本地的LSDB,這個LINK ID是對端設備的Router ID;
show ip ospf database 12.1.1.1
此時,有一個Stub Net,有一個Transit ;把Transit Network放進去,把12.1.1.2放進去,這個Metric是10,再去查12.1.1.2
show ip ospf database network 12.1.1.2
會發現並無LSA,因此會形成節點計算有問題
經過一步一步來查,會發現沒法執行SPF算法,兩邊能夠正常 創建鄰居有LSA但沒有路由條目。
若是在IOU2上把e0/0的點到點網絡類型改成NBMA非廣播網是否能夠創建鄰居關係是否能夠計算路由?
調整Hello時間
show ip route ospf
會發現有路由,由於廣播網和非廣播的計算方法同樣的,在廣播網和非廣播網裏面都會選舉DR和BDR,可是一邊點到點,一邊非廣播不行。
***********************************************
5類LSA
AS External LSA
每一條外部路由都會生成一條5類LSA去表示
show ip ospf database external 1.1.1.0 看詳細信息
Metric Type :2 //表明2類的外部路由:OE1 或者OE2
Metric:20 //種子度量,無論重分發什麼路由Metric值都是20
Forwadr Address:轉發地址
External Route Tag:外部路由的標籤
4) AS external LSA:
R2#show ip ospf database external 1.1.1.0
OSPF Router with ID (23.1.1.2) (Process ID 1)
Type-5 AS External Link States
Routing Bit Set on this LSA in topology Base with MTID 0
LS age: 241
Options: (No TOS-capability, DC, Upward)
LS Type: AS External Link
Link State ID: 1.1.1.0 (External Network Number )
Advertising Router: 12.1.1.1
LS Seq Number: 80000001
Checksum: 0x424C
Length: 36
Network Mask: /24
Metric Type: 2 (Larger than any link state path) \\有兩種metric type,分別是1和2。
MTID: 0
Metric: 20 \\思科中全部引入的路由的默認metric值爲20,稱爲種子度量,能夠手工修改。
Forward Address: 0.0.0.0 \\轉發地址,能夠避免次優路徑。
External Route Tag: 0 \\爲外部路由增長TAG,便於路由控制。
5類LSA中什麼狀況下才會填充FA地址? (
FA地址就是填充外部路由下一跳的地址,若是外部路由沒有下一跳則FA地址爲空)
一、將到達外部路由下一跳的出接口宣告進OSPF
二、接口的類型不能是點到點或者點到多點
三、接口不能是一個PASSIVE接口
注:若是5類LSA中填充了FA地址,那麼外部路由只計算到達FA的距離,不計算到達ASBR的距離。
計算FA地址的前提條件:到達FA地址的路由必須是OSPF域內或者域間路由,其它類型的路由不能參與計算。這麼作的緣由是爲了不選路形成的環路問題。
默認狀況下重分發進OSPF的外部路由類型爲OE2,OE2不累加轉發鏈路COST,而OE1是累加轉發鏈路COST值。因此OE1比OE2更加精確。
OSPF中爲何會出現次優路徑?Forwarding Address怎麼填充?