LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: 亚森罗平

ppp0无法激活奇异故障-誓死也要搞定

[复制链接]
 楼主| 发表于 2006-12-6 08:55:20 | 显示全部楼层
还是不行,晕了!!!


我昨天又重装了网卡驱动,改了一些配置文件,结果被我搞得一塌糊涂了

现在我想重装系统再试试,但是无奈工程量太大,我想只重装网卡驱动算了,现在我装了一块Realtek 8168/8111 网卡和一块intel 3945ABG无线网卡,都乱了套了,

请问有没有彻底删除网卡驱动的方法啊?

我在网上搜了一下,讲的都很笼统,我还是没搞明白,希望各位老大赐教,谢谢!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-6 11:16:33 | 显示全部楼层
刚刚用rmmod命令,又重装了一遍驱动,发现竟然只能ping通自己,ping不通局域网上的电脑了

这是为何?
回复 支持 反对

使用道具 举报

发表于 2006-12-6 11:33:55 | 显示全部楼层
任何机子都可以ping通自己的,ping不同局域网是因为你根本就没有连入局域网。
只装驱动是不行的看看ip,dns,mac,网关等信息是否正确
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-6 12:57:58 | 显示全部楼层
IP为169.254.253.1,子网掩码255.255.0.0
MAC无冲突,网关为空

双机互联,互相ping不到,我是FC6,另一台为XP V5

监测网络发现:对方ping我的时候可见收到数据包,我ping对方时可见发出数据包


今天上网查了一下,网上有人有类似故障,说使用双系统windows+linux,用xp的时候会向网卡中写入一些垃圾数据,导致ping不通

链接:http://www.linuxsky.net/html/200611/5186.html

原因是WINDOWS会向NVDIA网卡写入一些垃圾数据,这些数据会导致陆游器不向非WINDOWS系统的网卡发送数据,所以必须拔掉电源几分钟,开机后要直接进入LINUX。


说断电数分钟可解决问题,我照做了并没有解决,而且我一直是用的XP+FC6,以前用得很好从未出过类似故障。

现在linux用习惯了,结果又上不了网了,只能用windows了,郁闷啊,请各位大侠帮忙再看

看,实在不行就得重装了,大工程啊!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-6 20:12:28 | 显示全部楼层
察看网络设置,发现HOST主机列表变成空的了,原来是有两行的
一行是lo
一样是127.0.0.1,现在空了,而且使用上面的新建按钮添加也无效,依旧是一片空白

截图如下:





打开/etc/host

除去注释部分,只有一行

127.0.0.1    localhost.localdomain     localdomain

上面原来没出问题之前还有一行
::1                        ......                       localhost     中间不记得了

route  输出数据:

  1. #route
  2. Destination      Gateway      Genmask         Flags    MSS   Window   irtt    Iface

  3. 169.254.0.0       *       255.255.0.0      U           0          0          0     eth0

复制代码


应该是是被我乱搞乱搞,搞乱了什么东西了,不知道是不是因为这个上不了网,

麻烦哪位大哥给看下,谢谢!



[color="Red"]以下是第二页的,放到这里醒目点,各位大侠伸出援助之手拉小弟一把啊

得一位大哥指点,host改为127.0.0.1  localhost  localhost.localdomain localdomain


另外我在关机的时候看到有提示:peth0: Promiscuous mode enabled

貌似开启了混杂模式

另一控制台中使用tail -f /var/log/messages

输出信息中含有

  1. Dec  7 14:16:44 localhost kernel: peth0: Promiscuous mode enabled
复制代码


执行 ifconfig peth0 -promisc     #取消混杂模式

再次tail -f /var/log/messages

输出信息中反而多出一行

  1. Dec  7 14:16:44 localhost kernel: peth0: Promiscuous mode enabled
  2. Dec  7 14:17:27 localhost kernel: peth0: Promiscuous mode enabled.
复制代码


令人费解

我adsl拨号失败后,打开/var/log/messgages察看

