1. 虛接口概述
通常,在路由器中執行show running命令查看配置時,會發現配置中存在各種類型的接口,例如ethernet、ATM、Serial、POS等等,這些接口都是與實際的物理接 口是一一對應的(如果存在子接口,則可能會使多個接口名稱對應同一個物理接口)。但在路由器中還存在著另外一類完全不同的接口類型,例如: loopback、null、tunnel、virtual-template 等等,這 <script src="http://www.net130.com/CMS/JS/newsad.js" language="javascript" type="text/javascript"></script> 一類接口有如下幾個共同點:
1.不存在與該接口對應的真實物理接口;雖然有時會存在一定的“映射”關系;
2.由于第一條的原因,此類接口不會依據物理接口自動生成,必須根據實際需要手工創建。
3.接口的狀態永遠是UP的(包括物理狀態UP和協議狀態UP),不會DOWN掉,其中Tunnel 接口除外,該接口的物理狀態永遠UP,但協議狀態視實際運行狀況而定。
由于具有以上幾點共性,此類接口被統稱為“虛接口”,不同的虛接口各自有不同的用法,下文將分別介紹。
2. loopback接口的用法
此類接口是應用最為廣泛的一種虛接口,幾乎在每臺路由器上都會使用。常見于如下用途。
作為一臺路由器的管理地址
系統管理員完成網絡規劃之后,為了方便管理,會為每一臺路由器創建一個loopback 接口,并在該接口上單獨指定一個IP 地址作為管理地址,管理員會使用該地址對路由器遠程登錄(telnet),該地址實際上起到了類似設備名稱一類的功能。
但是通常每臺路由器上存在眾多接口和地址,為何不從當中隨便挑選一個呢?原因如下:由于telnet命令使用TCP報文,會存在如下情況:路由器的 某一個接口由于故障down 掉了,但是其他的接口卻仍舊可以telnet,也就是說,到達這臺路由器的TCP連接依舊存在。所以選擇的telnet地址必須是永遠也不會down掉 的,而虛接口恰好滿足此類要求。由于此類接口沒有與對端互聯互通的需求,所以為了節約地址資源,loopback 接口的地址通常指定為32 位掩碼。
使用該接口地址作為動態路由協議OSPF、BGP的router id。
動態路由協議OSPF、BGP在運行過程中需要為該協議指定一個Router id,作為此路由器的唯一標識,并要求在整個自治系統內唯一。由于router id是一個32位的無符號整數,這一點與IP地址十分相像。而且IP地址是不會出現重復現象的,所以通常將路由器的router id指定為與該設備上的某個接口的地址相同。由于loopback接口的IP地址通常被視為路由器的標識,所以也就成了router id的最佳選擇。
3. NULL接口的用法
通常任何接口都會分配一個IP地址,但是NULL接口卻是一個例外,你無法在NULL接口上配置IP地址,路由器會提示配置非法。一個沒有IP地址的接口能夠做什么用呢?此類接口單獨使用沒有意義,但是如果將配置的靜態路由下一跳指向NULL接口,則會有很大的用處。
用來取悅BGP
BGP路由協議向外發布路由的一種方法是使用命令:
network ip-address [mask mask]
但是此命令正確生效有一個前提:在路由表中必須存在一條與ip-address mask 完全相同的路由。由于BGP發布路由時都是經過聚合之后的,這樣的路由路由表中并沒有,所以要使用命令:
ip route ip-address mask null0
配置這樣一條假靜態路由來“取悅”BGP。
相關配置命令:
interface NULL0 /*創建null0接口*/ |
執行命令show ip route查看路由表信息,
Quidway(config)#show ip route |
由于這樣的路由只用來取悅BGP,而不會指導真正的報文發送,也就不需要一個IP地址作為路由的下一跳(這樣可以節省一個IP地址),所以此處使用NULL0接口。
上圖是一種常見組網,RTD下面連接了很多臺小路由器,由于這些小路由器的路由很有規律,恰好可以聚合成一條10.1.0.0/16的路由,于是 RTD將此聚合后的路由發送到上一級路由器RTE,同理,RTE上必定存在一條相同的路由10.1.0.0/16指回到路由器RTD。由于RTD的路由表 有限,且網絡出口唯一,所以RTD上同時還存在一條缺省路由指向RTE。
上述組網在正常情況下可以很好的運行,但如果出現如下情況時:
RTC到RTD之間的鏈路由于故障中斷了,所以在RTD上將不存在去10.1.3.0/24的指向RTC的路由。此時,如果RTA下的一個用戶發送 報文,目的地址為10.1.3.1,則,RTA將此報文發送到RTD,由于RTD上已不存在去10.1.3.0/24的路由,所以選擇缺省路由,將報文發 送給RTE,RTE查詢路由表后發現該條路由匹配10.1.0.0/16,于是又將該報文發送給RTD。同理,RTD會再次將報文發給RTE,此時,在 RTD和RTE上就會產生路由自環。
解決上述問題的最佳方案就是,在RTD上配置一條黑洞路由:
ip route 10.1.0.0 255.255.0.0 NULL 0,
這樣,如果再發生上述情況時,RTD就會查找路由表,并將報文發送到NULL0接口(實際上就是丟棄此報文),從而避免環路的產生。
4. tunnel接口的用法
tunnel接口的用法比較單一,此類型的接口實際上是GRE協議專用的接口。GRE (Generic Routing Encapsulation)是一種三層隧道協議,最常用的方式為使用IP報文承載GRE報文,而GRE報文的載荷仍舊是IP報文。
interface Tunnel0 /*創建tunnel接口*/
ip address 10.33.255.2 255.255.255.252 /* 自己tunnel口的地址 */
tunnel source 211.138.94.199 /*建立隧道后,發送報文實際使用的源地址*/
tunnel destination 211.138.94.197 /*建立隧道后,發送報文實際使用的目的地址*/
對于tunnel source、tunnel destination 兩個地址,通常仍舊選用本端loopback接口和對端的loopback接口的地址(原因見2.1)。
5. virtual-template接口的用法
同tunnel 接口很類似,virtual-template接口專用于MP協議,MP協議是將多個使用PPP協議的物理接口捆綁在一起,對外以一個接口的面目出現,以達到增加帶寬和節省IP地址的目的。
user hh service-type ppp password 0 hh /*配置PAP驗證的用戶名和密碼*/
multilink-user hh bind Virtual-Template3 /*指定綁定的Virtual-Template接口名*/
/*下面的兩個接口捆綁到一起*/
interface Serial5/1/4:0
encapsulation ppp
ppp authentication pap
ppp multilink
ppp pap sent-username hh password 0 hh /*使用MP,用戶名是hh*/
!
interface Serial5/1/5:0
encapsulation ppp
ppp authentication pap
ppp multilink
ppp pap sent-username hh password 0 hh /*使用MP,用戶名是hh*/
interface Virtual-Template3 /*創建 Virtual-Template接口*/
ip address 61.236.88.134 255.255.255.252 /*IP 地址統一在Virtual-Template接口上配*/
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
