简单的说,电信公司每隔一段时间就会从局端将PPPOE连接断掉,如果我们路由器没有设定相应的规则去侦测PPPOE的连接断掉,并重新进行拨号连接,那么互联网接入就会中断。

这个在之前使用小米路由器的时候,需要设置路由器每天的凌晨自动重启,否则就经常会用着用着网就断了,进路由器断掉PPPOE重新拨号才恢复正常。

在更换了Ax6s并刷了OpenWRT后,有了比较详细的日志记录,确认了这个问题:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
Sat Jun 11 00:32:16 2022 daemon.info pppd[2947]: LCP terminated by peer
Sat Jun 11 00:32:16 2022 daemon.info pppd[2947]: Connect time 4320.1 minutes.
Sat Jun 11 00:32:16 2022 daemon.notice netifd: Network device 'pppoe-wan' link is down
Sat Jun 11 00:32:17 2022 user.notice mwan3[17303]: Execute ifdown event on interface wan (unknown)
Sat Jun 11 00:32:19 2022 daemon.notice pppd[2947]: Connection terminated.
Sat Jun 11 00:32:20 2022 daemon.notice pppd[2947]: Modem hangup
Sat Jun 11 00:32:23 2022 daemon.info pppd[18121]: Using interface pppoe-wan
Sat Jun 11 00:32:23 2022 daemon.notice pppd[18121]: Connect: pppoe-wan <--> eth1
Sat Jun 11 00:32:26 2022 daemon.info pppd[18121]: Remote message: Authentication success,Welcome!
Sat Jun 11 00:32:26 2022 daemon.notice pppd[18121]: PAP authentication succeeded

依据以上日志(节选关键信息),局端直接关闭了连接,路由器执行ifdown event重新连接了PPPOE,大概也就是终端了10秒,又重更新连接上了。

及时侦测局端对PPPOE连接的终止,主要是要配置路由器的链路控制协议(Link Control Protocol)的主动检测,我是将LCP 响应故障阈值LCP 响应间隔两个配置的参数设置为5,也就是每5秒种发起一次LCP报文,如果局端有回复,则认为连接是正常的,如果连续5次没有收到局端的回复,则认为PPPOE连接已经终止了,进行重新连接。

配置了这组参数后,路由器即使不设置定时重启,也能长时间稳定运行。