要想正确的配置路由协议,passive-interface 命令绝对不可不知。不过,如果你不是在使用动态路由协议(比如OSPF,EIGRP ,或者RIP )的话,那你倒也用不到这个命令。
passive-interface 命令仅仅工作于路由器配置模式(Router ConfigurationMode)。当你看到如下所示的命令行提示符时,那你就知道自己已经进入该模式了:
Router(config-router)
你可以使用passive-interface命令告知动态路由协议不要通过该接口发送网络广播。这个命令可以对所有的IP路由协议生效,仅BGP除外。
不过,该命令在OSPF上工作,和在IS-IS上有点不同。用OSPF,被动指定的网络接口作为stub(末节区域)出现,并不发送和接收任何路由更新。使用RIP,IGRP,以及EIGRP时,它不发送任何路由,但是它能接收它们。同样,它也将对网络上所有非被动的接口发送广播。
使用passive-interface命令有两种方式。
指定某个接口成为被动模式,这意味着它将不会发出路由更新。
首先将所有接口设为被动模式。然后在那些你打算发送路由更新的接口上,使用no passive-interface命令。
让我们来对两种方式各看一个示例。注:两个事例都假定你已经预先添加了对路由协议是被动接口的网络(使用网络命令)。
让一个接口变成被动模式,只需要对接口进行指定。这里是一个示例:
要记住,这意味着系统通过连到另一台路由器的串行接口,将对你设置的两个网络进行广播。另外,这也没有阻止你的路由器从局域网络接口(使用RIP)接收路由更新。如果另一台路由器正巧也在局域网上,并向你的路由器发送了更新,它依旧可以收到这些更新。
Router(config)
# router rip Router(config-router)
# passive-interface Ethernet 0/0
要将所有接口设为被动,然后单独打开某个接口,仅需使用passive-interface default和no passive-interface命令(在IOS 12.0中介绍)。下面是个示例: Router(config)
# router rip Router(config-router)
# passive-interface default Router(config-router)
# no passive-interface Serial 0/0
让我们来看一个简单的网络,专用于示范该命令的深层应用。假设你有2台路由器,通过一个T1回路相连,且路由器均运行RIP.每个路由器连一个局域网,电脑通过以太网卡连上局域网。
你需要每台路由器都了解对方路由器的网络,对吧?这也是为什么要使用动态路由协议的目的所在。但是在局域网上,并无其他路由器可以让这两台路由器交换路由更新。
在这种情况下,你为什么会想每30秒在局域网接口广播一次路由更新,一直持续呢?答案是你不想。这是一种对局域网带宽和电脑CPU时间的浪费。如果它只是一个小更新,它的确不会引起什么问题,但如果你能避免,何必发送这种毫无必要的通信呢?
那怎么才能消除这种毫无必要的通信呢?在每台路由器上,进入RIP配置模式(RIP Configuration mode),并使用passive-interface命令,停止在局域网端口上发送路由更新。下面是示例:
Router(config)
# router RIP Router(config-router)
# passive-interface Ethernet 0/0
这个,当然,假设你已经预先使用网路命令配置好了打算广播的网络。下面是个事例:
Router(config-router)
# network 1.0.0……0 (the Serial network)
Router(config-router)
# network 2.0.0.0 (the Ethernet network)
要记住,这意味着系统通过连到另一台路由器的串行接口,将对你设置的两个网络进行广播。另外,这也没有阻止你的路由器从局域网络接口(使用RIP)接收路由更新。如果另一台路由器正巧也在局域网上,并向你的路由器发送了更新,它依旧可以收到这些更新。