43多网卡bonding及网桥

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了43多网卡bonding及网桥相关的知识,希望对你有一定的参考价值。

将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。直接给两块网卡设置同一IP地址是不可以的。通过 bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址。

bonding模式

共7种模式0-6mode

mode 0(balance-rr):轮询策略;

mode 1(active-backup):主备策略

mode 3(broadcast):广播策略,在所有接口上传所有报文

注意:active-backup、balance-tlb 和 balance-alb 模式不需要交换机的任何特殊配置。其他绑定模式需要配置交换机以便整合链接。如:Cisco 交换机需要在模式 0、2 和 3 中使用 EtherChannel,但在模式4中需要 LACP和 EtherChannel

bonding配置
14:22:22root@lgw-linux-7network-scripts]#clear
[14:22:24root@lgw-linux-7network-scripts]#touch ifcfg-bond0
[14:22:37root@lgw-linux-7network-scripts]#vim ifcfg-bond0

TYPE=bond
DEVICE=bond0
BOOTPROTO=none
IPADDR=10.0.7.200
PREFIX=8
#miimon指定链路监测时间间隔。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一
条线路不通就转入另一条线路
BONDING_OPTS="mode=1 miimon=100

[14:24:59root@lgw-linux-7network-scripts]#mv ifcfg-eth0 ifcfg-eth.bak
[14:25:21root@lgw-linux-7network-scripts]#touch ifcfg-eth0
[14:25:35root@lgw-linux-7network-scripts]#mv ifcfg-eth1 ifcfg-eth1.bak
[14:25:48root@lgw-linux-7network-scripts]#touch ifcfg-eth1
[14:25:56root@lgw-linux-7network-scripts]#vim ifcfg-eth0

DEVICE=eth0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes

[14:27:40root@lgw-linux-7network-scripts]#vim ifcfg-eth1
[14:28:07root@lgw-linux-7network-scripts]#systemctl restart network

43、多网卡bonding及网桥_nmcli

查看bond状态

43、多网卡bonding及网桥_桥接_02

删除bond

rmmod bonding或者bond链路断开

43、多网卡bonding及网桥_nmcli_03

nmcli命令

nmcli依赖networkmanager服务,需要启动此服务器,nmtui是图形化配置工具

格式

nmcli [ OPTIONS ] OBJECT COMMAND | help device - show and manage network interfaces

nmcli device help

connection - start, stop, and manage network connections

nmcli connection help

修改IP地址等属性

nmcli connection modify IFACE [+|-]setting.property value setting.property: ipv4.addresses ipv4.gateway ipv4.dns1 ipv4.method manual |auto

修改配置文件执行生效

nmcli con reload
nmcli con up con-name

nmcli con mod

ifcfg**-*** 文件

ipv4.method manual

BOOTPROTO=none

ipv4.method auto

BOOTPROTO=dhcp

ipv4.addresses 192.168.2.1/24

IPADDR=192.168.2.1 PREFIX=24

ipv4.gateway 172.16.0.200

GATEWAY=192.0.2.254

ipv4.dns 8.8.8.8

DNS0=8.8.8.8

ipv4.dns-search example.com

DOMAIN=example.com

ipv4.ignore-auto-dns true

PEERDNS=no

connection.autoconnect yes

ONBOOT=yes

connection.id eth0

NAME=eth0

connection.interface-name eth0

DEVICE=eth0

802-3-ethernet.mac-address . . .

HWADDR= . . .

#查看帮助
nmcli con add help
#使用nmcli配置网络
nmcli con show
#显示所有活动连接
nmcli con show --active
#显示网络连接配置
nmcli con show "System eth0"
#显示设备状态
nmcli dev status
#显示网络接口属性
nmcli dev show eth0
#创建新连接default,IP自动通过dhcp获取
nmcli con add con-name default type Ethernet ifname eth0
#删除连接
nmcli con del default
#创建新连接static ,指定静态IP,不自动连接
nmcti con add con-name static ifname eth0 autoconnect no type Ethernet
ipv4.addresses 172.25.X.10/24 ipv4.gateway 172.25.X.254
#启用static连接配置
nmcli con up static
#启用default连接配置
nmcli con up default
# 重新加载网卡配置文件
nmcli con reload
#修改连接设置
nmcli con mod “static” connection.autoconnect no
nmcli con mod “static” ipv4.dns 172.25.X.254
nmcli con mod “static” +ipv4.dns 8.8.8.8
nmcli con mod “static” -ipv4.dns 8.8.8.8
nmcli con mod “static” ipv4.addresses “172.16.X.10/24 172.16.X.254”
nmcli con mod “static” +ipv4.addresses 10.10.10.10/16
#DNS设置存放在/etc/resolv.conf,PEERDNS=no 表示当IP通过dhcp自动获取时,dns仍是手动设置,
不自动获取等价于下面命令
nmcli con mod “system eth0” ipv4.ignore-auto-dns yes
# 在特定的接口上使用指定的 VLAN 号添加一个虚拟局域网(VLAN)接口、IP 地址、和网关。
nmcli con add type vlan con-name <connection-name> dev <interface> id <vlan-number> ipv4 <ip/cidr> gw4 <gateway-ip>

