Linux中的高级网络控制(链路聚合与桥接)

Linux中的高级网络控制

1、链路聚合

bond

(1)先在真机中

命令 功能
virt-manager 给虚拟机添加至两块网卡,才可实现模拟操作

(2)在虚拟机中

命令 功能
ip addr show 先查看是否有两块网卡
nmcli connection delete System\ eth0 删除添加网卡时自动建立出的system eth0
nmcli connection add con-name bond0 ifname bond0 type bond mode active-backup ip4 172.25.254.xxx/24(本机IP) con-name是链接名称,ifname是接口名称,建立一个名为bond0的链路,类型为bond,模式为active-backup
watch -n 1 cat /proc/net/bonding/bond0 动态监控该地址
ping 172.25.254.xxx(另一机ip) ping另一机动态查看是否能通
nmcli connection add con-name eth0 ifname eth0 type bond-slave master bond0 建立一个类型为bond-slave的链路eth0,主链路为bond0,此时添加后可ping通网络
nmcli connection add con-name eth1 ifname eth1 type bond-slave master bond0 建立一个类型为bond-slave的链路eth1,主链路为bond0
nmcli connection down eth0 停止eth0后,eth1自动补上,此时网络一直保持通畅

Linux中的高级网络控制(链路聚合与桥接)

team(可做负载均衡)

命令 功能
nmcli connection delete bond0 还原环境
nmcli connection delete eth0 还原环境
nmcli connection delete eth1 还原环境
watch -n 1 “teamdctl team0 state;ping -w1 172.25.254.xxx(另一机ip)” 动态监控team0的状态以及网络是否通畅
nmcli connection add con-name team0 ifname team0 type team config ‘{“runner”:{“name”:“activebackup”}}’ ip4 172.25.254.xxx/24(本机ip) 建立一个类型为team,模式为actvebackup的链路
nmcli connection add con-name eth0 ifname eth0 type team-slave master team0 建立类型为team-slave的链路eth0,主链路为team0,此时网络通畅
nmcli connection add con-name eth1 ifname eth2 type team-slave master team0 建立类型为team-slave的链路eth0,主链路为team0,此时网络通畅
nmcli connection down eth0 停止eth0后,eth1自动补上,此时网络一直保持通畅

Linux中的高级网络控制(链路聚合与桥接)

2、虚拟机与真机接口的桥接

(1)如何修改配置文件来建立桥接接口

命令 功能
vim /etc/sysconfig/network-scripts/ifcfg-enp0s25 修改该文件
DEVICE=enp0s25 设备名为真实硬件设备
BOOTPROTO=none 静态
ONBOOT=yes
BRIDGE=br0 在该设备上开启一个桥接接口br0
vim /etc/sysconfig/network-scripts/ifcfg-br0 修改桥接接口br0文件
DEVICE=br0 设备名称需一致
BOOTPROTO=none 静态
IPADDR=172.25.254.54 设置IP
NETMASK=255.255.255.0 设置掩码
ONBOOT=yes
TYPE=Bridge 设置类型为Bridge,说明这不是一个真实硬件设备,而是一个桥接接口
systemctl restart network 设置完成后重启服务,使修改立即生效

Linux中的高级网络控制(链路聚合与桥接)

(2)如何使用命令建立桥接接口

命令 功能
brctl show 查看现有的桥接接口
bridge link show 查看现有的桥接接口的另一方式
brctl addbr br0 建立一个新的桥接接口
brctl show 查看br0是否被建立
brctl addif br0 eth0 给br0加一个网卡eth0,使该接口可用
brctl show 查看eth0是否加上
ping 172.25.254.xxx(另一机ip) 查看网络是否畅通

(3)如何使用命令删除桥接接口

命令 功能
brctl show 先查看现在的桥接接口状态
brctl delif br0 eth0 如果接口有添加的网卡,则先把网卡关系删除
brctl show 查看网卡关系是否被删除
brctl delbr br0 删除br0桥接接口
brctl show 查看是否删除

Linux中的高级网络控制(链路聚合与桥接)