当 前的问题是,在OSPF,要进行路由聚合,必须在区域边界进行,这时一个解决方案就是把所有连接DDN用户的接口划分到另外一个区域中(RT1和 CRT1,CRT2之间划分为区域0),然后在RT1上进行聚合,把所有DDN路由聚合后发送到区域0里面。这样做有很多弊端,比如,容易造成路由泄露 (RT1上的路由可能被DDN用户截获),浪费DDN线路带宽(OSPF要在接口上不断发送HELLO报文)等。
[1] [2] 下一页
一个不另外划分区域而解决该问题的方式就是应用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消息。当然,这是一种正确的行为,但有些情况下就可能不符合人的愿望,比如,我们在路由器上配置了一条静态