在centos中使用nmcli工具创建虚拟网桥

本文最后更新于:April 8, 2021 am

本文主要介绍如何在centos8中使用nmcli工具创建虚拟网桥并且添加物理网卡到虚拟网桥中,使其成为一个二层交换机。

这个操作不仅适用于物理网卡设备上,还适用于各种虚拟机的虚拟网卡设备。

目标是将红框内的三个网卡都组合成为一个二层的交换机,首先我们需要创建一个网桥设备,这个设备的功能就相当于我们平时使用的交换机

1
nmcli connection add type bridge con-name switch ifname switch autoconnect yes

接着我们将需要的网卡添加到刚刚创建的名为switch的网桥中

1
2
3
nmcli connection add type bridge-slave ifname enp0s20u3 master switch
nmcli connection add type bridge-slave ifname enp0s20u4 master switch
nmcli connection add type bridge-slave ifname enp6s0 master switch

完成添加之后我们需要对网桥和网卡的配置进行修改,编辑对应的配置文件修改启动选项和IP地址:/etc/sysconfig/network-scripts/ifcfg-*,把添加到switch网桥的所有网卡取消开机启动,避免和网桥的配置产生冲突:

1
ONBOOT=no

同时给网桥设置静态IP地址,配置的方法和部分相关配置如下

1
2
3
4
5
6
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.1
NETMASK=255.255.255.0
GATEWAY=192.168.1.253
DNS1=8.8.8.8

配置完成之后,这时的整个switch设备就相当于一个拥有三个RJ45接口的带有管理IP的二层交换机。我们在switch的网卡上面接上路由器,另一个接口接上我们的电脑,理论上这时候就能够正常获取路由器通过DHCP下发的IP地址:

电脑网卡使用网线直接连接到Linux主机上已经添加到网桥中的网卡,查看状态可以直接获取到IPv4和IPv6的地址并且能够正确联网,这时候证明整个虚拟网桥设备是可以正常工作的。

同样的操作我们还可以在KVM虚拟机上面实现,一般情况下如果我们给虚拟机直接添加宿主机网卡的桥接网卡,是可以实现虚拟机和宿主机处在相同网段的操作的。但是这个时候会出现宿主机没办法直接和虚拟机进行通信的情况。

这时候就可以创建一个虚拟网桥,然后把宿主机的网卡添加到这个网桥内,然后虚拟机的网卡创建的时候选择桥接这个虚拟网桥即可。