一、链路聚合

    如果只有一张网卡连到交换机,容易出现单点故障,并且,带宽有限,所以需要链路聚合

    所谓链路聚合,就是把多张网卡绑定在一起,逻辑上看来就是一张网卡,从而实现故障转移和更高的吞吐量。

 

实现:

  • 内核程序,处理网络进来的包

  • 数据包到底从哪个网卡进来,是由网络交换机决定的,比如思科的chanel

     

用户态程序:

centos6:bond

centos7:team

 

1、常用链路聚合方式

    链路聚合分为动态和静态两种,静态的通过手工配置,动态的通过协议协商(LACP)

  • 静态链路聚合,不需要控制协议,通过手工配置,当组成员端口启动后,立即生效,成为活动的成员端口。

  • 动态链路聚合,需要使用链路聚合控制协议(LACP),组成员是否成为活动端口,取决于LACP的协商结果。

 

注意:

  • 主机和交换机配置需要一致,如果选用静态方式,主机和交换机都需要配置成静态;如果选用动态方式,主机和交换机都需要配置成动态。

  • 建议使用静态方式

 

2、工作模式

2.1、activebackup

    主从,数据包从主走,只有主down了,才会走从

    TEAM_CONFIG="{\"runner\":{\"name\":\"activebackup\"}}"

 

2.2、roundrobin

    轮询,第一个包从第一个物理网卡出去,第二个包从第二个物理网卡出去,第三个又从第一个网卡出去

 

2.3、loadbalance

    监控流量,并使用hash以尝试在选择传输端口的时候,达到完美均衡

 

2.4、lacp

    使用802.3ad链路聚合协议。

 

特点:

  • 只要一个物理网卡可用,整个逻辑网卡都可用

  • 只有所有物理网卡都不可用了,逻辑网卡才失效

  • 不能给物理网卡配IP,只能给逻辑网口(team口)设置IP

 

3、配置链路聚合

3.1、创建team口

#创建一个team口叫team1,并为它创建链接文件也叫team1,并且指定使用loadbalance方式

nmcli connection add type team con-name t1 ifname 1 \

config '{"runner":{"name":"loadbalance"}}'

 

3.2、把物理网卡加入到team口

前提:所有物理网卡必须是up状态,ip addr show查看

 

#把eth0和eth1两个网卡加入到team1,并创建新的配置文件,分别是team1-slave1和team1-slave2

nmcli connection add type team-slave con-name s1 \

ifname eth0 master t1

 

nmcli connection add type team-slave con-name s2 \

ifname eth1 master t1

 

3.3、team配置文件

DEVICE=t1

TEAM_CONFIG="{\"runner\":{\"name\":\"roundrobin\"}}"

DEVICETYPE=Team

BOOTPROTO=dhcp

NAME=t1

ONBOOT=yes

 

3.4、网卡配置文件

NAME=s1

DEVICE=eno16777736

ONBOOT=yes

TEAM_MASTER=t1

DEVICETYPE=TeamPort

 

注意:

  • 不要置IP地址

 

3.5、验证

#查看t1这个team的状态

teamdctl t1 state

 

注意:

  • 小心创建team的链接文件的命令

  • 物理网卡必须处于up状态

  • 物理网卡不能有IP

  • 物理网卡的链接文件,不是team-slave的链接文件,所以请把不需要的链接文件删除。

 

二、桥接

用软件的方式实现一个网桥,常用于虚拟化和云环境。

 

1、创建网桥

#创建一个网桥

nmcli connection add type bridge con-name br0 ifname br0

 

#查看配置文件

vi /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE=br0

TYPE=Bridge

BOOTPROTO=static

IPADDR=172.25.0.11

ONBOOT=yes

 

2、添加接口

#将网卡eno16777736接到这个桥

nmcli connection add type bridge-slave con-name br0-port1 \

ifname eno16777736 master br0

 

#查看配置文件

vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

TYPE=Ethernet

BOOTPROTO=static

ONBOOT=yes

BRIDGE=br0

 

3、brctl工具

#查看桥接信息

brctl show

 

#新建一个桥br1

brctl addbr br1

 

#将eth0口,添加到br1桥

brctl addif br1 eth0

 

注意:

  • 使用brctl命令创建的桥及添加的端口,只是当前生效,重启失效。

  • 如果想长期有效,需要添加配置文件