Null介面

Null介面

null介面是一種純軟體性質的邏輯介面。它永遠處於up狀態,但不能轉發數據包,也不能配置ip地址和鏈路層協議。如果在靜態路由中指定到達某一網段的下一條為null介面時,則任何送到該網段的網路數據報文都會被丟棄,因此設備通過null介面提供了一種過濾報文的簡單方法--將不需要的網路流量發送到null介面,從而免去配置acl(訪問控制列表)的複雜工作。

配置null介面


null 介面類似於一些操作系統中支持的空設備(null devices),任何送到該介面的網路數據報文都會被丟棄。系統自動創建一個null0 介面。由於任何到達 null 介面的報文都會被丟棄,可以將需要過濾掉的報文直接發送到null0 介面,而不必配置訪問控制列表。例如:使用如下的靜態路由配置命令: uidway] ip route-static 192.101.0.0 255.255.0.0 null 0 將丟棄所有去往網段192.101.0.0 的報文。在配置null 介面之前,需使路由器安裝完畢並加電啟動正常。配置過程:要完成配置null 介面的任務,需要執行如下的配置過程。

進入null介面視圖


在路由器上進行以下配置。步驟 1 執行命令system-view,進入系統視圖。步驟 2 執行命令interface null 0,進入null 介面視圖。 null 介面永遠處於up 狀態,但不能轉發數據包,也不能配置ip 地址或封裝其他協議。

路由配置中null介面的使用


null介面是一種虛擬介面, 不能配地址,也不能被封裝,它總是up的,但是從來不轉發或者接受任何通信量,對於所有發到該介面的通信量都直接丟棄。但它與lookback、tunnel、virtual-template等虛擬介面有所不同, null介面無需配置ip地址,以下是null介面最常用的兩種情況。 1、結合bgp一起使用:bgp路由協議向外發布路由時使用network ip-address ask mask]命令,但是該命令正確生效有一個前提,即在路由表中必須存在一條與ip-address mask 完全相同的路由。由於bgp都是經過聚合之後發布路由,因此在路由表中並沒有與之對應的路由,所以需要使用ip route ip-address mask null0這樣一條假靜態路由來配合bgp。這樣的路由只是配合bgp,不是真正的報文發送,也無需下一跳地址。 2、配置黑洞路由避免環路產生:如圖。假設rtd下連3台路由器,這些下連路由器的地址規劃很有規律, rtd將此聚合成一條10.1.0.0/16的路由發送到上一級路由器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, (目的地址為10.1.0.0/16的數據報文將被丟棄)這樣,如果再發生上述情況時,rtd就會查找路由表,並將報文發送到null0介面(實際上就是丟棄此報文),從而避免環路的產生。 ================================ null 0介面 null 0是路由器上的一個虛擬介面,也被稱為丟棄埠,所有到達該埠的數據被直接丟棄。如:ip route 200.200.194.0 255.255.255.0 null 0 ip route 200.200.195.0 255.255.255.0 null 0 ip route 200.200.192.0 255.255.240.0 null 0 假設:某公司新申請了16個c類地址,設為200.200.192.0/24-200.200.207.0/24;而現在初期建設階段只用了其中3個:200.200.192.0、200.200.193.0、200.200.207.0,並有一台路由器通過點對點連接到internet。那麼在該路由器上就會有類似下面的路由表: 200.200.192.0/24 :e0 200.200.193.0/24 : e0 200.200.207.0/24 : e1 0.0.0.0/0 : s0 最後一條為默認路徑,指向internet。現在的問題是:路由器接受到一個包,其目的地址為200.200.194.1。應該怎樣處理?根據上面的路由表,唯一能匹配該地址的就是默認路由,如果沒有其他的配置,路由器會將其發送到internet上。但這樣對么?200.200.194.1是在本公司所申請地址範圍內的,只所以不存在是因為本公司還沒有使用。可以肯定的是,在internet上的其他地方也不會有這個地址。本路由器就應該將其丟棄。至少應當在路由器上寫 ip route 200.200.194.0 255.255.255.0 null0 ip route 200.200.195.0 255.255.255.0 null0 ... ip route 200.200.206.0 255.255.255.0 null0 但是這樣類似的十多條語句,豈不麻煩。用一句 ip route 200.200.192.0 255.255.240.0 null0 就可以了。 200.200.192.0 255.255.240.0也就是200.200.192.0/20,是整個公司所有網段的匯總。當有200.200.193.0/24網段上的數據來時,因為使用最長匹配原則,會將數據轉發到正確的網段(根據上面的例子是e0);而當地址為不存在,但在公司地址範圍內的話,就會匹配這條丟棄語句,而不會匹配默認路由了。上面是使用靜態路由時的例子,當使用路由協議時也有類似的情況。如ospf中的area range命令,例如區域51使用192.168.168.0/24網段,該網路被劃分了多個子網,但並非使用了所有的子網。那麼 area 51 range 192.168.168.0 255.255.255.0 實際起了兩個作用。1:向骨幹區域宣告匯總的區域路由;2:沒有使用的子網地址,不會傳播到骨幹區域(相當於一條null0語句)還例如,在允許自動邊界匯總的eigrp中,會在每個類地址邊界上生成null0語句。ospf的summary-address、eigrp的summary-address語句也都有類似的兩個功能。