适合双网卡 dhcp/静态 IP 设置的正确 Netplan 配置

适合双网卡 dhcp/静态 IP 设置的正确 Netplan 配置

我很难在思维导图中清楚地了解如何针对我们所见的常见网络设置配置 netplan。

  1. 两个网络接口
  2. 网络接口 A,连接到 10.0.1.40/24 上的互联网,通过 DHCP 分配
  3. 网络接口 B,通过 192.168.50.1/24 连接到 192.168.50.1/24 上的网络,分配静态 IP(192.168.50.20/24)

就像是:

network:
  version: 2
  ethernets:
    eno1:
      dhcp4: yes
    enp6s0f1:
      dhcp4: no
      addresses:
        - 192.168.50.20/24
      gateway4: 192.168.50.1

看起来应该可以工作,但在应用了这个之后,似乎

  1. 服务器失去互联网访问,并且静态 IP 地址的优先级低于 dhcp 接口?这可能吗?
  2. 服务器网络访问,但无法与网络上的任何设备通信192.168.50.1/24(可能使用了错误的以太网卡)。

值得一提的是,从 netplan 中删除非 dhcp 接口并仅使用sudo ip addr add 192.168.50.20/24 dev eno2“just works”,但在重启后不会持续存在。

最终的路由表如下所示:

$ ip route
default via 192.168.50.1 dev enp6s0f1 proto dhcp src 192.168.50.11 metric 100 
default via 10.1.10.1 dev eno1 proto dhcp src 10.1.10.178 metric 100 
10.1.10.0/24 dev eno1 proto kernel scope link src 10.1.10.178 
10.1.10.1 dev eno1 proto dhcp scope link src 10.1.10.178 metric 100 
192.168.50.0/24 dev enp6s0f1 proto kernel scope link src 192.168.50.11 
192.168.50.1 dev enp6s0f1 proto dhcp scope link src 192.168.50.11 metric 100 

在这种情况下,192.168.50.1是没有公共互联网访问的静态网络,但10.1.10.1不使用该路由。

答案1

现在,按照您现在配置 Netplan YAML 文件的方式,您设置了两个默认路由。 的输出ip route表明了这一点。 上的第一个默认路由eno1由 DHCP 服务器提供给您。 上的另一个enp6s0f1默认路由在您的 YAML 文件中定义。 此外,每个默认路由的度量都是 100,因此一个默认路由不会比另一个具有更高的优先级。

您有两个选择...要么为 分配不同的度量标准,eno1使其优先于enp6s0f1,要么删除 的gateway4enp6s0f1。由于您指示所有互联网流量都应流出eno1enp6s0f1严格用于192.168.50.0/24子网,因此只需删除gateway4节,如下所示:

network:
  version: 2
  ethernets:
    eno1:
      dhcp4: yes
    enp6s0f1:
      dhcp4: no
      addresses:
        - 192.168.50.20/24

相关内容