我们知道,路由器设备一般都包含一个名为NULL0的逻辑接口,该接口看上去很平淡无奇,但由于该接口永远处于UP状态,同时发往该接口的任何数据包都会被路由器系统自动丢弃。
当在路由器中创建一条指向NULL0接口的静态路由时,该静态路由将会始终有效,毕竟NULL0逻辑接口的工作状态永远是UP 的,而且使用该静态路由转发数据包信息时耗费的系统资源也是非常有限,因为路由器对发往该接口的数据包信息只作丢弃处理,而不会对数据源进行回复。既然 NULL0接口存在这么多特性,那么我们完全可以着眼NULL0接口,有效配置路由器参数,让其工作更精彩,让网络运行更高效!
着眼NULL0接口,创建备用路由
我们知道,当路由器从网络中接收到一个数据包信息后,它首先会检查系统路由表中是否存在转发的路由记录,倘若没有找到指定的转发路由记录时,路由器一般会自动把接收到的数据包信息丢弃,同时会自动给数据源返回一个ICMP控制消息,通知数据源目的地无法到达。然而有的时候,我们不希望路由器在找不到转发路由记录时,给数据源返回一个目的地无法到达的ICMP控制消息,以避免数据源主机随意改动自己的路由表记录,从而给自己的网络造成影响。
比方说,我们假设在路由器系统中创建了一条指向一个物理串形端口的静态路由,一旦该串形端口处于UP工作状态时,那么该静态路由就能正常有效,倘若该串形端口处于DOWN工作状态时,这条静态路由记录就会被自动删除掉;此时,路由器恰好从网络中接收到一个数据包信息,该数据包要求指向串形端口的静态路由进行转发,但无奈该条静态路由已经被自动删除,那么路由器只好丢弃数据包信息,同时给数据源返回一个目的地无法到达的ICMP控制消息。而数据源主机一旦接受到目的地无法到达的ICMP控制消息后,还认为是本地的路由器存在问题,于是他们可能会尝试修改本地路由表中的记录,这么一来就可能给本地网络的正常工作带来影响,因此这种情况肯定不是我们希望看到的。
为了避免这种情况发生,我们可以利用NULL0接口永远UP的特性,来创建一个始终有效的静态路由记录,并将该静态路由的优先级别适当降低一些,以便在串形端口处于DOWN工作状态时起到备用路由的作用;我们只要在路由器系统中进行如下配置,就能轻松实现创建备用路由的目的:
[Router]ip route-static 0.0.0.0 0.0.0.0 Serial 0 preference 30
[Router]ip route-static 0.0.0.0 0.0.0.0 NULL0 preference 10
完成上面的配置任务后,路由器中的串形端口即使处于DOWN工作状态,路由器也能通过备用路由转发数据抱信息,在通过NULL0接口的路由转发数据包的结果,就是丢弃路由器接受到的数据包,同时不给数据源返回一个目的地无法到达的ICMP控制消息,那样一来数据源主机就不会认为自己的路由表出问题了,当然他们也就不会随意改动自己的路由参数了。
一般来说,在网络路由变化比较大的情况下,我们可以巧妙地利用NULL0接口,来创建合适的备用路由,确保路由变化尽可能在自身发生,而不要影响到其他的路由器。
着眼NULL0接口,限制数据长度
为了控制网络按照既定要求进行工作,我们有时希望路由器能够对符合指定条件的数据包信息进行转发,而对不符合指定条件的数据包信息作丢弃处理。虽然实现数据包转发控制的方法有很多,例如多数场合下网络管理人员可以利用访问列表来顺利实现转发控制任务,但在一些特殊场合下访问列表是无法解决一些特殊的转发控制要求的。比方说,我们要是希望通往以太网接口的数据包大小不能超过2000字节,一旦超过该大小的话,路由器需要自动将该数据包信息作丢弃处理,要实现这种控制要求时,我们可以按照如下方法来配置路由器:
首先在路由器后台配置界面创建好过滤策略:
[Router]route-policy Deny_2000 permit 100
[Router-route-policy]if-match length 2000 65535
[Router-route-policy]apply interface NULL0
其次进入到路由器以太网接口配置模式状态,启用刚才创建好的过滤策略:
[Router-Ethernet0]ip policy route-policy Deny_2000
结束上面的所有配置操作后,重新启动一下路由器系统,相信这么一来通往以太网接口的数据包大小就无法超过2000字节了