特點
OSPF route-id 可以手工指定只要保證區域內只有一個就行,可以是設備上不存在的地址。環回口使用可以模擬網段,或者主機地址。環回口還可以用來建立鄰居,比如BGP,使鄰居更穩定,即使路由器其中一個物理口down了,還可以從其他途徑訪問到環回口,保證鄰居的穩定。以節省資源。
loopback
loopback接口,在網路設備(一般是路由器)上是一種特殊的接口,它不是物理接口,而是一種看不見摸不著的邏輯接口(也稱虛擬接口),但是對於網路設備來說卻是至關重要的。
在網路設備上可以通過配置命令來創建一個或多個環回接口,並且可以和配置物理接口一樣,配置環回接口的IP位址和掩碼,環回接口的掩碼一般為全1,即255.255.255.255。環回接口有一個特性,除非設備癱瘓,否則其狀態一直是up。這個特性對於路由協定來說非常重要。環回接口是使用廣泛的一種邏輯接口。在一個網路中,不同設備的環回接口地址以及同一設備上的不同環回接口地址應該統一規劃,避免重複。
創建環回接口的原因
用來建立路由鄰居
我們知道路由協定要想正常運行,大多需要先建立鄰居關係,鄰居關係的穩定是路由計算正確的基石。實際運用中,常常使用環回接口來建立兩個路由器之間的鄰居關係,例如BGP協定。比起使用物理接口建立連線,使用環回接口可以使鄰居關係更加牢固,因為就算某個物理鏈路和接口發生了故障,只要能從其他途徑訪問到該設備,那么鄰居關係就不會中斷。
用來作為Router-ID
在常用的OSPF、BGP等路由協定中,都有Router-ID的概念,這相當於一台路由器的身份證號,在一個指定的範圍(如一個自治系統)內只能標識一台設備,不能有重複。因為環回接口的穩定性,我們常使用一個環回接口地址來作為Router-ID,使整個設備的標識穩定可靠。
使用環回接口作為Router-ID還有一個好處就是可以節省地址,因為環回接口的地址一般和業務地址沒有關係,是獨立規劃的。
用於虛擬隧道連線
在建立IPSec或GRE之類的虛擬隧道時,使用loopback接口可以保證整個隧道的穩定性。
用於網路連通性測試
創建並配置好環回接口之後,它的地址是能被ping或telnet的,這就可以被用來測試網路的連通性。
在Cisco
路由器中可以使用interface loopback命令來創建它。
注意:啟動OSPF
路由選擇進程時會選擇OSPF的
路由器ID。這發生在手動執行了router ospf命令或者在啟動過程中載入路由器配置時。因此,如果在啟用了OSPF之後再創建環回接口,那么該環回接口將不會被用作
路由器ID;然而,如果重新啟動路由器,默認將使用環回接口。因此,建議優先創建環回接口並先給它分配IP位址,然後再啟用OSPF,這樣可以消除關於
路由器ID的困惑。
以下為配置環回接口的指令:
Router(config)#interface loopbacknumber
套用舉例
就拿pc來說,pc的網卡就相當於路由器的一個接口。如一台pc網卡上設定的地址為220.172.115.50,網卡連線正常時,協定狀態up,在dos命令行狀態下輸入ipconfig
便可看到該網卡上的IP位址。此時在主機上ping其網卡地址的過程如下:主機傳送一個icmp包,目的地址為220.172.115.50,請求對方回答;主機根據默認環回主機路由發現數據包目的地址的下一跳指向其loopback接口(主機事先並不知道該地址就在其網卡上),於是將數據包發往其loopback接口(即直接發往cpu);之後主機收到源IP為220.172.114.50的ping包,於是對該數據包進行回答,回應包亦根據環迴路由原路返回。從該過程可看出,該數據包的始發點和被接收點都在同一個接口(即主機本身的loopback接口),定址過程為一個環回過程,因此該接口稱之為“環回接口”。當網卡連線斷開時,協定down下,用ipconfig便發現“media disconnected”等提示,無IP位址顯示。ping 220.172.115.50便出現“destination unreachable”等提示(由於網卡協定沒起來,主機沒能發現相應路由,無法做出轉發決定,從而提示路由不可達)。但此時ping 127.0.0.0/8網段的IP均能ping通,因為一般pc默認把127.0.0.0/8網段IP作為loopback地址,當主機發現該數據包的目的地址為其自身的環回地址時,便將該數據包直接送往其cpu。由此可看出ping通環回地址並不表示就能ping通網卡地址,因此不要拿ping 127.0.0.1來檢測網卡的好壞,這樣做是行不通的。
下面我們來看看關於路由器的例子。如routerA的接口s0/1與routerB的接口s0/2直接相連,routerA s0/1的地址為202.56.112.11而routerB s0/2的地址為202.56.112.12,兩台路由器都沒有做接口環迴路由。此時在routerA上ping其接口s0/1的IP位址能ping通,但tracert 202.56.112.11便發現該數據包並未直接送給routerA本身,而是通過routerB後再回到routerA的。第一次遇到這種情況時我也很詫異,但理解環回的概念以後,這個疑惑也就自然解開。下面我們也來看看該數據包的定址過程:首先路由器(cisco2600以上)沒有默認接口地址的loopback路由,並且這兩台router也沒有做相關手工設定。因此當routerA傳送目的地址為其s0/1的icmp ping包時,routerA查找路由表沒發現指向環回接口的主機路由(主機路由優先權高於網路路由),於是根據直連路由將該數據包轉發到routerB;routerB接收到該數據包後也根據直連路由將其轉發給routerA;routerA收到該ping包後,作出回應,回應包原路返回。因而便出現一個有趣的現象,routerA ping自己的延遲比其ping routerB的延遲還要大。為此很多設備都手工設定了本地環迴路由,從而減少不必要的麻煩。