有如下相关信息:

  1. Dec  7 14:18:33 localhost pppd[7159]: pppd 2.4.4 started by root, uid 0
  2. Dec  7 14:18:33 localhost pppd[7159]: Using interface ppp0
  3. Dec  7 14:18:33 localhost pppd[7159]: Connect: ppp0 <--> /dev/pts/2
  4. Dec  7 14:18:33 localhost pppoe[7160]: Changed pty line discipline to N_HDLC for synchronous mode
  5. Dec  7 14:19:04 localhost pppd[7159]: LCP: timeout sending Config-Requests
  6. Dec  7 14:19:04 localhost pppd[7159]: Connection terminated.
  7. Dec  7 14:19:04 localhost pppd[7159]: Modem hangup
  8. Dec  7 14:19:08 localhost pppoe[7160]: Timeout waiting for PADO packets
  9. Dec  7 14:19:08 localhost pppd[7159]: Exit.
  10. Dec  7 14:19:08 localhost adsl-connect: ADSL connection lost; attempting re-connection.
  11. Dec  7 14:19:13 localhost pppd[7234]: pppd 2.4.4 started by root, uid 0
  12. Dec  7 14:19:13 localhost pppd[7234]: Using interface ppp0
  13. Dec  7 14:19:13 localhost pppd[7234]: Connect: ppp0 <--> /dev/pts/2
  14. Dec  7 14:19:13 localhost pppoe[7235]: Changed pty line discipline to N_HDLC for synchronous mode
  15. Dec  7 14:19:44 localhost pppd[7234]: LCP: timeout sending Config-Requests
  16. Dec  7 14:19:44 localhost pppd[7234]: Connection terminated.
  17. Dec  7 14:19:44 localhost pppd[7234]: Modem hangup
  18. Dec  7 14:19:48 localhost pppoe[7235]: Timeout waiting for PADO packets
  19. Dec  7 14:19:48 localhost pppd[7234]: Exit.

复制代码



只能看懂一点点,大意是等待远程服务器回应PADO数据包

亟盼高手指点迷津!

感激不尽!

[color="Red"]----------------------------------------------以下内容为追加--------------------------------------------

[color="red"]上网查到ADSL连接的原理:

pppoe工作原理:
1。发现(Discovery)阶段
在Discovery过程中用户主机以广播方式寻找可以连接的所有接入设备,获得其以太网MAC地
址。然后选择需要连接的用户主机并最后获得所要建立的PPP会话的SESSION_ID。在Discovery过
程中节点间是客户端-服务器关系,一个用户主机(客户端)最终要发现一个接入设备(服务器
)。在网络拓朴中,一般有不止一个的接入设备可以通信,Discovery阶段允许用户主机发现所有
的接入设备,并从中选择一个。当Discovery阶段结束时,用户主机和接入设备之间都获得了可供
以太网上建立PPP连接的全部信息。Discovery阶段保持无连接状态直到一个PPP会话的建立。一旦
PPP连接建立,则用户主机和接入设备都必须为PPP虚拟端口分配资源。
这一部分主要以下几个部分:
    a. 用户主机发出PPPOE有效发现初始(PADI)包。以太网目的地址为广播地址0xffffffff,
CODE字段为0x09, SESSION_ID为0x0000。PADI包必须至少包含一个服务名称类型
(Service-Name)的标签(标签类型字段为0x0101),向接入设备提出所要求提供的服
务。一个完整的PADI(包括PPPOE头)不能超过1484字节,以留下充足的预留给agent设
备增加Relay-Session-Id标识。
    b.接入设备收到在服务范围内的PADI包后,发送PPPOE有效发现提供(PADO)包以响应请
求。其CODE字段为0x07 ,SESSION_ID仍为0x0000。PADO包必须包含一个接入设备名称
类型(AC-Name)的标签(标签类型字段为0x0102)以及一个或多个服务名称类型标签,
表明可向用户主机提供的服务种类。
   c.用户主机在可能收到的多个PADO包中选择一个合适的接入设备,选择的原则是根据
