网络接口绑定和组合的操作实例
- (一)网卡
- 1. 增
- 2. 查
- 3. 激活——设置网络接口
- (二)网络接口绑定
- 1. 概述
- 2. 实验操作
- 3. 删除绑定
- (三)网络接口组合
- 1. 概述
- 2. 实验操作
(一)网卡
1. 增
实验操作:增添四张网卡
网卡名 | IP |
---|---|
ens160 | 10.0.0.99 |
ens161 | 10.0.0.109 |
ens224 | 10.0.0.119 |
ens256 | 10.0.0.219 |
- 1点击设置
1.2 点击添加
1.3 选择网络适配器
1.4 重复上面操作添加三个网络适配器2、3、4
2. 查
# nmcli d 查看到五个网卡设备
输入nmcli d 查看到五个网卡设备,ens160、lo是系统默认网卡,增添的三张网卡是ens161、ens224、ens256,且这三张网卡未启动。
3. 激活——设置网络接口
3.1 配置网络接口
[root@controller ~]# nmcli conn modify +ipv4.addr "10.0.0.99/24"
[root@controller ~]# nmcli connection add con-name ens161 autoconnect no type ethernet ifname ens161 ip4 10.0.0.109/24 gw4 10.0.0.2
[root@controller ~]# nmcli connection add con-name ens224 autoconnect no type ethernet ifname ens224 ip4 10.0.0.119/24 gw4 10.0.0.2
Connection 'ens224' (c6f98838-8f5f-4144-b2af-3e7e8aef1d0c) successfully added.
[root@controller ~]# nmcli connection add con-name ens256 autoconnect no type ethernet ifname ens256 ip4 10.0.0.219/24 gw4 10.0.0.2
Connection 'ens256' (eed64589-d9d6-4e87-9116-00007635573a) successfully added.
3.2 配置dns并重启网络配置
[root@controller ~]# nmcli con mod ens161 ipv4.dns "114.114.114.114 8.8.8.8"
[root@controller ~]# nmcli con mod ens224 ipv4.dns "114.114.114.114 8.8.8.8"
[root@controller ~]# nmcli con mod ens256 ipv4.dns "114.114.114.114 8.8.8.8"
[root@controller ~]# systemctl restart NetworkManager
3.3 激活连接并查看状态
[root@controller ~]# nmcli d up ens161
[root@controller ~]# nmcli d up ens256
[root@controller ~]# nmcli d up ens224
[root@controller ~]# nmcli d //全部启动成功
四张网卡配置成功!!!
可以尝试ping www.baidu.com 外网并且远程连接
(二)网络接口绑定
1. 概述
网络接口绑定是将多个网络接口逻辑地连接到一起。
目的:
1.通过冗余、弹性实现故障移除转移,避免网络接口地单点故障,提高服务器地可用性;
2.提高带宽以提高吞吐率。
NetworkManager的绑定实现方法非常简单,先创建一个bond类型的虚拟连接作为主连接,再基于要加入绑定的若干接口创建它的从连接,每个从连接关联各自的网络接口。
- 绑定模式: 决定网络接口之间的关系
- active-backup(冗余备份模式)、balance-tlb等模式。
2. 实验操作
- 实例:
绑定四张网卡,采用不依赖于交换机支持的冗余备份模式active-backup(又称主备模式)将一个网卡配置为另一个网卡的备用网卡。
- 查看系统的可用的网络接口,执行 ip link命令。经过上面的操作步骤网卡有五个ens160、lo、ens161、ens224、ens256
- 添加bond类型的连接
# nmcli con add type bond con-name bond_test ifname bond_test mode active-backup
Connection 'bond_test' (d632d625-cd8d-40db-84fb-f6fee6b0e7b9) successfully added.
//成功添加的连接"bond_test"。
此处的连接名为’bond_test’,关联的设备(网卡)是bond_test,绑定模式是active-backup。由于bond-test设备不存在,系统将同时创建一个名为bond-test的虚拟设备。与其他类型的连接一样,默认会设置连接开机自动启动(激活)。
- 添加bond-test的从连接
为bond-test添加四个类型为bond-slave的从连接bond_test-slave-1、bond_test-slave-2、bond_test-slave-3、bond_test-slave-4分别关联网卡ens160、ens161、ens224、ens256。
# nmcli con add type bond-slave con-name bond_test-slave-1 ifname ens160 master bond_test
Connection 'bond_test-slave-1' (a6721529-7ed6-4669-8609-151f935df858) successfully added.
//成功添加连接'bond_test-slave-1'
[root@controller ~]# nmcli con add type bond-slave con-name bond_test-slave-2 ifname ens161 master bond_test
Connection 'bond_test-slave-2' (2cfaa53b-8152-4ad3-a16e-12f44b67f7c7) successfully added.
//成功添加连接'bond_test-slave-2'
[root@controller ~]# nmcli con add type bond-slave con-name bond_test-slave-3 ifname ens224 master bond_test
Connection 'bond_test-slave-3' (198ba05d-dcac-408a-a27a-d0abfecbaa40) successfully added.
//成功添加连接'bond_test-slave-3'
[root@controller ~]# nmcli con add type bond-slave con-name bond_test-slave-4 ifname ens256 master bond_test
Connection 'bond_test-slave-4' (46f15963-e251-4e33-ac50-a058c1dc982e) successfully added.
//成功添加连接'bond_test-slave-4'
至此bond_test已成为上述四个从连接的主连接。
- 为bond_test配置IP、网关、DNS。
这个bond类型的连接可以作为一个常规的网络连接使用。
# nmcli conn modify bond_test ipv4.addresses "10.0.0.249/24"
# nmcli conn modify bond_test ipv4.method manual
# nmcli conn modify bond_test ipv4.gateway 10.0.0.2
# nmcli conn modify bond_test ipv4.dns "114.114.114.114 8.8.8.8"
- 激活启动四个从连接一个主连接
# nmcli connection up bond_test-slave-1
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)
# nmcli connection up bond_test-slave-2
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)
# nmcli connection up bond_test-slave-3
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/8)
# nmcli connection up bond_test-slave-4
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/9)
# nmcli connection up bond_test
- 检测
# nmcli c
# nmcli d
# ping www.baidu.com
# ip add show bond_test //查看IP信息。
3. 删除绑定
先删除从连接在删除主连接。
# nmcli c delete bond_test-slave-1
Connection 'bond_test-slave-1' (a6721529-7ed6-4669-8609-151f935df858) successfully deleted.
# nmcli c delete bond_test-slave-2
Connection 'bond_test-slave-2' (2cfaa53b-8152-4ad3-a16e-12f44b67f7c7) successfully deleted.
# nmcli c delete bond_test-slave-3
Connection 'bond_test-slave-3' (198ba05d-dcac-408a-a27a-d0abfecbaa40) successfully deleted.
# nmcli c delete bond_test-slave-4
Connection 'bond_test-slave-4' (46f15963-e251-4e33-ac50-a058c1dc982e) successfully deleted.
# nmcli c delete bond_test
Connection 'bond_test' (d632d625-cd8d-40db-84fb-f6fee6b0e7b9) successfully deleted.
为了进行网络接口组合操作!!!
(三)网络接口组合
1. 概述
NIC组合又称链路聚合,可以将其理解成绑定bond的增强版,将两个或多个网络接口聚合在一起成为一个组。
此次实验形成两个网络接口组合如下图所示:
2. 实验操作
为方便实验,采用不依赖于交换机支持的冗众模式active-backup将一个网卡配置为另一个网卡的备用网卡。
-
ip link 查看网卡
-
test_team1:执行如下命令创建一个类型为team的连接:
# nmcli con add type team con-name team_test1 ifname team_test1 config '{"runner":{"name":"activebackup"}}'
Connection 'team_test1' (102554c0-d8c2-4d4d-8867-8ffff41eca6f) successfully added.
//成功添加的连接'team_test1'
此处的连接名为team_test1,关联的网卡是team_test1,组合方法是activebackup。由于team_test1设备不存在,系统将同时创建一个名为team_test1的虚拟设备。与其他连接类型一样,默认会设置开机自启动(激活)。
与bond类型的连接不同,组合类型由JSON格式定义,具体的JSON语法格式如下:‘{“runner”:{“name”:“METHOD”}}’
runner指定所使用的处理器,METHOD就是组合方法,可以是broadcast、activebackup、roundrobin、loadbalance 或者 lacp。
- 为上述连接tesm_test1添加两个类型的tesm-slave的从连接team_test1-port1和team_test1-port2,分别关联网卡ens160、ens161;将从设备添加到主设备,形成一个网卡聚合。
# nmcli con add type team-slave con-name team_test1-port1 ifname ens160 master team_test1
Connection 'team_test1-port1' (8a161cfc-30a6-49b9-9154-b8351bd30a25) successfully added.
//成功添加的连接team_test1-port1 (8a161cfc-30a6-49b9-9154-b8351bd30a25)
# nmcli con add type team-slave con-name team_test1-port2 ifname ens161 master team_test1
Connection 'team_test1-port2' (336aae50-f447-40e4-af1c-e76653812d87) successfully added.
//成功添加的连接team_test1-port2(336aae50-f447-40e4-af1c-e76653812d87)
至此team_test已成为上述两个从连接的主连接。
- 为主连接team_test1配置IP、网关、DNS。
# nmcli conn modify team_test1 ipv4.addr "10.0.0.210/24"
# nmcli conn modify team_test1 ipv4.dns "114.114.114.114 8.8.8.8"
# nmcli conn modify team_test1 ipv4.gateway "10.0.0.2"
# nmcli conn modify team_test1 ipv4.method manual
- 激活两个从连接和主连接
# nmcli conn up team_test1-port1
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/45)
# nmcli conn up team_test1-port2
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/46)
# nmcli conn up team_test1
Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/47)
启用从连接时系统会关联相应的网卡,并自动断开这些网卡上原有的连接。
- test_team2的操作与team_test1一样
# nmcli con add type team con-name team_test2 ifname team_test2 config '{"runner":{"name":"activebackup"}}'
Connection 'team_test2' (7a24d4d7-b05b-46db-b372-b7c70d384966) successfully added.
# nmcli con add type team-slave con-name team_test2-port1 ifname ens224 master team_test1
Connection 'team_test2-port1' (3b9615f8-ffa0-410d-ab19-a204119ca622) successfully added.
# nmcli con add type team-slave con-name team_test2-port2 ifname ens256 master team_test1
Connection 'team_test2-port2' (649c1962-89b6-463c-a07a-8b01a6a83109) successfully added.
# nmcli conn modify team_test2 ipv4.addr "10.0.0.211/24"
# nmcli conn modify team_test2 ipv4.dns "114.114.114.114 8.8.8.8"
# nmcli conn modify team_test2 ipv4.gateway "10.0.0.2"
# nmcli conn modify team_test2 ipv4.method manual
[root@controller ~]# nmcli conn up team_test2-port1
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/53)
[root@controller ~]# nmcli conn up team_test2-port2
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/54)
[root@controller ~]# nmcli conn up team_test2
Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/55)
- 测试:验证网卡组合的IP地址信息
# ip add show team_test1
13: team_test1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:0c:29:91:2f:3c brd ff:ff:ff:ff:ff:ff
inet 10.0.0.210/24 brd 10.0.0.255 scope global noprefixroute team_test1
valid_lft forever preferred_lft forever
inet 10.0.0.211/24 brd 10.0.0.255 scope global secondary noprefixroute team_test1
valid_lft forever preferred_lft forever
inet6 fe80::3cc1:6bd7:7bde:9f40/64 scope link noprefixroute
valid_lft forever preferred_lft forever
# ip add show team_test2
21: team_test2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:0c:29:91:2f:50 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.210/24 brd 10.0.0.255 scope global noprefixroute team_test2
valid_lft forever preferred_lft forever
inet6 fe80::9193:4b7c:f9f3:3748/64 scope link noprefixroute
valid_lft forever preferred_lft forever
# nmcli d
DEVICE TYPE STATE CONNECTION
team_test1 team connected team_test1
team_test2 team connected team_test2
ens160 ethernet connected team_test1-port1
ens161 ethernet connected team_test1-port2
ens224 ethernet connected team_test2-port1
ens256 ethernet connected team_test2-port2
lo loopback unmanaged --
- 测试网卡组合,使用teamdctl命令检查网卡组合的配置功能:
[root@controller ~]# teamdctl team_test1 state
setup:
runner: activebackup //组合方法
ports: //端口列表
ens160 //第一个端口(从设备)
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
ens161 //第二个端口(从设备)
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
runner:
active port: ens160
[root@controller ~]# teamdctl team_test2 state
setup:
runner: activebackup
ports:
ens224
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
ens256
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
runner:
active port: ens224
查看组合端口;查询当前活动端口号
# teamnl team_test1 ports
3: ens161: up 10000Mbit FD
2: ens160: up 10000Mbit FD
# teamnl team_test2 ports
5: ens256: up 10000Mbit FD
4: ens224: up 10000Mbit FD
# teamnl team_test1 getoption activeport
2
# teamnl team_test2 getoption activeport
4
- 断开活动端口连接测试
# nmcli dev dis ens224 //断开ens224连接
Device 'ens224' successfully disconnected.
# teamnl team_test2 ports //查询端口,查询不到ens224端口
5: ens256: up 10000Mbit FD
# teamnl team_test2 getoption activeport
5 //启动的端口号
# nmcli dev up ens224 //激活ens224连接
Device 'ens224' successfully activated with '0c24de13-a1b2-47a8-9521-0b5a643bb956'.
# teamnl team_test2 ports
4: ens224: up 10000Mbit FD
5: ens256: up 10000Mbit FD
# teamnl team_test2 getoption activeport
5
//再次激活ens224,ens224加入组合中,但当前激活的仍是ens256.
网络接口绑定和组合是指将多个网络接口绑定在一起,以提高网络性能和可用性。通过网络接口绑定,可以将多个网络接口组合为一个虚拟接口,使其具有更高的带宽和更低的延迟。这种技术通常用于服务器、交换机和路由器等网络设备上。
- 网络接口绑定有多种形式,包括负载均衡和故障容错。 负载均衡可以将网络流量分散到多个网络接口上,以提高带宽利用率和响应时间。而故障容错可以在一个网络接口发生故障时自动切换到另一个正常的接口上,以确保网络的连续性和可靠性。
- 网络接口组合还可以实现多路径传输,即通过多条物理路径同时传输数据,以提高网络的吞吐量和稳定性。这种技术在大规模数据中心和高性能计算环境中得到广泛应用,可以有效提升网络性能和可靠性。