正如标题所说。我不知道是否有办法做到这一点。文档是作为端口对的“补丁端口”。例子显示了这些补丁端口的使用,但仍然不清楚您是否可以以可以在其上接收配置的方式“定义”这些端口。
基本上尝试创建等效配置Proxmox Open vSwitch,示例 3:
# Loopback interface
auto lo
iface lo inet loopback
# Bond eth0 and eth1 together
allow-vmbr0 bond0
iface bond0 inet manual
ovs_bridge vmbr0
ovs_type OVSBond
ovs_bonds eth0 eth1
ovs_options bond_mode=balance-slb vlan_mode=native-untagged
# Bridge for our bond and vlan virtual interfaces (our VMs will
# also attach to this bridge)
allow-ovs vmbr0
iface vmbr0 inet manual
ovs_type OVSBridge
ovs_ports bond0 vlan1
# Virtual interface to take advantage of originally untagged traffic
allow-vmbr0 vlan1
iface vlan1 inet static
ovs_type OVSIntPort
ovs_bridge vmbr0
ovs_options vlan_mode=access
address 192.168.3.5
netmask 255.255.255.0
gateway 192.168.3.254
我可以使用以下 netplan 配置实现vmbr0
和接口,但不知道如何创建内部端口(名为)。bond0
vlan1
---
network:
version: 2
ethernets:
eth0: {}
eth1: {}
bonds:
bond0:
interfaces:
- eth0
- eth1
openvswitch: {}
bridges:
vmbr0:
interfaces:
- bond0
openvswitch: {}
我知道我可以直接将第 3 层配置添加到vmbr0
,但我认为我需要一个内部端口,因为我希望此接口能够像其他容器/VM 端口一样处理 VLAN。如果您能回答我的问题,解释这个假设是错误的,也非常感谢!
我还被限制使用 Open vSwitch 作为 libvirt不支持“标准 Linux 桥”。
答案1
Netplan 目前不支持明确定义任意 OVS 内部端口(截至 v0.102)。
但是,您可以做的是在给定的 OVS 桥上定义 VLAN,如下所示:
vlans:
#implicitly handled by OVS because of its link
vlan1:
id: 100
link: vmbr0
这将在“link”设置定义的 OVS 桥上为您创建一个“type=internal”端口/接口,如本测试场景所示:https://github.com/canonical/netplan/blob/master/tests/integration/ovs.py#L184 然后该端口可以接收任意配置(通过 netplan 或 ovs-vsctl)。
答案2
根据@Lukas Maerdian 的建议和错误报告,我遇到了同样的问题这里,这是我设法让它工作的方法
---
network:
version: 2
renderer: networkd
ethernets:
eth0: {}
eth1: {}
bonds:
bond0:
interfaces:
- eth0
- eth1
parameters:
mode: balance-slb
# by default the vlan is already untagged, no extra option needed here.
openvswitch: {}
bridges:
vmbr0:
interfaces:
- bond0
openvswitch: {}
vlans:
#implicitly handled by OVS because of its link
# For Untag VLAN
vlan1:
id: 0
link: vmbr0
addresses: [192.168.3.5/24]
gateway4: 192.168.3.254
openvswitch: {}
# For VLAN 10
vm10:
id: 10
link: vmbr0
openvswitch: {}
还要注意 VLAN 的顺序,根据该错误报告,它需要位于最后一步。