黑洞路由:



无法被配置ip地址,转发到该接口上的数据包都会被丢掉,所以对于所有可能因为中断故障产生路由回路的路由都加上一条黑洞路由。例如在配置有默认路由的环境中如果该路由器中的某一个路由项因为故障中断,那么很可能在两个路由器中造成路由环路。



 



路由黑洞:



  路由黑洞一般是在网络边界做汇总回程路由的时候产生的一种不太愿意出现的现象,就是汇总的时候有时会有一些网段并不在内网中存在,但是又包含在汇总后的网段中,如果在这个汇总的边界设备上同时还配置了缺省路由,就可能出现一些问题。这时,如果有数据包发向那些不在内网出现的网段(但是又包含在汇总网段)所在的路由器,根据最长匹配原则,并没有找到对应的路由,只能根据默认路由又回到原来的路由器,这就形成了环路,直到TTL值超时,丢弃。



 



一、实验目的:

1.通过制造断路来实现路由传输中的环路现象

2.通过正确应用黑洞路由可以消除环路

二、拓扑结构:

BGP宣告后黑洞路由null0 ibgp路由黑洞_R3

三、实验步骤:

①配置R1,R2,R3,R4及loopback口

R1:
interface Ethernet0/0/0
 ip address 13.1.1.1 255.255.255.0
#
interface LoopBack0
 ip address 10.1.1.1 255.255.255.0
#
ip route-static 10.1.0.0 255.255.0.0 13.1.1.3
ip route-static 34.1.1.0 255.255.255.0 13.1.1.3 
R2:
interface Ethernet0/0/0
 ip address 23.1.1.2 255.255.255.0
#
interface LoopBack0
 ip address 10.1.2.1 255.255.255.0
#
ip route-static 10.1.0.0 255.255.0.0 23.1.1.1
ip route-static 34.1.1.0 255.255.255.0 23.1.1.1R3:
interface Ethernet0/0/1
 ip address 34.1.1.3 255.255.255.0
#
interface GigabitEthernet0/0/0
 ip address 23.1.1.3 255.255.255.0
#
ip route-static 0.0.0.0 0.0.0.0 34.1.1.4
ip route-static 10.1.0.0 255.255.255.0 34.1.1.4
ip route-static 10.1.1.0 255.255.255.0 13.1.1.1
ip route-static 10.1.2.0 255.255.255.0 23.1.1.2R4:
interface Ethernet0/0/0
 ip address 34.1.1.4 255.255.255.0
#
interface LoopBack0
 ip address 10.1.0.1 255.255.0.0
#
ip route-static 10.1.1.0 255.255.255.0 34.1.1.3
ip route-static 10.1.2.0 255.255.255.0 34.1.1.3
ip route-static 13.1.1.0 255.255.255.0 34.1.1.3
ip route-static 23.1.1.0 255.255.255.0 34.1.1.3②断开R2和R3之间的连接线,用R4 路由跟踪R2
[r3-GigabitEthernet0/0/0]shutdown 
<r4>tracert -a 10.1.0.1 10.1.2.1
 traceroute to 10.1.2.1(10.1.2.1), max hops: 30 ,packet length: 40,press CTRL_C
 to break  1 34.1.1.3 30 ms 30 ms 50 ms 
 2 34.1.1.4 30 ms 20 ms 40 ms 
 3 34.1.1.3 50 ms 60 ms 80 ms 
 4 34.1.1.4 80 ms 60 ms 60 ms 
 5 34.1.1.3 100 ms 80 ms 90 ms

R3断之前的路由表:

BGP宣告后黑洞路由null0 ibgp路由黑洞_路由表_02

 

R3断之后的路由器表:

BGP宣告后黑洞路由null0 ibgp路由黑洞_BGP宣告后黑洞路由null0_03

R4路由表:

BGP宣告后黑洞路由null0 ibgp路由黑洞_路由表_04

在R3的接口断开之后,当R4上ping  10.1.2.1,R4上会根据第四条路由去R3,到R3后查询第二条路由表之后是到R4的,如此循环往复就出现了环路

wireshark抓包结果:

tracert结果

 

BGP宣告后黑洞路由null0 ibgp路由黑洞_BGP宣告后黑洞路由null0_05

ping的结果:

BGP宣告后黑洞路由null0 ibgp路由黑洞_BGP宣告后黑洞路由null0_06

ping 5个包,但是wireshark抓包抓取了1280个包。

 

③构建静态黑洞路由后结果:

[r3]ip route-static 10.1.0.0 16 NULL 0
<r4>tracert -a 10.1.0.1 10.1.2.1
 traceroute to 10.1.2.1(10.1.2.1), max hops: 30 ,packet length: 40,press CTRL_C
 to break  1 * * * 
 2 * * *

添加路由黑洞后wireshark抓包:

ping 5个包,抓包也只能抓5个包

BGP宣告后黑洞路由null0 ibgp路由黑洞_BGP宣告后黑洞路由null0_07

但是要注意:黑洞路由相当于是出现故障情况下的备用路由,所以可以把该条静态黑洞路由的优先级设置低一点(值大一点)

但是黑洞路由在配置时要注意,正常黑洞路由的掩码要比R3上的这条[R3]ip route-static 10.1.2.0 255.255.255.0 23.1.1.2的路由的掩码要长,因为根据路由器查看路由表的最长匹配原则,掩码越长越优先匹配。但是有同学担心一旦R2和R3的断了的接口恢复了,发往10.1.0.0/16的报文再匹配黑洞路由,那么报文会被丢弃,其实不用担心,因为黑洞路由的掩码比R2上的网段的路由掩码要短(直连路由,更优)。