对于无状态自动配置的ipv6测试需要搭建radvd服务器,这样在路由器/设备发送RS请求(icmpv6 type133)的时候,radvd服务器就可以返回RA消息(icmpv6 type134),告诉设备全局地址的前缀,设备自己再结合接口ID算出一个可聚集全局单播地址。
1. 安装radvd服务器
登陆http://sources.buildroot.net/radvd/网站下载radvd-2.11.tar.gz
下载后在 Ubuntu上编译安装。
命令如下:
解压: tar –zxvf radvd-2.11.tar.gz
编译安装(cd radvd-2.11):./configure
make
sudo make install
(卸载:sudo make uninstall)
2. 配置radvd服务器
安装好后,在系统 /usr/local/etc/目录下建一个 radvd.conf的配置文件:
#注意:eth0为实际网卡的名字
interface eth0 {
AdvSendAdvert on;
AdvCurHopLimit 64;
MinRtrAdvInterval 198;
MaxRtrAdvInterval 600;
AdvDefaultLifetime 1800;
AdvReachableTime 0;
AdvRetransTimer 0;
AdvDefaultPreference low;
AdvHomeAgentFlag off;
AdvOtherConfigFlag on;
AdvManagedFlag off;
prefix 2016:ac11:5cad:0::/64 {
AdvOnLink on;
AdvAutonomous on;
AdvValidLifetime 2400;
AdvPreferredLifetime 1800;
};
RDNSS fe80::2224:7ff:fe26:3014 {
AdvRDNSSPreference 8;
AdvRDNSSLifetime 1200;
};
};
- 正常interface为eth0,当为pppoe拨号的时候,需要把interface改成拨号成功的端口,如ppp0
- prefix就是要下发RA时候的路由前缀
3. 启动、停止
打开命令:
sudo radvd -C /usr/local/etc/radvd.conf start
停止的话需要手动kill这个进程
killall radvd
根据需要设置
/etc/sysctl.conf net.ipv6.conf.all.forwarding=1
sudo sysctl -w net.ipv6.conf.all.forwarding=1
参数会影响ra的发送
在出现yacc flex commod not found
的时候,先安装byacc、flex:sudo apt-get install byacc flex
。