申明:本筆記僅適用於嵌入式平台路由器的IPV6環境搭建,介紹WAN口的有狀態和無狀態獲取以及LAN側的DHCPv6環境如何搭建
一、運行環境
操作系統平台:Windows7 + Linux,Linux內核要求要支持IPv6功能,2.6版本以上均可本
環境版本:Windows7 + Fedora20
開發板:XXX
PC:聯想筆記本
二、背景介紹
IPv6 的地址獲取方式與 IPv4 有所不同。在 IPv4 中,主機 IP 地址的自動配置必須由 DHCP 服務器來支持,這被稱為有狀態的自動配(Stateful Auto configuration);而在IPv6中,除了 DHCP的v6版本,還引入了無狀態的自動配置(Stateless Auto configuration)。這項新技術無需 DHCP 服務器支持,所有支持 IPv6 的路由器都監聽各主機發送的自動配置請求包(RS包), IPv6 路由器對這類請求包的回復數據包(RA)里面包含IPv6 地址的前綴(prefix)等信息,主機在收到這樣的包以后,可以根據自己的一些已有信息(比如 MAC 地址,或者隨機數),生成自己的 IPv6 地址。
除了IPv6路由器具有上述無狀態分配功能,本文還另外介紹一種適合開發人員的無狀態分配的環境搭建----RADVD模擬IPv6服務器完成IPv6地址自動配置。
說明:測試部人員測試WAN口IPv6功能可直接在WAN口上接一個支持IPv6的路由器進行測試,開發人員建議自己安裝radvd和dhcpv6 server(wide-dhcpv6,dibbler,dhcp6s等)聯合調試。本文主以radvd+dibbler為例進行介紹。
三、搭建自測試WAN IPv6環境
(一)安裝radvd(測試WAN無狀態自動獲取功能)
1、 網上下載一個radvd的最新安裝包,放入linux的/home/tools目錄下,下載網址:http://www.litech.org/radvd/
2、 在linux中安裝radvd。
cd /home/tools
tar –zxvf radvd-2.17.tar.gz
cd radvd-2.17
./configure –prefix=/usr/local –sysconfdir=/etc –mandir=/usr/share/man
make
make install
3、 修改配置文件(/etc/radvd.conf)。
interface eno33554960
{
AdvSendAdvert on;
AdvManagedFlag on;
AdvOtherConfigFlag on;
MinRtrAdvInterval 198;
MaxRtrAdvInterval 600;
MinDelayBetweenRAs 3;
AdvDefaultLifetime 1800;
AdvLinkMTU 0;
AdvDefaultPreference high;
prefix 2008:08:08::/64
{
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr off;
AdvValidLifetime 2592000;
AdvPreferredLifetime 604800;
};
route ::/0
{
AdvRouteLifetime 1800;
AdvRoutePreference high;
};
};
4、 修改linux網卡的IPv6設置(網卡ipv6地址必須與radvd中配置的前綴一致),如下圖:
5、 打開linux ipv6路由轉發功能,並啟動radvd。
echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
radvd –C /etc/radvd.conf
6、 設置linux網卡橋接到windows的測試網卡(在此將windows測試網卡命名為“TEST”)。
7、 路由器WAN口連接到windows的“TEST”網卡,設置WAN口IPv6地址獲取方式為無狀態自動獲取。
8、 設置成功后,查看WAN口是否獲取到上述radvd配置的前綴為2008:8:8::/64的global address,獲取到的地址后64位是通過EUI64算法得出或者隨機數生成。
9、 獲取到地址后,在串口執行ping命令,ping radvd所在系統的網卡地址(2008:8:8::1),若能ping通,說明WAN口IPv6無狀態自動配置功能已實現。
(二)安裝Dibbler(測試WAN有狀態自動獲取功能)
1、 安裝完成之后默認安裝在C:\dibbler,安裝文件:dibbler-1.0.0-win32.exe。
2、 安裝完成之后,修改配置文件,修改方法:
開始->所有程序->Dibbler->Server Edit Config File->修改server.conf。
3、 修改配置文件,server.conf。
server.conf:
log-level 7
log-mode short
iface "TEST"
{
# clients should renew every half an hour
T1 1800
T2 2000
class
{
pool 2008:08:08::1000-2008:08:08::2000
}
option dns-server 2008:08:08::2
option domain example.com, test1.example.com
}
4、 修改dibbler所在系統的IPv6設置(網卡ipv6地址必須與server.conf的DNS一致),如下圖:
5、 啟動dibbler-server,啟動方法如下:
開始->所有程序->Dibbler->Server Run in console
6、 啟動dibbler-server成功,如下截圖所示:
7、WAN口連接到windows的“TEST”網卡,設置WAN口IPv6地址獲取方式為有狀態自動獲取。
8、 設置成功后,查看WAN口是否獲取到上述dibbler配置的2008:08:08::1000-2008:08:08::2000/64的global address,是否獲取到網關地址,DNS地址等,查看設備路由表是否有IPv6的路由信息。
9、 獲取到地址后,在串口執行ping命令,ping dibbler所在系統的網卡地址(2008:8:8::2),若能ping通,說明WAN口IPv6有狀態自動配置功能已實現。
四、 搭建自測試LAN IPv6的環境
(一) 啟動LAN IPv6相關服務
1、 打開IPv6功能(默認是打開的)。
2、 設置LAN IPv6地址。
LAN IPv6地址必須是與開發板中RADVD設置的前綴(前64位)保持一致(3000:db8:1::1/64),RADVD參數可通過flash命令獲取,
后續路由器頁面會優化讓用戶不能修改LAN IPv6的前綴,只能修改后面的主機位。
3、 設置DHCPv6。
打開DHCPv6開關;
設置DHCPv6地址池:地址池前綴必須與LAN IPv6前綴一致;
設置DNS地址:DNS地址必須為LAN口的Link Local地址。
(二)測試DHCPv6功能
PC接到路由器的LAN口,PC網口IPv6設置成自動獲取。若PC能獲取到路由器分配的IPv6地址、 網關、DNS。
且PC能ping通 路由器 LAN IPv6地址、路由器WAN IPv6地址。則功能OK 。
五、 數據包