鄧榮
摘要:隨著互聯(lián)網(wǎng)的不斷發(fā)展,IPv6地址被設(shè)計(jì)用來(lái)解決IPv4地址空間不足的問(wèn)題。本文介紹了IPv6和DHCPv6的基本概念,給出了Linux環(huán)境下一種DHCPv6服務(wù)器的配置方法,并在客戶端上進(jìn)行了驗(yàn)證。
關(guān)鍵詞:IPv6; IPv6動(dòng)態(tài)主機(jī)配置協(xié)議; Linux
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)32-0020-02
1 IPv6概述
互聯(lián)網(wǎng)協(xié)議版本6(IPv6)是因特網(wǎng)協(xié)議(IP)的最新版本,是為網(wǎng)絡(luò)上的計(jì)算機(jī)和路由器提供識(shí)別和定位系統(tǒng)的通信協(xié)議。IPv6由互聯(lián)網(wǎng)工程任務(wù)組(IETF)開發(fā),用于處理IPv4地址耗盡的長(zhǎng)期預(yù)期問(wèn)題。 IPv6旨在最終替代IPv4。
1.1 IPv6地址和地址前綴的表示法
1)X:X:X:X:X:X:X:X
IPV6地址長(zhǎng)128比特,每一個(gè)X代表4位的16進(jìn)制數(shù),可以表示成由:隔開的8個(gè)16比特段。例如:FEDC:BA98:7654:FEDC:BA98:7654:3210
2)壓縮表示法
::標(biāo)識(shí)一組或多組16進(jìn)制的0,如下例所示:
1080:0:0:0:8:800:200C:417A == 1080::8:800:200C:417A
FF01:0:0:0:0:0:0:101 == FF01::101
0:0:0:0:0:0:0:1 == ::1
0:0:0:0:0:0:0:0 == ::
3)當(dāng)處理IPV6和IPV4混合環(huán)境的時(shí)候,可以有另一種便利的表示法:
X:X:X:X:X:X:d.d.d.d
X代表16進(jìn)制數(shù)(用于嵌入在IPV6中的IPV4數(shù)據(jù)的表示),d代表10進(jìn)制,4個(gè)d表示標(biāo)準(zhǔn)的IP地址格式。
4)地址前綴的文本表述
前綴是地址中具有固定值的位數(shù)部分或表示網(wǎng)絡(luò)標(biāo)識(shí)的位數(shù)部分。IPv6的子網(wǎng)標(biāo)識(shí)、路由器和地址范圍前綴表示法與IPv4采用的CIDR標(biāo)記法相同,其前綴可書寫為:地址/前綴長(zhǎng)度。
1.2 地址類型
在IPv6地址類型中,有很多更具體的,更豐富的地址類型,這也是它具有更多性能的基礎(chǔ)。IPv6地址中的前導(dǎo)位用來(lái)定義具體的IPv6地址類型,有一段變長(zhǎng)字段包含了這些前導(dǎo)位,它們被稱作格式前綴(FP)。
具體的地址類型有:
1)全局單播IPv6地址:用于標(biāo)識(shí)單個(gè)接口。 這些是IPv4中的標(biāo)準(zhǔn)全局唯一單播地址(公共IPv4地址),每個(gè)主機(jī)接口一個(gè)。全球單播IPv6地址是互聯(lián)網(wǎng)可路由的IPv6地址。
2)鏈路本地IPv6地址:鏈路本地IPv6地址允許本地鏈路上的設(shè)備之間的通信。鏈路本地IPv6地址不可路由,它們?cè)谧泳W(wǎng)上使用。普通鏈路本地IPv6地址前綴為fe80::/10。
3)組播地址:組播地址標(biāo)識(shí)相同或不同主機(jī)上的零個(gè)或多個(gè)接口。IPv6組播地址以FF開頭。
4)任播地址:任播地址標(biāo)識(shí)多個(gè)接口。任播傳輸僅向與地址相關(guān)聯(lián)的接口中的一個(gè)發(fā)送分組,而不是向所有接口發(fā)送分組。該接口通常是由路由協(xié)議定義的最接近的接口。
5)環(huán)回地址:由節(jié)點(diǎn)用于向其自身發(fā)送IPv6數(shù)據(jù)包。IPv6環(huán)回地址的功能與IPv4環(huán)回地址相同。IPv6環(huán)回地址為0000:0000:0000:0000:0000:0000:0000:0001/128,也可以表示為:: 1。
2 DHCPv6協(xié)議概述
2.1 DHCPv6概念
動(dòng)態(tài)主機(jī)配置協(xié)議版本6(DHCPv6)是用于配置具有IP地址、IP前綴以及在IPv6網(wǎng)絡(luò)中操作所需的其它配置數(shù)據(jù)的因特網(wǎng)協(xié)議版本6(IPv6)主機(jī)的網(wǎng)絡(luò)協(xié)議。和IPv4中的DHCP一樣,DHCPv6所有的協(xié)議報(bào)文都是基于UDP的。但是由于在IPv6中沒有廣播報(bào)文,因此DHCPv6使用組播報(bào)文,客戶端也無(wú)需配置服務(wù)器的IPv6地址。
2.2 DHCPv6地址分配過(guò)程
DHCPv6屬于應(yīng)用層通訊協(xié)議,使用UDP 來(lái)交換消息。它需要通過(guò)DHCPv6 協(xié)議來(lái)獲取IP位址或其它參數(shù)的node。客戶端會(huì)以client的角色來(lái)向DHCPv6 server發(fā)出請(qǐng)求,而DHCPv6 server會(huì)依據(jù)client的相關(guān)信息以及server的相關(guān)策略來(lái)配置client適當(dāng)?shù)膮?shù)值。
DHCPv6 客戶端和服務(wù)器端的信息交換分為4個(gè)消息和2個(gè)消息兩種類型:
1)4個(gè)消息類型
為了請(qǐng)求1個(gè)或多個(gè)IP位址以及其他參數(shù),首先客戶端發(fā)送Solicit message到All_DHCP_Relay_Agents_and_Servers address來(lái)尋找可用的DHCP servers。任何服務(wù)器只要能符合客戶端的請(qǐng)求,會(huì)將配置的IP位址以及其他參數(shù)通過(guò)Advertise message來(lái)回應(yīng)客戶端??蛻舳藦氖盏降腁dvertise messages中選擇最符合自己需求的配置,并將配置到的IP位址通過(guò)發(fā)送Request message要求服務(wù)器的確認(rèn)。服務(wù)器通過(guò)Reply message將確認(rèn)配置的IP位址以及其他參數(shù)回應(yīng)客戶端。此時(shí)即完成客戶端和服務(wù)器之間的信息交換,客戶端可以開始使用配置到的IP位址以及其他參數(shù)。 服務(wù)器分配給客戶端的每個(gè)IP位址都指定了preferred lifetime以及valid lifetime。為了能持續(xù)使用分配到的IP位址,客戶端可以在lifetime到期之前發(fā)送Renew message來(lái)要求延長(zhǎng)lifetime。服務(wù)器將新的lifetime通過(guò)Reply message回應(yīng)客戶端,允許客戶端繼續(xù)使用該IP位址而不會(huì)被中斷。
2)2個(gè)消息類型
當(dāng)客戶端不需要服務(wù)器為其分配IP位址時(shí),它可以使用2個(gè)消息的信息交換方式來(lái)獲取其他的配置參數(shù)。首先客戶端發(fā)送Information-Requestmessa到All_DHCP_Relay_Agents_and_Servers multicast address,服務(wù)器將配置給客戶端的參數(shù)值通過(guò)Reply message回應(yīng)客戶端。此外,客戶端也可以使用2個(gè)messages即Sloicit-Reply的交換方式來(lái)同時(shí)獲取IP位址以及其他配置參數(shù)。在此情況下,客戶端會(huì)在Solicit message中使用Rapid Commit option表明希望直接收到服務(wù)器即時(shí)分配且確認(rèn)的Reply message。此種做法可加快客戶端獲取IP位址以及其他參數(shù)的速度。
3 DHCPv6在Linux環(huán)境下的實(shí)現(xiàn)
本文使用安裝Fedora操作系統(tǒng)的一臺(tái)服務(wù)器作為DHCPv6服務(wù)器,服務(wù)器的地址為2001:250:6001::1,服務(wù)器分配的IPv6網(wǎng)段地址為:2001:250:6001::2至2001:250:6001::10。服務(wù)器配置步驟如下:
1)安裝DHCPv6軟件包
#yum -y install dhcpv6
2)安裝IPv6模塊
#yum -y install dhcpv6
3)在服務(wù)器上啟用IPv6網(wǎng)絡(luò)
#cd /etc/sysconfig
#vi network
增加配置語(yǔ)句:
IPv6_DEFAULTDEV=eth0
NETWORKING_IPV6=yes
4)給服務(wù)器網(wǎng)卡配置IPv6地址
#vi /etc/sysconfig/network-script/ifcfg-eth0
增加配置語(yǔ)句:
IPV6INIT=yes
IPV6ADDR=2001:250:6001::1/64
5)配置服務(wù)器主配置文件
#vi /etc/dhcpv6s.conf
新建配置文件dhcpv6s.conf的內(nèi)容為:
interface eth0 {
server-preference 255;
renew-time 80;
rebind-time 100;
prefer-life-time 150;
valid-life-time 210;
allow rapid-commit;
link AAA {
range 2001:250:6001::2 to 2001:250:6001::10/64;
prefix 2001:250:6001::/64;
};
};
6)啟動(dòng)DHCPv6服務(wù)
#service dhcp6s start
4 DHCPv6客戶端驗(yàn)證
本文使用一臺(tái)安裝Fedora操作系統(tǒng)的PC作為DHCPv6客戶端進(jìn)行測(cè)試。配置步驟如下:
1)安裝DHCPv6軟件包
#yum -y install dhcpv6
2)編輯配置文件
#cd /etc
#vi dhcp6c.conf
增加配置語(yǔ)句:
interface eth0 {
send rapid-commit;
};
3)啟動(dòng)DHCPv6客戶端
# dhcp6c -f eth0
通過(guò)以上配置,客戶端可以通過(guò)DHCPv6服務(wù)器獲得一個(gè)指定范圍內(nèi)的IPv6的地址。
5 總結(jié)
本文提出了一種Linux環(huán)境下通過(guò)DHCPv6服務(wù)器動(dòng)態(tài)分配IPv6地址的方法,并在客戶端上進(jìn)行了驗(yàn)證。在客戶端使用手工輸入IPv6地址容易出錯(cuò),使用DHCPv6協(xié)議不僅可以很好地解決這一問(wèn)題,而且可以分配IPv6前綴等參數(shù),更便于網(wǎng)絡(luò)運(yùn)維管理人員對(duì)IPv6網(wǎng)絡(luò)進(jìn)行管理和自動(dòng)配置。
參考文獻(xiàn):
[1] 范小雨, 鄭紅霞, 謝高崗. DHCPv6協(xié)議一致性測(cè)試集的設(shè)計(jì)和實(shí)現(xiàn)[J]. 計(jì)算機(jī)工程, 2007(19).
[2] 胡光武, 陳文龍, 徐恪. 一種基于IPv6的物聯(lián)網(wǎng)分布式源地址驗(yàn)證方案[J]. 計(jì)算機(jī)學(xué)報(bào), 2012(3).
[3] 王霞, 高飛. 基于DHCPv6的大規(guī)模無(wú)線傳感器網(wǎng)絡(luò)地址管理協(xié)議的設(shè)計(jì)[J]. 云南民族大學(xué)學(xué)報(bào)(自然科學(xué)版), 2016(1).