1.bond口的特点
bond口通过将多个网口进行聚合,多个网口聚合后一方面实现了大带宽传输,另外多网口聚合后也同时具有冗余特性,当其中一个网口down掉后,其他网口会继续转发流量,不会导致流量中断。
2.使用条件
当环境中互联用的交换机功能简单不支持聚合,则可以通过在服务器上配置mode6的方式达成上述需求,mode6的使用方式如下所示:
服务器上将2个网口添加到bond0中,并设置聚合模式为mode6,核心交换机无需额外设置,分别与服务器和主机进行端口互联。
3.配置过程
下面在CENTOS7.9服务器上进行配置举例,交换机上无需特殊配置,正常划分VLAN接口。
3.1创建bond配置文件
创建bond配置文件ifcfg-bond0,并做如下配置:
[root@shad0w-top ~]# vim /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BONDING_OPTS="mode=6 miimon=100"
TYPE=Bond
BOOTPROTO=static
DEFROUTE=yes
NAME=bond0
ONBOOT=yes
IPADDR=192.168.250.11
NETMASK=255.255.255.0
GATEWAY=192.168.250.1
DNS1=223.5.5.5
DNS2=223.6.6.6
BONDING_MASTER=yes
3.2修改第一个网卡eth1配置文件
[root@shad0w-top ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet
BOOTPROTO=static
NAME=eth1
DEVICE=eth1
ONBOOT=yes
NM_CONTROLLED=no
MASTER=bond0
SLAVE=yes
3.3修改第二个网卡eth2配置文件
[root@shad0w-top ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth2
TYPE=Ethernet
BOOTPROTO=static
NAME=eth2
DEVICE=eth2
ONBOOT=yes
NM_CONTROLLED=no
MASTER=bond0
SLAVE=yes
4.验证配置
重启网络服务,并进行验证:
[root@shad0w-top ~]# systemctl restart network
接着查看/proc/sys/net/ipv4/conf目录:
ls -lh /proc/sys/net/ipv4/conf
该目录LINUX内核中的一个虚拟文件系统,用于控制和配置网络接口参数。该目录下的文件包含了各种网络接囗的配置参数,如:IP地址、子网俺码、路由表、ARP缓存、MTU等。可以修改这些文件的值,改变网络接囗的行为和性能,从而实现网络优化、安全加固等目的。
5.实现原理
mode6实现了两个方向的负载均衡,分别是收包负载均衡和发包负载均衡。
收包均衡:收到主机发送的ARP(Address Resolution Protocol)请求进行reply应答时,根据请求的主机ip使用不同成员口的mac应答,如上图所示,主机1发送arp请求服务器的mac时,应答报文携带eth1的mac,主机2请求时应答报文携带eth2的mac,主机3请求时应答报文携带eth1的mac;这样主机1发送的报文会从eth1收到,主机2发送的报文会从eth2收到,主机3发送的报文则会从eth1`收到,这样接收的流量就实现了负载均衡。
发包均衡:发送出去的ip报文会根据报文的目的ip地址选择不同的成员口发包,如上图所示,服务器发往主机1的报文会通过eth1发送,发往主机2的报文会通过eth2发送,发往主机3的报文会通过eth1发送。