0

43、多网卡bonding及网桥

 3 days ago
source link: https://blog.51cto.com/gavenlee/5707285
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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:[email protected]]#clear
[14:22:[email protected]]#touch ifcfg-bond0
[14:22:[email protected]]#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:[email protected]]#mv ifcfg-eth0 ifcfg-eth.bak
[14:25:[email protected]]#touch ifcfg-eth0
[14:25:[email protected]]#mv ifcfg-eth1 ifcfg-eth1.bak
[14:25:[email protected]]#touch ifcfg-eth1
[14:25:[email protected]]#vim ifcfg-eth0

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

[14:27:[email protected]]#vim ifcfg-eth1
[14:28:[email protected]]#systemctl restart network
43、多网卡bonding及网桥_bond

查看bond状态

43、多网卡bonding及网桥_nmcli_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及网桥_nmcli_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及网桥_nmcli_06
43、多网卡bonding及网桥_bond_07
43、多网卡bonding及网桥_桥接_08
43、多网卡bonding及网桥_nmcli_09
43、多网卡bonding及网桥_nmcli_10
43、多网卡bonding及网桥_nmcli_11

查看team状态

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

43、多网卡bonding及网桥_bond_13

43、多网卡bonding及网桥_桥接_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及网桥_nmcli_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
[[email protected] ~]#brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c297e67a3 no eth1
eth2
[[email protected] ~]#brctl stp br0 on stp可以防范冗余时的回环
43、多网卡bonding及网桥_bond_17
43、多网卡bonding及网桥_bond_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 网络测试诊断工具
  • 收藏
  • 评论
  • 分享
  • 举报

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK