linux下网卡链路状态检测方法

  可用方法:

 1、ip addr  |  grep  LOWER_UP

 2、ethtool eth0 | grep detect 

 3、mii-tool  -w  ethx   这三个命令来查看网线是否插着,并且物理状态是否激活?

   问题由来:

      遇到外场故障,反馈直接断电更换机柜后一个无线核心网服务器运行不正常,所有基站都无法连接核心网设备。,接显示器发现arp -n,ip neigh list后,发现服务器上没有任何基站的mac地址,ifconfig  eth0发现链路是up态。让直连设备,反馈也ping不通,抓包发现arp请求消息没有回,查看网卡eth0的收发都是0,判断网卡故障,建议让dell服务器厂家进行检测,反馈检测网卡正常。判断为更换系统故障,让用户备份数据,准备重装centos系统。等服务人员到达现场发现,客户把网线查到服务器的idrac接口上,而不是eth0口上,改接回来后发现业务正常。

当时ifconfig看eth0是up态,为什么会没有没发现插线呢?显然受了这个命令的误导。

在公司模拟,发现ifconfig无论是否插网线,均显示up态。但断线后仅仅少了running的标志位。

发现用ifconfig,ip addr,ethtool,mii-tool才能检测线路的物理状态。

对比验证:

分别插上网线,拔掉网线用几个命令进行进行对比测试。

插上网线,并点亮网卡灯,通过双工和速率协商后的几个命令显示如下:

Thu Aug  1 16:31:05 CST 2019  开始测试链路物理状态
ifconfig eth0

eth0      Link encap:Ethernet  HWaddr C8:1F:66:E4:1A:0A 
          inet6 addr: fe80::ca1f:66ff:fee4:1a0a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1(网线插上并且点亮状态灯是有running显示
          RX packets:22464301 errors:0 dropped:0 overruns:0 frame:0
          TX packets:147296815 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2475109636 (2.3 GiB)  TX bytes:18645815710 (17.3 GiB)
          Interrupt:35
 ip addr | grep stat    出现LOWER_UP,stat变成up态。

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
4: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
5: eth3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
ethtool eth0 | grep detect
    Link detected: yes   连接检测为yes
Thu Aug  1 16:31:05 CST 2019  开始拔出网线进行几个命令的测试。
 NOW  pull  out the wire plug  (拔出网线插头)

现在拔掉网线执行几个命令显示:
 ifconfig eth0  (发现ifconfig不能测试链路状态,都是up态)
eth0      Link encap:Ethernet  HWaddr C8:1F:66:E4:1A:0A 
          inet6 addr: fe80::ca1f:66ff:fee4:1a0a/64 Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  Metric:1(拔掉网线后没有running的显示
          RX packets:22464315 errors:0 dropped:0 overruns:0 frame:0
          TX packets:147297002 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2475110672 (2.3 GiB)  TX bytes:18645839744 (17.3 GiB)
          Interrupt:35
 ip addr | grep stat (可以看到链路的物理状态,可以看到状态down,有没有载波的NO-CARRIER的显示,LOWER_UP消失,stat变成down)
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
4: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
5: eth3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
ethtool eth0 | grep detect   (检测到没有载波)
    Link detected: no   连接检测为no
 NOW  pull  on the wire plug
mii-tool  -w  eth0   (跟踪物理链路并且激活状态灯,可以看到连接是否在线)
16:31:12 eth0: no link  (发现没有连接)
16:31:20 eth0: negotiated 100baseTx-FD, link ok(发现)

测试时可以用ethtool  -p eth0来确定测试网卡是哪一个,命令执行时网卡的双灯会一秒一闪。

 ctrl+c来中断这个命令的执行。

结论:

     ifconfig ethx不可靠,可用ip addr,ethtool  ,mil-tool命令来确认。

     也可以用route -n显示路由来根据直连路由的是否生成来确定,因为接口down,对应配置的ip的直连路由也就失效了,路由就消失,查询不到。

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Linux网卡链路聚合(Link Aggregation)是一种将多个物理网卡绑定在一起,形成一个逻辑上的高带宽、高可用性的网络接口的技术。通过链路聚合,可以提高网络传输的带宽和可靠性。 在Linux系统中,可以使用Linux内核提供的bonding模块来实现双网卡链路聚合。下面是实现双网卡链路聚合的步骤: 1. 确保系统已经安装了bonding模块。可以通过执行以下命令来检查: ``` lsmod | grep bonding ``` 如果没有输出结果,则需要加载bonding模块: ``` modprobe bonding ``` 2. 编辑网络配置文件,通常位于`/etc/sysconfig/network-scripts/`目录下。找到对应的网卡配置文件,例如`ifcfg-eth0`和`ifcfg-eth1`。 3. 修改网卡配置文件,将以下参数添加或修改为相同的值: ``` DEVICE=bond0 TYPE=Bond BONDING_MASTER=yes BOOTPROTO=none ONBOOT=yes IPADDR=<IP地址> NETMASK=<子网掩码> GATEWAY=<默认网关> BONDING_OPTS="mode=<聚合模式> miimon=<监测间隔> downdelay=<失效延迟> updelay=<恢复延迟>" ``` 其中,`<IP地址>`、`<子网掩码>`和`<默认网关>`需要根据实际情况进行配置。`<聚合模式>`可以选择不同的模式,例如`balance-rr`(负载均衡)、`active-backup`(主备模式)等。`<监测间隔>`、`<失效延迟>`和`<恢复延迟>`可以根据需求进行调整。 4. 修改网卡配置文件,将以下参数添加或修改为不同的值: ``` DEVICE=eth0 TYPE=Ethernet BOOTPROTO=none ONBOOT=yes MASTER=bond0 SLAVE=yes ``` 同样地,对于第二个网卡的配置文件,将`DEVICE`和`MASTER`的值改为对应的网卡和bond0。 5. 重启网络服务,使配置生效: ``` systemctl restart network ``` 至此,双网卡链路聚合就已经配置完成了。系统会自动将两个物理网卡绑定成一个逻辑网卡bond0,并根据配置的聚合模式进行数据传输。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值