在配置静态路由时,可以使用下一跳地址,也可以使用出站接口。使用下一跳IP地 址和使用出站接口会影响路由器的处理方式。

一。使用下一跳IP地址

在串口和以太口上使用下一跳IP地址时,路由器的处理方式相同:通过查询相应的路由条目找到下一跳地址,然后根据下一跳IP地址递归查询到出站接 口。若是在串口上,无需查询下一跳IP的相应的二层地址,因为在串口上就一个邻居,直接发送即可(单播以及组播二层地址为0x0f,广播二层地址为 0x8f)。若是在以太口上,则发送ARP查询,来获得下一跳IP的MAC地址,然后发送数据包。

二。使用出站接口

使用出站接口时,那么路由将被作为直连网络输入路由表(如:S   10.4.7.0 255.255.255.0 is directly connected serial1)

在串口上使用出站接口和使用下一跳IP没有什么区别,仅仅少了一次寻找出站接口的递归查询。

若在以太口上使用出站接口,则可能导致广播网络上出现过多的流量,而且还有可能耗尽路由器的内存。

 

如上图所示,假设R1上有一个网段1:192.168.1.0/24,R2上有一个网段 2:192.168.2.0/24。

R1上的路由:ip route 192.168.2.0 255.255.255.0 e0/0

若网段1上的主机想要访问网段2上的主机192.168.2.1,因为R1认为自己和 192.168.2.0网段直连,所以路由器会发ARP报文去查询192.168.2.1的ARP地址,R2收到ARP查后,查询自己的路由表发现自己可 以到达该网段,于是R2会发送一个包含自己E0/0的MAC地址的ARP给R1,于是R1就得到了192.168.2.1的MAC地址(实际上是R2“欺 骗"了R1,这就是proxy-arp,默认开启),并缓存该条目。若网段1上的主机要访问192.168.2.2,则会重复以上步骤并缓存该主机的 MAC地址,而192.168.2.1和192.168.2.2的MAC地址都是R2的E0/0的MAC地址。若网段2上有大量的主机,则R1上可能会存 在大量的ARP缓存条目,会耗尽路由器的内存。而使用下一跳时,只会存在一条和下一跳IP对应的ARP缓存。

另外在IPv6中,静态路由的出站接口不能是以太口,因为IPv6不存在proxy-arp,取 而代之的是NDP