PADO中接入设备名称类型标签和服务名称类型标签的内容。然后向所选择的接入设备发
送PPPOE有效发现请求(PADR)包。其CODE字段为0x19,SESSION_ID仍为0x0000。
PADR包必须包一个服务名称类型标签,确定向接入设备请求的服务种类。当一个用户主
机在确定时间没有收到PADO,他会重发一个PADI,同时等待两倍的时间。这种过程可以
根据需要重复多次。
   d.接入设备收到PADR包后准备开始PPP会话,它发送一个PPPOE有效发现会话确认
(PADS)包。其CODE字段为0x65 , SESSION_ID为接入设备所产生的一个唯一的
PPPOE会话标识号码。0xffff作为预留资源,目前不能被使用作SESSION_ID。PADS包也
必须包含一个服务名称类型的标签确认向用户主机提供的服务。当用户主机收到PADS包
确认后,双方就进入PPP会话阶段。如果接入设备不能识别PADR中的服务名称类型的标
签, 则会回一个包含服务名称错误( Service-Name-Error ) 标签的PADS , 其
SESSION_ID仍然是0x0000。如果用户主机在确定时间没收到PADS包,与没收到PADO作
同样处理。
2.会话阶段
用户主机与在发现阶段确定的接入设备进行PPP协商。这个协商过程与标准的PPP协商并没有
任何区别。在PPP会话阶段节点间是对等关系.

[color="red"]

分析了一下我自己的SYSLOG数据,发现应该是电信的接入服务器没有回应,但是监视网络却明明发现数据包的收发正常

应该是收到了数据包但是系统不认,我ping的通自己的IP,却ping不通局域网其他的IP,同样数据包也有收有发,

这两个问题应该是同一个原因导致的,但是到底是因为什么造成的,还是没搞懂,各位大哥帮忙看看,我也一直在查资料,谢谢了!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-7 14:53:32 | 显示全部楼层
得一位大哥指点,host改为127.0.0.1  localhost  localhost.localdomain localdomain


另外我在关机的时候看到有提示:peth0: Promiscuous mode enabled

貌似开启了混杂模式

另一控制台中使用tail -f /var/log/messages

输出信息中含有

  1. Dec  7 14:16:44 localhost kernel: peth0: Promiscuous mode enabled
复制代码


执行 ifconfig peth0 -promisc     #取消混杂模式

再次tail -f /var/log/messages

输出信息中反而多出一行

  1. Dec  7 14:16:44 localhost kernel: peth0: Promiscuous mode enabled
  2. Dec  7 14:17:27 localhost kernel: peth0: Promiscuous mode enabled.
复制代码


令人费解

我adsl拨号失败后,打开/var/log/messgages察看

有如下相关信息:

  1. Dec  7 14:18:33 localhost pppd[7159]: pppd 2.4.4 started by root, uid 0
  2. Dec  7 14:18:33 localhost pppd[7159]: Using interface ppp0
  3. Dec  7 14:18:33 localhost pppd[7159]: Connect: ppp0 <--> /dev/pts/2
  4. Dec  7 14:18:33 localhost pppoe[7160]: Changed pty line discipline to N_HDLC for synchronous mode
  5. Dec  7 14:19:04 localhost pppd[7159]: LCP: timeout sending Config-Requests
  6. Dec  7 14:19:04 localhost pppd[7159]: Connection terminated.
  7. Dec  7 14:19:04 localhost pppd[7159]: Modem hangup
  8. Dec  7 14:19:08 localhost pppoe[7160]: Timeout waiting for PADO packets
  9. Dec  7 14:19:08 localhost pppd[7159]: Exit.
  10. Dec  7 14:19:08 localhost adsl-connect: ADSL connection lost; attempting re-connection.
  11. Dec  7 14:19:13 localhost pppd[7234]: pppd 2.4.4 started by root, uid 0
  12. Dec  7 14:19:13 localhost pppd[7234]: Using interface ppp0
  13. Dec  7 14:19:13 localhost pppd[7234]: Connect: ppp0 <--> /dev/pts/2
  14. Dec  7 14:19:13 localhost pppoe[7235]: Changed pty line discipline to N_HDLC for synchronous mode
  15. Dec  7 14:19:44 localhost pppd[7234]: LCP: timeout sending Config-Requests
  16. Dec  7 14:19:44 localhost pppd[7234]: Connection terminated.
  17. Dec  7 14:19:44 localhost pppd[7234]: Modem hangup
  18. Dec  7 14:19:48 localhost pppoe[7235]: Timeout waiting for PADO packets
  19. Dec  7 14:19:48 localhost pppd[7234]: Exit.

