您的位置:首页 > 运维架构 > Linux

Linux 链路聚合

2019-12-29 22:42 1276 查看

Linux 链路聚合

  链路聚合与双网卡绑定几乎相同,可以实现多网卡绑定主从荣誉,负载均衡,提高网络访问流量。但链路聚合与双网卡绑定技术(bond)不同点就在于,双网卡绑定只能使用两个网卡绑定,而链路聚合最多可将8个网卡汇聚同时做绑定,此聚合模式称之为team

team 四种模式

  • 广播容错:"broadcast"
  • 平衡轮询:"roundrobin"
  •       主备:"activebackup"
  • 负载均衡:"loadbalance"

team nmcli 界面窗口实现链路聚合

环境

  • 已添加网卡1 ens33
  • 已添加网卡2 ens34
  • 已添加网卡3 ens35
[root@localhost ~]# ifconfig
eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
inet 192.168.10.20  netmask 255.255.255.0  broadcast 192.168.10.255
inet6 fe80::20c:29ff:fe1d:8469  prefixlen 64  scopeid 0x20<link>
ether 00:0c:29:1d:84:69  txqueuelen 1000  (Ethernet)
RX packets 9  bytes 819 (819.0 B)
RX errors 0  dropped 0  overruns 0  frame 0
TX packets 31  bytes 4271 (4.1 KiB)
TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eno33554968: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
ether 00:0c:29:1d:84:73  txqueuelen 1000  (Ethernet)
RX packets 11  bytes 939 (939.0 B)
RX errors 0  dropped 0  overruns 0  frame 0
TX packets 0  bytes 0 (0.0 B)
TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eno50332192: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
ether 00:0c:29:1d:84:7d  txqueuelen 1000  (Ethernet)
RX packets 11  bytes 939 (939.0 B)
RX errors 0  dropped 0  overruns 0  frame 0
TX packets 0  bytes 0 (0.0 B)
TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
inet 127.0.0.1  netmask 255.0.0.0
inet6 ::1  prefixlen 128  scopeid 0x10<host>
loop  txqueuelen 0  (Local Loopback)
RX packets 514  bytes 43660 (42.6 KiB)
RX errors 0  dropped 0  overruns 0  frame 0
TX packets 514  bytes 43660 (42.6 KiB)
TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 

[root@localhost ~]# nm-connection-editor

 

{"runner":{"name":"activebackup"}}

[root@localhost ~]# teamdctl team0 state
setup:
runner: activebackup
ports:
eno16777728
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
eno33554968
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
eno50332192
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
runner:
active port: eno16777728
[root@localhost ~]# ifconfig
eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
ether 00:0c:29:1d:84:69  txqueuelen 1000  (Ethernet)
RX packets 134009  bytes 9775632 (9.3 MiB)
RX errors 0  dropped 133408  overruns 0  frame 0
TX packets 137  bytes 15624 (15.2 KiB)
TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eno33554968: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
ether 00:0c:29:1d:84:69  txqueuelen 1000  (Ethernet)
RX packets 334  bytes 26564 (25.9 KiB)
RX errors 0  dropped 10  overruns 0  frame 0
TX packets 134607  bytes 9823318 (9.3 MiB)
TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eno50332192: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
ether 00:0c:29:1d:84:69  txqueuelen 1000  (Ethernet)
RX packets 134310  bytes 9801759 (9.3 MiB)
RX errors 0  dropped 134247  overruns 0  frame 0
TX packets 0  bytes 0 (0.0 B)
TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
inet 127.0.0.1  netmask 255.0.0.0
inet6 ::1  prefixlen 128  scopeid 0x10<host>
loop  txqueuelen 0  (Local Loopback)
RX packets 806  bytes 69200 (67.5 KiB)
RX errors 0  dropped 0  overruns 0  frame 0
TX packets 806  bytes 69200 (67.5 KiB)
TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

team0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
inet 192.168.10.10  netmask 255.255.255.0  broadcast 192.168.10.255
inet6 fe80::20c:29ff:fe1d:8469  prefixlen 64  scopeid 0x20<link>
ether 00:0c:29:1d:84:69  txqueuelen 0  (Ethernet)
RX packets 36  bytes 2132 (2.0 KiB)
RX errors 0  dropped 14  overruns 0  frame 0
TX packets 71  bytes 6369 (6.2 KiB)
TX errors 0  dropped 2 overruns 0  carrier 0  collisions 0

[root@localhost ~]# ping 192.168.10.10
PING 192.168.10.10 (192.168.10.10) 56(84) bytes of data.
64 bytes from 192.168.10.10: icmp_seq=1 ttl=64 time=0.119 ms
64 bytes from 192.168.10.10: icmp_seq=2 ttl=64 time=0.099 ms
64 bytes from 192.168.10.10: icmp_seq=3 ttl=64 time=0.100 ms
64 bytes from 192.168.10.10: icmp_seq=4 ttl=64 time=0.092 ms
64 bytes from 192.168.10.10: icmp_seq=5 ttl=64 time=0.092 ms
64 bytes from 192.168.10.10: icmp_seq=6 ttl=64 time=0.100 ms
64 bytes from 192.168.10.10: icmp_seq=7 ttl=64 time=0.095 ms
64 bytes from 192.168.10.10: icmp_seq=8 ttl=64 time=0.11

 

team nmcli 命令实现链路聚合

环境

  • 已添加网卡1 eno16777728
  • 已添加网卡2 eno33554968
  • 已添加网卡3 eno50332192

1、新建 team master 配置文件,选择模式为主备,并添加地址。

# nmcli connection add con-name 配置文件名称 type 模式类型 ifname 设备名称 config '{"runner":{"name":"模式"}}'
nmcli connection add con-name team0 type team ifname team0 config '{"runner":{"name":"activebackup"}}'

# nmcli connection modify 设备名称 ipv4.addresses "IP地址/掩码" connection.autoconnect 开启 ipv4.method 手动
nmcli connection modify team0 ipv4.addresses "192.168.10.10/24" connection.autoconnect yes ipv4.method manual

2、新建 team-slave 配置文件,添加给 team master

# nmcli connection add con-name 配置文件名称 ifname 设备名称 type 模式类型 master master设备名称
nmcli connection add con-name eth1 ifname eno16777728 type team-slave master team0 
nmcli connection add con-name eth2 ifname eno33554968 type team-slave master team0
nmcli connection add con-name eth3 ifname eno50332192 type team-slave master team0

3、启动已创建的网络设备

nmcli connection up team0
nmcli connection up eno16777728
nmcli connection up eno33554968
nmcli connection up eno50332192

4、查看详情

teamdctl team0 state

5、测试

ifconfig eno33554968 down

 

注:去掉一块网卡,可以看到网络依旧连通着。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: