Netplan - 如何描述 veth 对等链接?

tu-*_*duh 1 networking netplan

我想在我的 netplan 配置中的两个网桥之间进行对等连接。

iproute2命令下是:

ip link add dev vethb1 type veth peer name vethb2       
brctl addif br1 vethb1
brctl addif br2 vethb2
Run Code Online (Sandbox Code Playgroud)

我是从 OpenVSwitch 移植的,所以我可能以错误的方式思考这个问题。

不幸的是,netplan 文档似乎并没有涵盖所有设备类型,特别是veth. 虽然它确实提到了veth匹配,所以netplan的某些部分必须知道它的含义。

我尝试过使用vlanno来执行 a id,但它需要一个 id。

创建 anethernet似乎不接受 atypepeer属性。 Networkd 调用此密钥kind,但这也不是可接受的密钥。

veth peernetplan 配置中的链接是什么样的?

tu-*_*duh 6

@slangasek 是正确的。从 0.39 开始,netplan yaml 中不再支持。然而,netplan它是基于systemd-networkd它并与之配合得很好。所以这是我想出的解决方案:

创建一个名为的文件,/etc/systemd/network/25-veth-b1b2.netdev其内容为:

[NetDev]
Name=vethb1
Kind=veth
[Peer]
Name=vethb2
Run Code Online (Sandbox Code Playgroud)

然后添加到您的/etc/netplan/01-netcfg.yaml

在下面:

ethernets:
Run Code Online (Sandbox Code Playgroud)

添加:

    vethb1: {}
    vethb2: {}
Run Code Online (Sandbox Code Playgroud)

它的作用是告诉 netplan 期望来自vethb1名为和 的地方的接口vethb2。({}是一个空匹配。 match: {}也可以,但将其留空或只会match:导致解析错误。)

然后您可以将这些接口添加到您的网桥中:

bridges:
  b1:
    interfaces: [vethb1]
  b2:
    interfaces: [vethb2]
Run Code Online (Sandbox Code Playgroud)

然后重建你的 netplan 配置并重新启动 systemd-networkd:

$ netplan generate
$ service systemd-networkd stop
$ service systemd-networkd start
Run Code Online (Sandbox Code Playgroud)