我已经设置了一个 ovs 网桥,以便利用 libvirt 的支持 vlan 的虚拟网络。按照建议,主机网络接口配置在 ovs 端口上,而不是直接配置在网桥上。主机 nic 接收标记和未标记的流量。后者为主机自己的接口。我还希望该接口具有特定的 MAC。
如何在 netplan 中做相当于ovs-vsctl set interface vlan0 mac=\"00:11:22:33:44:55\"
?
我不确定如何在 vlan0openvswitch:
部分中定位 ovs 接口配置。
mac:
并且other-config:hwaddr
是 ovs 端口的无效/无效选项。
迄今为止:
network:
version: 2
ethernets:
enp0s31f6: {}
bridges:
ovsbr0:
interfaces: [enp0s31f6]
openvswitch: {}
vlans:
vlan0:
id: 0
link: ovsbr0
openvswitch: {}
addresses: [192.168.0.11/24]
gateway4: 192.168.0.1
nameservers:
search: [home.lan]
addresses: [192.168.0.10]
或者这在 netplan yaml 中是不可能的,我应该求助于 networkd-dispatcher 挂钩脚本?
编辑:使用 networkd-dispatcher 并删除不推荐使用的选项,我现在有了这个适合我的配置。最好知道 netplan yaml 配置中是否支持额外的 openvswitch 命令,以将其全部保存在一个地方。
- Ubuntu 20.04.5
- openvswitch-开关 2.13.8-0ubuntu1.1
- netplan.io 0.104-0ubuntu2~20.04.2
#/etc/netplan/01-ovsbr0.yaml
network:
version: 2
renderer: networkd
ethernets:
enp0s31f6: {}
bridges:
ovsbr0:
interfaces: [enp0s31f6]
link-local: []
openvswitch: {}
vlans:
vlan0:
id: 0
link: ovsbr0
openvswitch: {}
addresses: [192.168.0.11/24]
routes:
- to: default
via: 192.168.0.1
nameservers:
search: [home.lan]
addresses: [192.168.0.10]
#!/bin/sh
#/etc/networkd-dispatcher/configuring.d/99-vlan0-mac.sh
IFACE_MATCH='vlan0'
MAC='00:11:22:33:44:55'
[ "$IFACE" = "$IFACE_MATCH" ] && /usr/bin/ovs-vsctl set interface $IFACE mac=\"$MAC\"
Netplan 目前不允许直接使用设置 MAC 地址
ovs-vsctl set [...] mac=...
但是您应该能够通过添加节来使用联网后端渲染器设置所需的 MAC 地址
macaddress: 00:11:22:33:44:55
。您也可以将其放入other-config
:运行后
netplan apply
,这会为我生成以下输出: