Linux篇 | 多网卡绑定技术 binding 和 网络组nmcli
多网卡绑定
“Bonding” 和 “nmcli的网络组Network Teaming” 网络接口配置:Bonding将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。直接给两块网卡设置同一IP地址是不可以的。通过bonding,虚拟一块网卡对外提供连接,物理网卡被修改为相同的MAC地址。 一。Bonding工作模式多网卡绑定有很多模式,如下: Mode 0 (balance-rr): 轮转(Round-robin)策略:从头到尾顺序的在每一个slave接口上面发送数据包。本模式提供负载均衡和容错的能力。如第一个数据包用网卡1转发,第二个数据包由网卡2转发。 Mode 1 (active-backup) 活动-备份(主备)策略:只有一个slave被激活,当且仅当活动的slave接口失败时才会激活其他slave.为了避免交换机发生混乱,此时绑定的MAC地址只有一个外部端口上可见。即,平时只有一个网卡工作,当网卡坏掉会自动启动第二个网卡工作。 Mode 3 (broadcast) 广播策略:在所有的slave接口上传送所有的报文,提供容错能力。即在所有的网卡上传输一样的数据。 还有其它的模式: active-backup、balance-tlb 和 balance-alb 模式不需要交换机的任何特殊配置。其他绑定模式需要配置交换机以便整合链接。如:Cisco 交换机需要在模式Mode 0、Mode 2 和Mode 3 中使用 EtherChannel,但在模式Mode 4中需要 LACP和EtherChannel 二。Bonding配置1.bonding设备的配置文件第一步:创建bonding设备的配置文件
第二步:在要加入bonding的网卡,的配置文件里写入bonding设备的项。如下: 2.查看bond0的状态查看bond0的状态:/proc/net/bonding/bond0 3.删除bond0第一步:禁用bonding 4.bonding的详细帮助/usr/share/doc/kernel-doc- version/Documentation/networking/bonding.txt 5.实验Mond 1 活动-备份(主备)策略1.确保你有两个网卡,并且都在一个网络,如果用虚拟机做实验,要确保两个网卡是一个模式,如“仅主机模式”。 2.创建bonding设备的配置文件 在/etc/sysconfig/network-scripts目录创建文件ifcfg-bond0 DEVICE=bond0 设备名称 BOOTPROTO=none 协议 IPADDR=192.168.36.6 bonding的ip地址 PREFIX=24 子网掩码 GATEWAY=192.168.36.254 网关 DNS1=192.168.36.6 DNS BONDING_OPTS=miimon=100 mode=1 3.在网卡的配置文件里加入bonding的项 进入/etc/sysconfig/network-scripts/ifcfg-ethXX 添加行: MASTER=bond0 SLAVE=yes 添加后,文件原来指定的静态或动态地址就会失效,生效的是bonding地址 4.确保NetworkManager服务关闭,并重启network服务 Centos6: service NetworkManager status 查看服务状态 chkconfig NetworkManager off 关闭自动启动 service NetworkManager stop 关闭服务 service network restart 重启网络服务 Centos7: systemctl status NetworkManager 查看服务状态 systemctl stop NetworkManager 临时停止 systemctl disable NetworkManager 下次开机即停止服务 systemctl restart network 重启网络服务 5.查看bonding:“ifconfig” 6.检测 停用一个网卡,在ping“bond0”地址,能ping通证明binding的"Mode 1"模式生效了。 7.查看binding设备中,“Mode 1”模式下,binding所属的哪个网卡在活动: 方法一:使用watch -n1 netstat -i查看,不明显可以用另一台电脑ping“binding”的IP地址 方法二:查看/proc/net/bonding/bond0文件 网络组Network Teaming概念:
注意事项:
创建网络组1.创建网络组接口
2.创建port接口
3.新网络组的配置文件
4.创建网络组示例 示例1: nmcli con add type team con-name myteam0 ifname team0 config ‘{“runner”: {“name”: “loadbalance”}}‘ ipv4.addresses 192.168.1.100/24 ipv4.method manual 示例2: nmcli con add con-name team0-eth1 type team-slave ifname eth1 master team0 示例3: nmcli con add con-name team0-eth2 type team-slave ifname eth2 master team0 示例4: nmcli con up myteam0 示例5: nmcli con up team0-eth1 示例6: nmcli con up team0-eth2 示例7:查看tean0状态 teamdctl team0 state 示例8: nmcli dev dis eth1 5.实验:创建、删除网络组 1)创建网络组team0 查看网络连接 ip link 创建网络组team0,名字为myteam0,模式是主备模式 nmcli con add type team con-name myteam0 ifname team0 config‘{"runner": {"name": "activebackup"}}‘ 给网络组添加IP地址 nmcli con mod team0 ipv4.addresses ‘192.168.0.100/24‘ 手工指定 nmcli con mod team0 ipv4.method manual 将物理网卡eth1加入网络组etam0 nmcli con add con-name team0-port1 type team-slave ifname eth1 master team0 将物理网卡eth2加入网络组etam0 nmcli con add con-name team0-port2 type team-slave ifname eth2 master team0 将网络组关联的两个物理网卡启用 nmcli con up team0-port1 nmcli con up team0-port2 查看网络组状态 teamdctl team0 state nmcli connection 2.删除网络组team0 首先禁用网络组team0 nmcli connection down team0 查看网络组 teamdctl team0 state nmcli connection show 删除网络组的网卡设备 nmcli connectioni delete team0-eth0 nmcli connectioni delete team0-eth1 在查看网络组 查看网络组 teamdctl team0 state nmcli connection show 删除网络组示例:删除网络组team0 ` (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |