Openwrt pppoe demand拨号问题
来源:互联网 发布:大宗师 外网端口 编辑:程序博客网 时间:2024/06/06 07:25
最近在使用openwrt开发,使用自带的pppoe功能
拨号配置很简单,只要修改/etc/config/network文件的配置如下即可
/etc/config/network
config interface 'wan' option ipv6 '0' option ifname 'eth1' option proto 'pppoe' option macaddr '00:0C:43:28:80:58' option 'username' 'root' option 'password' '111111' option 'peerdns' '1' option 'defaultroute' '1' #
/etc/init.d//network restart
不知道为什么修改任意网络都要重载网络配置,shit
重启网络后,自动拨号成功。
大家可以直接网上搜索一个pppoe-server配置方式,自己搭建一个服务器,测试比较方便,很容易就可以拨号成功了 。
如:http://blog.csdn.net/pdcxs007/article/details/44599885
在使用pppoe过程中,包括家用路由器,想必各位的拨号方式都不是自动拨号,而是按需拨号 ,简单来说就是有人用就拨号上网,空闲一段时间网络自动断开,这也就用到了pppoe拨号中的demand功能,只需在配置中增加
option 'demand' '30'
pppoe就会进行按需拨号。
但是使用中发现,一旦配置了demand,系统就不进行拨号操作,去掉了demand就可以正常运行,按理说openwrt中的按需拨号应该是一个很基础的功能,不应该有这种问题
遂去网上进行各种搜索,国内的国外的,还真有很多人都遇到了这个问题。
然后就开始研究pppoe拨号流程,根据后台ps跟踪发现,当不配置demand,也就是可正常拨号的情况下,后台存在了如下进程
root@Topwag:~# ps -wwww|grep ppp 3637 root 1680 S/usr/sbin/pppd nodetach ipparam wan ifname pppoe-wan nodefaultroute usepeerdns persist maxfail 10 user root password 111111 ip-up-script /lib/netifd/ppp-upipv6-up-script /lib/netifd/ppp-up ip-down-script /lib/netifd/ppp-down ipv6-down-script /lib/netifd/ppp-down mtu 1492 mru 1492 plugin rp-pppoe.so nic-eth1
ps -wwww wwww 4个w 画重点!
当配置了demand,拨号不正常的情况下,后台根本就没有pppd进程,并且也不存在pppoe-wan虚网卡
再跟踪分析发现,此进程是由系统脚本vi /lib/netifd/proto/ppp.sh 生成并调用,具体调用方式猜测是procd调用的,这个过于复杂,没进行追踪
具体脚本如下:
/lib/netifd/proto/ppp.sh
proto_run_command "$config" /usr/sbin/pppd \ nodetach ipparam "$config" \ ifname "$pppname" \ ${keepalive:+lcp-echo-interval $interval lcp-echo-failure ${keepalive%%[, ]*}} \${ipv6:++ipv6} \nodefaultroute \usepeerdns \$demand maxfail 1 \ ${username:+user "$username" password "$password"} \${connect:+connect "$connect"} \${disconnect:+disconnect "$disconnect"} \ ip-up-script /lib/netifd/ppp-up \ ipv6-up-script /lib/netifd/ppp-up \ ip-down-script /lib/netifd/ppp-down \ ipv6-down-script /lib/netifd/ppp-down \ ${mtu:+mtu $mtu mru $mtu} \ "$@" $pppd_options
然后针对ppp.sh进行分析,在里面使用脚本将参数打印出来,结果偶然间发现一旦脚本写错,整个脚本都不会执行,而非到错误那一行就会停止,这与正常的脚本流程不符,遂推断应该是在配置了demand的情况下,拼接的命令行有问题,导致后台pppd进程未启动。
由于openwrt并未使用ipv6,我对系统中的ipv6做了适当的裁剪,而脚本中还有ipv6相关的参数,遂将ppp.sh中的ipv6-up、down脚本两行删除,并在/etc/config/netwrok中增加如下命令:
option ipv6 '0'
删除下面两条
ipv6-up-script /lib/netifd/ppp-up \ ipv6-down-script /lib/netifd/ppp-down \
然后重启network(fuck openwrt)
此时如果没问题的话,系统会出现pppoe-wan虚网卡
最后增加一条路由,将数据送到虚网卡中,触发按需拨号
route add default dev pppoe-wan
当然此步操作可以由修改ppp.sh脚本完成,只需将脚本中的nodefaultroute改为defaultroute即可
至此,pppoe拨号使用正常,历时4小时。
综上记录
第一篇博客
以下为参考资料,主要参考资料为www.baidu.com www.bing.com www.sov5.cn
https://wiki.openwrt.org/doc/howto/vpn.client.pptp#on_demand_dial
http://blog.csdn.net/macrohasdefined/article/details/19006351
- Openwrt pppoe demand拨号问题
- OpenWrt之PPPoE拨号
- OpenWrt PPPoE拨号问题之mac地址克隆
- PPPOE拨号
- pppoe拨号
- PPPoE拨号上不了web的问题
- 华为AR路由器双出口(PPPOE拨号)上网丢包卡顿问题
- uclinux 下PPPoE 拨号
- VC实现PPPOE拨号
- PPPoE拨号调试
- PPPoE拨号过程解析
- PPPOE拨号过程
- ubantu pppoe拨号
- Android 实现PPPoE拨号
- Android 实现PPPoE拨号
- PPPoE拨号流程
- VC实现PPPOE拨号
- PPPoE拨号流程
- 最小生成树prim n^2
- hqu.edu.cn域名测试
- 论文中图片加方框并且放大显示 matlab代码
- 一个java面试题:一个农夫养了一头牛,三年后,这头牛每年会生出一头牛,生出来的牛三年后又可以每年生出一头牛,不考虑牛的性别和生死,问农夫10年后有多少头牛?
- 【数位Dp】windy数
- Openwrt pppoe demand拨号问题
- freemaker中配置文件freemarker.properties详解
- 日记(周中)
- angularjs 通过http下载php生成的excel的方法
- Python学习笔记(3)
- consul分布式集群搭建&简单功能测试&故障恢复
- Java与C语言混合编程
- linux 网络设置基础知识整理复习(二) ifcfg-eth文件配置
- ES Java API