基于Linux的IPv6接入服务器配置过程
(完整版)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;。
IPv6 DS-Lite服务器搭建过程

同维电子有限公司测试部拟制人时间阳志明2011-2-23IPv6 DS-Lite服务器搭建过程摘要:本文描述了支持IPv6 DS-Lite服务器的搭建过程。
关键字:DS-Lite Linux正文:一、系统环境准备1、因该功能属于比较新的功能,对内核要求的版本比较高,所以我们采用最新的Fedora 14系统进行搭建(Centos5.5以前的版本均不支持该功能),所用服务器软件为aftr-1.1.tar.gz2、安装过程不详述,安装的时候,安装必要的开发包即可(建议安装系统的时候,选择用于软件开发即可)二、A FTR软件安装下载aftr-1.1.tar.gz后今天存放该软件的目录,依次执行如下命令即可安装完成:# tar zxvf aftr-1.1.tar.gz# ./configure# make三、A FTR配置及启动#vi aftr.confdefmtu 1420defmss ondeftoobig offacl6 2111::/16 //需要接入的Ipv6网段,默认是全部拒绝的,如果不添加将无法建立隧道连接address endpoint 2111:123:123:123::1 //隧道端点address icmp 172.24.139.139pool 172.24.139.139 //伪装Ipv4的地址池然后编辑其启动运行的脚本aftr-script#vi aftr-scriptaftr_start(){set -xip link set tun0 upip addr add 192.0.0.1 peer 192.0.0.2 dev tun0ip route add 172.24.139.139/32 dev tun0ip -6 addr add fe80::1 dev tun0ip -6 route add 2111:123:123:123::/64 dev tun0arp -i eth0 -s 172.24.139.139 00:00:00:00:00:53 pub}aftr_stop(){set -xip link set tun0 down}case "$1" instart)aftr_start;;stop)aftr_stop;;*)echo "Usage: $0 start|stop"exit 1;;esacexit 0然后执行如下命令即可启动AFTR:./aftr -c ./aftr.conf -s ./aftr-script四、环境验证对于环境的验证,我们可以直接采用Linux原生支持的B4隧道手工建立相应的隧道进行验证,我们采用的也是Fedora 14系统进行的验证。
IPv6配置方法

一、Windows操作系统下IPv6配置方法1、使用IPV6的准备用户使用IPV6,应先在个人电脑上安装IPV6协议,以操作系统XP/2003为例(Windows2003内置了IPv6协议栈,推荐WindowsXP至少升级为SP1),方法如下:(1)方法一:本地连接-〉属性-〉安装-〉协议-〉Microsoft-〉TCP/IP 版本 6如图所示,选择安装“TCP/IP版本6”。
安装完成后,查看本地连接属性,可发现已添加了TCP/IP 版本6的项目:(2)方法二:点击开始-〉运行,输入cmd后确定,在调用的命令行窗口中输入ipv6 install,如下图所示:安装完成后,如下图所示:2、直接接入IPV6网络用户采用以上方法完成ipv6协议的安装后,对于前述可直接接入IPV6网络区域的用户,可直接获取到2001:da8为前缀的IPV6地址,通过以下方法查看验证:(1)获取正常的ipv6地址点击开始-〉运行,输入cmd后确认,在调用的命令行窗口中输入ipconfig。
如图所示,该电脑已获取到可使用的IPV6地址。
(2)没有获取到ipv6地址如图所示,如果只能看到fe80::为前缀的IPV6地址,则表示没有可用的IPV6网络,须配置IPV4toIPV6隧道来使用IPV6。
3、校外用户通过VPN方式接入IPV6网络https://4、配置通过ISATAP隧道的方式接入IPV6网络(1)校外用户也可通过在个人电脑配置ISATAP隧道建立的主机—路由器隧道,接入IPV6网络。
配置方法如下:打开cmd命令行窗口下,依次输入如下命令:netsh>intnetsh interface>ipv6netsh interface>ipv6>installnetsh interface ipv6>isatapnetsh interface ipv6 isatap>set router 210.34.219.49如下所示:此后,通过 ipconfig应该可以看到一个 2001:da8为前缀的v6地址,即可访问IPv6资源。
IPv6,IPSec导引2-试验Linux+NAS

