这个问题,其实没有争执的必要,毕竟管理距离(或路有权)这个东西是厂商私有值,比如Cisco是1,H3C是60,这方面并没有国际统一的标准让我们去遵循。

争执,是源于Jeff在《Routing TCP/IP 卷一》中的一段说明。这一段的截图如下,

基于接口的静态路由 管理距离到底是0还是1?_第1张图片

上面这个描述,让很多人认为使用next-hop方式的静态路由管理距离=1,而使用出站接口方式的静态路由管理距离=0。我估计也是因为这段描述,在很多CCNA的视频课程中,主讲人都告诉大家:“当使用出站接口配置静态路由时,管理距离=0”。而事实到底是什么样的呢?

为了验证这个问题,我使用两台路由器作为实验环境:

基于接口的静态路由 管理距离到底是0还是1?_第2张图片

基础配置完成后,在R1上我配置了去往2.2.2.0/24的两条路由:

基于接口的静态路由 管理距离到底是0还是1?_第3张图片

通过show ip route的输出,可以看到两条静态路由都加到了路由表中。如果像大多数CCNA视频中提到的那样,输出中是不会看到via 12.1.1.2这个条目的。

进一步查看2.2.2.0的明细,我们可以看到“distance 1”的字样,说明两个条目的管理距离都为1。

基于接口的静态路由 管理距离到底是0还是1?_第4张图片

为了进一步证明via 12.1.1.2的路径也被使用,我使用ping 2.2.2.2 repeat 10发包,并使用debug ip packet查看数据包的走向。如下图所示,

 

 

基于接口的静态路由 管理距离到底是0还是1?_第5张图片

从debug ip packet的输出我们可以看到,ping出的10个包,的确被1:1负载均衡。这证明via 12.1.1.2的路径是被使用的。

通过以上的试验可以得出结论,无论是使用next-hop,还是使用出站接口,Cisco(以及Ruijie)静态路由的默认管理均为1。