Ubuntu 18.04 上的 Netplan 具有多个连接到互联网的接口

Ubuntu 18.04 上的 Netplan 具有多个连接到互联网的接口

我正在使用netplan来配置 Ubuntu 18.04 上的接口,但存在一些问题。首先,metric由于设置为 0,它似乎不起作用。其次,一旦我使用,networkd整个网络似乎就瘫痪了!

设置如下:

                                  Internet                     Internet 
     (local-link)                    /                         /           
 Dev1               |-----|        |-----|      |-----|                   - Dev11 (192.168.0.5)
    ----------------| eno |        | tun |      | usb | ---- (AP) -------|
 Dev2               |_____|        |_____|      |_____|     192.168.0.1   - Dev12 (192.168.0.6)
 (172.168.0.6)      172.168.0.2               192.168.0.2 
                 
                |------------------PC ------------------|

YAML文件是:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp60s1:
      match:
        macaddress: 3b:2d:x:x:x
      addresses: [192.168.0.2/24]
      dhcp4: no
      optional: true
      gateway4: 192.168.0.1
      set-name: usb
      nameservers:
        addresses: [192.168.0.1,8.8.8.8]
      mtu: 8192  
      routes:
       - to: 0.0.0.0/0
         via: 192.168.0.1
         metric: 50
         table: 101
      routing-policy:
       - from: 192.168.0.0/24
         table: 101

我希望使用NetworkManager,但似乎不支持非默认路由。然后我运行

sudo netplan generate
sudo netplan apply
sudo service systemd-networkd restart

route -n给出:

Destination   Gateway      Genmask         Flags     Metric  Ref   Use   Iface  
0.0.0.0      192.168.0.1   0.0.0.0          UG        0       0    0      usb
0.0.0.0      10.100.80.1   0.0.0.0          UG       20000    0    0      wlan
10.8.0.0     0.0.0.0       255.255.255.0    U         0       0    0      tun
10.100.80.0  0.0.0.0       255.255.248.0    U         600     0    0      wlan  
172.168.0.0  0.0.0.0       255.255.255.0    U         0       0    0      eno
192.168.0.0  0.0.0.0       255.255.255.0    U         0       0    0      usb

然后主机(PC)变得无法访问(通过远程连接ssh)。

metric既然在文件中已定义,为什么没有设置YAML?我希望连接到 AP 的开发人员能够通过 AP 访问互联网,因此我尝试了,ping -w 1 8.8.8.8 -I usb结果导致 100% 数据包丢失。

答案1

您正在设置:

  gateway4: 192.168.0.1

和:

  routes:
   - to: 0.0.0.0/0
     via: 192.168.0.1
     metric: 50
     table: 101

gateway4是默认路由的简写。您不应将两者组合在一起。这几乎肯定是您的度量被破坏的原因,因为设置gateway4是覆盖性的。度量 0 实际上不是问题,因为度量 0 的优先级甚至高于度量 50,但您的所有路由表设置也将被破坏,这可能是更严重的问题。

答案2

使用 DHCP 连接多个接口 : “通过为通过 DHCP 检索的路由指定度量,可以实现通过 DHCP 所需的精确路由,这将确保某些路由优先于其他路由。在此示例中,‘enred’ 优先于‘engreen’,因为它具有较低的路由度量:”

network:
    version: 2
    ethernets:
        enred:
            dhcp4: yes
            dhcp4-overrides:
                route-metric: 100
        engreen:
            dhcp4: yes
            dhcp4-overrides:
                route-metric: 200

相关内容