提到Null0接口,就顺便提一下路由黑洞。所谓黑洞路由,顾名思义他就是将所有无关路由吸入其中,使它们有来无回的路由 - 相当于洪水来临时,在洪水途经的路上附近挖一个不见底的巨大深坑,然后将洪水引入其中.
黑 洞路由实际是一种特殊的静态路由,就是目的地址为该网段的数据报文到达设备之后,报文将被丢弃。路由黑洞最大的好处是充分利用了路由器的3层数据包转发能 力,对系统负载影响非常小,将报文丢弃的操作不需要CPU进行什么专门的处理,所以处理大量的报文也不会消耗设备的CPU资源!
例如,admin建立一个路由条目,将接到的某个目的地址转向Null0接口,这样对系统负载影响非常小,如果同样的功能用ACL(地址访问控制列表)来实现,则流量增大时CPU利用率会明显增加。所以,设置黑洞路由也是一直是解决固定DOS***的最好办法。
利用黑洞路由的这个特点,可以在实际组网中避免路由环路的形成。如下就是黑洞路由的配置:ip route 1.1.0.0 255.255.248.0 Null 0,这样就可以有效地防止这种路由环路。
另 外,在学习动态路由协议EIGRP汇总的时候,无论是自动汇总还是手动汇总都会在本地路由表里生成一条管理距离为5并且指向Null0接口的汇总路由条 目,目的是防止路由环路!汇总之后出现的Null0,按照最长匹配原则匹配地址,如果匹配不到详细路由条目,但是匹配到汇总后自动生成的路由条目,则会数 据包会被Null0丢弃。
下面我们用一个例子来说明Null0接口的防环机制:
假设路由器R1和路由器R2都运行EIGRP协议,路由器R1上有4个子网:
192.168.1.0/24
192.168.2.0/24
192.168.3.0/24
192.168.4.0/24
路由器R1的配置:
我们在路由器R1上配置了手动汇总,且存在一条默认缺省路由指向路由器R2。如下图,由于路由器R1配置了汇总,这样路由器将给路由器R2发送汇总路由192.168.0.0/16。
如下图,当路由器R1上的具体路由192.168.1.0/24突然DOWN掉。
而路由器R2上的汇总路由是不会有任何变化。
在 没有Null0接口的情况下,当路由器R2收到一条转发到192.168.1.0/24的数据包时,R2会将数据包转发至路由器R1(因为路由器R2会根 据路由表最长IP匹配原则去匹配192.168.1.0/24,当然此时是不能匹配到详细路由条目的,但是会被匹配到汇总路由192.168.0.0 /16),而此时路由器R1上的192.168.1.0/24路由已经down掉了,所以R1在查不到详细路由条目的情况下只能通过默认缺省路由又转发给 R2,而R2又会根据汇总路由转回给R1,这样R1和R2一直来回互传,环路就形成了。
而 自动汇总或者手动汇总都会在本地路由表里生成一条管理距离为5并且指向null0接口的汇总路由条目。当R1收到R2关于192.168.1.0/24的 查询时,R1发现192.168.1.0/24可以在汇总路192.168.0.0/16中查到,从而被抛向万劫不复的Null0接口,数据包就终止在 R1了,环路也就解除了!
注意:在 高版本的IOS中,一旦汇总路由中不包含数据包目的地的详细路由,则直接将数据包转发到null0口丢弃,而不再查找默认路由。所以在对EIGRP汇总的 时候尽量关闭自动汇总而采取手动详细汇总!在OSPF,IS-IS这些路由中我们也推荐创建一条null0路由来避免环路!
本文出自 “E网情深” 博客,请务必保留此出处http://jettcai.blog.51cto.com/1447637/1652121
转载于:https://blog.51cto.com/bryfd/1697737