在网络中,日常为了提高可靠性,一般会配置链路聚合(Link Aggregation),同样的,在服务器上也有网卡绑定(bonding)的技术,将两个或多个物理网卡通过bonding技术绑定在一起,从而创建一个虚拟的、逻辑上的网络接口,实现网络接口的聚合。
做了网卡绑定之后,就可以提高网络冗余,实现高可用,如果其中一个网卡发生故障,服务能够无缝切换到其他正常工作的网卡上,确保网络连接不间断;结合不同的工作模式,还可以实现负载分担或增加网络带宽的效果,优化资源利用的同时,提高网络容量。
Linux服务器上一般有多个NIC网卡,Linux系统提供一种技术,可以将多个网卡bonding成一个逻辑bonded的网卡,统一提供服务。(Linux bonding- involves bonding two or more physical network interface cards into a single logical “bonded” interface,下文用“虚拟网卡”这个词来代替 logical “bonded” interface),这样做可以为高可用性提供冗余,也可以提高系统带宽性能。
在ACTIVE/BACKUP配置模式下,一般只有一个网卡处于工作状态,其他作为备份和故障转移用,工作网卡出现故障后备份的网卡会起来工作,如此可以避免出现单点故障,提高系统的可用性。而在ACTIVE/ACTIVE配置模式下,所有的网卡都处于工作状态,这样可以提高系统带宽。
![](https://img.haomeiwen.com/i12979420/f8bab99389d782e9.png)
$ ip addr list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master team0 state UP group default qlen 1000
link/ether d0:94:66:53:f0:7c brd ff:ff:ff:ff
3: em2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master team0 state UP group default qlen 1000
link/ether d0:94:66:53:f0:7c brd ff:ff:ff:ff
4: em3: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether d0:94:66:53:f0:80 brd ff:ff:ff:ff
5: em4: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether d0:94:66:53:f0:82 brd ff:ff:ff:ff
6: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:9b:99
brd ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
7: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
link/ether 52:54:00:9b:99
brd ff:ff:ff:ff
9: team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether d0:94:66:53:f0:7c brd ff:ff:ff:ff
inet 10.19.49.188/24 brd 10.19.49.255 scope global noprefixroute team0
valid_lft forever preferred_lft forever
inet6 fe80::35b:2e77:e86c:1458/64 scope link noprefixroute
valid_lft forever preferred_lft forever
这些信息是通过 ip addr list
命令获取的,显示了服务器上各个网卡接口的配置和状态。
对每个接口信息的解读1:
-
lo (Loopback)
-
inet 127.0.0.1/8 scope host lo: 这是回环接口,用于本地通信。IP地址是
127.0.0.1
,子网掩码是/8
,表示只有这个地址是回环地址。
-
inet 127.0.0.1/8 scope host lo: 这是回环接口,用于本地通信。IP地址是
-
em1
-
inet6 ::1/128 scope host: IPv6 的回环地址,
::1
,子网掩码是/128
。 -
link/ether d0:94:66:53:f0:7c brd ff:ff:ff:ff:ff:ff: MAC 地址是
d0:94:66:53:f0:7c
。
-
inet6 ::1/128 scope host: IPv6 的回环地址,
-
em2
- 同 em1,具有相同的配置和MAC地址。
-
em3
-
link/ether d0:94:66:53:f0:80 brd ff:ff:ff:ff:ff:ff: MAC 地址是
d0:94:66:53:f0:80
,但是接口状态是 DOWN,即未连接。
-
link/ether d0:94:66:53:f0:80 brd ff:ff:ff:ff:ff:ff: MAC 地址是
-
em4
-
link/ether d0:94:66:53:f0:82 brd ff:ff:ff:ff:ff:ff: MAC 地址是
d0:94:66:53:f0:82
,也处于 DOWN 状态。
-
link/ether d0:94:66:53:f0:82 brd ff:ff:ff:ff:ff:ff: MAC 地址是
-
virbr0
-
inet 192.168.122.1/24: 虚拟网桥的配置,IP地址是
192.168.122.1
,子网掩码是/24
,表示局域网内的地址范围。 -
link/ether 52:54:00:9b:99 brd ff:ff:ff:ff:ff:ff: MAC 地址是
52:54:00:9b:99
。
-
inet 192.168.122.1/24: 虚拟网桥的配置,IP地址是
-
virbr0-nic
- 同 virbr0 的MAC地址,但是接口状态是 DOWN。
-
team0
-
inet 10.19.49.188/24: 连接到团队接口的配置,IP地址是
10.19.49.188
,子网掩码是/24
。 -
link/ether d0:94:66:53:f0:7c brd ff:ff:ff:ff:ff:ff: MAC 地址是
d0:94:66:53:f0:7c
,与 em1 和 em2 相同。 - inet6 fe80::35b:2e77:e86c:1458/64: IPv6 地址。
-
inet 10.19.49.188/24: 连接到团队接口的配置,IP地址是
总结解读:
-
Loopback (lo) 是用于本地通信的接口,IP地址为
127.0.0.1
。 - em1 和 em2 是两个物理网卡,使用同一个MAC地址,连接状态为 UP。
-
em3 和 em4 是两个物理网卡,MAC地址分别是
d0:94:66:53:f0:80
和d0:94:66:53:f0:82
,但是处于 DOWN 状态。 -
virbr0 是虚拟网桥,用于虚拟机通信,IP地址为
192.168.122.1
。 - virbr0-nic 是连接到 virbr0 的虚拟网桥的物理接口,但是处于 DOWN 状态。
-
team0 是一个团队接口,IP地址为
10.19.49.188
,连接状态为 UP,与 em1、em2 使用相同的 MAC 地址。
对每个接口信息的解读2:
-
lo (Loopback)
- Type: LOOPBACK
- Status: UP
- IPv4: 127.0.0.1/8 (localhost)
- IPv6: ::1/128 (localhost)
这是回环接口,用于本地通信。IPv4 地址是
127.0.0.1
,IPv6 地址是::1
。 -
em1
- Type: Ethernet
- Status: UP
- MAC 地址: d0:94:66:53:f0:7c
- IPv4: 没有显示具体地址
这是一个以太网接口,状态为 UP,但没有显示具体的 IPv4 地址。
-
em2
- Type: Ethernet
- Status: UP
- MAC 地址: d0:94:66:53:f0:7c
- IPv4: 没有显示具体地址
类似于 em1,这也是一个以太网接口,状态为 UP,但没有显示具体的 IPv4 地址。
-
em3
- Type: Ethernet
- Status: DOWN
- MAC 地址: d0:94:66:53:f0:80
这是一个未连接的以太网接口,状态为 DOWN。
-
em4
- Type: Ethernet
- Status: DOWN
- MAC 地址: d0:94:66:53:f0:82
类似于 em3,这也是一个未连接的以太网接口,状态为 DOWN。
-
virbr0
- Type: Virtual Bridge
- Status: DOWN
- MAC 地址: 52:54:00:9b:99
- IPv4: 192.168.122.1/24 (局域网地址)
这是一个虚拟网桥接口,状态为 DOWN。它有一个 IPv4 地址
192.168.122.1
,属于192.168.122.0/24
网络。 -
virbr0-nic
- Type: Virtual Bridge Interface
- Status: DOWN
- MAC 地址: 52:54:00:9b:99
这是虚拟网桥
virbr0
的网络接口,状态为 DOWN。 -
team0
- Type: Ethernet
- Status: UP
- MAC 地址: d0:94:66:53:f0:7c
- IPv4: 10.19.49.188/24 (全局范围地址)
这是一个以太网接口,状态为 UP。它有一个 IPv4 地址
10.19.49.188
,属于10.19.49.0/24
网络。
总结:
- 服务器有多个网络接口,包括以太网接口(em1, em2, em3, em4, team0)和虚拟接口(virbr0, virbr0-nic)。
- 大部分以太网接口都处于 UP 状态,但有些并未连接(DOWN 状态)。
- IPv4 地址只显示在
lo
(回环接口)、virbr0
(虚拟网桥)和team0
(以太网接口)上。
这些信息对于管理网络配置和故障排除非常有用。
为什么 brd 都是 ff:ff:ff ?
在Linux中,网络设备的广播地址(broadcast address)通常被表示为 ff:ff:ff:ff:ff:ff
。
这是因为在以太网中,广播地址的格式是固定的,全为 1
,即 ff:ff:ff:ff:ff:ff
。
这个地址表示数据包将被发送到网络中的所有设备,类似于一个广播信号,所有接收设备都会接收到这个数据包。
在你提供的输出中,你可以看到几个网络设备的广播地址(brd)都是 ff:ff:ff:ff:ff:ff
,这是正常的行为。具体来说:
-
em1
和em2
都使用相同的 MAC 地址,因此它们的广播地址也相同。 -
em3
和em4
是 DOWN 状态,因此没有分配有效的广播地址,但是它们的占位符广播地址仍显示为ff:ff:ff:ff:ff:ff
。
总结来说,ff:ff:ff:ff:ff:ff
是以太网中广播地址的标准表示方式,用于指示数据包应发送到网络中的所有设备。
根据输出信息来看,em3
和 em4
是两个物理网卡,它们具有唯一的 MAC 地址(分别为 d0:94:66:53:f0:80
和 d0:94:66:53:f0:82
),但是它们目前处于 DOWN 状态。
在网络术语中,DOWN 状态意味着这些接口当前未激活或未连接到任何网络设备上。
常见的情况包括:
- 网线未插入接口,或者未正确连接到交换机或路由器。
- 网卡驱动程序问题,导致无法启动或识别接口。
- 网络设备(如交换机)端口未正确配置或未启用。
因此,如果 em3
和 em4
处于 DOWN 状态,并且服务器并不需要这些额外的网络接口,那么这些接口可能确实没有在被使用。
在网络术语中,描述 team0
接口与 em1
、em2
接口使用相同的 MAC 地址的行为,通常称为MAC地址共享或MAC地址冗余。
具体来说,这种配置下,多个物理接口(如 em1
和 em2
)被绑定成一个逻辑接口(team0
),这个逻辑接口会使用一个共同的 MAC 地址来进行网络通信。
将多个物理接口(如 em1
和 em2
)绑定成一个逻辑接口(team0
)并共享相同的 MAC 地址,有以下几个好处:
-
冗余和负载均衡:通过将多个物理接口绑定成一个逻辑接口,可以提高网络连接的可靠性和冗余性。如果一个物理接口出现故障或断开连接,仍然可以通过其他接口继续通信。同时,流量可以在多个接口之间均衡分配,提高整体的网络性能和负载均衡能力。
-
增加带宽:通过绑定多个物理接口,可以增加可用的带宽。合并多个物理链路可以提供更高的总带宽,从而支持大量数据传输或高密度流量的网络应用。
-
简化管理:使用一个逻辑接口管理多个物理接口,可以简化网络配置和管理。管理员可以集中管理逻辑接口的配置,而无需单独设置每个物理接口的参数。
-
故障恢复:当一个物理接口发生故障时,逻辑接口仍然保持活动状态,使得系统可以快速从故障中恢复而无需中断服务。
总体来说,MAC地址共享通过将多个物理接口绑定成一个逻辑接口,能够提升网络的可用性、性能和管理效率,特别是在需要高可靠性和高带宽的网络环境下,这种配置非常有利。
参考
Configuring a network bond
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/configuring_and_managing_networking/configuring-network-bonding_configuring-and-managing-networking
CentOS网卡制作bond
https://poison77.com/2020/04/06/linux-bond
网友评论