当我绑定网卡时,如何使用 netplan 匹配 macaddress?

当我绑定网卡时,如何使用 netplan 匹配 macaddress?
network:
  renderer: networkd
  ethernets:
    eth0: # usb ethernet 1
      match:
        macaddress: f8:e4:3b:55:72:71
      set-name: eth0
      dhcp4: no
    eth1: # builtin
      match:
        macaddress: e6:30:ac:f2:31:63
      set-name: eth1
      dhcp4: no
  bonds:
    bond0:
      dhcp4: no
      interfaces:
        - eth0
        - eth1
      addresses:
        - 192.168.0.4/24
      routes:
      - to: default
        via: 192.168.0.1
        metric: 0
      nameservers:
        addresses:
          - 1.1.1.1
          - 1.0.0.1
          - 8.8.8.8
          - 8.4.4.8
      parameters:
        mode: active-backup
        primary: eth0
        mii-monitor-interval: 1
  version: 2

基本上,我有 3 个以太网端口,它们被绑定成一个。但是,此绑定会重新分配 MAC 地址:

2: eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
    link/ether e6:30:ac:f2:31:63 brd ff:ff:ff:ff:ff:ff
4: eth0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
    link/ether e6:30:ac:f2:31:63 brd ff:ff:ff:ff:ff:ff

因此在启动时一切正常(即它找到匹配的 NIC 并重命名它们),但是当我运行时netplan apply

WARNING:root:Cannot find unique matching interface for eth1
WARNING:root:Cannot find unique matching interface for eth0

我认为这不会导致任何问题,因为 NIC 的名称在启动时已经重新分配 - 但这是一个令人讨厌的警告 - 并且可能会使在没有不断重启的情况下进行更改变得更加困难。

有没有办法根据“真实”MAC 地址使用 netplan - 并且它不会给我警告?

答案1

绑定接口必须具有相同的 mac 地址,因此一旦创建绑定,就不可能在 mac 地址上唯一匹配接口。接口没有“真实”mac 地址的概念 - 一旦 mac 更新,这就是内核、udev、systemd-networkd 和 netplan 所知的接口的唯一 mac 地址。

一般情况下,不建议将网络接口重命名为“传统”命名约定 (ethN),不过我看到您的接口中有一个被列为 USB 的接口被注释为 USB,因此可以理解为什么您想要一个更简洁的接口名称。您可能会发现按驱动程序匹配以重命名 USB 接口并保留非 USB 接口的名称是合理的。

相关内容