路由黑洞:
路由黑洞是一种现象,一般是在网络边界做汇总回程路由的时候产生的一种不太愿意出现的现象,就是汇总的时候有时会有一些不在内网中存在的网段,但是又包含在汇总后的网段中,如果在这个汇总的边界设备上同时还配置了缺省路由,就可能出现一些问题。
比如说默认路由出口汇总了 10.1.0.0/23,计算起来是包括了10.1.0.0、1.0、2.0、3.0 共四个网段的,但实际上内网只有10.1.0.0和 1.0网段这两段,那么这时如果有数据包发向 2.0 和3.0 网段,则会产生路由黑洞,根据最长匹配原则,找不到对应的路由,只能根据默认路由又回到原来的路由器,这就形成了环路,造成网络堵塞,带宽占用,直到TTL值超时才被丢弃。
解决的办法是在出口路由器上配置来自相应网段的黑洞路由:
ip route-static 10.1.0.0 22 null 0
这样,里面的存在的直连路由则会直接转发,不存在的网段则会被这条黑洞路由直接drop
还有一种情况:从EBGP学到的路由,在IBGP内部,如果中间跨越了R3路由器,而R3未在IBGP AS内,那么就会产生两端EBGP在路由层面能相互学习到对端路由,但在数据层面,R3和R4却没有两端EBGP的路由,导致两端无法 ping 通的情况,这样也会产生路由黑洞,如下图:
黑洞路由:
黑洞路由是一个路由目的地址|下一跳地址,名字为 NULL 0,和 Loopback 地址一样,存在于每个网络设备中,只要机器开机,接口就不会Down掉。我们可以用它做为防御放大攻击的手段,也可以用它来配置到一些不希望被访问的目的地址上,类似ACL的deny的作用。
如下图,我们不希望PC1访问到AR8路由器上的某些地址,就在AR7上配置黑洞路由,这样从R7过去的地址,就被R7扔给了黑洞路由直接丢弃,无法访问不了AR8上的这个地址了。
ip route-static 10.8.8.8 255.255.255.255 NULL0