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自动补上,此时网络一直保持通畅 |
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自动补上,此时网络一直保持通畅 |
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 | 设置完成后重启服务,使修改立即生效 |
(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 | 查看是否删除 |