首先,请原谅我蹩脚的 markdown 技巧。
运行 Bionic Beaver:
host:~# lsb_release -a Distributor ID: Ubuntu Description: Ubuntu 18.04.2 LTS Release: 18.04 Codename: bionic
似乎无法找到确保我的 veth 设备在重启后自动“链接”的最佳方法。
我对 veth 的使用情况:我使用它们将本地网桥连接到容器。我这样做是因为将 docker macvlan 直接连接到网桥会阻碍容器与其主机之间的通信。
现在,这个问题已经解决了:
我尝试将以下内容放入
ip link set veth1a up ip link set veth5a up
/etc/rc.local中我必须创建新的并添加执行权限,但重启后什么也不做。
我有 netplan 中列出的接口,但这只能成功启动 veth 的桥接侧,例如 veth1b:
network: ethernets: enp131s0f0: dhcp4: false enp131s0f1: dhcp4: false enp6s0: dhcp4: false enp7s0: dhcp4: false veth1a: dhcp4: false veth1b: dhcp4: false veth5a: dhcp4: false veth5b: dhcp4: false bridges: br0: dhcp4: true interfaces: - enp6s0 - enp7s0 - veth1b br5: dhcp4: false interfaces: - vlan5 - veth5b vlans: vlan5: id: 5 link: br0 dhcp4: false version: 2
我还有一些 systemd 配置来首先创建 veth,但我不知道如何告诉 systemd “管理” veth1a 和 veth5a。这就是我需要帮助的地方。
host:~# cat /etc/systemd/network/25-veth-* [NetDev] Name=veth1a Kind=veth [Peer] Name=veth1b [NetDev] Name=veth5a Kind=veth [Peer] Name=veth5b
答案1
我不知道为什么它不能一起工作/etc/rc.local
,我原以为这会运行得足够晚才能工作;但我认为你已经非常接近配置了systemd
。
添加:
[Network] ConfigureWithoutCarrier=true
对于每个 veth 接口。默认情况下,如果接口没有直接连接的 IP 地址,systemd-networkd 将不会启动这些接口。
Veth 目前在 netplan 中不直接支持,但将来可能会添加,以简化设置。