写在前面
在网上看了端口聚合方式,一直没找到合适的,要么配置不对,要么比较麻烦(ps:我个人比较懒)。后来找到了这种用命令进行配置的方式,在此记录一下。
这种聚合方式,需要对端直连设备也进行相同的聚合配置,否则无法生效
配置方法
# 创建一个新的聚合接口,例如叫做bond0
# 802.3ad 为lacp模式,其他聚合模式看下文
sudo ip link add bond0 type bond mode 802.3ad
# 将物理网卡添加到聚合接口
sudo ip link set eth0 down
sudo ip link set eth1 down
sudo ip link set eth0 master bond0
sudo ip link set eth1 master bond0
# 为聚合接口配置IP地址
sudo ip addr add 192.168.1.10/24 brd + dev bond0
# 启用聚合接口
sudo ip link set bond0 up
# 确认聚合接口状态
sudo cat /proc/net/bonding/bond0
这种配置方式会将eth0和eth1聚合到bond0接口,效果图如下:
在这里,我将eth0换为ensf0,eth1换为ensf1,聚合接口为bond0
注意:在某些Linux发行版中,可能需要加载bonding模块才能正常工作,您可以通过modinfo bonding来检查是否需要加载,如果需要,使用sudo modprobe bonding命令加载模块。
若需要创建vlan子接口,则执行以下命令:
# 创建bond0的vlan id为10 name为bond0.10的vlan子接口
sudo ip link add link bond0 name bond0.10 type vlan id 10
效果图如下:
常见的聚合模式包括:
balance-rr (平衡轮询):负载均衡,每个接口轮流处理数据。
active-backup (主-备份):主机备份,一个接口处于活动状态,另一个作为备份。
broadcast (广播):所有接口都发送流量。
802.3ad (IEEE 802.3ad 动态链接聚合):创建一个逻辑链路,支持多个网络设备。
balance-xor (平衡XOR):根据数据包的目标IP地址进行负载均衡。
balance-tlb (静态交换):基于流的负载均衡。
balance-alb (适应性负载均衡):适应性负载均衡模式,包括交换模式和ARP缓存。
其他相关命令
# 删除网卡
ip link delete 网卡名称
# 删除网卡ip地址
sudo ip addr del 192.168.1.10/24 dev eth0
# 指定接口抓包
tcpdump -i BondEth0.932 -env
# 指定接口发送arp
# 这里,-I eth0指定了发送ARP请求的网络接口,而192.168.1.1是你想要获取MAC地址的目标IP
arping -I eth0 192.168.1.1
# 查看邻居信息
arp -a
最后总结
这种方式做的网口聚合系统重启后就没有了,如果需要更持久的聚合方式,请寻找其他修改文件的方式。