openwrt lan口未知原因断网的修补方案记录

2023-02-20 22:09:19 4点赞 10收藏 5评论


前言:


由于openwrt出现莫名故障,暂未查明具体原因,临时写了个脚本进行补救,该文对此进行记录。


故障描述:



主要硬件信息:


cpu:N3150

网卡

root@OpenWrt:~# lspci|grep -i 'eth'
01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 07)
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 07)


故障表现:


lan口随机出现断网情况,拔插lan口连接ap的网线即可再次正常工作,并且日志中并无故障相关信息,暂未找到实际原因。

怀疑过系统问题,刷了多个版本的openwrt后故障依然存在。怀疑过与ap不兼容,在lan口加交换机后连接ap,依然会出现该问题。拔插交换机-op段的网线可恢复,拔插交换机-ap段的网线无效。


解决思路:


由于并未找到实际原因,以及拔插lan口后可以恢复网络,打算暂时写个脚本让主路由能正常工作。具体逻辑是通过循环ping ap的ip判断内网是否通畅,不通畅则重启lan口。

ping -c 1 -W 1 ip;ping检测命令,超时判断减少为1s
ifup lan;#重启lan口命令


初始代码:


ip=192.168.3.2;#此处填内网验证ip
for((i=0;i<10;i=(i)))#勿吐槽,随便写了个死循环
do
/bin/ping -c 1 -W 1 $ip
if [ $? -eq 0 ]; then
echo "ping $ip success!"
else
echo "ping $ip fail!"
logger "lan error, restart lan"
ifup lan
sleep 6;
fi
sleep 1;
done

该代码能实现基本要求,但是考虑到有一定几率杀后台,所以需要加入守护。这里我偷个懒,直接用crontab每几分钟调用一次,脚本只需要判断是否有脚本在运行即可,如果没有运行则继续运行。

info=`ps | grep /root/ping_test.sh | grep -v grep | cut -d " " -f 1`;#用于检测是否已经运行,路径填完整防止与其他冲突
info=($info)#转成数组,方便判断有几个后台在运行。


最终代码:


