Ubuntu 18.04 netplan.io 如何防止创建 2 个默认网关

Ubuntu 18.04 netplan.io 如何防止创建 2 个默认网关

当我添加 2 个接口(eth0局域网,eth1WAN)使用静态 IP(或者也可以使用 DHCP),Ubuntu 18.04 Server 正在添加 2 个默认网关。这不是目标。

我怎样才能仅定义 1 个默认网关?

文件:/etc/netplan/01-netcfg.yaml

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      addresses:
        - 172.16.1.22/16
      gateway4: 172.16.0.1
      nameservers:
        search: [mydomain.internal]
        addresses: [172.16.1.2, 172.16.1.1]
    eth1:
      addresses:
      - 172.19.3.235/24
      gateway4: 172.19.3.1
      nameservers:
        addresses: [195.50.xxx.xxx,195.50.xxx.xxx]

ip route显示:

用户@服务器:~$ ip 路由
默认通过 172.19.3.1 dev eth1 proto static
默认通过 172.16.0.1 dev eth0 proto static
172.16.0.0/16 dev eth0 proto 内核范围链接 src 172.16.1.22
172.19.3.0/24 dev eth1 proto 内核范围链接 src 172.19.3.134

2 个默认 GW......

在我的例子中,默认网关来自eth1是我唯一需要的。

答案1

只需从接口中删除网关配置eth0

省略这一行gateway4: 172.16.0.1

您仍然可以172.16.x.y通过 访问子网中的主机eth0,因为它直接连接到那里。

如果需要访问该网络中的其他主机(例如,具有私有地址的内部网RFC1918 范围),然后只需添加静态路由即可使用 172.16.0.1 网关访问这些网络。请参阅此引用用于 Netplan 中的路由,它应该可以帮助您添加静态路由。

如果你通过 DHCP 获取 IP,那么应该基本相同...但你需要 DHCP 服务器为你分配一个 IPeth0 不是设置任何网关... Netplan 中似乎没有很好的方法来禁用从 DHCP 收到的网关。(虽然 networkd 可以做到这一点,但请参阅另一个答案上的这个评论以尝试解决该问题。

相关内容