對於無狀態自動配置的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
。