#!/bin/bash
info=`ps | grep /root/ping_test.sh | grep -v grep | cut -d " " -f 1`;
info=($info)
#echo $info
#echo ${#info[@]}
ip=192.168.3.2;#此处填内网验证ip
if [ ${#info[@]} = 2 ];then #有两个结果则开始运行
for((i=0;i<10;i=(i)))
do
/bin/ping -c 1 -W 1 $ip
if [ $? -eq 0 ]; then
echo "ping $ip success!";
else
echo "ping $ip fail!";
logger "lan error, restart lan!";
ifup lan;
sleep 6;
fi
sleep 1;
done
else
echo "still running";
fi

将文件保存为ping_test.sh,保存在/root/路径下,之后再crontab中写入计划任务,可每分钟执行一次,自行调整。

1 * * * * /bin/bash /root/ping_test.sh &

或者

1 * * * * nohup /bin/bash /root/ping_test.sh >/dev/null 2>&1 &



执行结果日志:


ip信息已删除


Sun Feb 19 06:37:07 2023 daemon.info watchcat[25546]: Could not reach 8.8.8.8 for 60. Rebooting after reaching 21600

此处成功发现内网已经断开,将lan口重启
Sun Feb 19 06:38:48 2023 user.notice root: lan error, restart lan!
Sun Feb 19 06:38:48 2023 daemon.notice netifd: Interface 'lan' is now down
Sun Feb 19 06:38:48 2023 daemon.info avahi-daemon[3771]: Withdrawing address record for 240e:::::1 on eth0.
Sun Feb 19 06:38:48 2023 daemon.notice ttyd[19019]: [2023/02/19 06:38:48:4523] N: rops_handle_POLLIN_netlink: DELADDR
Sun Feb 19 06:38:48 2023 daemon.info avahi-daemon[3771]: Registering new address record for fe80:::::4e24 on eth0.*.
Sun Feb 19 06:38:48 2023 daemon.info avahi-daemon[3771]: Registering new address record for 240e:::::1 on eth0.*.
Sun Feb 19 06:38:48 2023 daemon.info avahi-daemon[3771]: Withdrawing address record for 192.168.3.1 on eth0.
Sun Feb 19 06:38:48 2023 daemon.info avahi-daemon[3771]: Leaving mDNS multicast group on interface eth0.IPv4 with address 192.168.3.1.
Sun Feb 19 06:38:48 2023 daemon.notice ttyd[19019]: [2023/02/19 06:38:48:5212] N: rops_handle_POLLIN_netlink: DELADDR
Sun Feb 19 06:38:48 2023 daemon.notice ttyd[19019]: [2023/02/19 06:38:48:5213] N: rops_handle_POLLIN_netlink: DELADDR
Sun Feb 19 06:38:48 2023 daemon.notice ttyd[19019]: [2023/02/19 06:38:48:5214] N: rops_handle_POLLIN_netlink: DELADDR
Sun Feb 19 06:38:48 2023 daemon.notice netifd: Interface 'lan' is disabled
Sun Feb 19 06:38:48 2023 daemon.notice netifd: Network device 'eth0' link is down
Sun Feb 19 06:38:48 2023 daemon.notice netifd: Interface 'lan' has link connectivity loss
Sun Feb 19 06:38:48 2023 daemon.info avahi-daemon[3771]: Interface eth0.IPv4 no longer relevant for mDNS.
Sun Feb 19 06:38:48 2023 daemon.info avahi-daemon[3771]: Interface eth0.IPv6 no longer relevant for mDNS.
Sun Feb 19 06:38:48 2023 daemon.info avahi-daemon[3771]: Leaving mDNS multicast group on interface eth0.IPv6 with address 240e:::1.
Sun Feb 19 06:38:48 2023 daemon.info avahi-daemon[3771]: Withdrawing address record for fe80:::4e24 on eth0.
Sun Feb 19 06:38:48 2023 daemon.info avahi-daemon[3771]: Withdrawing address record for fd1a:::1 on eth0.
Sun Feb 19 06:38:48 2023 daemon.info avahi-daemon[3771]: Withdrawing address record for 240e:::::1 on eth0.
Sun Feb 19 06:38:48 2023 kern.info kernel: [97420.894078] eth0: 0xffffc9000006d000, 00:00:00:00:00:00, IRQ 119
Sun Feb 19 06:38:48 2023 daemon.notice netifd: Interface 'lan' is enabled
Sun Feb 19 06:38:48 2023 daemon.notice netifd: Interface 'lan' is setting up now
Sun Feb 19 06:38:48 2023 daemon.info avahi-daemon[3771]: Joining mDNS multicast group on interface eth0.IPv4 with address 192.168.31.1.
Sun Feb 19 06:38:48 2023 daemon.info avahi-daemon[3771]: New relevant interface eth0.IPv4 for mDNS.
Sun Feb 19 06:38:48 2023 daemon.info avahi-daemon[3771]: Registering new address record for 192.168.31.1 on eth0.IPv4.
Sun Feb 19 06:38:48 2023 daemon.info avahi-daemon[3771]: Joining mDNS multicast group on interface eth0.IPv6 with address 240e:::1.
Sun Feb 19 06:38:48 2023 daemon.info avahi-daemon[3771]: New relevant interface eth0.IPv6 for mDNS.
Sun Feb 19 06:38:48 2023 daemon.notice netifd: Interface 'lan' is now up
Sun Feb 19 06:38:48 2023 daemon.info avahi-daemon[3771]: Registering new address record for 240e:::::1 on eth0.*.
Sun Feb 19 06:38:48 2023 daemon.info avahi-daemon[3771]: Registering new address record for fd1a::::1 on eth0.*.
Sun Feb 19 06:38:49 2023 daemon.err odhcpd[2637]: Failed to send to ff02::1%lan@eth0 (Address not available)
Sun Feb 19 06:38:50 2023 daemon.info samba4-server: io_uring module found, enabling VFS io_uring. (also needs Kernel 5.4+ Support)
Sun Feb 19 06:38:50 2023 daemon.info samba4-server: io_uring module found, enabling VFS io_uring. (also needs Kernel 5.4+ Support)
Sun Feb 19 06:38:50 2023 daemon.info samba4-server: io_uring module found, enabling VFS io_uring. (also needs Kernel 5.4+ Support)
Sun Feb 19 06:38:50 2023 daemon.info samba4-server: io_uring module found, enabling VFS io_uring. (also needs Kernel 5.4+ Support)
Sun Feb 19 06:38:52 2023 kern.info kernel: [97425.132501] r8168: eth0: link up
Sun Feb 19 06:38:52 2023 kern.info kernel: [97425.134542] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
Sun Feb 19 06:38:52 2023 daemon.notice netifd: Network device 'eth0' link is up
Sun Feb 19 06:38:52 2023 daemon.notice netifd: Interface 'lan' has link connectivity




展开 收起

Xiaomi 小米 AX3000T 双频3000M 家用千兆Mesh路由器 Wi-Fi 6 白色 单个装

Xiaomi 小米 AX3000T 双频3000M 家用千兆Mesh路由器 Wi-Fi 6 白色 单个装

89.5元起

ASUS 华硕 RT-BE88U 双频7200M 家用Mesh无线路由器 Wi-Fi 7 黑色 单个装

ASUS 华硕 RT-BE88U 双频7200M 家用Mesh无线路由器 Wi-Fi 7 黑色 单个装

1999元起

Xiaomi 小米 BE6500 Pro 双频6500M 家用千兆Mesh无线路由器 Wi-Fi 7

Xiaomi 小米 BE6500 Pro 双频6500M 家用千兆Mesh无线路由器 Wi-Fi 7

535元起

ZTE 中兴 AX3000 巡天版 双频3000M 家用千兆Mesh无线路由器 Wi-Fi 6 单个装 白色

ZTE 中兴 AX3000 巡天版 双频3000M 家用千兆Mesh无线路由器 Wi-Fi 6 单个装 白色

139元起

Redmi 红米 AX6000 双频5952M 家用千兆Mesh无线路由器 Wi-Fi 6 单个装黑色

Redmi 红米 AX6000 双频5952M 家用千兆Mesh无线路由器 Wi-Fi 6 单个装黑色

318元起

Xiaomi 小米 AX6000 双频6000M 家用千兆Mesh无线路由器 Wi-Fi 6 单个装 黑色

Xiaomi 小米 AX6000 双频6000M 家用千兆Mesh无线路由器 Wi-Fi 6 单个装 黑色

339元起

Ruijie 锐捷 雪豹 X30E 双频3000M 家用千兆Mesh无线路由器 Wi-Fi 6 白色 单个装

Ruijie 锐捷 雪豹 X30E 双频3000M 家用千兆Mesh无线路由器 Wi-Fi 6 白色 单个装

159元起

Xiaomi 小米 BE3600 2.5G版 3600M 双频千兆家用无线路由器 Wi-Fi 7 白色

Xiaomi 小米 BE3600 2.5G版 3600M 双频千兆家用无线路由器 Wi-Fi 7 白色

189元起

HUAWEI 华为 BE3 Pro 双频3000M 千兆家用路由器 Wi-Fi 7 黑色

HUAWEI 华为 BE3 Pro 双频3000M 千兆家用路由器 Wi-Fi 7 黑色

279元起

ASUS 华硕 TUF小旋风Pro BE6500 家用无线千兆路由器 WiFi7

ASUS 华硕 TUF小旋风Pro BE6500 家用无线千兆路由器 WiFi7

799元起

京东云 BE6500 千兆无线路由器 WiFi7

京东云 BE6500 千兆无线路由器 WiFi7

569元起

ASUS 华硕 TUF 小旋风 BE3600 WiFi7 电竞路由器

ASUS 华硕 TUF 小旋风 BE3600 WiFi7 电竞路由器

446.26元起

ZTE 中兴 问天BE7200Pro+ 双频7200M 家用千兆Mesh无线路由器 WiFi 7 黑色

ZTE 中兴 问天BE7200Pro+ 双频7200M 家用千兆Mesh无线路由器 WiFi 7 黑色

556.11元起

ZTE 中兴 巡天AX3000Pro+ 双频3000M 家用千兆Mesh无线路由器 Wi-Fi 6 白色 单个装

ZTE 中兴 巡天AX3000Pro+ 双频3000M 家用千兆Mesh无线路由器 Wi-Fi 6 白色 单个装

249元起

ASUS 华硕 天选 TX-AX6000 双频6000M 家用千兆Mesh无线路由器 Wi-Fi 6 黑色 单个装

ASUS 华硕 天选 TX-AX6000 双频6000M 家用千兆Mesh无线路由器 Wi-Fi 6 黑色 单个装

649元起

Xiaomi 小米 BE7000 三频千兆Mesh无线路由器 Wi-Fi 7

Xiaomi 小米 BE7000 三频千兆Mesh无线路由器 Wi-Fi 7

649元起
5评论

  • 精彩
  • 最新
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
天猫超级红包
距结束::
每天领现金,最高24888元
红包按钮
最新文章 热门文章
10
扫一下,分享更方便,购买更轻松