OVSIntPort 与 Netplan

OVSIntPort 与 Netplan

我正在寻找处理 OVSIntPort 和 netplan 的方法。我只想配置地址、MTU,其他 OVS 内容将保留在 ovs-vsctl 中,这些内容将保存在 OVSDB 中。由于网络管理器替换了之前在 OVSDB 上创建的 OVSIntPort,因此如果它之前存在,我必须重新定义它(包括它的标签)(通过在 ifcfg 脚本上使用 OVS_OPTIONS)。这种行为不会发生在 systemd-networkd 上。我应该只为这个 OVSIntPort 转移到 systemd-networkd 吗?

此致,

答案1

我不确定我是否正确理解了这个问题,但如果你使用 Netplan v0.100(目前在 Ubuntu Groovy 和 Focal 中提出),你可以使用 Netplan 的原生 Open vSwitch 支持来创建 OVS 端口/接口。

例如(OVS Bridge:ovs0):

network:
    version: 2
    renderer: networkd
    openvswitch:
        ports: # to create OVS internal patch ports
            - [patch0-1, patch1-0]
    ethernets:
        eth0: {} # physical ethernet interface
    bridges:
        ovs0:
            addresses: [192.168.0.10/24]
            interfaces: [patch0-1, eth0]
            mtu: 9000
            openvswitch: {} # this is an OVS port

ovs-vsctlNetplan 使用 systemd-networkd 渲染器,可以在后台为您创建 OVS 补丁端口、桥接、绑定和 (vlan) 假桥接。然后,您可以根据需要通过单独的ovs-vsctl命令修改 OVSDB。

如需进一步参考,请查看 netplan/OVS 文档和下面的 OVS 示例: https://netplan.io/reference/#common-properties-for-physical-device-types https://github.com/CanonicalLtd/netplan/blob/master/examples/openvswitch.yaml

答案2

我最近偶然遇到了同样的情况。多亏了 Lukas Maerdian 的回答,我才明白他的意思。所以最后我的 netplan 配置如下:

network:
  ethernets:
    real_ethernet_port0: {some regular parameters}
    real_ethernet_port1: {some regular parameters}
  bridges:
    your_ovs_int_port:
      openvswitch: {}
      dhcp4: false
      addresses: [192.168.1.1/24]
      gateway4: 192.168.1.1
      and so on...

你看,关键是要把它嵌套在桥梁:类别(不是以太网!)并且必须有这个openvswitch:{}行。顺便说一下,其中可以有其他不同的参数,请关注 Lukas 的链接。作者的意思是我们已经通过 ovs-vsctl 配置了虚拟交换机,并自动创建了 ovs 内部端口。唯一要做的就是通过 netplan 配置地址,因为如果您通过 netplan 配置地址,系统会在重启后清除它是否配置或者IP 地址添加shell 中的命令。

相关内容