RIP在大型網路中部署面臨的挑戰:
1.網路規模擴大:企業新業務層出不窮,且業務呈現大集中趨勢,使得網路規模不斷擴大
2.網路可靠性要求提供:各種應用程式對網路可靠性要求越來越高,網路發生故障后,需要在更短的時間內恢復正常
3.網路異構化趨勢加劇:在日常的運營維護中,硬體設備不斷升級或更新,不同設備之間性能差異較大,設備間互連鏈路帶寬也存在一定的差異,
需要一種各廠商均支持的開放路由協議
RIP在大型網路中部署所面臨的問題:
RIP特性: 帶來的問題:
逐跳收斂 收斂慢,故障恢復時間長
傳聞性路由更新機制 缺少對全域網路拓撲的了解(完全信任所收到的路由)
最多有效跳數為15 環形組網中,使遠端路由不可達
以跳數為度量 存在選擇次優路徑的風險
如何解決:
收斂慢,故障恢復時間長 收到更新->計算路由->發送更新” 改為“收到更新->發送更新->計算路由
缺少對全域網路拓撲的了解 路由器基于拓撲資訊,獨立計算路由
最多有效跳數為15 不限定跳數
存在選擇次優路徑的風險 將鏈路帶寬作為選路參考值
串口帶寬:2.048M
解決最大跳數為15跳:
跨16跳轉發:1.路由重發布:默認引入之后路由跳數為1
2.聚合:聚合之后的路由取原路由中跳數最小值作為聚合后路由的跳數
動態路由協議:
距離矢量(單位:跳數):RIP :基于UDP,埠號520
BGP:基于TCP,埠號179
鏈路狀態:OSPF:基于IP,協議號89
ISIS:集成
鏈路狀態:IP地址及掩碼,帶寬,鄰居,網路利用率,延遲……
OSPF:鏈路狀態路由協議:
1.路由資訊傳遞與路由計算分離:不直接傳遞各路由器的路由表,而傳遞鏈路狀態資訊,各路由器基于鏈路狀態資訊獨立計算路由
2.基于SPF演算法:所有路由器各自維護一個鏈路狀態資料庫,鄰居路由器間先同步鏈路狀態資料庫,再各自基于SPF(Shortest Path First)演算法計算最優路由,從而提高收斂速度
3.以“累計鏈路開銷”作為選路參考值:在度量方式上,OSPF將鏈路帶寬作為選路時的參考依據, “累計帶寬”是一種要比“累積跳數”更科學的計算方式
OSPF的作業程序:
1:通過hello報文建立鄰居
2:互動LSA,同步LSDB
3:SPF演算法,計算最優路由,加表
Router ID:用于在自治系統中唯一標識一臺運行OSPF的路由器,每臺運行OSPF的路由器都有一個Router ID
Router ID是一個32位的無符號整數,其格式和IP地址的格式是一樣的
Router ID選舉規則:
1.手工指定(通常建議手動配置),以大為優
2.如果沒有手動配置Router ID,則從Loopback介面中最大的IP地址作為Router ID
3.如果沒有配置Loopback介面,則從物理介面中最大的IP地址作為Router ID
鄰居關系建立必要條件:
hello報文的間隔/死亡時間一致;埠處于UP狀態;認證要通過;鄰居在同一網段;router-id不能沖突;區域id要一致
鄰居關系建立失敗原因:
一般報文錯誤:
收到自己的報文;錯誤的報文;錯誤的版本號;錯誤的校驗和;錯誤的區域號;報文在 Unnumbered 介面丟棄; 錯誤的虛連接;錯誤的認證型別; 錯誤的認證關鍵字;報文太短
報文長度大于ip 長度; 發送錯誤; 介面down;無法識別的鄰居; 錯誤的網段 ;外部選項不匹配;路由器id沖突
HELLO報文錯誤:
網路掩碼不匹配;hello定時器間隔不匹配;dead定時器間隔不匹配 0 : 虛連接的鄰居無法識別;NBMA的鄰居無法識別;非法的源地址
DD 報文錯誤:
鄰居狀態太低;無法識別的LSA型別 ; MTU選項不匹配
LS ACK報文錯誤:
鄰居狀態太低;無法識別的LSA型別
LS REQ報文錯誤:
鄰居狀態太低;空的請求串列;錯誤的請求
LS UPD報文錯誤:
鄰居狀態太低;更新的自己生成的LSA; LSA的校驗和錯;收到較舊的LSA; 無法識別的LSA型別
Opaque錯誤:
超出FLOOD范圍;10-超出FLOOD范圍;超出FLOOD范圍;無法識別的TLV型別
重傳超次錯誤:
DD報文重傳超次次數; Update報文重傳超次次數; Request報文重傳超次次數
配置錯誤:
Tunnel花費錯誤
hello報文中E位:代表路由器支持計算5類LSA(支持外部路由)
發現并建立鄰居 - Hello報文(組播發送HELLO包)
Hello報文的作用:
1.鄰居發現:自動發現鄰居路由器(被)
2.鄰居建立:完成Hello報文中的引數協商,建立鄰居關系
3.鄰居保持:通過Keepalive機制(周期性10s/30s的Hello報文),檢測鄰居運行狀態
4.在MA(NBMA(非廣播多路訪問)/BMA(廣播多路訪問))網路中選舉DR/BDR
hello報文中攜帶:hello報文生存時間;死亡時間;鄰居串列;router-id
hello報文重傳時間:5s 重傳延時:1s
hello報文時間間隔:
P2P/MA:10s 死亡時間:410
P2MP/NBMA:30s 死亡時間:430
介面下:Ospf enble area 0 在介面內開啟ospf功能
介面狀態:1.DR
2.BDR
3.DR other
4.P2P:只在P2P/P2MP網路中
鏈路狀態資訊主要包括:
1.鏈路的型別:P2P,……
2.介面IP地址及掩碼;
3.鏈路上所連接的鄰居路由器;
4.鏈路的帶寬(開銷)
狀態機:
1.Down:鄰居的初始狀態,表示沒有從鄰居收到任何資訊
2.Attempt:發送hello給鄰居,沒有收到鄰居的hello報文;120s后沒收到回到down(NBMA網路獨有)
3.Init:路由器收到鄰居Hello報文,但是自己的Router ID不在所收到的Hello報文的鄰居串列中,表示尚未與鄰居建立雙向通信關系(自己的router-id不在活躍的鄰居串列中)
4.2-Way:路由器發現自己的Router ID存在于收到的Hello報文的鄰居串列中,已確認可以雙向通信(自己的router-id在活躍的鄰居串列中),此狀態下選舉DR/BDR
5.ExStart:路由器開始向鄰居發送DD報文,Master/Slave關系是在此狀態下形成的,初始DD序列號也是在此狀態下確定的,在此狀態下發送的DD報文不包含鏈路狀態描述(LSA摘要)
6.Exchange:路由器與鄰居之間相互發送包含鏈路狀態資訊摘要的DD報文(從路由器先進入此狀態并發送自己的LSA摘要)
7.Loading:路由器與鄰居之間相互發送LSR報文、LSU報文、LSAck報文
8.Full:LSDB同步程序完成,路由器與鄰居之間形成了完全的鄰接關系