复制代码



只能看懂一点点,大意是等待远程服务器回应PADO数据包

亟盼高手指点迷津!

感激不尽!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-16 00:05:45 | 显示全部楼层
[color="Red"]太Crazy了,昨天得一位高人指点,叫我运行tcpdump分析发送和收到的报文,于是我照着做了,结果运行tcpdump之后拨号准备抓包分析,还没来得及反应,突然发现居然只用了2秒钟就连上去了,而且能够正常的浏览网页和聊天,狂喜!!!

随后,我关掉终端里的tcpdump,结果网络马上就断掉,再运行tcpdump又能正常使用了,奇怪的很,是在搞不懂,为什么运行tcpdump之后就能拨号了,我现在只能一边开着tcpdump一边上网

请各位老大指教!!!
回复 支持 反对

使用道具 举报

发表于 2006-12-27 00:56:23 | 显示全部楼层
log  message   ?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-6 05:38:51 | 显示全部楼层
[color="Red"]现在已经基本上把里面的道道搞清楚了,最终解释是这样的:



Realtek RTL8168/8111 的网卡驱动装上之后,无法直接在网络配置的图形窗口中关联MAC地址,一旦使用直接在配置文件中修改MAC地址的方法修改MAC,重启之后就会使系统不认网卡,偶尔重启或运行kudzu之后可以检测到一新设备,其MAC地址值为fe:ff:ff:ff:ff:ff或者为网卡本来的MAC地址

此时删除之前的设备,设置好新多出来的设备,可以和电信正常联通,并可以检测到因MAC地址不符导致的认证失败日志,对网络抓包也可作出同样的结论,此时ping等正常应用都可正常进行,此时若修改/etc/sysconfig/network-scripts目录下对应的ifcfg文件,即在文件中添加MACADDR=.......或
HWADDR=......参数使得激活设备时强制设定某一MAC地址,重启系统后就会出现系统不认网卡的现象,虽然网卡仍然能够正常激活,但实际上无法进行任何网络应用.

经在下反复测试,已确认发现在FC6 2.6.*系列内核,r1000_1.04/1.05版本的Realtek RTL8168/8111 的网卡驱动条件下,会发生这种问题,

解决方案如下:
如果一定要更改MAC地址,请放弃直接修改配置文件,较为理想的方法有两种
1  网卡设为开机自动激活,ADSL设为开机不自动激活
   在/etc/rc.d/rc.local文件末尾加入一下命令代码
ifconfig peth0 down
ifconfig peth0 hw ether XX:XX:XX:XX:XX:XX
ifconfig peth0 up
ifconfig peth0 promisc
ifup  ppp0

以上使我的配置,请按照个人情况修改相应参数(peth0为网卡对应的设备接口,ppp0对应的是ADSL拨号接口,XX:XX:XX:XX:XX:XX对应你想要修改成为的MAC地址)
如此,即可实现开机自动联网,解决MAC地址修改的问题

2  ARP欺骗
   使用ARP命令,原理同上,也是在rc.local文件中加入命令代码,启动时自动执行 ,将本机网卡地址为装成你想要修改的MAC地址,这个我没有尝试,理论上是可行的


总结:

可能是r1000_1.04/1.05版本的Realtek RTL8168/8111 的网卡驱动程序缺陷,  无法直接在网络配置的图形窗口中关联MAC地址,也不能通过直接修改配置文件达到目的,只能通过以上两种方法修改,这个问题折腾了我好久,特写出来心得于大家共享,如果你也有相同的问题,可以参考一下我的方法。

[color="Red"]特别感谢yichi,hers大哥以及各位回帖的兄弟们的热心帮助!!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表