操作系统里静态路由和直连路由的优先级-转

Posted mude

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统里静态路由和直连路由的优先级-转相关的知识,希望对你有一定的参考价值。

原文:https://blog.csdn.net/centerpoint/article/details/37601477

引言

在操作系统上, 同网段IP是通过二层方式直接通信,  不经过网关,成为了一个根深蒂固的观念,  就算在有直连路由的同时也配置同网段的静态路由, 也不会有人怀疑直连路由的优先级,  认为还是会优先二层通信, 特别是玩过路由器的人, 都知道相同网段的情况下直连路由比静态路由的优先级高.  然而事实并非如此.:

Linux系统下的静态路由与直连路由优先级对比:

eth0配置 192.168.1.2/24 网关 192.168.1.1

然后再配置  route add -net 192.168.1.0/24 gw 192.168.1.1

结果如下:

技术分享图片

带网关的是静态路由,可见2条路由的优先级都是0, 但是根据实验, 数据包会先发到网关, 也就是静态路由优先(即便本机有arp记录,也会静态路由优先)

 

Windows(2003)系统下的静态路由与直连路由优先级对比:

 

本地连接1 配置 192.168.1.12/24 网关 192.168.1.1

然后再配置  route add  192.168.1.0 mask 255.255.255.0  192.168.1.1

结果如下:

技术分享图片

可见直连路由的网关是本身,优先级为10, 静态路由的网关是192.168.1.1 , 优先级为1, 明显也是静态路由优先, 实际测试也是如此.

华为三层交换机下的静态路由与直连路由优先级对比:

在vlanif 上配置 ip address 作为网关, 同时用 ip route-static 将同样网段指到另一出口的互联地址, 经测:

无论直连路由上有没有活跃的目标IP(活跃的arp记录) 都不会往静态路由转发.

用display routing-table 查看, 也只能看到直连路由

可见是直连路由优先级高

 

结论: 

操作系统上静态路由优先, 路由设备上直连路由优先.  当然这都是在相同网段的前提下, 在网段不同的时候, 都遵循深度优先原则, 即网段越小优先级越高.

现实意义:

或许有人说了, 这有什么用呢? 有谁会在有直连路由的时候去配置相同的静态路由呢?

1.在把Linux作为软路由的时候, 难免会配置成这样而导致异常

2.在南方普遍使用的双线双IP服务器里面一般都要配置静态路由表,如果恰好包含本机IP段而且网段大小一致就会出现这种情形.

3.静态路由优先的情况下, 根本的影响是同网段的二层通信会走三层(走网关), 从而导致:

(1).增加网关的负载

(2).如果网关接口限速会影响带宽

(3).如果网关接口计费的话增加费用

(4).如果网关上做了策略路由, 把inbound的包都策略走了, 可能导致同网段IP不通, 哪怕2个IP在同一个LAN的相邻端口

以上是关于操作系统里静态路由和直连路由的优先级-转的主要内容,如果未能解决你的问题,请参考以下文章

RabbitMQ指南之四:路由(Routing)和直连交换机(Direct Exchange)

配置Linux实现静态路由

动态路由备份

路由优先级

华为datacom-HCIA学习之路

静态路由的配置