OSPF鄰居建立程序

鄰居建立程序:
RTA和RTB的Router ID分別為1.1.1.1和2.2.2.2,當RTA啟動OSPF后,RTA會發送第一個Hello報文,此報文中鄰居串列為空,此時狀態為Down,RTB收到RTA的這個Hello報文,狀態置為Init
RTB發送Hello報文,此報文中鄰居串列為空,RTA收到RTB的Hello報文,狀態置為Init
RTB向RTA發送鄰居串列為1.1.1.1的Hello報文,RTA在收到的Hello報文鄰居串列中發現自己的Router ID,狀態置為2-way
RTA向RTB發送鄰居串列為2.2.2.2的Hello報文,RTB在收到的Hello報文鄰居串列中發現自己的Router ID,狀態置為2-way
2-way表示鄰居關系的建立,鄰接關系的開始
因為鄰居都是未知的,所以Hello報文的目的IP地址不是某個特定的單播地址,鄰居從無到有,OSPF采用組播的形式發送Hello報文(目的地址224.0.0.5)
224.0.0.5:監聽所有運行了OSPF的路由器
224.0.0.6:監聽DR/BDR
手動建立鄰居 :對于不支持組播的網路可以通過手動配置實作鄰居的發現與維護
OSPF支持通過單播方式建立鄰居關系

