如果有多个默认值,linux如何选择使用哪个网关?

时间:2017-03-12 18:14:39

标签: linux ubuntu

我使用NetworkManager连接到VPN服务器。我的VPN有多个服务器,所以我配置了十几个配置文件。 NetworkManager允许您同时连接到多个VPN;如果我这样做,路由表最终可能会有多个默认路由。

  1. Linux在这种情况下做了什么?
  2. 有没有办法配置它以便它选择更快的网关?
  3. 示例(部分表格):

    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         10.8.8.1        0.0.0.0         UG    50     0        0 tun0
    0.0.0.0         10.7.7.1        0.0.0.0         UG    51     0        0 tun1
    0.0.0.0         10.8.8.1        0.0.0.0         UG    52     0        0 tun2
    0.0.0.0         10.7.7.1        0.0.0.0         UG    53     0        0 tun3
    0.0.0.0         10.8.8.1        0.0.0.0         UG    54     0        0 tun4
    0.0.0.0         192.168.50.1    0.0.0.0         UG    100    0        0 enp0s31f6
    

1 个答案:

答案 0 :(得分:1)

您的额外网关具有不同的指标(可能有不同的表格,发布ip rule showip route list table TTT,其中TTT是ip rule show提到的所有表格。度量标准记录在man 8 route http://man7.org/linux/man-pages/man8/route.8.html

   metric M
          set the metric field in the routing table (used by routing
          daemons) to M. If this option is not specified the metric for
          inet6 (IPv6) address family defaults to '1', for inet (IPv4)
          it defaults to '0'. You should always specify an explicit
          metric value to not rely on those defaults - they also differ
          from iproute2.

   Metric The 'distance' to the target (usually counted in hops).

规则为https://serverfault.com/questions/648276/routing-selection-specificity-vs-metric

  

单个路由表...在这种情况下,内核选择:

     
      
  • 最具体的路线;
  •   
  • 如果有多个同样具体的路由,那么具有最小内核度量的路由。
  •   

因此,当没有多个路由表时, linux将只使用一个可达最低度量的网关(它可能不会使用离线网络接口的网关)。

  

有没有办法配置它以便它选择更快的网关?

不,当不使用网关时,您无法检查它的速度。此外,你不能让个人电脑own AS合法拥有几个可以将你的单个IP连接到互联网的网关。 (因此,选择不同的网关将破坏所有TCP和UDP连接,因为您将在Internet中使用不同的IP地址。)