43、多网卡bonding及网桥_bond_04

43、多网卡bonding及网桥_bond_05

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
网络组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 连接名,连接名若不指定,默认为team-slave-IFACE
INAME 网络接口名
TEAM 网络组接口名
#断开和启动
nmcli dev dis INAME
nmcli con up CNAME
INAME 设备名 CNAME 网络组接口名或port接口

43、多网卡bonding及网桥_桥接_06

43、多网卡bonding及网桥_nmcli_07

43、多网卡bonding及网桥_bond_08

43、多网卡bonding及网桥_nmcli_09

43、多网卡bonding及网桥_bond_10

43、多网卡bonding及网桥_bond_11

查看team状态

43、多网卡bonding及网桥_bond_12

43、多网卡bonding及网桥_bond_13

43、多网卡bonding及网桥_bond_14

43、多网卡bonding及网桥_bond_15

删除网络组

nmcli connection down team0
teamdctl team0 state
nmcli connection show
nmcli connectioni delete team0-eth0
nmcli connectioni delete team0-eth1
nmcli connection show

43、多网卡bonding及网桥_bond_16

网桥

桥接:把一台机器上的若干个网络接口“连接”起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互相转发。网桥就是这样一个设备,它有若干个网口,并且这些网口是桥接起来的。与网桥相连的主机就能通过交换机的报文转发而互相通信。

配置实现网桥

工具包:bridge-utils

#查看网桥
brctl show
#查看CAM(content addressable memory内容可寻址存储器)表
brctl showmacs br0
#添加和删除网桥
brctl addbr | delbr br0
#添加和删除网桥中网卡
brctl addif | delif br0 eth0
#默认br0 是down,必须启用
ifconfig br0 up
#启用STP
[root@centos7 ~]#brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c297e67a3 no eth1
eth2
[root@centos7 ~]#brctl stp br0 on stp可以防范冗余时的回环

43、多网卡bonding及网桥_桥接_17

43、多网卡bonding及网桥_桥接_18

网络存在环路的时候,sw2查找MAC地址,不存在,那么它向SW1、SW3广播,SW1、SW3也不存在,那么它们也向外广播,这样一来,就会形成双向广播环,广播风暴最终会导致网络资源耗尽,交换机死机。

​在这个时候,STP就起到作用了

stp协议是逻辑上断开环路,防止广播风暴的产生 当线路出现故障,断开的接口被激活,恢复通信,起备份线路的作用

此时网络中的根桥为SW1

SW2直连SW2的端口到达根桥开销最小所以成为SW2的RP端口

SW3直连SW1的端口到达根桥的开销大于SW3直连SW2的端口到达根桥的开销,所以SW3直连SW2的端口成为RP端

#1创建网桥
nmcli con add type bridge con-name br0 ifname br0
nmcli connection modify br0 ipv4.addresses 10.0.7.200/24 ipv4.method manual
nmcli con up br0
#2加入物理网卡
nmcli con add type bridge-slave con-name br0-port0 ifname eth0 master br0
nmcli con add type bridge-slave con-name br0-port1 ifname eth1 master br0
nmcli con up br0-port0
nmcli con up br0-port1
#3查看网桥配置文件
cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
STP=yes
TYPE=Bridge
BOOTPROTO=static
IPADDR=10.0.7.200
PREFIX=24
cat /etc/sysconfig/network-scripts/ifcfg-br0-port0
TYPE=Ethernet
NAME=br0-port0
DEVICE=eth0
ONBOOT=yes
BRIDGE=br0
UUID=23f41d3b-b57c-4e26-9b17-d5f02dafd12d
#4删除br0
nmcli con down br04.9 网络测试诊断工具

以上是关于43多网卡bonding及网桥的主要内容,如果未能解决你的问题,请参考以下文章

Centos网络管理-Bonding网络组和网桥

Linux下多网卡绑定bond0及模式

CentOS多网卡绑定

Linux多网卡绑定(bond)及网络组(team)

使用nmcli 实现 bond0 网络组 网桥三种模式

多网卡同IP和同网卡多IP技术