前言
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 PPPoE拨号问题之mac地址克隆
本站的文章和资源来自互联网或者站长的原创,按照 CC BY -NC -SA 3.0 CN协议发布和共享,转载或引用本站文章应遵循相同协议。如果有侵犯版权的资 源请尽快联系站长,我们会在24h内删除有争议的资源。欢迎大家多多交流,期待共同学习进步。