OpenWrt PPPoE拨号问题之mac地址克隆

【转载:钱国正的专栏http://blog.csdn.net/qianguozheng/article/details/38322705】

前言

Mac地址克隆主要是解决运营商绑定mac地址的行为,这种行为就给哥添麻烦。

好了,话题转回,我如何实现这个Mac地址克隆的。

OpenWrt中的LAN口以实现Mac地址克隆,所以其相关的设置Mac地址克隆的东西也已经存在了,我们需要做的就是搬到PPPoE上面。

但是,问题来了,照搬之后,wan口的mac地址是编程我们设置的mac地址了,但是但是就是拨号拨不上。

分析

首先要抓包分析,顺便看看PPPoE建立连接过程。

发现,PPPoE建立连接分为两个过程,1. PPPoE发现过程。 2. PPP链接建立过程。

但是PPP链接建立过程中会出现路由器之前的Mac地址(非我们克隆的Mac地址),然后又有我们克隆的地址,连接反复,一直拨不上号。

后来通过看pppd的源代码发现

rp-pppoe.so这个动态链接库实现PPPoE发现过程。

pppd进程实现PPP链接建立过程,在lcp的过程中发现发送数据包使用的是write函数,mac地址是系统自动填上的,这里需要仔细研究这个socket建立的过程,其mac如何修改,我目前的时间不允许我深陷,只能取折中的方法,修改eth0的mac地址。

总结

如此,问题解决,但是这不是终点,各种不同情况下需要修复bug,如当mac为空的时候,系统重启的时候,网络重启的时候等。

这些情况都要保持eth0.2(我自己划分的vlan,不同的系统各不相同,我的系统3个vlan所以才这么复杂)与eth0的mac地址一致。

此条目发表在openwrt, 固件教程分类目录,贴了, , 标签。将固定链接加入收藏夹。

4 则回应给 OpenWrt PPPoE拨号问题之mac地址克隆

  1. hep08说:

    OPENWRT修改MAC
    如果拨号不上,用以下方法修改network文件里的wan 的参数 就行了,我试过很正常

    1.修改 lan,wan mac地址
    编辑 /etc/config/network
    修改其中一段

    config ‘interface’ ‘wan’
    option ‘ifname’ ‘eth0.1’
    option ‘proto’ ‘dhcp’
    option ‘macaddr’ ‘d8:64:c7:5e:f1:c6’

    如果这个文件中没有这段 option ‘macaddr’ ‘d8:64:c7:5e:f1:c6’ 的加进去就行了,MAC自己修改就行,也可以修改为你电脑的MAC以便好记或丢失了也好修改。

  2. sceic说:

    我也存在这个问题,3800普通版,新春固件。
    北京联通Fibehome光猫,偶尔能拨上,大多数时间都是WAN口完全不亮。。。。

  3. 小白说:

    我的路由器是网件 3800 ch
    目前刷了最新的固件 所存在的问题就是无法拨号ppoe
    然后用原版固件就可以拨号,网络是移动宽带,光猫是华为的8010
    目前百度了很多,都没有相关问题的解决方案,所以请您能给看一下。

    • rapistor说:

      拨号不兼容,你可以试下op官方的op,如果还这样。你还可以试下虚拟一个lan改为wan,来试下。如果都不行,用原厂固件吧。原因大概是运营商用了非标准协议造成的。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*