赞
踩
Pptpd移植
北京华环-任晓亮,2015.5.4
项目:南非铁路,三层交换,单臂路由
平台:nios2 ,ETR01,cyclconeIII
查看内核支持PPP、MPPE, GRE
说明:PPP是虚拟接口,每一个客户端连接到pptpd,服务器都会建立一个虚拟的物理接口ppp0,与客户端端到端通信
MPPE是信道通信加密协议
GRE是服务建立以后隧道是通过这个模块传送数据的
有加载mppe跟gre模块
你可以用lsmod命令查看里面是否有没有以上两个模块。
加载mppe模块:
>modprobe –l|grep mppe
显示:/modules/2.****/kernel/drivers/net/ppp_mppe.ko
接着输入:
>modprobe ppp_mppe
加载gre
> modprobe –l|grep mppe
会提示:……/net/ivp/ip_gre.ko
>modprobe ip_gre
输入lsmod确认是否加载成功。
Gre 跟mppe模块开机情况下不会自动加载,
我们一般选择将这两个模块编译进内核镜像里面,在内核启动时自动加载运行:
1.ppp内核支持
Make menuconfig
将Device DriversàNetworking Support下的所有关于ppp的选项全部编译进内核或者编译成模块加载。
2.pppd移植(busybox里面有这个支持)
PPTP服务器和客户端都需要pppd。下载ppp-2.4.5.tar.gz,一定要用这个版本。网上很多用2.4.4版本加mppe补丁,但是我用这种方法始终不能让pppd支持mppe。2.4.5版本本身就支持mppe。
移植过程如下:
tar zxvf ppp-2.4.5.tar.gz
cd ppp-2.4.5
./configure
make CC=mips-linux-gcc
将pppd下载到板子上的/usr/sbin
将scripts目录下的pon和poff下载到板子上的/usr/sbin
Pon和poff是用于启动和关闭pptp客户端,后面会提到。
3.pptpd移植(busybox里面有这个支持)
tar zxvf pptpd-1.3.4.tar.gz
cd pptpd-1.3.4
./configure CC=mips-linux-gcc --host=mips
make
将pptpd下载到板子上的/usr/sbin
将pptpctrl下载到板子上的/usr/local/sbin,此目录可能需要创建
将sample目录下的chap-secrets下载到板子的/etc/ppp,此目录可能需要创建
vi chap-secrets
写入username pptpd password *,“pptpd”与options.pptpd中的name相同。
将sample目录下的options.pptpd下载到板子的/etc/ppp
将sample目录下的pptpd.conf下载到板子的/etc
vi pptpd.conf
将logwtmp屏蔽,否则不能连接,不知道什么原因。
改localip和remoteip,localip为建立连接之后服务器的ip,remoteip为建立连接后分配给客户端的ip
启动pptp服务器:pptpd
4.调试方法
编译内核支持syslogd,这是系统日志功能,可以记录一些系统异常,即可以记录pptpd服务启动运行过程中的一些错误,在这个移植过程中,日志给我很大的帮助,这个搞了一周多时间,最后看日志一步一步搞定了
查看是否启动系统日志:
(1).打开pptpd服务的调试开关:
root:/var/log>vi /etc/pptpd.conf
将 #debug这一行的#号注释取消
(2).root:/etc>ps -aux|grep syslogd
725 root 2112 S /sbin/syslogd -n
772 root 2116 S grep syslogd
(3).查看日志:
root:/var/log>cat messages
Jan 1 00:01:20 nios2syslog.info syslogd started: BusyBox v1.18.4
Jan 2 01:14:29 nios2auth.info login[731]: root login on 'pts/0'
Jan 2 02:28:56 nios2daemon.info pptpd[760]: MGR: Maximum of 100 connections reduced to 51, notenough IP addresses given
Jan 2 02:28:56 nios2daemon.info pptpd[761]: MGR: Manager process started
Jan 2 02:28:56 nios2daemon.info pptpd[761]: MGR: Maximum of 51 connections available
5.移植过程中出现的问题
1.根据日志提示,会找不到pptpd-logwtmp.so库,这个库在编译目录的Plugin/usr/lib/pptpd/pptpd-logwtmp.so,将它复制到系统的/usr/lib/pptpd/,这个库是记录客户端登陆时的一些时间信息,应该是计时计费功能用的,这个库最后还是没正常运行,这个功能我们不用,所有只要屏蔽到计时功能就可以了,在配置文件的29行,33行,注释掉
root:/var/log> vi/etc/pptpd.conf
#noipparam
#logwtmp
2.档客户端登陆提示691,跟875错误代码时就要查看日志,是不是提示找不ppp0设备接口,这个问题也不知道为什么当客户端连接是不能自动建立ppp0接口,解决办法只能手动建立一个设备节点:
root:/etc>mknod/dev/ppp c 108 0
说明:
root:/dev> ls-al|grep ppp
crw-r--r-- 1 root root 108, 0 Jan 1 00:00 ppp
c是指字符设备
108是pptpd服务的主设备号,0是次设备号
查看:主设备文件
root:/proc> catdevices |grep ppp
108 ppp
成功连接后用ifconfig可以看到:
ppp0 Link encap:Point-to-Point Protocol
inet addr:192.168.1.181 P-t-P:192.168.100.50 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARPMULTICAST MTU:1396 Metric:1
RX packets:436 errors:0 dropped:0overruns:0 frame:0
TX packets:65 errors:0 dropped:0overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:39707 (38.7 KiB) TX bytes:7449 (7.2 KiB)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。