WANDSA
主页 > 上网设置 >

黑洞路由的详细解析

时间:2016-08-18阅读:

黑洞就是做路由汇总时候引入的一个概念
比如你有好多个c类地址:
192.168.1.0/24 - 192.168.200.0/24
那么对外公告路由的时候你可以选择进行路由汇总。
汇总为192.168.0.0/16的路由
但是路由汇总会产生“路由黑洞”问题
因为192.168.201.0/24 - 192.168.254.0/24这段路由存在但却没有对应的主机。
因此可能造成目的地址为192.168.201.0/24 - 192.168.254.0/24往你的路由器上转发但地址却不可达的情况(理论上要发送回icmp unreachable的)
一个可行的办法是在汇总路由时就写好一条黑洞路由丢弃这些垃圾流量
ip route 192.168.0.0 255.255.0.0 null 0

 

 


一般是在路由汇总的时候,有可能把一些本来没有的路由条目汇总了进来
路由器处理这些本来不存在的路由条目的数据包的时候会占用路由器本身的资源
这个时候如果大量的数据包涌向路由器,有可能变成DOS攻击
所以就自动写出一条通往NULL0接口的路由,然后把那些垃圾数据包直接丢往NULL0,不要进行其他处理。
黑洞路由与路由黑洞这两个概念容易混淆,为了方便区别,在此做了一下比较。
黑洞路由,便是将所有无关路由吸入其中,使它们有来无回的路由。黑洞路由最大的好处是充分利 用了路由器的包转发能力,对系统负载影响非常小。如果同样的功能用ACL(地址访问控制列表)实现,则流量增大时CPU利用率会明显增加。所以,一直是解 决固定DOS攻击的最好办法。相当于洪水来临时,在洪水途经的路上附近挖一个不见底的巨大深坑,然后将洪水引入其中。当然,这只是个比喻,真要是洪水来的 时候,正确的方法是―――跑!
在路由器中配置路由黑洞完全是出于安全因素,设有黑洞的路器会默默地抛弃掉数据包而不指明原因。
一个黑洞路由器是指一个不支持PMTU且被配置为不发送“Destination Unreachable--目的不可达”回应消息的路由器。
可以这样看:
如果一个路由器不支持PMTU并且配置为不发送ICMP Destination Unreachable消息数据包,那么源主机可能发送一个永远得不到路由的大数据包。因为路由器没有给源主机发回应消息,主机不能确定PMTU就是问题 的所在。但如果源主机端启用了PMTU,则源主机在重试几次大的MTU之后,如果还收不到路由器的应答,那源主机自动将PMTU设置为576bytes.
在Windows 2000下PMTU启用设置是---HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
EnablePMTUBHDetect REG_DWORD 0(默认禁用)或1(启用)
在Windows XP下也可以试一下。
(NOTE:PMTU--Path Maximum Transfer Unit是指当一个要发送的数据包的大小与当前路径中的最小的MTU值一样)
区别于黑洞路由的是,这是路由器自动总结生成总结路由后产生的副效果。
无类域间路由协议例如EIGRP,网络192.168.1.0/24 和192.168.2.0/24 被汇聚成192.168.0.0/16的了,但后来如果连接192.168.1.X的接口down掉后,192.168.1.0/24 路由就丢失了,但192.168.0.0/16的汇总路由还存在,那么去192.168.1.0/24的流量就会被丢到null0接口,相对于丢弃,就形 成路由黑洞.
所以一般汇总指向的下一跳为NULL 0
-------------------------------
附加内容:
在配置eigrp汇总时会产生一条指向null0的路由,
它是为了防止循环而出现的,那它是如何防止循环的呢?
详细举例说明,拓朴图如下:
10.1.1.0/24, 10.1.3.0 /24 A-----B the rest of network 10.0.0.0----->10.1.0.0/16
10.0.0.0/8<-----------
A:router eigrp 1
Network 10.0.0.0
Interface s0
Ip summary eigrp 1 10.1.0.0 255.255.0.0
B:router eigrp 1
Network 10.0.0.0
Interface s0
Ip summary eigrp 1 10.0.0.0 255.0.0.0
可以想像:如果B上有个到目标10.1.2.0/24 的包,它会被发到A上,但是A上没有匹配的路由,只能匹配10.0.0.0/8,这时候包又发到B,包就是这样LOOP的。
如果在A上有指向null0的汇总10.1.3.0/24 ,A就会把上面的那个包放到软件意义上的垃圾垌里了。。
所以,目的地址不在A中也不在B中,但属于较长掩码汇总路由的子网的地址,就会被EIGRP路由协议产生的路由黑洞处理掉。
在eigrp 中在作汇总时会产生这样一条指向null0的接口,但在其它路由协议中没有,所以为了防止循环,在配置is-is,ospf这样的协议的时候也应该配置一条静态的指向NULL0的路由,注意0.0.0.0/0也是一条最不具体的汇总路由

 


路由黑洞
  黑洞路由,便是将所有无关路由吸入其中,使它们有来无回的路由,一般是admin主动建立的路由条目。
  提到黑洞路由就要提一下null0接口。
  null0口是个永不down的口,一般用于管理,详见null0的词条
  admin建立一个路由条目,将接到的某个源地址转向null0接口,这样对系统负载影响非常小。
  如果同样的功能用ACL(地址访问控制列表)实现,则流量增大时CPU利用率会明显增加。
  所以,设置黑洞路由一直是解决固定DOS攻击的最好办法。
  相当于洪水来临时,在洪水途经的路上附近挖一个不见底的巨大深坑,然后将洪水引入其中。
  黑洞路由最大的好处是充分利用了路由器的包转发能力,对系统负载影响非常小。
  在路由器中配置路由黑洞完全是出于安全因素,设有黑洞的路由会默默地抛弃掉数据包而不指明原因。
  一个黑洞路由器是指一个不支持PMTU且被配置为不发送“Destination Unreachable--目的不可达”回应消息的路由器。
  可以这样看:
  如果一个路由器不支持PMTU并且配置为不发送ICMP Destination Unreachable消息数据包,那么源主机可能发送一个永远得不到路由的大数据包。因为路由器没有给源主机发回应消息,主机不能确定PMTU就是问题 的所在。但如果源主机端启用了PMTU,则源主机在重试几次大的MTU之后,如果还收不到路由器的应答,那源主机自动将PMTU设置为576bytes.
  在Windows 2000下PMTU启用设置是---HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
  EnablePMTUBHDetect REG_DWORD 0(默认禁用)或1(启用)
  在Windows XP下也可以试一下。
  (NOTE:PMTU--Path Maximum Transfer Unit是指当一个要发送的数据包的大小与当前路径中的最小的MTU值一样) 

本文由wandsa.com出品;作品转载请附版权链接http://www.wandsa.com/internet/280.html

欢迎您搜索

对你有帮助的内容