基于Linux的IPv6接入服务器配置过程.doc_第1页
基于Linux的IPv6接入服务器配置过程.doc_第2页
基于Linux的IPv6接入服务器配置过程.doc_第3页
基于Linux的IPv6接入服务器配置过程.doc_第4页
基于Linux的IPv6接入服务器配置过程.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于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后,进入存放安装文件的目录,执行以下命令。# tar zxvf dibbler-0.7.3-src.tar.gz# cd dibbler-0.7.3# make# make install三、 系统配置1、 开启Linux的IPv6转发打开/etc目录下的sysctl.conf文件,添加如下语句: net.ipv6.conf.all.forwarding = 12、 对服务的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路由给ip.sh文件加可执行权限,执行如下命令:chmod +x /root/conf/ip.sh四、 DHCPv6服务器配置(1)配置/etc/dibbler/server.conf如下:iface eth0.100 # (根据实际使用的网络接口设定) t1 1800 t2 2700 prefered-lifetime 3600 valid-lifetime 7200 class pool 2666:2-2666:FF option dns-server 2005:123:15,2005:123:18(2)执行:dibbler-server start此时DHCPv6服务即启动。五、 PPPoEv6服务器配置1 配置PPPoE 服务器:添加/etc/ppp/pppoe-server-options如下:# PPP options for the PPPoE server# LIC: GPLrequire-pap #此处是采用pap认证的,如果采用chap认证,此处则修改为 require-chap#login+ipv6ipv6 :1,:10lcp-echo-interval 30lcp-echo-failure 2 2 配置PPPoE用户名密码使用vi或其他编辑软件打开/etc/ppp/pap-secrets (如果采用chap认证,则此处应该修改的文件是/etc/ppp/chap-secrets),在其后加上test * test * 3 启动PPPoE服务# pppoe-server -I eth0.100 #(根据实际使用的网络接口设定)到这步之后,客户端应该可以使用账号test/test拨号成功且会获得一个本地链路地址,但同时,客户端会向服务器发送DHCPv6 Solicit报文去请求Global地址,所以这个时候我们要在该PPP接口上启动DHCPv6服务。由于DHCPv6服务必须在该接口上启动,但该PPP接口是动态生成的,而且如果我们事先在dibble-server的配置文件里面实现加上相应接口的信息,如果配置文件中有一个接口不存在,则dibble-server服务则启动不成功,所以我们需要在PPP接口生成的时候动态的在dibble-server配置文件里面添加相关信息从而在该PPP接口上启动DHCPv6服务。由于每次PPPoEv6拨号成功后系统都会执行ipv6-up脚本,所以我们修改这个脚本实现动态的去修改dibble-server配置文件,相关添加的代码如下。dhcpconf=/etc/dibbler/server.confecho iface $1 $dhcpconfecho t1 1800 $dhcpconfecho t2 2700 $dhcpconfecho prefered-lifetime 3600 $dhcpconfecho valid-lifetime 7200 $dhcpconfecho class $dhcpconfecho pool 2555:$v6addr:2-2555:$v6addr:2 $dhcpconfecho $dhcpconfecho option dns-server 2005:123:15,2005:123:18 $dhcpconfecho $dhcpconfecho $dhcpconf/usr/local/sbin/dibbler-server stop/usr/local/sbin/dibbler-server start如果有两个进程同时对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再尝试 else touch $TMPFILE #监时文件若不存在,就用 touch 新建一个 chmod 600 $TMPFILE #把临时文件属性改为只建立者可读写 breakfi TimeNumber=$($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)do FirstLineNumber=$(sed -n /$REALDEVICE/= /etc/dibbler/server.conf)if $FirstLineNumberaa = aa ;then breakelse LastLineNumber=$(expr $FirstLineNumber + $Number ) sed -i $LastLineNumberd /etc/dibbler/server.conffi Number=$($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再尝试 else touch $TMPFILE #监时文件若不存在,就用 touch 新建一个 chmod 600 $TMPFILE #把临时文件属性改为只建立者可读写 breakfi TimeNumber=$($TimeNumber-1)done#用 trap 命令设置一个对信号的监听器,程序运行中当监听到信号 0,1,2,3,9,15就会删除临时文件,并退出脚本执行#当脚本自行运行结束、被用户 Ctrl+C 掉、被 Kill 掉、终端被关闭,系统关机或重启的情况下,都需将临时文件删除trap rm -f $TMPFILE; exit 0 1 2 3 9 15六、 自动添加相关路由信息由于在IPv6里面,CPE只是作为一个路由器存在,并不像IPv4那样需要开启NAT功能,所以需要在拨号成功或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:1froute -A inet6 add 2666:21:/64 gw 2666:21route -A inet6 add 2666:22:/64 gw 2666:22route -A inet6 add 2666:23:/64 gw 2666:23route -A inet6 add 2666:24:/64 gw 2666:24route -A inet6 add 2666:25:/64 gw 2666:25route -A inet6 add 2666:26:/64 gw 2666:26route -A inet6 add 2666:27:/64 gw 2666:27route -A inet6 add 2666:28:/64 gw 2666:28。#可以根据地址池的信息进行添加2、 PPPoEv6的路由对于PPPoEv6的路由自动添加要稍微麻烦点,我们没办法事先对路由进行添加(ppp接口没起来前路由没法添加成功),所以我们只能在ppp接口起来的同时对路由进行添加。我们约定,对于PPPoE获得地址为2555:X:2的CPE Lan侧网段为2555:X:1:/64,PPPoEv6服务器已经配置为对于每个接口,CPE只能获得类似2555:X:2的地址,所以只要我们按照这个约定配置CPE Lan侧地址段,路由就可以直接自动添加。自动添加路由的代码同样是需要修改/etc/ppp/ipv6-up脚本,添加的代码如下:ipv6_addr_tmp=/tmp/ipv6_addr_tmpv6addr=$(cat $ipv6_addr_tmp)if $v6addr -gt 0 & $v6addr -le 9999 ;then breakelse echo 1 $ipv6_addr_tmp v6addr=1fi echo $($v6addr+1) $ipv6_addr_tmpip a a 2555:$v6addr:1/64 dev $REALDEVICEip r a 2555:$v6addr:/64 dev $REALDEVICEroute -A inet6 add 2555:$v6addr:1:/64 gw 2555:$v6addr:2七、 其他的一些配置由于PPPv6会动态的修改dibble-server的配置文件,我们将其他接口的DHCPv6的配置文件单独放出来,以免当整个配置文件损坏的时候可以快速恢复。新建/etc/dibbler/server-default.conf文件,内容同上文中的DHCPv6 Server的配置文件,如下:iface eth0.100 # (根据实际使用的网络接口设定) t1 1800 t2 2700 prefered-lifetime 3600 valid-lifetime 7200 class pool 2666:2-2666:FF option dns-server 2005:123:15,2005:123:18新建服务启动脚本,可以放在和上文中IP配置脚本相同的目录,比如 /root/conf/server.sh,server.sh的内容如下:killall syslogdiptables -Fecho 1 /tmp/ipv6_addr_tmp #服务器重启后,将PPPoEv6分别地址段的临时文件值置1rm -f /tmp/u_ppp_v6.m.t.tmp #删除文件锁临时文件,避免因为异常导致临时文件没删除执行出错sleep 1rm -rf /etc/dibbler/server.confcp /etc/dibbler/server-default.conf /etc/dibbler/server.conf #将dibble-server的默认配置导入/usr/local/sbin/dibbler-server start #启动dibble-serverslee

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论