NULL0接口的作用

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 上配置静态路由,如下:
(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 策略解决,如下:

1、配置一个路由影像( ROUTE-MAP ),如下:
(router-config )#route-map Deny_1500 permit 100
(router-route-map )#match length 1500
(router-route-map )#set interface NULL0
(router-route-map )#exit

2、到接口的模式下,实施 IP 的策略,如下:
(router-config-if ) #ip policy route-map Deny_1500
完成这样配置后,所有以太网接口上都将收到的1500 字节的数据帧过滤掉。

来自百度文库的资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值