在Linux系统中,网络绑定(Bonding)是一种将多个物理网卡虚拟成一个逻辑网卡的技术,常用于提高网络带宽、实现负载均衡或提供冗余备份,要确认Bond配置是否生效、查看当前状态或排查问题,需通过多种命令和方法获取Bond接口的详细信息,以下是查看Linux Bond配置的详细方法及步骤。
通过ip
命令查看Bond基本信息(推荐)
ip
命令是Linux中强大的网络工具,替代了传统的ifconfig
,可全面展示网络接口状态,查看Bond接口时,需先确认系统是否存在Bond接口(通常命名为bond0
、bond1
等),再通过ip
命令获取详细信息。
查看所有Bond接口
ip link show
输出示例中,若存在类似bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500
的条目,则表示系统存在Bond接口bond0
,其中MASTER
标识该接口为Bond主接口,UP
表示接口已启用。
查看指定Bond接口的详细配置
ip a show bond0 ```包括: - **接口状态**:`UP`(启用)或`DOWN`(禁用); - **MAC地址**:Bond接口的虚拟MAC地址(若模式为`active-backup`,MAC地址可能与活动网卡一致); - **IP地址**:Bond接口配置的IP、子网掩码等; - **Slave网卡**:通过`link/ether`标识的物理网卡(如`eth0`、`eth1`),这些是Bond的成员网卡。 示例输出:
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:1c:23:45:67:89 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.100/24 brd 192.168.1.255 scope global bond0
valid_lft forever preferred_lft forever
inet6 fe80::21c:23ff:fe45:6789/64 scope link
valid_lft forever preferred_lft forever
5: eth0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
link/ether 00:1c:23:45:67:89 brd ff:ff:ff:ff:ff:ff
6: eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
link/ether 00:1c:23:45:67:89 brd ff:ff:ff:ff:ff:ff
从输出可知,`bond0`为Bond主接口,`eth0`和`eth1`为其Slave网卡,且均处于`UP`状态。
### 二、通过`/proc/net/bonding/`查看Bond详细配置
`/proc/net/bonding/`目录是内核提供的Bond信息接口,包含每个Bond接口的详细配置(如模式、Slave状态、监控参数等),是最权威的Bond信息来源。
#### 1. 查看指定Bond的配置文件
```bash
cat /proc/net/bonding/bond0
输出示例及解读:
Ethernet Channel Bonding Driver: v3.7.1 (April 2016)
Bond Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval: 100
Up Delay: 0
Down Delay: 0
Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:1c:23:45:67:89
Aggregator ID: 1
Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:1c:23:45:67:8a
Aggregator ID: 1
- Bond Mode:Bond模式,如
round-robin
(轮询,模式0)、active-backup
(主备,模式1)、LACP
(802.3ad,模式4)等; - MII Status:链路状态(
up
/down
),若为down
,表示Bond链路异常; - MII Polling Interval:链路状态检测间隔(单位:毫秒);
- Slave Interface:成员网卡及其状态(
Speed
、Duplex
、Link Failure Count
等)。
通过nmcli
命令查看Bond(NetworkManager环境)
若系统使用NetworkManager管理网络(如CentOS 7+、Ubuntu 18.04+),可通过nmcli
查看Bond的连接配置和运行状态。
查看所有Bond连接
nmcli connection show | grep bond
输出示例:
bond0 802-3-ethernet -- eth0,eth1 --
其中bond0
为连接名,802-3-ethernet
为类型,eth0,eth1
为绑定的物理网卡。
查看指定Bond连接的详细配置
nmcli connection show "bond0" ```包括: - **连接属性**:`connection.interface-name`(Bond接口名)、`ipv4.method`(IP配置方式,如`auto`、`manual`); - **Bond参数**:`bond.options`(Bond模式、监控间隔等,如`mode=4 miimon=100`)。 #### 3. 查看Bond接口的实时状态 ```bash nmcli device show bond0
输出中DEVICE STATE
为connected
表示Bond已启用,CONNECTION
为bond0
表示对应的连接配置。
通过ethtool
查看Bond及Slave网卡状态
ethtool
可查看网卡的硬件状态(如速率、双工、链路是否正常),尤其适用于排查Slave网卡故障。
查看Bond接口的硬件信息
ethtool bond0
输出示例:
Settings for bond0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Link detected: yes
重点关注Speed
(速率)、Duplex
(双工)、Link detected
(链路是否检测到)。
查看Slave网卡的硬件信息
ethtool eth0 ethtool eth1
若Slave网卡Link detected
为no
,则表示该网卡物理链路异常(如网线松动、交换机端口故障)。
Bond查看方法对比
命令/方法 | 适用场景 | 优点 | 缺点 |
---|---|---|---|
ip link show |
快速查看Bond接口是否存在及状态 | 简单、无需额外安装 | 信息较基础,无详细配置 |
ip a show bondX |
查看Bond的IP、MAC及Slave网卡 | 信息全面、现代工具 | 无Bond模式、监控参数等内核配置 |
cat /proc/net/bonding/bondX |
查看Bond详细配置(模式、Slave状态等) | 内核原始数据、最权威 | 输出格式较原始,需一定解读能力 |
nmcli |
NetworkManager管理的系统 | 可查看连接配置、支持修改 | 依赖NetworkManager,非系统通用 |
ethtool |
查看Bond及Slave网卡的硬件状态 | 适用于硬件故障排查 | 无Bond逻辑配置信息 |
相关问答FAQs
Q1: 如何确认Bond是否正常工作?
A: 可通过以下步骤综合判断:
- 检查接口状态:运行
ip link show bondX
,确认Bond接口及所有Slave网卡状态为UP
; - 查看链路状态:运行
cat /proc/net/bonding/bondX
,检查MII Status
为up
,Slave网卡的Link Failure Count
为0(无链路故障); - 测试网络连通性:通过
ping
命令测试Bond接口的IP是否能正常通信,或使用iperf3
测试带宽是否符合预期(如负载均衡模式下带宽应为多网卡之和); - 检查流量分配:若模式为
round-robin
或LACP
,可通过cat /proc/net/bonding/bondX
中Slave的tx_bytes
和rx_bytes
观察流量是否均匀分配。
Q2: Bond模式为active-backup
时,如何确认当前活动网卡是哪个?
A: 在active-backup
模式下,只有一个Slave网卡处于活动状态(ACTIVE
),其他为备用状态(BACKUP
),可通过以下命令确认:
- 查看
/proc/net/bonding/
:cat /proc/net/bonding/bond0 | grep "Slave Interface"
输出中,活动网卡的
MII Status
会标注ACTIVE
,备用网卡标注BACKUP
,Slave Interface: eth0 MII Status: up Slave Interface: eth1 MII Status: backup
此处
eth0
为当前活动网卡。 - 使用
ip route
或arping
:通过发送ARP请求或查看路由表,确认流量是否从指定Slave网卡发出(需结合ethtool
观察网卡流量)。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/33617.html