在内核配置中启用以下选项,如有必要则重新编译内核:
Networking support: Y
Networking options:
802.1d Ethernet Bridging: M or Y
本节将讨论如何使用 systemd-networkd
设置网络桥接。在以下示例中,eth0
表示被桥接的外部接口,而 br0
表示桥接接口。
要创建桥接接口,请以 root
用户身份运行以下命令来创建配置文件:
cat > /etc/systemd/network/50-br0.netdev << EOF
[NetDev]
Name=br0
Kind=bridge
EOF
要将网络接口分配给桥接,请以 root
用户身份运行以下命令来创建配置文件:
cat > /etc/systemd/network/51-eth0.network << EOF
[Match]
Name=eth0
[Network]
Bridge=br0
EOF
对需要桥接的其他任何接口重复此过程。请注意,务必不要让任何程序为被桥接的接口分配地址。如果您正在使用 NetworkManager-1.56.1, 请确保将其配置为忽略被桥接的接口,以及桥接接口本身。
如果您所在网络使用 DHCP 分配 IP 地址,请以 root
用户身份运行以下命令来创建配置文件:
cat > /etc/systemd/network/60-br0.network << EOF
[Match]
Name=br0
[Network]
DHCP=yes
EOF
或者,如果使用静态 IP 设置,请以 root
用户身份运行以下命令来创建配置文件:
cat > /etc/systemd/network/60-br0.network << EOF
[Match]
Name=br0
[Network]
Address=192.168.0.2/24
Gateway=192.168.0.1
DNS=192.168.0.1
EOF
如果您希望与连接到桥接的其他系统通信,例如 qemu 实例,则还需要启用 IP 转发。同样以 root 用户身份执行:
echo 'IPForward=ipv4' >> /etc/systemd/network/60-br0.network
要启用桥接接口,只需以 root 用户身份运行以下命令重启
systemd-networkd
守护进程:
systemctl restart systemd-networkd