網路型別:
原因:為了支持二層功能
型別:1.P2P網路:僅兩臺路由互連;支持廣播、組播
2.P2MP網路:多個點到點網路的集合;支持廣播、組播
3.廣播型網路:兩臺或兩臺以上的路由器通過共享介質互連;支持廣播、組播
4.NBMA網路:兩臺或兩臺以上路由器通過VC互連;不支持廣播、組播
VC:虛電路 (需手工指定)
1.交換VC
2.永久VC
OSPF的度量方式:
默認參考帶寬為100M
實際帶寬G口1000M,E口100M

當計算結果有小數位時,只取整數位;結果小于1時,cost取1
修改開銷的方式:
1.手動修改介面的開銷:
介面視圖下:ospf cost 開銷值
2.修改參考帶寬值:全域修改
協議視圖下:bandwidth-reference 參考帶寬值(越大越精準)
注意:如果一臺路由器上既在介面上修改了開銷,也修改了參考帶寬值,介面開銷生效
OSPF報文型別:
1.HELLO報文:用來發現、建立并維護鄰居關系
2.DD報文:協商主從;互動LSA摘要(LSA的頭部資訊,可以唯一的確定一條)
3.LSR報文:用于請求自身缺少的LSA,LSR只攜帶摘要
4.LSU報文:用于回應對方所缺少的LSA,LSU攜帶是完整的LSA(定時更新/觸發更新都會發送LSU,并具有撤銷路由的作用)
5.LSACK報文:用于對收到鄰居發送的LSA確定回應,表示已經收到LSU,LSACK攜帶的是收到的LSA的摘要,保證同步程序的可靠性
多種報文的存在可保證LSDB同步的可靠性和防止收到重復的LSA
協商主從:保證DD報文互動的可靠性
重傳時間:5s 重傳延時:1s
必須對接收的LSA(LSU報文)進行確認:
隱式確認:LSU報文
顯示確認:LSACK報文
DD、LSR、LSU、LSACK中包含:
DD報文:LSA頭部資訊、LS Type、LS ID 、Advertising Router、LS sequence number、LS checksum
LSR報文:LS Type、LS ID 、Advertising Router
LSU報文:完整的LSA資訊
LSACK報文:LSA頭部資訊、LS Type、LS ID 、Advertising Router、LS sequence number、LS checksum
OSPF報文的功能需求
功能 實作分析
發現鄰居與保持 Hello機制即可實作
LSA同步 雙方互相發送LSA,完成同步;同時同步速度更快,占用資源更少
可靠性 確保LSA同步程序的可靠性

在OSPF Packet部分,所有的OSPF報文均使用相同的OSPF報文頭部:
? Version :對于當前所使用的OSPFv2,該欄位的值為2,
? Type:OSPF報文型別,
Type=1為Hello報文
Type=2為資料庫描述報文(DD)
Type=3為鏈路狀態請求報文(LSR)
Type=4為鏈路狀態更新報文(LSU)
Type=5為鏈路狀態確認報文(LSAck)
? Packet length:表示整個OSPF報文的長度,單位是位元組,
? Router ID:表示生成此報文的路由器的Router ID,
? Area ID:表示此報文需要被通告到的區域,
? Checksum:校驗欄位,其校驗的范圍是整個OSPF報文,包括OSPF報文頭部,
? Auth Type:為0時表示不認證;為1時表示簡單的明文密碼認證;為2時表示加密(MD5)認證,
? Authentication:認證所需的資訊,該欄位的內容隨AuType的值不同而不同,
OSPFv1:實驗版本
OSPFv2:支持IPv4
OSPFv3:支持IPv6
OSPF認證:
認證型別:1.明文認證(簡單認證),2.密文認證(MD5認證),3.不認證
默認不認證
認證方式:
1.介面認證:
在介面上配置,與該介面相連的介面上也必須配置認證
2.區域認證:
在區域里進行配置,一個區域里有一臺配置了區域認證,該區域的所有路由器都得配置區域認證
注意:如果一臺路由器上既配置了介面認證又配置了區域認證,介面認證生效
只要兩端認證型別和認證資訊一樣,認證方式不一樣也能建立鄰居
OSPF的LSDB同步:


