NULL0 接口介绍
    NULL口是个伪接口(pseudo-interface),不能配地址,也不能被封装,它总是UP的,但是从来不转发或者接受任何通信量,对于所有发到该接口的通信量都直接丢弃。
    不管是手动汇总还是自动汇总汇总的接口都是空接口NULL0
    EIGRP 中的null0接口:指向null0 ,因为这个路由是拿来通告的,给自己接口方向的邻居减少路由表用的,而不表示一个实际的可以到达明细网络的路由,从邻居通过汇总路由来的到分组,还是要查 本身的明细路由的,如果进来分组在汇总路由不匹配,直接丢给null 0端口。就是说使用接口null0能避免路由器转发分组的时候寻匹配程度更高的路由,阻止分组在网络内形成环路。
    在EIGRP中,只要发生总结就会在路由表中自动产生一条指向NULL0的路由条目,这条路由的直接意思是:匹配这条路由的数据包会被路由器丢掉。它的目的是为了避免在某些情况下产生路由环路。
    比如说A和B是邻居
    A连了三个网络192.168.1.0/24 192.168.2.0/24 192.168.3.0/24
    然后在A上做了汇总192.168.0.0/16
    A把这个汇总路由传给B
    然后B传过来一个包,目的是192.168.4.0/24
    如 果,不是汇总到NULL0接口,看其过程:先分条细细匹配192.168.1.0/24 192.168.2.0/24 192.168.3.0/24,由于匹配不到,则匹配汇总路由192.168.0.0/16,则根据最长匹配原则,该分组与汇总路由匹配,那就出现了一种 现象,如果这路由器有默认路由,则此包会沿默认路由转发分组,这样有可能造成了路由环路再来看看,如果有了NULL0接口,看其过程,看其过程:先分条细 细匹配192.168.1.0/24 192.168.2.0/24 192.168.3.0/24,由于匹配不到,则被转发到NULL0接口(注意,不是再来跟汇总路由匹配),而转发到NULL0,它就被丢弃或者到了比特 桶(bit bucket,路由器确定的被丢弃比特(被丢弃的分组)的目的地),避免产生了以上的环路。
    Introduction
    一般情况下,路由器提供一个称为NULL0的接口,该接口是一个逻辑接口,有一个重要的特性:永远是UP的,并且发送到该接口的数据帧都会被丢弃。由此可以推断,如果我们在路由器上配置一条静态路由,该路由的出口就是NULL0,那么该路由会有下列特性:
    1、这个静态路由永远的有效,那是因为接口不会DOWN掉;
    2、使用该路由转发数据帧消耗的系统资源很少,因为路由器只是丢弃接收的数据报;
    3、路由器根据配置的参数要不然向数据源发一个丢弃通知(ICMP通知消息),要不就不做任何反应。
    正是有了这些特性,使得该接口有广泛而重要的用途,尤其在进行一些高级的路由策略时,比如路由聚合,网络发布等,有灵活而巧妙的应用。下面具几个例子:
    NULL0与路由汇总
    一 般情况下,为了提高网络的可伸缩性,都得在边缘路由器上弄路由聚合。但是路由聚合需要满足一些的条件,比如,OSPF中,只能在区域边界路由器对 路由进行汇总,这样,为
了进行路由聚合,我们就得进行划分多区域,但是这在某些情况下是不可满足的,再者,在BGP中,为通知一个汇总网络,这个网络就得 存在在路由表,否则无法通知。
    但如果使用了NULL0接口和静态路由技术,这些问题会很巧妙的被解决。下面我们举两个例子,一个例子说明如何解决单区域情况下的OSPF路由汇总,另外一个例子说明在BGP中如何通告聚合路由。这两个例子都很有代表性。
    1.1 单区域模式下OSPF路由汇总
    这个网络,RT1经过两个高速的POS链路直接连接上层的两台中心路由器CRT1和CRT2,在RT1下面直接连接了很多DDN的用户,每个DDN的用户用一个C类IP的地址,目前已经使用了四个:
    192.168.1.0,192.168.2.0,192.168.3.0,192.168.4.0,按照这样,192.168.0.0/16整个分配给该了路由器下的DDN的用户以使用。
    在 RT1和两台中心路由器之间运行OSPF协议,RT1和DDN用户之间采用静态路由,为了把DDN用户的静态路由分发到整个INTERNET,在 RT1上把所有静态路由引入了OSPF.这样工
作起来是没有问题的,但因为整个192.168.0.0/16路由都分配给了RT1,即说明该网络不会在外 部网络上出现,这时候我们可以采用路由聚合的技术,把这些"零碎"网段聚合成192.168.0.0/16,然后通过OSPF发布出去。
    当 前的问题是,在OSPF,要进行路由聚合,必须在区域边界进行,这时一个解决方案就是把所有连接DDN用户的接口划分到另外一个区域中(RT1和 CRT1,CRT2之间划分为区域0),然后在RT1上进行聚合,把所有DDN路由聚合后发送到区域0里面。这样做有很多弊端,比如,容易造成路由泄露 (RT1上的路由可能被DDN用户截获),浪费DDN线路带宽(OSPF要在接口上不断发送HELLO报文)等。
