OSPF路由協議是一種典型的鏈路狀態的路由協議,一般用於同一個路由域內,在這裡,路由域是指一個自治系統,即AS,它是指一組通過統一的路由政策或路由協議互相交換路由信息的網絡。
在這個AS中,所有的OSPF路由器都維護一個相同的描述這個AS結構的數據庫,該數據庫中存放的是路由域中相應鏈路的狀態信息,OSPF路由器正是通過這個數據庫計算出其OSPF路由表的。
一、我們在配置完各接口的IP和OSPF 協議,路由器配置成幀中繼交換機的,這樣更有利於我們更好地理解幀中繼,注意:在路由器的接口中,可以定義接口類型ip OSPF network broadcast 或者可以手動指定兩個接口的鄰居,不然的話會起不了鄰居。
二、然後我們可以進各路由的接口下去手動指定cost 值,命令是進接口下:ip OSPF cost 注意:以太網口的默認COST值為1。廣域網口默認為64,OSPF 的默認值100除以接口帶寬1.544=64可以去show 接口查詢,路由器源接口到別的網絡時,是要取該接口的COST值大小做為路徑取向。比如說:R3中S1/0 和S1/1如果S1/0不手動指定COST值。默認為64。那麼R3到別的路由不會取S1/0這個接口。
三、通過常理分析路由器的cost最小,應該會取2這條路走,但事實卻不是,發現走R2之後就直接丟給R1,而不去按照172.16.255.0網段這邊的COST值為10。而去走R4,此路徑也是SPF算出來的。
四、當R3把數據包轉發給R2的時候,R2發現此數據包是要到達其它網絡。
因此R2不會將數據包再轉發給其相同區域的其它路由器。因為R2自己是ABR,他認為到達其它區域的數據包,需要直接轉發給骨干區域。而自己也恰巧與骨干區域相連。因此R2直接將數據包轉發給骨干區域的R1路由器。
正是因為這個原因,所以我們查看的路由跟實際轉發數據包的路徑不一致。
五、下面我們再來看一下R3-R2-R4,原本COST為:4,因為我定義了R2的F0/0 COST為2,注意:這段的COST不是1,因為以太網它會按出局接口來算,不是選這個網段的最小的COST值來進行路徑的疊加,R3-R4,我們把R2 的f0/0 cost值再改為3。這樣就是兩條都是5,改完之後。
我們show ip route 看一下,發現到192.168.1.0這段段分別出現了兩條路徑的負載均衡。
作為一種鏈路狀態的路由協議,OSPF將鏈路狀態廣播數據LSA傳送給在某一區域內的所有路由器,這一點與距離矢量路由協議不同,運行距離矢量路由協議的路由器是將部分或全部的路由表傳遞給與其相鄰的路由器。