networking路由命令在Linux中是重要的吗?

在我的一个web服务器上,当显示路由时,环回路由处于第二位,通常位于其他服务器上的第三位:

>ip route show 

结果在一个centos 7服务器上显示的是什么:

 default via 85.xx254 dev enp32s0 85.xx192/26 dev enp32s0 proto kernel scope link src 85.xx201 169.254.0.0/16 dev enp32s0 scope link metric 1002 

另一个centos 7服务器的结果:

 default via 217.xx1 dev em1 169.254.0.0/16 dev em1 scope link metric 1002 217.xx0/24 dev em1 proto kernel scope link src 217.xx216 

它有什么区别? 它有什么后果? 任何人都可以解释为什么发生?

按照定义,input路线的顺序并不重要。 这是由于如何应用路线:更具体的优先于更通用的路线。

假设你有两条路线:

  • 第一个172.16.0.0/16networking,通过网关192.168.1.1
  • 第二个172.16.32.0/24networking,通过网关192.168.1.2

当使用例如172.16.32.1的IP地址向机器发送一个数据包时,所选的网关将总是 192.168.1.2,与如何在系统中input路由的顺序无关。

然而,有一个问题: 同一个networking的两条路线,但是不同的网关呢? 例如,考虑这个设置:

  • 一个172.16.32.0/24networking的第一条路由,通过网关192.168.1.1
  • 一个172.16.32.0/24networking的第二条路由,通过网关192.168.1.2

系统如何工作? 如果您希望路线优先于另一条相同的路线,则必须为其分配量值。 度量标准被视为“成本”值,优先select较低的度量标准。 因此,如果您的系统有两个完全相同的路由但具有不同的度量值 ,则select度量值较低的路由。

但是,如果两条路线即使在度量值相同的情况下又会发生什么? 在这个(angular)情况下,默认行为是不确定的,因系统而异。 例如,一个系统可能更喜欢拳头进入的路线,而另一个系统可以优先select最后input的路线。 其他系统可以同时使用两个路由,以近似的循环方式(称为ECMP (等成本多path路由))分发数据包。 最后,其他系统可以禁止出现两条完全相同的路线,否认甚至可能进入这样的路线。

是的,networking路由的顺序一般来说是独立于操作系统的。

路线是程序。 他们说,当你得到一个发往networkingA的数据包时,使用路由器A来完成。 当你得到一个B,使用路由器B.

假设A在B之内,如A = 192.168.1.0/24和B = 192.168.0.0/22。 那么如果我们逆转所应用的路由顺序,则A将不起作用,因为A中的所有A都在B中。另一个ahdn中,即使B是第二个,也是这个顺序,所以路由仍然影响B,因为它的75%主机不在A.

在这个上下文(静态路由)中路由应用的sorting是通过静态度量来完成的。 最小的度量(最便宜的路线)之前就要走了。