技术背景
- 一般来说,一条路由无论是静态的或者是动态的,都需要关联到一个出接口,路由的出接口指的是设备要到达一个目的网络时的出站接口。
- 路由的出接口可以是该设备的物理接口,比如百兆、千兆以太网接口,也可以是逻辑接口,如VLAN接口(VLAN Interface),或者是隧道(Tunnel )接口等。
- 在众多类型的出接口中,有一种接口非常特殊,那就是Null(无效)接口,这种类型的接口只有一个编号,也就是0。
- Null0是一个系统保留的逻辑接口,当网络设备在转发某些数据包时,如果使用出接口为Null0的路由,那么这些报文将被直接丢弃,就像被扔进了一个黑洞里,因此出接口为Nu110的路由又被称为黑洞路由。
- 黑洞路由是一种十分有用处的路由。
示例
如下图所示的网络拓扑中,
- R1的GE0/0/0连接着一个终端网络,处于该终端网络的PC将默认网关设置为R1的GE0/0/0接口IP地址,
- 为了让PC能够访问R2右侧的服务器网络,我们在R1上配置了一条默认路由:
[R1]ip route-static 0.0.0.0 0.0.0.0 192.168.12.2
- 当PC访问本地网段192.168.1.0/24之外的资源(包括服务器网络中所有的网段)时,流量都会先被发往R1,然后由R1转发给R2。
引入问题
在服务器网络中,有一个特殊的网段:192.168.200.0/24并不希望被PC访问,能否仅仅通过路由的配置来实现这个需求?
解决方法
- 通过使用黑洞路由可以实现上述需求。
- R1可增加如下配置:
[R1]ip route-static 192.168.200.0 255.255.255.0 NULL0
- 使用上述命令可为R1增加了一条到达192.168.200.0/24的路由,但是该条路由的出接口是Nu110。完成上述配置后,先查看一下R1的路由表:
- 当PC访问192.168.200.0/24时,数据包先被送到默认网关R1,R1通过路由表查询,发现数据包的目的IP地址匹配路由192.168.200.0/24,而该条路由的出接口是Null0,因此它将数据包直接丢弃。
- 实际上,这是一种实现流量过滤的简单而又有效的方法。
黑洞路由除了在上述场景中使用,还能用于各种其他场景:
- 在部署了路由汇总的网络中,用于防止数据转发出现环路。
- 在部署了NAT (Network Address Translation,网络地址转换)的网络中,用于防止数据转发出现环路。
- 在BGP网络中,用于发布特定网段的路由。