当前位置:文档之家› (完整版)LINUXPPPOEV6服务器搭建测试

(完整版)LINUXPPPOEV6服务器搭建测试

linux搭建ipv6的pppoe server端近期在做PPPOEV6的测试,就尝试着在linux搭建pppoe相关软件,主要是开源软件ppp-2.4.5和rp-pppoe-3.8以下是对网上资料的整理,跳过很多人写的乱七八糟的COPY,完全按下面步骤走就可以了网络架构pc------------router---------serverPC: WIN7ROUTER:dlink 860lbServer:DEBIAN 5(这个安好就自带了ppp rp-pppoe,但下面我还是讲下如何用GZ来安,你可以用apt-get autoremove ppp pppoe 将它删了)如何查看是否安好了,用dpkgdebian:/etc/ppp# dpkg -l | grep ppprc ppp 2.4.5-4 Point-to-Point Protocol (PPP) - daemonrc pppoe 3.8-3 PPP over Ethernet driverdebian:/etc/ppp# dpkg --get-selections | grep pppppp deinstallpppoe deinstall如上,系统自带的被我删了,然后我自己装了这2个软件1.下载ppp-2.4.5.tar.gz、rp-pppoe-3.8.tar.gz2.安装a.将ppp、rp-pppoe解压b.安装pppdcd ppp-2.4.5/pppdvi Makefile.linux开启HAVE_INET6=y // 关键点,不然不支持IPV6cd ppp-2.4.5./configure(备注:先make clean一下,确保HAVE_INET6开启)makemake installc.安装rp-pppoecd rp-pppoe/src./configure --enable-plugin=/opt/ppp-2.4.5 //这句好像没什么意义makemake install3.修改配置文件vim /etc/ppp/pppoe.conf修改下面几个值,其他的不要动ETH=eth0USER=rp-pppoe //拨号用户名LINUX_PLUGIN=/etc/ppp/plugins/rp-pppoe.sovim /etc/ppp/pppoe-server-options下面是全部内容# PPP options for the PPPoE server# LIC: GPLrequire-chap //表示会用到chap-secrets文件#loginlcp-echo-interval 10lcp-echo-failure 2+ipv6ipv6 ::1,::2SERVER会分到一个FE80::1/10的地址,ROUTER会分到一个FE80::2/10的地址,然后我们需要配置dibbler才能让ROUTER拿到GLOBAL地址vim /etc/ppp/chap-secrets# Secrets for authentication using CHAP# client server secret IP addressesrp-pppoe * rp-pppoe *用*代替地址,这个表是CHAP认证的账号和密码对照表,所以实际上我们拨号的账号密码都是rp-pppoevim optionslocal4. 开启server端pppoe-server -I eth05.页面和配置效果PPPOEV6 ONLY拨号成功以后可以看到PPP0 分配了一个本地地址FE80::2/10ppp0 Link encap:Point-to-Point Protocolinet6 addr: fe80::2/10 Scope:LinkUP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1RX packets:7 errors:0 dropped:0 overruns:0 frame:0TX packets:17 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:3RX bytes:196 (196.0 B) TX bytes:1291 (1.2 KiB)但是我们还没有拿到GLOBAL地址,所以我们需要在debian上跑radvd和dibbler来给PPP 接口分配地址1.STATELESS的情况,这种模式下只跑RADVD就可以了,RADVD的配置文件如下Vim /etc/radvd.confinterface ppp0{AdvSendAdvert on;MinRtrAdvInterval 3;MaxRtrAdvInterval 10;AdvDefaultPreference high;AdvHomeAgentFlag off;IgnoreIfMissing on; //这个很关键AdvManagedFlag off; //这个很关键AdvOtherConfigFlag off; //这个很关键prefix 2001::/96{AdvOnLink on;AdvAutonomous on; //让PPP接口根据PREFIX生成地址AdvRouterAddr on;};RDNSS 2001::1 2001::2{AdvRDNSSPreference 8;AdvRDNSSLifetime 30;};};然后看效果,GLOBAL地址成功分配ppp0 Link encap:Point-to-Point Protocolinet6 addr: 2001::2/64 Scope:Globalinet6 addr: fe80::2/10 Scope:LinkUP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1RX packets:47 errors:0 dropped:0 overruns:0 frame:0TX packets:13 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:3RX bytes:5452 (5.3 KiB) TX bytes:1439 (1.4 KiB)cat /etc/resolv.conf# Auto-Generatednameserver 192.168.0.1search但是RDNSS没有解析成功,没拿到DNS地址,看来只有换STATEFUL模式2.STATEFUL模式,既要配置RADVD又要配置DIBBLERVim /etc/radvd.conf 注意红色部分的不同interface ppp0{AdvSendAdvert on;MinRtrAdvInterval 3;MaxRtrAdvInterval 10;AdvDefaultPreference high;AdvHomeAgentFlag off;IgnoreIfMissing on;AdvManagedFlag on;AdvOtherConfigFlag on;prefix 2001::/96{AdvOnLink on;AdvAutonomous off;AdvRouterAddr on;};RDNSS 2001::1 2001::2{AdvRDNSSPreference 8;AdvRDNSSLifetime 30;};};红色部分意思是RADVD不分配地址,用DIBBLER来分,原理就是协议上规定的M和O值Vim /etc/dibbler/server.conf# Logging level range: 1(Emergency)-8(Debug)log-level 8# Don't log full datelog-mode short# set preference of this server to 0 (higher = more prefered)preference 0iface "ppp0" {// also ranges can be defines, instead of exact valuest1 1800-2000t2 2700-3000prefered-lifetime 3600valid-lifetime 7200class {pool 2000::/64}# assign temporary addresses from this poolta-class {pool 3000::/96}#assign /96 prefixes from this poolpd-class {pd-pool 3000:458:ff01:ff03:abcd::/80pd-length 96}option dns-server 2000::ff,2000::fe}有时候会发生不回报文的问题,红色部分ppp0 表示在这个接口上跑dibbler然后我将ppp0改成eth0,居然成功了,但第二次失败,又改回ppp0,成功,后来我发现原来是因为PPP0接口建立之前带DIBBLER会不能通信,必须在PPP0建立后把DIBBLER带起来,这个BUG看来需要自己研究配置文件才行了,暂时放着成功以后分得GLOBAL地址ppp0 Link encap:Point-to-Point Protocolinet6 addr: 2000::ea5c:2de2:713e:a561/96 Scope:Globalinet6 addr: fe80::2/10 Scope:LinkUP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1RX packets:56 errors:0 dropped:0 overruns:0 frame:0TX packets:16 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:3RX bytes:6847 (6.6 KiB) TX bytes:1806 (1.7 KiB)DNS也分到了# cat /etc/resolv.conf# Auto-Generatednameserver 2000::ffnameserver 2000::fenameserver 192.168.0.1search~~~~~~~~~~~~分割线~~~~~~~~~~~~~~~~~~~这个ROUTER还支持pppoev4 share pppoev6SERVER的参数有点不一样,其它都一样,主要是给一个IPV4的地址pppoe-server -I eth0 –L 10.10.10.10 -R 10.10.10.11拨号成功以后PPP0接口会既有IPV4地址又有IPV6地址,非常有意思ppp0 Link encap:Point-to-Point Protocolinet addr:10.10.10.13 P-t-P:10.10.10.10 Mask:255.255.255.255inet6 addr: 2001::2/64 Scope:Globalinet6 addr: fe80::2/10 Scope:LinkUP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1RX packets:27 errors:0 dropped:0 overruns:0 frame:0TX packets:28 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:3RX bytes:2544 (2.4 KiB) TX bytes:2014 (1.9 KiB)但是SERVER这边没有GLOBAL地址,我们可以自己配一个Debian:/#ip -6 addr add 2001::1/64 dev ppp0加路由Debian:/#ip -6 route add 3001::1/64 via 2001::1;。

相关主题