配置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語句也都有類似的兩個功能。