Linux链路聚合+网桥
一、简介
-
链路聚合(Link Aggregation): 链路聚合是一种将多个物理网络连接(链路)合并为一个逻辑通道的技术,以增加吞吐量并提供冗余,从而提高网络的可靠性和性能。例如,你可以将两个或更多的以太网连接捆绑在一起,使得它们表现得像是单个高带宽的连接。链路聚合还可以在其中一个链路失败时自动切换到其他链路,从而实现故障转移。
-
网卡(Network Interface Card, NIC): 网卡是一种硬件设备,它允许计算机或其他设备通过有线或无线方式连接到网络。网卡通常内置在计算机主板上,或者作为外部设备(如USB无线网卡)连接到计算机。它负责处理网络通信,包括数据的发送和接收。网卡有多种类型,支持不同的网络技术,如以太网、Wi-Fi、蓝牙等。
-
网关(Gateway): 网关是一种网络节点,它在不同的网络或子网之间转发数据。它充当不同网络协议或数据格式之间的翻译器,使得不同网络间的数据可以互相通信。例如,家庭或企业的本地网络通常通过网关连接到互联网。网关可以是一个专用的硬件设备,也可以是运行网关软件的计算机。
-
网桥(Bridge): 网桥是一种网络设备,用于连接两个或多个网络段(通常是指局域网内的网络段),并根据数据包的MAC地址来转发数据。网桥在OSI模型的数据链路层工作,它可以过滤和转发数据包,从而减少网络上的流量,提高网络效率。网桥还可以隔离网络上的冲突域,但不会隔离广播域。
网桥链路聚合常用工作模式
- roundrobin:以轮循的模式传输所有端口的包
- activebackup:主备模式这是一个故障迁移程序,监控链接更改并选择活动的端口进行传输
- loadbalance:监控流量并使用哈希函数以尝试在选择传输端口的时候达到完美均衡
- broadcast:广播容错,设备通过所有端口传输数据包
二、链路聚合部署
配置activebakup工作模式
node1,node2均添加了两块网卡
node1,先将添加到两块网卡删掉
[root@node1 ~]# nmcli connection show
NAME UUID TYPE DEVICE
ens160 f50e5c5b-e1b2-33d2-bc0d-d2cfe7ed0c05 ethernet ens160
lo 12284601-7c7f-44f1-91be-e3c9db7b1309 loopback lo
Wired connection 1 09e37243-523b-3626-819a-3ef2fd1cf457 ethernet --
Wired connection 2 328bdbd9-836d-387f-a4bf-a0fe7a5ad912 ethernet --
[root@node1 ~]# nmcli connection delete Wired\ connection\ 1
Connection 'Wired connection 1' (09e37243-523b-3626-819a-3ef2fd1cf457) successfully deleted.
[root@node1 ~]# nmcli connection delete Wired\ connection\ 2
Connection 'Wired connection 2' (328bdbd9-836d-387f-a4bf-a0fe7a5ad912) successfully deleted.
[root@node1 ~]# nmcli connection show
NAME UUID TYPE DEVICE
ens160 f50e5c5b-e1b2-33d2-bc0d-d2cfe7ed0c05 ethernet ens160
lo 12284601-7c7f-44f1-91be-e3c9db7b1309 loopback lo
[root@node1 ~]#
创建组接口,为team0设置ip地址
[root@node1 ~]# nmcli connection add con-name team0 type team ifname team0 config '{"runner": {"name": "activebackup"}}'
Connection 'team0' (9c409329-4c2f-4254-b83b-dc5c511ecebe) successfully added.
[root@node1 ~]# nmcli connection modify team0 ipv4.addresses 192.168.0.1/24 ipv4.method manual connection.autoconnect yes
[root@node1 ~]#
将网络接口192,224添加到添加到team0中
[root@node1 ~]# nmcli connection add con-name team0-ens192 ifname ens192 type team-slave master team0
Connection 'team0-ens192' (aad1367b-6c0a-41d3-a16d-94082d73f2a7) successfully added.
[root@node1 ~]# nmcli connection add con-name team0-ens1224 ifname ens224 type team-slave master team0
Connection 'team0-ens1224' (361bb99c-b210-44da-8e0e-b4155b7bfa7e) successfully added.
[root@node1 ~]# nmcli connection show // 查看
NAME UUID TYPE DEVICE
ens160 f50e5c5b-e1b2-33d2-bc0d-d2cfe7ed0c05 ethernet ens160
team0 9c409329-4c2f-4254-b83b-dc5c511ecebe team team0
team0-ens1224 361bb99c-b210-44da-8e0e-b4155b7bfa7e ethernet ens224
team0-ens192 aad1367b-6c0a-41d3-a16d-94082d73f2a7 ethernet ens192
lo 12284601-7c7f-44f1-91be-e3c9db7b1309 loopback lo
[root@node1 ~]#
使用ip a查看
3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master team0 state UP group default qlen 1000
link/ether 00:0c:29:b8:d7:5b brd ff:ff:ff:ff:ff:ff
altname enp11s0
4: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master team0 state UP group default qlen 1000
link/ether 00:0c:29:b8:d7:5b brd ff:ff:ff:ff:ff:ff permaddr 00:0c:29:b8:d7:65
altname enp19s0
6: team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:0c:29:b8:d7:5b brd ff:ff:ff:ff:ff:ff
inet 192.168.0.1/24 brd 192.168.0.255 scope global noprefixroute team0
valid_lft forever preferred_lft forever
inet6 fe80::ecb9:d74:31bf:5199/64 scope link noprefixroute
valid_lft forever preferred_lft forever
查看team0信息
[root@node1 ~]# teamdctl team0 state
setup:
runner: activebackup
ports:
ens192
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
ens224
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
runner:
active port: ens192 # 此时工作的接口是ens192,谁先添加就来谁就是主
[root@node1 ~]#
node2,配置同理
[root@node2 ~]# teamdctl team0 state
setup:
runner: activebackup
ports:
ens192
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
ens224
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
runner:
active port: ens192
先用node1 ping node2是否成功
[root@node1 ~]# ping 192.168.0.2
PING 192.168.0.2 (192.168.0.2) 56(84) bytes of data.
64 bytes from 192.168.0.2: icmp_seq=1 ttl=64 time=0.242 ms
64 bytes from 192.168.0.2: icmp_seq=2 ttl=64 time=0.251 ms
64 bytes from 192.168.0.2: icmp_seq=3 ttl=64 time=0.218 ms
# 成功
如果在工作的ens192借口出现故障,那此时ens224就会顶替ens192来工作,实现故障交替
三、软件网桥部署
软件网桥是一个软件层面的网络设备,用于在Linux系统中创建和管理网络桥接。它允许将多个物理或虚拟网络接口连接在一起,以创建一个共享相同网络段的网络。
主要功能:MAC学习,报文转发。
先将添加到两块网卡删掉
[root@node1 ~]# nmcli connection show
NAME UUID TYPE DEVICE
ens160 f50e5c5b-e1b2-33d2-bc0d-d2cfe7ed0c05 ethernet ens160
team0 9c409329-4c2f-4254-b83b-dc5c511ecebe team team0
team0-ens1224 361bb99c-b210-44da-8e0e-b4155b7bfa7e ethernet ens224
team0-ens192 aad1367b-6c0a-41d3-a16d-94082d73f2a7 ethernet ens192
Wired connection 1 f2a01947-cf0c-3007-a8bc-2b5eeaffed13 ethernet ens256
Wired connection 2 a9b2aabc-82be-3c8c-bc31-9a90b8e1ae56 ethernet ens161
lo 12284601-7c7f-44f1-91be-e3c9db7b1309 loopback lo
[root@node1 ~]# nmcli connection delete Wired\ connection\ 1
Connection 'Wired connection 1' (f2a01947-cf0c-3007-a8bc-2b5eeaffed13) successfully deleted.
[root@node1 ~]# nmcli connection delete Wired\ connection\ 2
Connection 'Wired connection 2' (a9b2aabc-82be-3c8c-bc31-9a90b8e1ae56) successfully deleted.
[root@node1 ~]# nmcli connection show
NAME UUID TYPE DEVICE
ens160 f50e5c5b-e1b2-33d2-bc0d-d2cfe7ed0c05 ethernet ens160
team0 9c409329-4c2f-4254-b83b-dc5c511ecebe team team0
team0-ens1224 361bb99c-b210-44da-8e0e-b4155b7bfa7e ethernet ens224
team0-ens192 aad1367b-6c0a-41d3-a16d-94082d73f2a7 ethernet ens192
lo 12284601-7c7f-44f1-91be-e3c9db7b1309 loopback lo
[root@node1 ~]#
定义网桥
[root@node1 ~]# nmcli connection add con-name bridge0 ifname bridge0 type bridge
Connection 'bridge0' (5ec35030-a228-4851-8cb6-7f1b73304faa) successfully added.
[root@node1 ~]# nmcli connection show
NAME UUID TYPE DEVICE
ens160 f50e5c5b-e1b2-33d2-bc0d-d2cfe7ed0c05 ethernet ens160
team0 9c409329-4c2f-4254-b83b-dc5c511ecebe team team0
team0-ens1224 361bb99c-b210-44da-8e0e-b4155b7bfa7e ethernet ens224
team0-ens192 aad1367b-6c0a-41d3-a16d-94082d73f2a7 ethernet ens192
bridge0 5ec35030-a228-4851-8cb6-7f1b73304faa bridge bridge0
lo 12284601-7c7f-44f1-91be-e3c9db7b1309 loopback lo
[root@node1 ~]#
设置bridge0,给他添加物理网卡
[root@node1 ~]# nmcli connection modify bridge0 ipv4.addresses 192.168.1.1/24 ipv4.method manual connection.autoconnect yes
[root@node1 ~]#
[root@node1 ~]# nmcli connection add con-name bridge0-ens161 ifname ens161 type bridge-slave master bridge0
Connection 'bridge0-ens161' (54541942-8590-43e3-8f54-2a99c025145a) successfully added.
[root@node1 ~]# nmcli connection add con-name bridge0-ens256 ifname ens256 type bridge-slave master bridge0
Connection 'bridge0-ens256' (5f9693d0-0355-427a-adf8-3f1a2e18d045) successfully added.
启动bridge0
8: ens256: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bridge0 state UP group default qlen 1000
link/ether 00:0c:29:b8:d7:6f brd ff:ff:ff:ff:ff:ff
altname enp27s0
9: ens161: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bridge0 state UP group default qlen 1000
link/ether 00:0c:29:b8:d7:79 brd ff:ff:ff:ff:ff:ff
altname enp4s0
10: bridge0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 00:0c:29:b8:d7:6f brd ff:ff:ff:ff:ff:ff
inet 192.168.1.1/24 brd 192.168.1.255 scope global noprefixroute bridge0
valid_lft forever preferred_lft forever
此时bridge0的MAC地址和ens256是一样的,说明此时工作的是ens256。
四、思维导图(参考)
原文地址:https://blog.csdn.net/2301_78088515/article/details/142340802
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!