使用RADVD模拟IPv6路由器完成IPv6地址自动配置
使用RADVD模拟IPv6路由器完成IPv6地址自动配置 摘要:
文章描述了使用RADVD模拟IPv6路由器完成IPv6地址自动配置的方法。
关键字:
RADVD IPv6 地址自动配置
正文:
1、目的
IPv6的地址获取方式与IPv4有所不同。在IPv4中,主机IP地址的自动配置必须由DHCP服务器来支持,这被称为有状态的自动配置(Stateful Autoconfiguration);而在IPv6中,除了DHCP的v6版本,还引入了无状态的自动配置(Stateless Autoconfiguration)。这项新技术无需DHCP服务器支持,所有支持IPv6的路由器都监听各主机发送的自动配置请求包,IPv6路由器对这类请求包的回复里面包含了一些IPv6地址的前缀(prefix)信息,主机在收到这样的包以后,可以根据自己的一些已有信息(比如MAC地址),生成自己的IPv6地址。
我们可以通过Linux平台上的radvd工具模拟无状态自动配置,它同样可以监听局
域网内各IPv6主机发送的自动配置请求并作出响应,这样,这些主机就可以获得各自的IPv6地址,并利用这些地址进行相互间的通信。
2、操作系统平台和软件
操作系统平台: Linux(内核需支持 IPv6,2.6以上版本最佳),推荐使用 Red Hat Enterprise Linux 5
软件:RADVD(Router Advertisement Daemon),这是一个运行于Linux平台之上的提供IPv6路由配置信息的软件,可以替代 IPv6 路由来进行无状态的地址自动配置。
3、RADVD安装
我们以在CentOS 5.0下面安装配置RADVD为例来说明RADVD的安装和配置过程。
所使用的RADVD版本为radvd-0.9.1
(1) 编译安装RADVD
下载radvd源码后在源码所在目录依次执行以下命令:
# tar –zxvf radvd-0.9.1.tar.gz
# cd radvd-0.9.1
# ./configure --prefix=/usr/local --sysconfdir=/etc --mandir=/usr/share/man # make
# make install
(2) 配置运行radvd的主机的IPv6地址信息
#ip a a 2555:530:5A::1/ dev eth0
#ip r a 2555:530:5A::/ dev eth0
这里的eth0是此主机监听局域网数据包的网卡设备,如果是其他设备在监听局域网数据包,改成相应的网卡标识即可。
(3) 启动系统对IPv6数据包的转发功能
#sysctl –w net.ipv6.conf.all.forwarding=1
第1页 共5页
(4) 配置RADVD
radvd安装后其配置文件位于/etc/radvd.conf,在这个文件中加入配置信息 interface eth0
{
AdvSendAdvert on;
MinRtrAdvInterval 50;
MaxRtrAdvInterval 100;
AdvManagedFlag off;
AdvOtherConfigFlag off;
AdvHomeAgentFlag off;
prefix 2555:530:5A::/
{
AdvValidLifetime 150;
AdvPreferredLifetime 35;
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr on;
}; # End of prefix definition
}; # End of interface definition
同上,这里的eth0是此主机监听局域网数据包的网卡设备,如果是其他设备在监听局域网数据包,改
成相应的网卡标识即可。prefix段表明了该局域网配置IPv6地址的前缀。
对于/etc/radvd.conf的具体配置项的详细说明。可以通过命令 man radvd.conf查看。
(5) 启动RADVD
启动RADVD比较简单,执行如下命令即可。
#radvd
(6) 效果展示
RADVD启动成功后,局域网中的主机会马上收到路由通告报文,如下图所示:
第2页 共5页
当主机收到路由通告后,会根据路由通告中的地址前缀信息配置自己的IPv6地址,如下图所示,从图中可以看到,在收到路由通告前主机IPv6地址只有Link地址,收到路由通过后地址会自动增加一个Global地址。
第3页 共5页
第4页 共5页
(7) 配置优化
第二步和第三部在系统重启后配置将会丢失,我们可以通过修改系统配置文件的方法让配置在系统重
启后依旧生效,具体配置方法如下:
1、依次执行如下命令
#cd /etc/sysconfig
#vi network
可以看到文件network中的内容,在其中添加: NETWORKING_IPV6=yes
IPV6FORWARDING=yes
IPV6INIT=yes
IPV6_DEFAULTGW=2555:530:5A::A%eth0
保存退出后,修改文件/etc/sysconfig/network-scripts/ifcfg-eth0,在其中添加入下语句:
IPV6INIT=yes
IPV6to4INIT=yes
IPV6FORDING=yes
IPV6ADDR=2555:530:5A::1/
打开/etc目录下的sysctl.conf文件,看是否有如下语句:
net.ipv6.conf.all.forwarding = 1
如果没有则加上。
参考文献
【1】 :网络
第5页 共5页