CentOS/RHEL下如何创建网桥

libvirt 网络的主要组件是虚拟网络交换机,也称为网桥。
我们可以将网桥想象成一个物理交换机。
在真正的交换机中,连接到服务器的物理端口数量有限。
在这里,在 Linux 网桥上,连接虚拟机接口的虚拟端口数量不受限制。
与物理交换机类似,网桥从它接收的数据包中学习 MAC 地址并将这些 MAC 地址存储在 MAC 表中。
数据包(帧)转发决策是根据它获知并存储在 MAC 表中的 MAC 地址做出的。

https://onitroad.com 更多教程

创建永久网桥

如果想创建一个永久的网桥,你可以在 /etc/sysconfig/network-scripts/ 中创建一个 ifcfg 文件:

# cat /etc/sysconfig/network-scripts/ifcfg-bridge0 
DEVICE=bridge0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.200.254
NETMASK=255.255.255.0

然后当网络服务重新启动时就会创建网桥。

# service network restart

请注意“TYPE=Bridge”行中的“B”必须为大写。

如果我们想在 KVM 环境中通过 virt-manager 查看网桥,请在 /etc/libvirt/qemu/networks/ 中为每个网桥创建 xml 文件。
例如,

# pwd
/etc/libvirt/qemu/networks
# cat bridge0.xml 
<network>
  <name>bridge0</name>
  <uuid>31ece935-71a7-952e-d656-f5fdf9ccdf6e</uuid>
  <bridge name='bridge00' stp='on' forwardDelay='0' />
  <ip address='192.168.200.254' netmask='255.255.255.0'>
  </ip>
</network>

然后重启libvirtd服务,重新执行virt-manager。

# service libvirtd restart

说明

请正确填写网桥元素名称。
我们可以使用 uuidgen 命令为设备生成 uuid:

# uuidgen

更多信息请参考:

man brctl
/etc/init.d/network

临时创建网桥

如果要临时创建网桥,可以使用以下命令:

# brctl addbr BRIDGE_NAME

例如:

# brctl addbr mybridge

我们可以使用以下命令验证新创建的 beidge。

# brctl show
bridge name     bridge id               STP enabled     interfaces
mybridge        8000.000000000000       no
virbr0          8000.000000000000       yes
xenbr0          8000.feffffffffff       no              peth0
                                                        vif0.0
日期:2020-09-17 00:10:49 来源:oir作者:oir