网络接口配置-bonding 、网络组Network Teaming 、网桥、网络测试工具
Bonding
-
将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。
-
直接给两块网卡设置同一IP地址是不可以的,通过bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址
-
bonding的特点:
高可用、负载均衡、虚拟网卡、物理网卡MAC相同 -
bonding的优势:
避免单点故障、增加网络带宽 -
binding工作模式:一共7种(0-6)mode(常见三种)
1)Mode 0 (balance-rr): 轮询(Round-robin)策略,从头到尾顺序的在每一个slave接口上面发送数据包。本模式提供负载均衡和容错的能力
2)Mode 1 (active-backup): 活动-备份(主备)策略,只有一个slave被激活,当且仅当活动的slave接口失败时才会激活其他slave.为了避免交换机发生混乱此时绑定的MAC地址只有一个外部端口上可见
3)Mode 3 (broadcast):广播策略,在所有的slave接口上传送所有的报文,提供容错能力 -
active-backup、balance-tlb 和 balance-alb 模式不需要交换机的任何特殊配置。其他绑定模式需要配置交换机以便整合链接。如:Cisco 交换机需要在模式 0、2 和 3 中使用EtherChannel,但在模式4中需要LACP和EtherChannel
bonding配置
-
创建bonding设备的配置文件
-
/etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=none
BONDING_OPTS= “miimon=100 mode=0”
IPADDR=
PREFIX=
GATEWAY=
DNS= -
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no -
查看bond0状态:/proc/net/bonding/bond0
-
miimon 是用来进行链路监测的。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路
-
删除bond0
ifconfig bond0 down
rmmod bonding -
详细帮助:
/usr/share/doc/kernel-doc- version/Documentation/networking/bonding.txt
https://www.kernel.org/doc/Documentation/networking/bonding.txt
nmcli实现bonding
- 添加bonding接口
nmcli con add type bond con-name mybond0 ifname bond0 mode
active-backup - 添加从属接口
nmcli con add type bond-slave ifname ens7 master bond0
nmcli con add type bond-slave ifname ens3 master bond0
注:如无为从属接口提供连接名,则该名称是接口名称加类型构成 - 要启动绑定,则必须首先启动从属接口
nmcli con up bond-slave-eth0
nmcli con up bond-slave-eth1 - 启动绑定
nmcli con up mybond0
网卡绑定实验
-
配置文件(mode 1 主备)
-
MAC地址相同
-
查看当前哪个网卡正在工作
-
掐掉正在工作的网线时,发现ping丢了一个包
-
配置文件(mode 3 广播策略)
-
收发双份
网络组Network Teaming
- 网络组:是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量
- 网络组不同于旧版中bonding技术,提供更好的性能和扩展性
- 网络组由内核驱动和teamd守护进程实现.
- 多种方式runner
broadcast
roundrobin
activebackup
loadbalance
lacp (implements the 802.3ad Link Aggregation Control Protocol) - 启动网络组接口不会自动启动网络组中的port接口
- 启动网络组接口中的port接口总会自动启动网络组接口
- 禁用网络组接口会自动禁用网络组中的port接口
- 没有port接口的网络组接口可以启动静态IP连接
- 启用DHCP连接时,没有port接口的网络组会等待port接口的加入
创建网络组接口
- nmcli con add type team con-name CNAME ifname INAME [config JSON]
CNAME 连接名,INAME 接口名
JSON 指定runner方式
格式:’{“runner”: {“name”: “METHOD”}}’
METHOD 可以是broadcast, roundrobin, activebackup, loadbalance, lacp
创建port接口
- nmcli con add type team-slave con-name CNAME ifname INAME master
TEAM
CNAME 连接名
INAME 网络接口名
TEAM 网络组接口名 - 连接名若不指定,默认为team-slave-IFACE
- nmcli dev dis INAME
- nmcli con up CNAME
INAME 设备名 CNAME 网络组接口名或port接口
示例:
nmcli con add type team con-name myteam0 ifname team0 config ‘{“runner”:
{“name”: “loadbalance”}}‘ ipv4.addresses 192.168.1.100/24 ipv4.method manual
nmcli con add con-name team0-eth1 type team-slave ifname eth1 master team0
nmcli con add con-name team0-eth2 type team-slave ifname eth2 master team0
nmcli con up myteam0
nmcli con up team0-eth1
nmcli con up team0-eth2
teamdctl team0 state
nmcli dev dis eth1
管理网络组配置文件
-
/etc/sysconfig/network-scripts/ifcfg-team0
DEVICE=team0
DEVICETYPE=Team
TEAM_CONFIG="{“runner”: {“name”: “broadcast”}}"
BOOTPROTO=none
IPADDR0=172.16.0.100
PREFIX0=24
NAME=team0
ONBOOT=yes -
/etc/sysconfig/network-scripts/ifcfg-team0-eth1
DEVICE=eth1
DEVICETYPE=TeamPort
TEAM_MASTER=team0
NAME=team0-eth1
ONBOOT=yes
删除网络组
- nmcli connection down team0
- teamdctl team0 state
- nmcli connection show
- nmcli connectioni delete team0-eth0
- nmcli connectioni delete team0-eth1
- nmcli connection show
网桥
- 桥接:把一台机器上的若干个网络接口“连接”起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互相转发。网桥就是这样一个设备,它有若干个网口,并且这些网口是桥接起来
的。与网桥相连的主机就能通过交换机的报文转发而互相通信。 - 主机A发送的报文被送到交换机S1的eth0口,由于eth0与eth1、eth2桥接在一起,故而报文被复制到eth1和eth2,并且发送出去,然后被主机B和交换机S2接收到。而S2又会将报文转发给主机C、D
配置实现网桥
- 创建软件网桥
nmcli con add con-name mybr0 type bridge con-name br0 ifname br0
nmcli con modify mybr0 ipv4.addresses 192.168.0.100/24 ipv4.method manual
nmcli con add con-name br0-port0 type bridge-slave ifname eth0 master br0 - 查看配置文件
cat /etc/sysconfig/network-scripts/ifcfg-br0
cat /etc/sysconfig/network-scripts/ifcfg-br0-port0 - 工具包 yum install bridge-utils
- 查看网桥 brctl show
- 查看CAM表 brctl showmacs br0
- 添加和删除网桥 brctl addbr | delbr br0
- 添加和删除网桥中网卡 brctl addif | delif br0 eth0
- 注意:NetworkManager只支持以太网接口接口连接到网桥,不支持聚合接口
实验
测试网络工具
- 在命令行下测试网络的连通性
显示主机名
hostname
测试网络连通性
ping
显示正确的路由表
ip route - 跟踪路由
traceroute
tracepath
mtr - 确定名称服务器使用
nslookup
host
dig