ADSL再次断线,修改配置加启用脚本来监测了

昨天还在说 ADSL自动断线的问题,提出了一些解决办法,看来效果不行。因为今天一大早就被叫来加班了。简直给气晕了,五年啦,五年没有出过什么问题,怎么突然间来个这个问题呢?不管了,先分析一下日志和原因。
[root@adsl ~]# adsl-status
adsl-status: Link is down -- could not find interface corresponding to pppd pid 2453
(这个是说没有找到适合PPPD拨号的接口呀,难道eth1死掉了?有可能,几年了,也该坏了^~^)
[root@adsl log]# ps -aux|grep pppd
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.3/FAQ
root      2453  0.0  0.3  3848  992 ?        Ss   Jan16   0:00 /usr/sbin/pppd pty /usr/sbin/pppoe -p /var/run/pppoe-adsl.pid.pppoe -I eth1 -T 80 -U  -m 1412    ipparam ppp0 linkname ppp0 noipdefault noauth default-asyncmap defaultroute hide-password nodetach mtu 1492 mru 1492 noaccomp noccp nobsdcomp nodeflate nopcomp novj novjccomp user ***@163.gd lcp-echo-interval 20 lcp-echo-failure 3
root      5322  0.0  0.2  6524  688 pts/1    R+   10:36   0:00 grep pppd
(上一段PID 2453这行表明PPPOE“Jan16"昨天就启动啦,现在还在启动着呢?lcp-echo-interval 20 lcp-echo-failure 3两个选项记得昨天分别改为30和20了,怎么还是这个?看来改的地方不对了)
[root@adsl log]#cat messages|grep pppd
Jan 16 13:00:17 adsl pppd[2453]: pppd 2.4.2 started by root, uid 0
Jan 16 13:00:17 adsl pppd[2453]: Using interface ppp0
Jan 16 13:00:17 adsl pppd[2453]: Connect: ppp0 <--> /dev/pts/0
Jan 16 13:00:19 adsl pppd[2453]: PAP authentication succeeded
Jan 16 13:00:19 adsl pppd[2453]: local  IP address 121.15.43.236 <29>Jan 16 13:00:19 pppd[2453]: remote IP address 121.15.42.1
Jan 16 18:04:40 adsl pppd[2453]: No response to 3 echo-requests
Jan 16 18:04:40 adsl pppd[2453]: Serial link appears to be disconnected.
Jan 16 18:04:40 adsl pppd[2453]: Connection terminated.
Jan 16 18:04:40 adsl pppd[2453]: Connect time 304.4 minutes.
Jan 16 18:04:40 adsl pppd[2453]: Sent 316945131 bytes, received 489255718 bytes.
(看到了,昨天Jan16下午18:04开始好象断掉了,没有再重新拔号?)
[root@adsl log]# kill -HUP 2453
[root@adsl log]# ifdown eth1
[root@adsl log]# ifup eth1
決定 eth1 裝置的 IP 資訊... 已完成。
[root@adsl log]# adsl-status
adsl-status: Link is attached to ppp0, but ppp0 is down
(既然eth1好象死掉了,我再还魂一下,再看,eth1是连上ppp0了,但是ppp0是down离线的状态,遗憾的是当时太紧张,没有再次adsl-start试一下,如果下次有机会,一定要试一下)
[root@adsl log]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:20:ED:1A:94:24
          inet addr:172.16.86.253  Bcast:172.16.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1345366 errors:0 dropped:0 overruns:0 frame:0
          TX packets:985466 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:386322758 (368.4 MiB)  TX bytes:588472714 (561.2 MiB)

eth1      Link encap:Ethernet  HWaddr 00:20:ED:1A:94:25
          inet addr:192.168.1.8  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:841995 errors:0 dropped:0 overruns:0 frame:0
          TX packets:976379 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:508054132 (484.5 MiB)  TX bytes:338435999 (322.7 MiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:478 errors:0 dropped:0 overruns:0 frame:0
          TX packets:478 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:89904 (87.7 KiB)  TX bytes:89904 (87.7 KiB)

[root@adsl log]# ifup ppp0
(这一步我估计应该就可以拔上号了,日志部分没有记录,或者应该还是不行,否则不会有下一步的表现了)
[root@adsl log]# service network restart
停用 ppp0 介面卡:                                          [  確定  ]
停用 eth0 介面卡:                                          [  確定  ]
停用 eth1 介面卡:                                          [  確定  ]
停用 loopback 介面卡:                                      [  確定  ]
停用 IPv4 封包傳遞:                                        [  確定  ]
設定網路參數:                                              [  確定  ]
啟動 loopback 介面卡:                                      [  確定  ]
啟動 eth0 介面卡:                                          [  確定  ]
啟動 ppp0 介面卡:                                          [  確定  ]
[root@adsl log]# adsl-status
adsl-status: Link is up and running on interface ppp0
ppp0      Link encap:Point-to-Point Protocol
          inet addr:121.34.225.137  P-t-P:121.34.224.1  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
          RX packets:10 errors:0 dropped:0 overruns:0 frame:0
          TX packets:15 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:611 (611.0 b)  TX bytes:2012 (1.9 KiB)
(network服务重新启动一下,终于可以拔上号了)
(以下查看一下为什么昨天改的参数没有启用,在这里发现了,顺利解释一下这几个参数)
[root@adsl log]#cat /etc/sysconfig/network-scripts/ifcfg-ppp0
USERCTL=yes
BOOTPROTO=dialup
NAME=DSLppp0
DEVICE=ppp0
TYPE=xDSL
ONBOOT=yes
PIDFILE=/var/run/pppoe-adsl.pid
FIREWALL=MASQUERADE
PING=.
PPPOE_TIMEOUT=0
CONNECT_TIMEOUT=0
LCP_FAILURE=15
LCP_INTERVAL=80
CLAMPMSS=1412
CONNECT_POLL=6
DEFROUTE=yes
SYNCHRONOUS=no
ETH=eth1
PROVIDER=DSLppp0
USER=szjlkj88@163.gd
PEERDNS=no
DEMAND=no
[root@adsl sbin]# man pppoe.conf
CONNECT_TIMEOUT
              How  long (in seconds) adsl-start should wait for a new PPP interface to come up before concluding that adsl-connect has failed and killing the session.
(这个是等待时间,在建立一个新的PPP接口(即建立新连接)之前,判定ADSL链接失败和关掉这个对话,adsl-start所需等待多长时间(用分钟表示))
LCP_INTERVAL
              How often (in seconds) pppd sends out LCP echo-request packets.
(pppd多久发送一次"LCP echo-request"数据包,时间间隔(用分种表示))

LCP_FAILURE
              How many unanswered LCP echo-requests must occur before pppd concludes the link is dead.
(在pppd结束这个死掉的连接之前,应该产生多少次未应答的"LCP echo-requests"信号)

PPPOE_TIMEOUT
              If this many seconds elapse without any activity seen by pppoe, then pppoe exits.
(如果这些时间过去了,还没有看到一些活动的pppoe,那么pppoe将退出)
DEMAND
          If set to a number, the link is activated on demand and brought down after after DEMAND seconds. 
          If set  to  no,the link is kept up all the time rather than being activated on demand.
(如果设置了一个数字,这个连接是按需求连接的和如果这个数字的分钟内没有需求将停止ADSL,如果设置为no,这个连接将一直保持在线状态)

(以下是正常上线状态时pppoe启动的进程,这次所设置的LCP才生效)
[root@adsl ~]# ps -axu |grep adsl
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.3/FAQ
root      6740  0.0  0.4  6720 1152 pts/2    T    12:46   0:00 /bin/bash /sbin/adsl-connect
root      7350  0.0  0.3  3724  992 ?        Ss   12:49   0:00 /usr/sbin/pppd pty /usr/sbin/pppoe -p /var/run/pppoe-adsl.pid.pppoe -I eth1 -T 0 -U  -m 1412    ipparam ppp0 linkname ppp0 noipdefault noauth default-asyncmap defaultroute hide-password nodetach mtu 1492 mru 1492 noaccomp noccp nobsdcomp nodeflate nopcomp novj novjccomp user szjlkj88@163.gd lcp-echo-interval 80 lcp-echo-failure 15
root      7353  0.1  0.1  2244  464 ?        S    12:49   0:02 /usr/sbin/pppoe -p /var/run/pppoe-adsl.pid.pppoe -I eth1 -T 0 -U -m 1412
root      7475  0.0  0.2  6568  700 pts/1    S+   13:11   0:00 grep adsl
[root@adsl ~]#

ADSL断线的物理因素:
第一,ADSL Modem或分离器故障。ADSL Modem或分离器的质量有问题,将造成频繁的掉线故障。建议借用一套能正常使用的设备,更换后再进行测试。

第二,ADSL线路故障。住宅距离局方机房较远(通常应当小于3000米),或线路附近有严重的干扰源,也会导致经常掉线。另外,在接线盒到ADSL Modem之间建议采用双绞线,即使采用平行线,也不应当超过5米。

第三,室内电磁干扰。室内的电磁干扰比较严重(如无绳电话、空调、洗衣机、冰箱),也可能导致通信故障,建议使ADSL Modem远离上述设备,并不与上述设备共用一条电源线。

第四,网卡缺陷。网卡的质量有缺陷,或者驱动程序与操作系统的版本不匹配,也能导致频繁掉线。

第五,PPPoE问题。这是系统中PPPoE软件安装不合理或软件兼容性不好引起的问题。一般来说,Windows XP建议使用系统本身提供的PPPoE协议和拨号程序。Windows 98/2000则可以安装Modem附送的PPPoE拨号程序。建议先安装系统安全补丁。

除此之外,还应当确认ADSL Modem散热良好。

分析完了,虽然暂时可以了,可是如何解决呢?设置了这两个参数(LCP_FAILURE和LCP_INTERVAL)就一定有效吗?再说像昨天下午断线一样,adsl-start也没有用呀,再者没有真正重新拔号呀?难道eth1网关真的坏掉了?先不理了,”先软后硬“,先从软件上排除,如果不行,再换网卡吧。

[root@adsl network-scripts]# vi ifcfg-ppp0
USERCTL=yes
BOOTPROTO=dialup
NAME=DSLppp0
DEVICE=ppp0
TYPE=xDSL
ONBOOT=no
PIDFILE=/var/run/pppoe-adsl.pid
FIREWALL=MASQUERADE
PING=.
CONNECT_TIMEOUT=0
PPPOE_TIMEOUT=0
LCP_FAILURE=15
LCP_INTERVAL=80
CLAMPMSS=1412
CONNECT_POLL=6
DEFROUTE=yes
SYNCHRONOUS=no
ETH=eth1
PROVIDER=DSLppp0
USER=***@163.gd
PEERDNS=no
DEMAND=no
(开机启动ppp0关掉,用adsl-connect启动ppp0试一下,有断线自动重拨功能?)
[root@adsl network-scripts]# vi /etc/rc.d/rc.local
/sbin/adsl-connect >/dev/null 2>&1 & 
(再使用脚本自动检测连接状态。如果ppp0断掉了不能上网,杀掉所有pppoe进程,这里应该会自动重新拔号,为了保险起见还是将network服务重新启动一下)

[root@adsl ppp]# vi pppoe.sh
#!/bin/bash
if !(ping -c 5 www.163.com &>/dev/null 2>&1);then
/bin/date >> /etc/ppp/pppoe.log
#/usr/bin/killall -9 pppoe
/sbin/service network restart
echo "redail......" >> /etc/ppp/pppoe.log
else
/bin/date >> /etc/ppp/pppoe.log
echo "It is normal !!!" >> /etc/ppp/pppoe.log
fi

(这个else后面的语句可以不要,否则每3分钟两行,多累呀,占用空间,查看自动重拔时间也麻烦)

#touch /etc/ppp/pppoe.log

(指定每3分钟自动运行一下此脚本)
[root@adsl ppp]# crontab -e
*/3 * * * * /etc/ppp/pppoe.sh

再去测试一下,
root@adsl log]# ifdown eth1
[root@adsl ~]# adsl-status
adsl-status: Link is down -- could not find interface corresponding to pppd pid 2453
看来近期ADSL断线现象,的确是由于启动ADSL相关网卡eth1挡掉引起的,是病毒攻击还是硬体原因?以后再查了,
等过了三分钟左右,pppoe.sh脚本启动,OK,adsl终于又起来了

<script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>
阅读(2787) | 评论(0) | 转发(0) |
0

上一篇:ADSL自动断线

下一篇:续ADSL自动断线之迷

给主人留下些什么吧!~~
评论热议
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值