Netplan 中的挫败感

Netplan 中的挫败感

我整天都在挠头。我有以下 netplan yaml 文件:(为了保护隐私,mac 地址和 ip 地址被屏蔽了)

network:
  version: 2
  renderer: networkd
  ethernets:
    enp2s0:
      match:
        macaddress: "aa:bb:cc:dd:ee:ff"
      set-name: enp2s0
      dhcp4: no
      addresses: [ "10.9.8.7/24" ]
      routes:
        - to: 0.0.0.0/0
          via: 10.9.8.8
          metric: 254
          table: 253
  vlans:
    vlan202:
      link: enp2s0
      id: 202
      addresses: [ 75.xxx.yyy.zzz/24 ]
      nameservers:
        addresses: [ 75.xxx.yyy.111, 75.75.75.75 ]
        search: [ example.org, example.com ]
      routes:
        - to: 0.0.0.0/0
          via: 75.xxx.yyy.100
          metric: 200
          table: 253

然后我运行命令netplan try,确保它没有任何错误netplan generate。然后我检查了 /etc/systemd/network,它是空的,我检查了 /run/systemd/network,它有 2 个文件:

10-netplan-enp2s0.链接:

[Match]
MACAddress=aa:bb:cc:dd:ee:ff

[Link]
Name=enp2s0
WakeOnLan=off

10-netplan-enp2s0.网络:

[Match]
MACAddress=aa:bb:cc:dd:ee:ff
Name=enp2s0

[Network]
DHCP=ipv4
LinkLocalAddressing=ipv6
DNS=10.9.8.8
Domains=lan

[DHCP]
UseMTU=true
RouteMetric=100
ClientIdentifier=mac
CriticalConnection=true

我想也许它会在重新启动系统时重新生成,所以我这样做了,但 systemd 配置文件仍然相同,完全忽略了我的自定义设置。是我做错了什么还是 netplan 完全是一堆垃圾?我应该回到 ifupdown 吗?

答案1

问题似乎解决了。原来 /run/netplan 中有一个旧的 .yaml 文件与 /etc/netplan 中的文件冲突,我删除它后,它就netplan apply可以正常工作了。(我从来没有费心检查那里,因为我重启了系统很多次,并且 /run 被挂载为 tmpfs,我猜那个 .yaml 文件如何在重启后仍然存在是一个谜)。

现在下一个挑战:

如何在 netplan 中配置 veth 设备和 netns?

答案2

下的 netplan 系统生成文件/run/netplan将覆盖 下的配置/etc/netplan。 您对 的修改/run在重启后将失效。

来自netplan 常见问题解答

按字母顺序排列的后续文件(无论在哪个目录中)如果键不存在则修改键;如果存在则覆盖先前的键。

为了确保您的配置优先,请将您的文件重命名为 ,/etc/netplan以便按词汇顺序将它们放在 之后enp2s0.yaml,例如zz-enp2s0.yaml

相关内容