IPv6和IPSec试验笔记1.IPv6 in Linux配置 (2)1.1.安装Debian (2)1.2.检查IPv6支持 (2)1.3.添加IPv6工具组件 (2)2.IPv6路由实验 (3)2.1.自动分配IPv6地址 (3)2.2.路由配置 (4)3.NAS:访问控制 (5)3.1.NAS网关原理试验:允许或禁止路由访问 (5)3.2.NAS部署试用:走TT (6)3.3.获得正式的IPv6地址:使用BTexact的IPv6隧道 (7)3.4.自动分配IPv4地址:DHCPv4 Server (7)3.5.登录界面:重定向页面 (8)3.4.1 Apache的配置 (8)4.NAS @ 211.86.49.110说明 (9)5.IPSec in Linux试验 (9)5.1.FreeS/WAN (10)5.2.KAME-racoon (10)5.2.1IPSec/IPv4 (10)5.2.2IPSec/IPv6 (11)5.2.3IPSec/IPv6 with CERT (12)5.3.isakmpd (13)6.Tunnel Broker (13)7.参考 (13)1.IPv6 in Linux配置Linux对IPv6的支持是比较彻底的,这得益于社区的共同努力,尤其是USAGI项目的持续努力,2.6内核保持了较好的IPv6新特性。
下面以Debian3.1r1a为例,介绍IPv6的安装和配置。
1.1.安装DebianDebian3.1r1a默认安装。
修正sources.list启用新的安装源:deb ftp://211.86.49.110/pub/ISOs/Debian3.1r1a/debian-31r1-i386-binary-1/ unstable contrib maindeb ftp://211.86.49.110/pub/ISOs/Debian3.1r1a/debian-31r1-i386-binary-2/ unstable contrib main然后更新dpkg库:#apt-get update为了方便后期使用,安装辅助工具:#apt-get install apt-show-versions // 查看已经安装组件列表#apt-get install rcconf //服务管理#apt-get install ssh samba less //常用工具为了操作方便,尤其是使用vmware虚拟机中安装的Linux时,建议从Windows中使用ssh 连接到linux,同时在Linux启用Samba服务,这样可以在Windows中方便的浏览Linux文件。
Linux下配置IPv6的DHCP服务

NETWORKING_IPV6=yes IPv6_DEFAULTGW=3ffe:3240:8008:1000::1 IPv6_DEFAULTDEV=eth0 (3) 修 改/etc/sysconfig/network- scripts/ifcfg- eth0 设 置 eth0 的 IPv6 地址 #vi /etc/sysconfig/network- scripts/ifcfg- eth0 将里面的项目进行以下设置
IPv6 中的 DHCP 有两种方式:状态方式和无状态方式,无状态 方式又包括两种配置方式,链路局域地址和全局地址的自动配置。
2.1 无状态方式 IPv6 定义的无状态方式地址自动配置,不要求手工配置主机。 IPv6 协议可为任意主机生成一个本地 IP 地址, 这个地址嵌一个 以太网地址,由于以太网卡地址是全球唯一的,因此获得的 IPv6 地 址也是全球唯一的。无状态地址配置是由 ICMP 本身进行的,它包 含对主机的链路局域地址和全局 IPv6 地址的自动配置情况。
2 DHCP 简介
DHCPv6 是 IPv6 下 的 动 态 主 机 配 置 协 议,它 属 于 全 状 态 地 址 自动配置协议。与 IPv4 下 的 DHCP 协 议 类 似,DHCPv6 也 是 一 种 提 供 网 络 配 置 信 息 的 客 户 /服 务 器 类 型 的 协 议 。 不 同 之 处 是 , DHCPv6 重新定义了消息类型和消息处理方式,并加强了安全性。
模拟IPv6

