您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > LINUX下如何实现网络协议PPPOEDHCP
LINUX下如何实现网络协议PPPOE、DHCP-----王蕾,2011.08.10应对国网集中抄表终端的新需求,要求集中器的网络通讯必须支持PPPOE、DHCP协议。由于我们前期研发的系统中并未加入这部分的相关功能,因此单独立项对此进行研发。两种协议都已成功编译进根文件系统目录下,上层应用只需根据现场需要进行选择性调用操作即可。第一步,在9260核心板上移植PPPOE核心板信息CPU:AT91SAM9260EKLinuxKernel:Linux2.6.30Ethernet:DM9161AEP软件交叉编译器:arm-uclibc4.1.1ppp2.4.4rp-pppoe3.10移植方法1.编译LINUX内核,使得其支持PPP2.交叉编译ppp以及rp-ppp3.执行pppoe或pppd脚本编译Linux内核,使得其支持PPP通过makemenuconfig将菜单中的以下选项使能:DeviceDrivers-Networkdevicesupport-PPP(point-to-pointprotocol)support选中PPP的全部选项DeviceDrivers-Networkdevicesupport-UniversalTUN/TAPdevicedriversupport交叉编译ppp以及rp-pppoe1.下载并编译:ppp()gitclonegit://ozlabs.org/~paulus/ppp.gitmakeCC=/usr/local/arm-uclibc/4.1.1/bin/arm-linux-gcc编译完后得到可执行文件pppd,拷贝到目标板上的/sbin目录2.下载并编译:rp-pppoe()cdsrc./configure打开Makefile及libevent/Makefile文件,修改所有的gcc为/usr/local/arm-uclibc/4.1.1/bin/arm-linux-gcc,修改所有的ar为/usr/local/arm-uclibc/4.1.1/bin/arm-linux-ar编译完后得到可执行文件:pppoe,pppoe-server,pppoe-sniff,pppoe-relay拷贝到目标板上的/sbin目录将./configs下的脚本文件拷贝到目标板上的/etc/ppp/,并将此目录加上可写权限将./scripts下的所有文件拷贝到目标板上的/sbin,并修改其中的部分内容(如目录)使得其能在开发板上运行执行PPPOE和PPPD的脚本1.首先执行pppoe-setup设置用户名,密码,DNS等相关内容2.执行脚本:pppoe-start,或者直接执行pppd:pppdpty‘pppoe-p/etc/ppp/pppoe.conf-pppoe.pid.pppd-Ieth0-T30-U-m1412′ipparamppp0linknameppp0noipdefaultnoauthdefault-asyncmapdefaultroutehide-passwordnodetachmtu1492mru1492noaccompnoccpnodeflatenopcompnovjnovjccompuserusernamelcp-echo-interval20lcp-echo-failure3/*将username改为自己的用户名*/第二步,在WindowsXP下建立PPPoE服务器1.下载RASPPPOE(0.99版)2.安装RASPPPOE协议本地连接--属性--常规--安装--协议--添加--从磁盘安装--浏览--“找到自己RASPPOE所在的目录下的那个winpppoe.inf”--打开--继续……………即可3.新建拨入的链接新建连接向导--选择高级连接--接受传入的连接--选择你的网卡(如果不安装PPPOE协议这里就看不到网卡)--不允许虚拟专用连接(其实都无所谓,如果你需要建立vpn服务器的话自然不能选这个)--选择允许拨入的用户(这个用户列表就是本机的用户列表,你可以在管理工具,计算机管理,用户和组来设置)--在网络软件这一步选中Internet协议,设置指定的IP地址池,用于给拨入用户分配IP4.找另一台机器测试下PPPoE拨号是否成功,在window下创建PPPoE客户端拨号连接(建立新连接--连接到Internet--手动设置我的连接--用要求用户名密码的宽带连接来连接--然后一直下一步就可以了;建立成功后运行新建的这个连接,在属性框中的常规选项卡填入服务器的IP地址,确定后即可用允许的那个用户名和密码来拨入,之后在dos-shell下用ipconfig就可以看到新连接所获得的IP地址)通过此平台的搭建,可以在WINDOWS环境下进行LINUX系统内PPPOE的测试验证。第三步,DHCP动态获取IP的实现在9260核心板上实现DHCP动态获取IP地址,BusyBox1.1.3支持udhcpc、udhcpd命令,udhcpc是客户端,udhcpd是服务器端,目前核心板只需作为客户端来获取IP即可,所以编译BusyBox时可以只选udhcpc,除了BusyBox要生成该命令外,LinuxKernel也要支持DHCP,下面是编译及使用步骤:1、Linux内核需要添加如下配置项:[*]Networkingsupport---Networkingoptions---*Packetsocket[*]IP:DHCPsupport[*]Networkpacketfilteringframework(Netfilter)---[*]Advancednetfilterconfiguration2、BusyBox里面的配置:NetworkingUtilities---udhcpServer/Client---[*]udhcpServer(udhcpd)[*]udhcpClient(udhcpc)3、从BusyBox源码目录下的examples/udhcp/目录下把simple.script文件复制到开发板的根文件系统下的/share/udhcpc/目录下,并重命名为default.script。4、使用udhcpc命令:udhcpc-ieth0(多网卡情况下,用-i指定相应的网卡,如果是单网卡,可直接执行udhcpc命令)
本文标题:LINUX下如何实现网络协议PPPOEDHCP
链接地址:https://www.777doc.com/doc-2880849 .html