我曾经在 CentOS 7 上创建过一个网桥,如下所示,我将禁用 NetworkManager 并手动编辑配置文件。
但是我想nmcli
用 NetworkManager 来实现这一点。
这篇文章说这是由
nmcli con add ifname br0 type bridge con-name br0
nmcli con add type bridge-slave ifname eno1 master br0
nmcli connection show
但没有解释为什么突然bridge-slave
引入 a 以及它的用途。
问题
有人能解释一下什么bridge-slave
是,以及这 3 个命令是否确实是创建 KVM 网络桥的方法吗?
cd /etc/sysconfig/network-scripts
cp ifcfg-eno1 _ifcfg-eno1.backup
cat << EOF > /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
IPADDR=xxx.xxx.xx.xx
PREFIX=22
BOOTPROTO=none
ONBOOT=yes
DELAY=0
NM_CONTROLLED=no
DNS1=xx.xxx.xx.x
DNS2=xx.xxx.xx.x
GATEWAY=x.xxx.xx.x
EOF
cat << EOF > /etc/sysconfig/network-scripts/ifcfg-eno1
HWADDR=A0:D3:C1:05:C3:30
DEVICE=eno1
TYPE=Ethernet
NAME=eno1
BOOTPROTO=none
ONBOOT=yes
BRIDGE=br0
NM_CONTROLLED=no
EOF
systemctl stop NetworkManager.service
systemctl disable NetworkManager.service
systemctl restart network
答案1
网桥(在本例中)是连接一个或多个网络接口的虚拟接口。它可以与交换机进行比较。如果您将一个接口(在本例中为 eno1(您的物理网络接口)添加到网桥,则它被称为网桥的从属。
这个想法是,将物理接口添加到网桥(这就是“nmcli con add type bridge-slave ifname eno1 master br0”所做的)并在网桥接口而不是物理接口上进行 IP 配置。
如果您现在创建一个虚拟机并将其连接到 br0 接口,则虚拟机的网络适配器也将成为 br0 的从属。因此,虚拟机的网络适配器和 eno1 之间有某种交换网络。