LSDB同步程序如下:
1. RTA和RTB的Router ID分別為1.1.1.1和2.2.2.2并且二者已建立了鄰居關系,當RTA的鄰居狀態變為ExStart后,RTA會發送第一個DD報文,此報文中,DD序列號被隨機設定為X
I(起始位)設定為1,表示這是第一個DD報文,0表示不是第一個DD報文;
M(后繼位)設定為1,表示后續還有DD報文要發送,為0表示后面沒有DD報文;
MS(主從位)設定為1,表示RTA宣告自己為Master,為0表示自己為從,
2.當RTB的鄰居狀態變為ExStart后,RTB會發送第一個DD報文,此報文中,DD序列號被隨機設定為Y(I=1,M=1,MS=1,含義同上),由于RTB的Router ID較大,所以RTB將成為真正的Master,收到此報文后,RTA會產生一個Negotiation-Done事件,并將鄰居狀態從ExStart變為Exchange
3. RTA開始向RTB發送LSR報文,請求那些在Exchange狀態下通過DD報文發現的、并且在本地LSDB中沒有的鏈路狀態資訊,
4.RTB向RTA發送LSU報文,LSU報文中包含了那些被請求的鏈路狀態的詳細資訊,RTA在完成LSU報文的接收之后,會將鄰居狀態從Loading變為Full,
5. RTA向RTB發送LSAck報文,作為對LSU報文的確認,RTB收到LSAck報文后,雙方便建立起了完全的鄰接關系,
為什么要選舉主從關系:為了雙方在描述LSDB的程序中可靠
為什么雙方在描述LSDB的程序中要保證可靠:是為了保障后期LSDB同步的可靠
LSA頭部:
LSA是OSPF鏈路狀態資訊的載體,LSA是LSDB的最小組成單位,也就是說LSDB由一條條LSA構成的

所有的LSA都擁有相同的頭部,關鍵欄位的含義如下:
LS age:此欄位表示LSA已經生存的時間,單位是秒, 可以標識LSA的新舊,越小越新,
LSA老化時間3600s
更新時間1800s;只有路由器自己才能更新自己的LSA
LS type:標識了LSA的型別,1類和2類域內,3類域間,4類和5類域外,7類特殊區域,
Link State ID:鏈路狀態標識id,該LSA所描述的那部分鏈路標識,例如Router ID等,用于區分同一路由器產生同一型別的不同LSA,唯一標識一條LSA
Advertising Router:是產生此LSA的路由器的Router ID,
LS sequence number:LSA序列號,數值越大越新,用于檢測舊的和重復的LSA,
LS checksum:校驗和,判斷LSA的新舊,
Length:整個LSA的長度,
LSA新舊程度:1.序列號,越大越新
2.校驗和時,越大越新
3.age,越小越小;相差900s內不更新(為了防止LSA重復)
周期更新:1800s 觸發更新:收到新的LSA泛洪給其他鄰居
LS type,Link State ID和Advertising Router的組合共同標識一條LSA,
LSDB中除了自己生成的LSA,另一部分是從鄰居路由器接收的,鄰居路由器之間相互更新LSA必然需要一個“通道”
MA網路中的問題:
1. n×(n?1)/2個鄰接關系,管理復雜
2. 重復的LSA泛洪,造成資源浪費,
解決:選舉DR/BDR
DR/BDR作用:DR負責在MA網路中建立和維護鄰接關系,并負責LSA的同步
1.減少鄰接關系建立數量
2.降低OSPF協議流量/報文數量
DR與BDR選舉:在收到對方的hello報文中沒有DR/BDR則會觸發選舉,40s(等待接收所有路由器的hello報文)
選舉規則:DR/BDR的選舉是基于介面的
1.介面的優先級越大越優先,取值范圍(0-255),優先級為0不參與選舉,默認介面優先級為1
2.介面的優先級相等時,Router ID越大越優先
在實際選舉中先選BDR,再選DR(保證網路的穩定性)
DR不被搶占:在鄰居建立后,后續有優先級更高的設備加入時原DR不會被搶占


轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/335492.html
標籤:其他
上一篇:使用在Powershell中帶有反斜杠的-replace替換Windows目錄路徑
下一篇:06顯示幕
