如何阻止 netplan 在每个接口上绑定默认网关

Aar*_*ray 10 networking dhcp gateway netplan

我全新安装了 ubuntu server 17.10,但是这个问题可能会影响以前的版本,但这是我第一次遇到这种情况。

服务器运行 2 个独立的网卡,一个用于内部本地网络通信(受信任),另一个是与 ISP 的互联网的公共(不受信任)连接。

过去,我总是将内部连接配置为静态,并且没有默认网关,因为外部卡将通过我的 ISP(静态租用)的 DHCP 提供。

/etc/netplan/00-netcfg.yaml

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      dhcp6: no
      addresses: [192.168.1.xx/24]
      nameservers:
        addresses: [8.8.8.8,8.8.4.4]
    eth1:
      dhcp4: yes
      dhcp6: no
Run Code Online (Sandbox Code Playgroud)

现在这工作正常,因为我没有在 eth0 配置中提供gateway4线,所以它绑定了来自 ISP 的默认网关并且工作正常。

从那以后,我决定在我的 homelab 中为服务器使用静态租约,并在内部路由器上进行了配置。但是当我将两个设备的 netplan 配置设置为 dhcp 时,它会为两个接口添加默认网关(这是有道理的,因为两个 DHCP 服务器都提供了网关)。

> route -n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 eth0
0.0.0.0         173.xxx.xxx.1   0.0.0.0         UG    100    0        0 eth1
173.xxx.xxx.0   0.0.0.0         255.255.255.0   U     0      0        0 eth1
173.xxx.xxx.1   0.0.0.0         255.255.255.255 UH    100    0        0 eth1
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.1.1     0.0.0.0         255.255.255.255 UH    100    0        0 eth0
Run Code Online (Sandbox Code Playgroud)

我如何设置 netplan 以便 eth0 适配器(内部)忽略 DHCP 服务器提供的默认网关(不删除 DHCP 服务器本身上的网关,因为其他机器仍然需要默认网关)。

Luk*_*ger 7

Netplan v0.90 引入了一组新选项:(dhcp4-overrides取请求)。

因此,如果您的软件包版本netplan.io足够新(请参阅此处的可用版本),您可以使用以下命令:

    eno1:
      dhcp4: yes
      dhcp4-overrides:
        use-routes: false
Run Code Online (Sandbox Code Playgroud)