众元教育H3CSE20200603班-黑洞路由和路由黑洞的区别

标题 众元教育H3CSE20200603班-黑洞路由和路由黑洞

引言:大家在学习路由交换的时候经常会听到黑洞路由和路由黑洞两个词,有点像听到了策略路由和路由策略的感觉傻傻分不清,哈哈。那黑洞路由和路由黑洞到底是什么,又有什么区别呢?这也是在面试时,面试官经常问的一个问题。今天,我带大家梳理梳理。
一、黑洞路由
黑洞路由的应用场景:在某些网络里,在边界设备上做了路由汇总,汇总的路由包含了一些本网络内不存在的网段,就可能会出现环路现象。那为什么会成环呢?我们结合例子进行分析。
众元教育H3CSE20200603班-黑洞路由和路由黑洞的区别_第1张图片
如上图所示,我们拉了两台PC模拟内网主机,用一台三层交换机做各个网段的网关所在,然后用一台路由器做内网出口,用一朵云模拟外网环境。这么一个部署场景想必大家并不陌生,因为考虑到内网用户访问外网的目标地址不确定,所以我们会在HX-SW1上写一条缺省路由用来匹配所有去往Internet的流量,并为其指定下一跳地址为172.16.30.10,即RT1的f0/1,如图中路由1所示。那么在RT1上呢,我们得考虑到出去和回来的流量,也是一样,我们写了一条缺省路由匹配去往Internet的流量,为其指定下一跳,如图中路由2所示。最后再写一条汇总路由,用来匹配从Internet返回的流量,为其指定下一跳为172.16.30.1,即HX-SW1的f0/0,如图中路由3所示。到此,整个网络的路由已经全部完成,出去的流量到HX-SW1匹配默认路由到RT1,RT1匹配默认路由去往Internet,而Internet返回的流量,匹配路由3给HX–SW1,然后HX-SW1根据直连路由交给相应的主机,看似好像很合理。
但是如果出现这么一种情况呢?PC1现在要ping 172.16.40.1,流量该怎么走?大家可以试着做一下数据流分析。
首先PC1用自己的子网掩码与172.16.40.1相与发先不是一个网段,那么它会把数据包交给自己的网关HX-SW1,当HX-SW1收到个数据包时,查找路由表,貌似只能匹配到缺省路由1,然后交给RT1,那么等RT1收到这个数据包时,会不会匹配缺省路由2而将数据包发到外网呢?答案是不会,因为根据最长掩码匹配原则,该数据包会优先匹配掩码更长的路由3,将数据包发还给HX-SW1,然后HX–SW1继续匹配缺省路由再给RT1。因此这里就会形成环路,该数据包就会像踢球似的在HX-SW1和RT1直接发来发去直到TTL值减为0。
那么有没有什么方法可以有效的防止这类环路呢?这里就要用到我们今天讲的黑洞路由。我们可以在HX-SW1上再加上一条路由ip route 172.16.0.0 255.255.0.0 null 0。这里的null 0是一个永不dawn的虚拟接口,意思就是匹配到这条路由的数据就会被送到null 0,这个null 0就像一个黑洞,可以吞掉那些匹配进来的数据。那么写了这条路由之后,环路还存不存在呢?我们再来看看,还是之前那个例子,PC1 ping 172.16.40.1,数据包到了HX-SW1,还会不会匹配缺省路由1而转发给RT1呢?答案是不会,原因还是根据最长掩码匹配原则,该数据包会优选匹配子网掩码更高的黑洞路由。这样就解决了上诉的环路问题。
二、路由黑洞
路由黑洞不同于黑洞路由,从上面介绍的黑洞路由大家不难看出,黑洞路由其实是一种手段,用于解决路由环路问题的手段。而我们现在要讲的路由黑洞,它是一种现象,接下来我再结合例子带大家看看,路由黑洞现象出现的原因。
众元教育H3CSE20200603班-黑洞路由和路由黑洞的区别_第2张图片

如图所示,我们在这里划分了三个自治系统分别是AS10、AS20、AS30。图中的六台路由器,只有R1、R2、R3、R4运行了BGP协议,AS30内部运行的IGP是OSPF。因为BGP可以跨网段、跨设备建立邻居关系,所以图中R2和R3可以顺利的建立IBPG邻居。如果在R1上有一个网段172.16.1.0/24,在R4上有一个网段172.16.3.0/24。按照BGP路由传递原则,因为R1和R2是EBGP邻居,R1可以将该172.16.1.0/24这条路由传给R2,而R2和R3是IBPG邻居,当R2收到一条来自EBGP邻居的路由是可以发给IBGP邻居的,所以R3也可以学到这条路由。当R3收到该路由时,因为R3和R4是EBGP邻居,所以R3又可以将该路由传递给R4。至此,R4学习到了去往172.16.1.0/24这条路由。如果在BGP上开启了NEXT_HOP这条属性的话,那么R4学习到的去往172.16.1.0/24的这条路由将指向R3。当R4要访问172.16.1.0/24时,数据包根据BGP路由表将转发给R3。数据包到达R3时,R3查找BGP路由表发现下一跳为R2,但是R2并非R3直连,所以R3会以R2为目的网段,进行递归查找,查到OSPF路由表中有去往R2的路由下一跳为R6,遂转发给R6。当R6收到该数据包后,找不到去往172.16.1.0/24的路由,因为R6没有运行BGP,所以R6学不到去往172.16.1.0/24这条BGP路由,这样就会形成一个路由黑洞,R6就像一个黑洞似的,所有从R4去往172.16.1.0/24的数据到达R6都会被丢包。
三、总结
黑洞路由是一种手段,用来解决环路问题。而路由黑洞是一种现象,当数据被转发到一个没有去往该目标网段的路由的设备上,就会像掉进黑洞一样有去无回。

结合上述路由黑洞的例子,请大家思考:有什么办法可以解决路由黑洞吗?
今天的分享到此结束,欢迎大家评论区留言。

你可能感兴趣的:(网络,数通,网络,路由器,交换机,面试)