在配置静态路由时,如果送出接口为以太口,使用下一跳和送出接口有区别吗?
路由器 IT 静态路由
1楼(站大爷用户)
在以太网使用出接口会导致proxy-corp,可能会使路由器崩溃。
补充一下:
3 :对于用送出接口的静态路由,如果出站接口为以太网,且关闭了ARP代理,(cisco 在默认情况下以太网接口启用了ARP代理)会造成数据包封装失败,最好使用下一跳来配置.
但是在广播网络环境下,指定下一跳地址和指定出接口将会达到不同的效果。如果指定为出接口的话,那么不管数据包的目标地址是否有效,每次当数据包到达时都会触发一个ARP请求,又因为ARP代理功能在IOS环境下默认是打开的,这就意味着路由器需要配备大量的ARP高速缓存。而如果是指定为下一跳地址的话,仅当第一个去往目标网络的数据包到达时,才会触发ARP请求。
2楼(站大爷用户)
以上拓扑为例:
用送出接口和下一跳分别配置静态路由(R1 和R2 采用相同的配置方式)
1 :路由表显示方式会有差别,但管理距离相同:
R1: show ip route
Gateway of last resort is not set
C 192.168.12.0/24 is directly connected, FastEthernet0/0
1.0.0.0/24 is subnetted, 1 subnets
C 1.1.1.0 is directly connected, Loopback1
2.0.0.0/24 is subnetted, 1 subnets
S 2.2.2.0 [1/0] via 192.168.12.2
用送出接口
Gateway of last resort is not set
C 192.168.12.0/24 is directly connected, FastEthernet0/0
1.0.0.0/24 is subnetted, 1 subnets
C 1.1.1.0 is directly connected, Loopback1
2.0.0.0/24 is subnetted, 1 subnets
S 2.2.2.0 is directly connected, FastEthernet0/0
2:带送出接口的静态路由条目后面直接跟送出接口,路由器只需要一次路由表查找,便能将数据包转发到送出接口,从这点来看 查找路由表效率比带下一跳地址要高,但如果开启了CEF,则不存在此问题.
3 :对于用送出接口的静态路由,如果出站接口为以太网,且关闭了ARP代理,(cisco 在默认情况下以太网接口启用了ARP代理)会造成数据包封装失败,最好使用下一跳来配置.
在R1 F0/0上关闭arp代理(no ip proxy-arp)
R2#debug ip packet
IP packet debugging is on
R2#ping 1.1.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:
*Mar 1 00:22:10.075: IP: tableid=0, s=192.168.12.2 (local), d=1.1.1.1 (FastEthernet0/0), routed via RIB
*Mar 1 00:22:10.075: IP: s=192.168.12.2 (local), d=1.1.1.1 (FastEthernet0/0), len 100, sending
*Mar 1 00:22:10.075: IP: s=192.168.12.2 (local), d=1.1.1.1 (FastEthernet0/0), len 100, encapsulation failed.
3楼(站大爷用户)
如果以太网中有多台设备,即MB网络中,只能使用下一跳
4楼(未知网友)
很多情况没有,可能在以太网 还有NBMA的时候可能会有,细节记起来太复杂,事情要具体分析.吴君的答案是TCP/IP 路由详解里面一个很好的例子.
我理解的根本区别在于是否对于路由表再次做递归查询,还是直接形成FIB.导致最后的差异.