一个不另外划分区域而解决该问题的方式就是应用NULL0接口路由。可以按照下列步骤进行:
    1、在RT1上配置静态路由,如下:
null官方更新地址    (CRT1-config)#ip route 192.168.0.0 255.255.0.0 NULL0
    2、创建访问列表,用于OSPF中的路由分发,如下:
    (CRT1-config)#access-list 10 permit 192.168.0.0 0.0.255.255
    (CRT1-config)#access-list 10 deny any
    3、在OSPF中分发静态路由,并使用访问列表10来控制分发的路由,如下:
    (CRT1-config-router-ospf)#redistribute static
    (CRT1-config-router-ospf)#distribute-list 10 out static
    以上仅仅列出了跟路由分发相关的配置。完成这样配置后,OSPF在分发静态路由时,就会根据访问列表10来进行控制,而仅仅分发出去一条汇总路由,而其他具体的路由都会被过滤掉。
    需要注意,OSPF在分发静态路由时,仅分发路由表里存在的路由,因此我们就得新建一条下一跳为NULL0接口的静态路由来欺骗OSPF,这也是上述操作的重点。
    1.2 BGP协议中的路由汇总
    BGP作为一种边界网关之间的路由协议,有很大的伸缩性和灵活性,可以对路由进行精确的控制和分发。在一些ISP中,往外发布自己的内部路由时往往需要做一些汇总,而不发送具体的路由出去,这样不但有利于保密的目的,而且也不会引入太多的路由到INTERNET上。
    BGP, 我们用SUMMARY-ADDRESS命令来进行路由聚合,但是聚合后出现路由属性的改变问题,像AS-PATH的属性,会由具体的AS的 号更换为AS-SET,这样对以后的路由控制有着不利的影响。也就是说,在BGP中,引入路由的最理想方式是使用NETWORK命令直接引入到本地路由表 中的路由,这样引入的路由起点属性为IGP,可信度是最好的。
    但NETWORK命令总有一个限制,就使用NETWORK来引入的路由必须在路由表中存在,否则就不能引入。实际情况是,路由表中存在着一些具体的路由,而不存在汇总路由,这时候用NETWORK便不起作用。
    跟上面OSPF的解决方式是一样的,我们可以用配置一条静态的来指向NULL0接口的路由进行欺骗BGP,如下步骤:
    1、配置静态路由,如下:
    (CRT1-config)#ip route 192.168.0.0 255.255.0.0 NULL0
    2、在BGP中,把聚合路由引入到其中,如下:
    (CRT1-config-router-bgp)#network 192.168.0.0 mask 255.255.0.0
    完成这些配置后,BGP就会把一条聚合路由引入其中,同样的道理,配置上该条静态路由后,也不会对数据的正常转发造成任何影响。
    NULL0的其它应用2.1 作为备用路由使用
    一 般,如果一台路由器接收了一个数据包,而在自己的路由表里又没有查询到要转发的路由,该路由器就会把数据报丢弃,并向数据源发送一个目的地不可达 的ICMP消息。当然,这是一种正确的行为,但有些情况下就可能不符合人的愿望,比如,我们在路由器上配置了一条静态路由,使这个路由指向一个物理串口, 这个串口正常时,该静态路由就可用,但这个串口DOWN掉时候,该静态路由就会被删除,这样如果再收到这样一个数据报(该数据报需要配置的静态路由进行转 发),则丢弃,并给源发送一个ICMP目的地不可达消息,接收到ICMP不可达消息的主机就有可能修改自己的路由表(尤其是在一些UNIX主机),而这是
我们所不希望的。
    这时候我们可以配置一条指向NULL0接口的备用路由,但是把优先级降低,假设我们在路由器上做如下配置:
    (router-config)#ip route 0.0.0.0 0.0.0.0 Serial 0 preference 60
    (router-config)#ip route 0.0.0.0 0.0.0.0 NULL0 preference 20
    即使SERIAL0接口断掉了,路由器也就会不断使用下条路由地进行转发(转发的结果当然就是丢弃数据报),而不再给源目的地发送ICMP不可达消息。这在路由摆动比较频繁的情况下也可以使用,不至于影响到其它路由器,而仅仅只是把摆动限制在自己身上。
    2.2 在IP策略中的使用
    某 些情况,我们也可能采取某些IP转发的策略,像,进行源地址的路由等。在这些情况下,我们可能需要转发一些符合条件数据,而丢弃一些不符合条件的 数据。有些情况下,比如源地址的路由等,可以通过访问列表解决,但有些特殊情况下,用访问列表是解决不了的,
比如,我们在以太网接口上过滤1500字节的 数据,即如果数据报的长度超过了1500,我们可以丢弃。该需求可以通过IP策略解决,如下:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。