在 Linux 平台及 IPv4 环境中构建 IPv6 测试环境1 IPv6简介IPv6(Internet Protocol Version 6)作为 IPv4 的升级版本,它是作为一共软件升级安装在设备和操作系统中。
为什么需要使用 IPv6,一个最直接的答案就是目前广泛应用的 IPv4 已经无法提供足够的 IP 地址来满足迅速增长的网络。
IPv4 采用32位地址长度,只有大约43亿个地址,很快就将被分配完毕。
而 IPv6 采用128位的地址长度,几乎可以不受限制的提供地址。
当然扩大地址空间只是 IPv6 的众多优势中的重要一项,除此之外,IPv6 还能够提高网络的整体吞吐量、改善服务质量(QoS)、安全性有更好的保证、支持即插即用和移动性、更好实现多播功能等等。
从1992年 IPNG 工作组成立,经历了十几年的发展,虽然 IPv6 离达到与 IPv4 相同的水平仍有距离,但已经有越来越多的支持 IPv6 的设备投入使用,越来越多的软件系统开始支持 IPv6。
现在 IPv6 已经可以提供 DNS,Web,Email,Ftp,Telnet 等基本服务。
Windows,Sun,Apple 等操作系统也都已经或即将支持 IPv6 协议。
IBM 也一直致力于 IPv6 的发展,早在1997年 IBM 就发布了支持 IPv6 的 AIX。
如今 DB2,Lotus,Rational,Tivoli 和WebSphere 也都在逐步支持 IPv6 的应用。
2 在 IPv4 环境中模拟 IPv6 网络正如上节中所述,目前许多与网络应用相关的软件已经加入了对 IPv6 的支持,更有大量的软件正在处于对 IPv6 支持的开发阶段。
但是就开发而言,目前许多开发环境并没有对IPv6 提供很好的支持,尤其当所开发的应用需要经过较老的路由甚至公共网络时。
如果希望通过升级网络设备来支持开发环境,将是一笔不小的花费,有时甚至是不现实的(比如短期内升级公共网络支持 IPv6)。
IPv6服务器配置笔记

RFC4861 建议默认时间为:30 天 参数默认为 86400s(1 天)
AdvPreferredLifetime seconds|infinity 该参数表示从前缀通过无状态自动配置获取的 IP 地址仍然是首选的时间。infinity 表示无 穷大的时间(即所有的值都为 1(0xffffffff))。 RFC4861 建议时间为:7 天 参数默认为 14400s(4 小时)
AdvManagedFlag on|off 如果配置该参数为 on,路由通告消息里面的 M 标记将变为 1,主机将通过有状态自动配置协 议(DHCPV6)配置 IP 地址和其它信息。 参数默认为 off
AdvOtherConfigFlag on|off 如果配置该参数为 on,路由通告消息里面的 O 标记将变为 1,主机将通过有状态自动配置协议 (DHCPV6)配置除 IP 地址以外的其它信息。 参数默认为 off
如果没有出现异常,dibbler 已经成功安装你的电脑上了,但是还有后续一些小的地方需要 改动。
为了以后适用方便,建立 dibbler 的软链接。
#ln -s /opt/dibbler-0.8.1/sbin/dibbler-* /usr/local/sbin/ #ln -s /opt/dibbler-0.8.1/etc/ /etc/dibbler
解压完你会看到 dibbler-0.8.1 这样一个文件夹。
进入文件夹,然后就是编译安装了,安装之前请确认你的 linux 系统已经安装好了编译环境, 一般就是 gcc gcc-c++ kernel-headers make 等软件环境。
dibbler-0.8.1 文件夹内已经有 Makefile 文件了,可以直接: #make #make install 进行安装,但是这样 dibbler 会安装到默认的文件夹内。
Linux-PXE_IPV6_配置SOP

