本文演示了主流操作系统Ubuntu20.04(18.04配置方法一样,都是基于netplan)、CentOS7(这篇文章的草稿开了大概半年,结果把centos熬成了绝唱)、Windows Server 2019和思科、华为交换机的端口汇聚配置。都是一些挺基础的内容,没什么技术含量,当个手册看吧。
Ubuntu和CentOS既可以在进入系统后用手写配置文件的方式创建网卡汇聚,也可以直接在系统安装的时候借助引导界面来配置并创建汇聚。
Ubuntu安装过程中创建bonding
系统安装过程进入Network connections界面时,选择Create bond,并在弹出的窗口中指定成员网卡、bonding模式。确认以后即可在网络连接界面中看到新的bond0网卡。
需要注意的是,创建bond以后,网卡默认是disable状态,还要手工配置网络参数(DHCP或静态IP)将其启用。
CentOS7安装过程中创建bond
进入安装配置界面时,选择Network & Hostname,在接口列表下方,点击 + 按钮,选择接口类型为Bond,即可打开Bond添加界面。
添加bond slave时,选择Ethernet类型的接口(即本地网卡),并在bond slave详情界面指定具体的网卡。
Ubuntu进入系统后手动创建bond(netplan)
这个配置文件记不住找不到不明白都没关系,只要按上面的步骤,在安装系统的时候创建bond就会自动生成,然后到/etc/netplan目录下找就是。
# /etc/netplan/xxxx.yaml
# This is the network config written by 'subiquity'
network:
bonds:
bond0:
dhcp4: true
interfaces:
- ens33
- ens34
parameters:
mode: balance-alb
ethernets:
ens33: {}
ens34: {}
version: 2
CentOS7进入系统后手动创建bond
CentOS在安装的时候创建Bond会为每个成员网卡创建一个关联的slave接口,所以自动生成的配置文件的构成比较繁琐:
- ifcfg-ens33
- ifcfg-ens34
- ifcfg-bond0_slave_1
- ifcfg-bond0_slave_2
- ifcfg-Bond_connection_1
[root@localhost network-scripts]# cat ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=ca18ffdc-3b56-4d86-ac8b-1b420d4c9a74
DEVICE=ens33
ONBOOT=no
[root@localhost network-scripts]# cat ifcfg-bond0_slave_1
HWADDR=00:0C:29:31:8B:1D
TYPE=Ethernet
NAME="bond0 slave 1"
UUID=dcae64ba-b24a-43d3-aa1c-e9998e651796
DEVICE=ens33
ONBOOT=yes
MASTER=bond0
SLAVE=yes
[root@localhost network-scripts]# cat ifcfg-Bond_connection_1
BONDING_OPTS="downdelay=0 miimon=1 mode=balance-alb updelay=0"
TYPE=Bond
BONDING_MASTER=yes
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_PRIVACY=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME="Bond connection 1"
UUID=d2eff1ca-8cd8-4ecd-95c0-e23b70227c18
DEVICE=bond0
ONBOOT=yes
手动创建bonding的时候,首先需要确保加载了bonding模块,如果没有,用modprobe bonding命令加载,然后创建bond接口,最后修改成员网口的配置文件添加bond信息即可。
DEVICE=bond0
TYPE=Bond
NAME=bond0
BONDING_MASTER=yes
BOOTPROTO=dhcp
ONBOOT=yes
BONDING_OPTS="mode=6"
# ifcfg-ens33/ens34
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
DEFROUTE=yes
NAME=ens34
UUID=c34874b1-f959-4cf0-b766-ffc30e6dd74a
DEVICE=ens34
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
Windows Server
较早版本的windows中如果想做网卡聚合,必须借助网卡厂商的官方teaming软件进行配置方可,但是现在的windows server早已经自带了NIC组合功能,打开“服务器管理器”,查看“本地服务器”就可以找到这个功能的配置入口。
CISCO(二层ether-channel)
ether channel要求成员接口使用相同的工作模式(trunk/相同vlan的access mode)。此外,各版本对端口协商模式的支持程度也不一样。
配置命令非常简单,只有一句话,只要在成员接口的接口模式下运行就行了,实际配置的时候,把后边的mode改成实际的协商模式即可。
channel-group 1 mode <mode>
华为(eth-trunk)
先用int eth-trunk id创建一个端口组,然后到每个成员接口下面,把对应接口用eth-trunk id命令加入端口组即可跑起来一个最简单的汇聚。
int eth-trunk 1
mode lacp
quit
int gx/x/x
eth 1
(* 实在不想装模拟器去演示了,就这样吧)