一、 Operating System Install◆放入REHL 6.4系统光盘,开机并选择CD-ROM启动◆选择“Instal or upgrade an existing system”图1-1◆不对硬件进行检测,选择“Skip”图1-2◆选择“Basic Storage Devices”,点击“Next”图1-3◆填写Server Hostname图1-4◆设置root账号密码,提示密码简单,选择“Use Anyway”图1-5◆选择“Use All Space”的硬盘安装类型,提示Warming选择“WriteChanges to Disk”图1-6◆选择“Desktop”图形交互,“Customize Now”选择“Next”之后勾选安装所有的Serivce,等待OS安装完成。
图1-7DHCP配置◆server IP 设定:[root@pxe01 ~]#vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth3HWADDR=2C:60:0C:66:E8:21TYPE=EthernetUUID=5d5d4d9b-69b9-4318-b611-e296041b0ee9 ONBOOT=yesNM_CONTROLLED=noBOOTPROTO=staticIPV6INIT=yesIPV6ADDR=2014:1::1◆关闭防火墙:cd /etc/selinuxvim configSELINUX=disabled◆DHCP配置:安装dhcp tftp服务[root@pxe01 ~]#vim /etc/dhcp/dhcpd6.conf图2-2◆编辑监听DHCP的网口#vim /etc/sysconfig/dhcpd6DHPDARGS=eth0#vim /etc/sysconfig/network添加NETWORKING_IPV6=yes二、TFTP服务配置◆TFTP配置:[root@pxe01 ~]#vim /etc/xinetd.d/tftpservice tftp{disable = nosocket_type = dgramprotocol = udpwait = yesuser = rootserver = /usr/sbin/in.tftpdserver_args = -v -v -v -v -v -s /tftpbootper_source = 11cps = 100 2flags = IPv6}◆Http配置:更改http服务路径Vim /etc/httpd/conf/httpd.conf编辑line 292和line 317路径/var/www/html 更改为/tftpboot/boot并且设置/tftpboot/boot 文件夹权限为777三、Kernel、img文档与目录相关◆根目录“/”下建立目录/tftpboot/图4-1◆在/tftpboot/目录下建立,并将grub2.cfg与grub2.efi文档拷贝在该目录下图5-2在/var/www/html/ 目录下建立文件夹ipxe,chmod 777 ipxe,将image, copy至此文件夹四、TFTP、DHCP与FTP服务器启动◆FTP服务启动[root@pxe01 ~]# chkconfig vsftpd on[root@pxe01 ~]# service vsftpd restart◆DHCP服务启动[root@pxe01 ~]# chkconfig dhcpd6 on[root@pxe01 ~]# service dhcpd6 restart◆TFTP服务启动[root@pxe01 ~]# chkconfig tftp on[root@pxe01 ~]# service xinetd restart◆关闭IPtables[root@pxe01 ~]# chkconfig ip6tables off[root@pxe01~]#service ip6tables stop[root@pxe01 ~]# iptables -F[root@pxe01 ~]# ip6tables -F◆临时强制关闭selinuxsetenforce 0 #设置SELinux 成为permissive模式#setenforce 1 设置SELinux 成为enforcing模式◆重启网络[root@pxe01 ~]# service networks restart[root@pxe01 ~]# service networks status//查看状态[root@pxe01 ~]# service networks stop //停用网口[root@pxe01 ~]# service networks start//开启网口。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于Linux的IPv6接入服务器配置过程摘要:本文主要描述基于基于Linux的IPv6接入服务器配置方法及过程。
关键字:IPv6 PPPv6 DHCPv6 Linux正文:一、软件选择1、PPPoEv6使用系统自带的rp-pppoe即可。
2、DHCPv6目前DHCPV6实现主要包括如下几种:(1)DHCPv6 @ SourceForge这个项目自2004年后就没有更新过,所以如prefix delegation没有实现。
功能较少。
(2)ISC DHCPv6虽然ISC DHCPv4已经用的很广泛了,但是DHCPV6却是2007年开始出现的。
用起来比较费劲。
(3)Dibbler DHCPv6实现功能(如prefix delegation)较多,有windows版本的,使用比较方便。
(4)WIDE DHCPv6(5)Cisco IOS目前在Linux比较常用的是DHCPv6 @ SourceForge,也就是系统自带的DHCP6S,但这个功能较少,所以我们采用功能较多的Dibbler DHCPv6做为服务器的DHCPv6软件。
二、软件安装1、PPPoEv6系统一般在安装的时候已经安装了PPP软件和RP-PPPoE软件,这里就不详述了。
2、DHCPv6下载dibbler-0.7.3-src.tar.gz后,进入存放安装文件的目录,执行以下命令。
三、系统配置1、开启Linux的IPv6转发打开/etc目录下的sysctl.conf文件,添加如下语句:2、对服务的IP信息进行配置新建一个IP配置文件,用于配置服务器的IP信息,比如/root/conf/ip.sh 。
使用vi或其他编辑软件打开/root/conf/ip.sh ,输入以下内容ifconfig eth1 upifconfig eth1 172.125.106.252 netmask 255.255.255.0route add -net 0.0.0.0 netmask 0.0.0.0 gateway 172.125.106.1#IPv4地址和路由根据实际网络情况配置,主要是便于维护服务器。
ifconfig eth0 upifconfig eth0 192.168.9.3 netmask 255.255.255.0#IPv4地址和路由根据实际网络情况配置。
# Bras Server and vlan is 100vconfig add eth0 100ifconfig eth0.100 188.188.100.1 netmask 255.255.255.0ifconfig eth0.100 upsleep 1#添加vlan接口(如果不采用vlan这步可以不用做,直接使用实际接口即可)ip a a 2666::1/64 dev eth0.100ip r a 2666::/64 dev eth0.100ip a a 2005:106::3/64 dev eth1ip r a 2005:106::/64 dev eth1#给每个接口配置相应的IPv6地址(此服务器eth1作为上联接口,eth0.100作为接入接口)route -A inet6 add default gw 2005:106::1#添加默认的IPv6路由四、D HCPv6服务器配置(1).配置/etc/dibbler/server.conf如下:五、P PPoEv6服务器配置1.配置PPPoE 服务器:添加/etc/ppp/pppoe-server-options如下:2.配置PPPoE用户名密码使用vi或其他编辑软件打开/etc/ppp/pap-secrets (如果采用chap认证,则此处应该修改的文件是到这步之后,客户端应该可以使用账号test/test拨号成功且会获得一个本地链路地址,但同时,客户端会向服务器发送DHCPv6 Solicit报文去请求Global地址,所以这个时候我们要在该PPP接口上启动DHCPv6服务。
由于DHCPv6服务必须在该接口上启动,但该PPP接口是动态生成的,而且如果我们事先在dibble-server的配置文件里面实现加上相应接口的信息,如果配置文件中有一个接口不存在,则dibble-server 服务则启动不成功,所以我们需要在PPP接口生成的时候动态的在dibble-server配置文件里面添加相关信息从而在该PPP接口上启动DHCPv6服务。
由于每次PPPoEv6拨号成功后系统都会执行ipv6-up脚本,所以我们修改这个脚本实现动态的去修改如果有两个进程同时对dibble-server的配置文件进行修改操作,会导致一些问题(如果两个客户端恰好同时拨号,同时启动ipv6-up脚本去修改dibble-server的配置文件,这个时候就会导致脚本出错而无法启动dibble-server),所以我们需要禁止多进程同时对dibble-server的配置文件进行修改,当脚本探测到有其他的进程对dibble-server的配置文件在进行修改时,等待一段时间再尝试去修改dibble-server的配置文件。
具体添加的代码如下:#定义一个标识脚本正在执行的文件名TMPFILE=/tmp/u_ppp_v6.m.t.tmpTimeNumber=1000000while (("$TimeNumber">=0))doif [ -e $TMPFILE ]; #判断临时文件是否存在thensleep 1 #临时文件存在则等待1s再尝试elsetouch $TMPFILE #监时文件若不存在,就用 touch 新建一个chmod 600 $TMPFILE #把临时文件属性改为只建立者可读写breakfiTimeNumber=$(($TimeNumber-1))done#用 trap 命令设置一个对信号的监听器,程序运行中当监听到信号 0,1,2,3,9,15就会删除临时文件,并退出脚本执行#当脚本自行运行结束、被用户 Ctrl+C 掉、被 Kill 掉、终端被关闭,系统关机或重启的情况下,都需将临时文件删除trap "rm -f ${TMPFILE}; exit" 0 1 2 3 9 15在启动的时候进行添加操作,那么在终止链路的时候需要删除启动的时候添加的内容,由于PPPv6在每次结束的时候都会执行ipv6-down脚本,那么我们对该脚本修改实现在链路终止的时候自动删除相关配置文件,相关代码如下:Number=10while (("$Number">=0))doFirstLineNumber=$(sed -n '/'$REALDEVICE'/=' /etc/dibbler/server.conf)if [ "$FirstLineNumber"aa = ""aa ];thenbreakelseLastLineNumber=$(expr $FirstLineNumber + $Number )sed -i "${LastLineNumber}d" /etc/dibbler/server.conffiNumber=$(($Number-1))done/usr/local/sbin/dibbler-server stop/usr/local/sbin/dibbler-server start同样,为避免对进行同时操作引发一些问题,我们再对配置文件进行操作的时候也要禁止其他进程对该配置进行操作,添加的代码如下:#定义一个标识脚本正在执行的文件名TMPFILE=/tmp/u_ppp_v6.m.t.tmpTimeNumber=1000000while (("$TimeNumber">=0))doif [ -e $TMPFILE ]; #判断临时文件是否存在thensleep 1 #临时文件存在则等待1s再尝试elsetouch $TMPFILE #监时文件若不存在,就用 touch 新建一个chmod 600 $TMPFILE #把临时文件属性改为只建立者可读写breakfiTimeNumber=$(($TimeNumber-1))done#用 trap 命令设置一个对信号的监听器,程序运行中当监听到信号 0,1,2,3,9,15就会删除临时文件,并退出脚本执行#当脚本自行运行结束、被用户 Ctrl+C 掉、被 Kill 掉、终端被关闭,系统关机或重启的情况下,都需将临时文件删除六、自动添加相关路由信息由于在IPv6里面,CPE只是作为一个路由器存在,并不像IPv4那样需要开启NA T功能,所以需要在拨号成功或DHCP得到IPv6地址后,对CPE Lan侧的地址添加一个路由,这个路由可以手工去添加,但如果多人使用的话会比较麻烦,这里提供一种自动添加的思路。
1、DHCPv6的路由我们可以约定当CPE Wan侧地址为2666::X/64时,其Lan侧网段为2666:X::/64,这样我们可以事先添加该路由,只需在使用过程中按照这个约定配置CPE Lan网段即可使路由生效(DHCPv6服务器已经配置成指定地址池而不是仅仅只分配网络前缀)将系统需要事先添加的路由放在文件/root/conf/route.sh里面,开机的时候执行一次即可,/root/conf/route.sh文件内容如下所示(节选,具体请根据地址池的信息进行添加):route -A inet6 add 2666:2::/64 gw 2666::2route -A inet6 add 2666:3::/64 gw 2666::3route -A inet6 add 2666:4::/64 gw 2666::4route -A inet6 add 2666:5::/64 gw 2666::5route -A inet6 add 2666:6::/64 gw 2666::6route -A inet6 add 2666:7::/64 gw 2666::7route -A inet6 add 2666:8::/64 gw 2666::8route -A inet6 add 2666:9::/64 gw 2666::9route -A inet6 add 2666:a::/64 gw 2666::aroute -A inet6 add 2666:b::/64 gw 2666::broute -A inet6 add 2666:c::/64 gw 2666::croute -A inet6 add 2666:d::/64 gw 2666::droute -A inet6 add 2666:e::/64 gw 2666::eroute -A inet6 add 2666:f::/64 gw 2666::froute -A inet6 add 2666:11::/64 gw 2666::11route -A inet6 add 2666:12::/64 gw 2666::12route -A inet6 add 2666:13::/64 gw 2666::13route -A inet6 add 2666:14::/64 gw 2666::14route -A inet6 add 2666:15::/64 gw 2666::15route -A inet6 add 2666:16::/64 gw 2666::16route -A inet6 add 2666:17::/64 gw 2666::17route -A inet6 add 2666:18::/64 gw 2666::18route -A inet6 add 2666:19::/64 gw 2666::19route -A inet6 add 2666:1a::/64 gw 2666::1aroute -A inet6 add 2666:1b::/64 gw 2666::1broute -A inet6 add 2666:1c::/64 gw 2666::1croute -A inet6 add 2666:1d::/64 gw 2666::1droute -A inet6 add 2666:1e::/64 gw 2666::1eroute -A inet6 add 2666:1f::/64 gw 2666::1f2、PPPoEv6的路由对于PPPoEv6的路由自动添加要稍微麻烦点,我们没办法事先对路由进行添加(ppp接口没起来前路由没法添加成功),所以我们只能在ppp接口起来的同时对路由进行添加。