IPv6地址的格式及子網(wǎng)劃分方法(IPv6子網(wǎng)劃分)

IPV6地址分類
如圖所示,地址分為三大類:組播、單播、任意播(也稱泛播);
單播可分為:全球單播地址(可理解為公網(wǎng)地址---IPv6)、本地鏈路地址、站點(diǎn)本地地址、回環(huán)地址、未指定地址、內(nèi)嵌IPv4地址。
IPv6的地址長度是128位(bit)。 將這128位的地址按每16位劃分為一個(gè)段,將每個(gè)段轉(zhuǎn)換成十六進(jìn)制數(shù)字,并用冒號(hào)隔開。以及字母大小寫并不影響地址變化。 例如:2000:0000:0000:0000:0001:2345:6789:abcd 這個(gè)地址很長,可以用兩種方法對(duì)這個(gè)地址進(jìn)行壓縮, 將每一段的前導(dǎo)零省略,但是每一段都至少應(yīng)該有一個(gè)數(shù)字 例如:2000:0:0:0:1:2345:6789:abcd 如果一個(gè)以冒號(hào)十六進(jìn)制數(shù)表示法表示的IPv6地址中,如果幾個(gè)連續(xù)的段值都是0,那么這些0可以簡記為::。每個(gè)地址中只能有一個(gè)::。 例如:2000::1:2345:6789:abcd
--------------------
單播地址(Unicast IPv6 Addresses) 可聚合的全球單播地址(Aggregatable Global Unicast Addresses) 可在全球范圍內(nèi)路由和到達(dá)的,相當(dāng)于IPv4里面的global addresses。前三個(gè)bit是001 例如:2000::1:2345:6789:abcd
IPv6公網(wǎng)地址(全球單播地址)
前3bit 固定001;
地址范圍:2xxx:xxxxx/3 - 3FFF: :FFFF;
2001::/16 IPV6因特網(wǎng)地址;
2002::/16 6to4過渡地址;
3ffe::/16 用于6bone測(cè)試目的的前綴;
注意:接口標(biāo)識(shí)符:指64bit的MAC地址(未來網(wǎng)絡(luò)適配器的MAC地址),或者是基于48bit MAC地址擴(kuò)展為64bit(EUI 64)。在全球單播地址中,規(guī)定如2001:BCFF:FEA6::/48表示一個(gè)IPv6路由前綴,2001:BCFF:FEA6:6C01::/64表示一個(gè)IPv6子網(wǎng)前綴。
------------------
鏈路本地地址(Link-Local Addresses) 用于同一個(gè)鏈路上的相鄰節(jié)點(diǎn)之間通信,相當(dāng)于IPv4里面的169.254.0.0/16地址。IPv6的路由器不會(huì)轉(zhuǎn)發(fā)鏈路本地地址的數(shù)據(jù)包。前10個(gè)bit是1111 1110 10,由于最后是64bit的interface ID,所以它的前綴總是fe80::/64 例如:fe80::1
當(dāng)一個(gè)節(jié)點(diǎn)啟用IPv6時(shí)自動(dòng)生成,格式如下圖,64位拓展由MAC地址按照EUI 64轉(zhuǎn)換而來。
IPv6的dhcp生成方式
EUI-64格式:基于MAC地址自動(dòng)構(gòu)造;
例如:MAC地址為0012:3400:ABCD;
首先把MAC地址對(duì)半分開,插入一個(gè)固定值FFFE;
0012:3400:ABCD ----> 0012:34FF:FE00:ABCD;
再把第七位翻轉(zhuǎn):0----> 1, 1---->0
0012:34FF:FE00:ABCD ----> 0212:34FF:FE00:ABCD;
最后加上前綴:
FE80::212:34FF:FE00:ABCD;
--------------
站點(diǎn)本地地址(Site-Local Addresses) 對(duì)于無法訪問internet的本地網(wǎng)絡(luò),可以使用站點(diǎn)本地地址,這個(gè)相當(dāng)于IPv4里面的private address(10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16)。它的前10個(gè)bit是1111 1110 11,它最后是16bit的Subnet ID和64bit的interface ID,所以它的前綴是FEC0::/48。
類似于IPv4中的私有地址,僅在內(nèi)部網(wǎng)絡(luò)使用,如打印機(jī)。
對(duì)于IPv6本地站點(diǎn)地址的配置,必須通過DHCPv6進(jìn)行地址的分配、無狀態(tài)的前綴公告、或者手工的進(jìn)行輸入。
值得注意的是,在RFC3879中,最終決定放棄單播站點(diǎn)本地地址。放棄的理由是,由于其固有的二義性帶來的單播站點(diǎn)本地地址的復(fù)雜性超過了它們可能帶來的好處。它在RFC4193中被ULA取代。
ULA,唯一本地地址,概念上相當(dāng)于私有IP,僅能夠在本地網(wǎng)絡(luò)使用,在IPv6 Internet上不可被路由。上面提到的站點(diǎn)本地地址由于起初的標(biāo)準(zhǔn)定義模糊而被棄用,而后RFC又重新定義了唯一本地地址以滿足本地環(huán)境中私有IPv6地址的使用。
在RFC4193中標(biāo)準(zhǔn)化了一種用來在本地通信中取代站點(diǎn)本地單播地址的類型。ULA擁有固定前綴FC00::/7,分為兩塊:FC00::/8暫未定義,F(xiàn)D00::/8定義如下:
唯一的本地IPv6單播地址(ULA,Unique Local IPv6 Unicast Address) 在RFC4193中標(biāo)準(zhǔn)化了一種用來在本地通信中取代單播站點(diǎn)本地地址的地址。ULA擁有固定前綴FD00::/8,后面跟一個(gè)被稱為全局ID的40bit隨機(jī)標(biāo)識(shí)符。
未指定地址(Unspecified address) 0:0:0:0:0:0:0:0 或者:: 當(dāng)一個(gè)有效地址還不能確定,一般用未指定地址作為源地址。未指定地址不能作為一個(gè)目標(biāo)地址來使用。
回環(huán)地址(Loopback address) 回環(huán)地址::1用于標(biāo)識(shí)一個(gè)回環(huán)接口,可以使一個(gè)節(jié)點(diǎn)可以給自己發(fā)送數(shù)據(jù)包。相當(dāng)于IPv4的回環(huán)地址127.0.0.1
兼容IPv4的地址(IPv4-compatible address) 形如::w.x,y.z,這里的w.x.y.z是IPv4公共地址的十進(jìn)制點(diǎn)號(hào)表示法,用于IPv6/IPv4節(jié)點(diǎn)們(同時(shí)支持)在使用僅支持IPv4的網(wǎng)絡(luò)上用IPv6的協(xié)議進(jìn)行通信。ipv6地址與ipv4地址并沒有公式進(jìn)行對(duì)應(yīng),也就是說兩者之間并沒有絕對(duì)的映射關(guān)系。 但是事實(shí)證明這種技術(shù)不是個(gè)好主意,RFC4291中廢棄了對(duì)這類地址的使用。
IPv4映射地址(IPv4-mapped address) 形如::FFFF:w.x.y.z,這里的w.x.y.z是IPv4公共地址的十進(jìn)制點(diǎn)號(hào)表示法,用于一個(gè)僅支持IPv4的節(jié)點(diǎn)表現(xiàn)為一個(gè)IPv6的節(jié)點(diǎn)
6over4地址 [64bit-prefix]:0:0:WWXX:YYZZ,其中的WWXX:YYZZ是w.x.y.z IPv4公共地址的十進(jìn)制點(diǎn)號(hào)表示法,用于一個(gè)使用6to4協(xié)議的隧道機(jī)制的節(jié)點(diǎn)。
6to4地址 2002:WWXX:YYZZ:[SLA ID]:[Interface ID],用于表示一個(gè)使用6to4協(xié)議的隧道機(jī)制節(jié)點(diǎn)。
多播IPv6地址(Multicast IPv6 Addresses) 前8個(gè)bit為1111 1111, 其中FF01::到FF0F::的多播地址是保留專用地址 FF01::1 節(jié)點(diǎn)本地范圍所有節(jié)點(diǎn)多播地址 FF02::1 鏈路本地范圍所有節(jié)點(diǎn)多播地址 FF01::2 節(jié)點(diǎn)本地范圍所有路由器多播地址 FF02::2 鏈路本地范圍所有路由器多播地址 FF05::2 站點(diǎn)本地范圍所有路由器多播地址
IPv6多播地址
標(biāo)志位為0000表示是永久保留的組播地址,分配給各種技術(shù)使用;
標(biāo)志位為0001表示是用戶可使用的臨時(shí)組播地址;
范圍段定義了組播地址的范圍,其定義如下:
二進(jìn)制 十六進(jìn)制 范圍類型
0001 1 本地接口范圍
0010 2 本地鏈路范圍
0011 3 本地子網(wǎng)范圍
0100 4 本地管理范圍
0101 5 本地站點(diǎn)范圍 類似組播的私網(wǎng)地址
1000 8 組織機(jī)構(gòu)范圍
1110 E 全球范圍 類似組播的公網(wǎng)地址
下面是一些組播指定地址:
FF02::1 all nodes 在本地鏈路范圍的所有節(jié)點(diǎn)
FF02::2 all routers 在本地鏈路范圍的所有路由器
FF02::5 all ospf routers
FF02::9 all rip routers 所有運(yùn)行RIP的路由器
FF02::A all eigrp routers 所有運(yùn)行eigrp的路由器
FF05::2 在一個(gè)站點(diǎn)范圍內(nèi)的所有路由器
-------------------
在對(duì) IPv6 地址空間進(jìn)行子網(wǎng)劃分時(shí),需要使用子網(wǎng)劃分技術(shù),以一種允許將剩余地址空間的摘要和委派路由到 IPv6 Intranet 的不同部分的方式,為 48 位全局地址前綴劃分 16 位子網(wǎng) ID 字段。 您不需要以任何特定的方式進(jìn)行子網(wǎng)劃分。此處介紹的子網(wǎng)劃分技術(shù)假定您是通過使用子網(wǎng) ID 字段的高序位劃分其地址空間的可變部分來進(jìn)行子網(wǎng)劃分的。雖然此方法有助于分層尋址和路由,但此方法并不是非用不可。例如,在只有少數(shù)子網(wǎng)的小型組織中,您可以通過為子網(wǎng)編號(hào)(從 0 開始),輕松地為全局地址創(chuàng)建平面尋址空間。
IPv6的子網(wǎng)劃分
對(duì)于全局地址,Internet 編號(hào)分配機(jī)構(gòu) (IANA) 或 ISP 會(huì)分配一個(gè)前 48 位均為固定位的 IPv6 地址前綴。若要對(duì) 48 位全局地址前綴的子網(wǎng) ID 字段進(jìn)行子網(wǎng)劃分,需要執(zhí)行一個(gè)包含兩步的過程:1. 確定用于子網(wǎng)劃分的位數(shù)。2. 枚舉出新的子網(wǎng)網(wǎng)絡(luò)前綴。 用于子網(wǎng)劃分的位數(shù)決定著您可以分配給您的網(wǎng)絡(luò)各部分(基于地理區(qū)劃或部門分類)的新子網(wǎng)網(wǎng)絡(luò)前綴的可能的數(shù)量。在分層路由基礎(chǔ)結(jié)構(gòu)中,您必須確定您在層次結(jié)構(gòu)的各層需要的網(wǎng)絡(luò)前綴數(shù),進(jìn)而確定各層需要的位數(shù)。為層次結(jié)構(gòu)的各層選擇的位越多,您擁有的用于枚舉層次結(jié)構(gòu)最后一層中的單個(gè)子網(wǎng)的位越少。
例如,您可以實(shí)施一個(gè)包含兩層的層次結(jié)構(gòu)來反映地理/部門結(jié)構(gòu),4 位用于地理層,6 位用于部門層。這一方案允許 16 個(gè)地理區(qū)域,各個(gè)區(qū)域中的各個(gè)部門只占剩余的子網(wǎng)劃分空間的 6 (16 - 6 - 4) 位,或者說每個(gè)部門只有 64 (=2^6) 個(gè)子網(wǎng)。
在層次結(jié)構(gòu)中任何給定的層上,許多位已被層次結(jié)構(gòu)中的上一層固定了 (f),許多位被用來在層次結(jié)構(gòu)中的當(dāng)前層進(jìn)行子網(wǎng)劃分 (s),還有許多位留給層次結(jié)構(gòu)中的下一層使用 (r)。下面這個(gè)等式始終成立:f+s+r = 16。ipv6 address sample—-[48bit prefix]:f(3bit)s(6bit)r(7bit)::
根據(jù)用于子網(wǎng)劃分的位數(shù),您必須列出新的子網(wǎng)網(wǎng)絡(luò)前綴,您可以使用下面兩種主要方法之一:
1. 使用子網(wǎng) ID 和遞增值的十六進(jìn)制表示形式來枚舉新的子網(wǎng)網(wǎng)絡(luò)前綴。
2. 使用子網(wǎng) ID 和遞增值的十進(jìn)制表示形式來枚舉新的子網(wǎng)網(wǎng)絡(luò)前綴。
這兩種方法產(chǎn)生的結(jié)果相同,都會(huì)生成子網(wǎng)網(wǎng)絡(luò)前綴的一個(gè)枚舉列表。 要使用十六進(jìn)制方法創(chuàng)建子網(wǎng)網(wǎng)絡(luò)前綴的枚舉列表,請(qǐng)執(zhí)行以下步驟:
1. 根據(jù)為子網(wǎng)劃分選擇的位數(shù) s 和進(jìn)行子網(wǎng)劃分的網(wǎng)絡(luò)前綴的前綴長度 m,計(jì)算以下各值:f = m - 48 f 是子網(wǎng) ID 中已固定的位的數(shù)目。n = 2^s n 是您將獲得的網(wǎng)絡(luò)前綴的數(shù)目。i = 2^(16-(f+s)) i 是以十六進(jìn)制表示的各個(gè)連續(xù)子網(wǎng) ID 之間的遞增值。P = m+s P 是新的子網(wǎng)網(wǎng)絡(luò)前綴的前綴長度。
2. 創(chuàng)建一個(gè)包含 n 行、兩列的表。第一列存放網(wǎng)絡(luò)前綴編號(hào)(從 1 開始),第二列存放新的子網(wǎng)網(wǎng)絡(luò)前綴。
3. 將使用新的前綴長度的原始網(wǎng)絡(luò)前綴放在第一行的第二列中。例如,根據(jù)進(jìn)行子網(wǎng)劃分的子網(wǎng) ID 的十六進(jìn)制值 F,子網(wǎng)網(wǎng)絡(luò)前綴為 [48 位前綴]:F::/P。
4. 將站點(diǎn)本地地址或全局地址的子網(wǎng) ID 部分中的值加上 i,將結(jié)果放在下一行的第二列中。例如,在第二行中,子網(wǎng)前綴為 [48 位前綴]:F+i::/P。
5. 重復(fù)步驟 4,直到您完成該表。
例如,要對(duì)全局地址前綴 3FFE:FFFF:0:C000::/51 進(jìn)行 3 位子網(wǎng)劃分,首先計(jì)算前綴數(shù)量值、遞增值和新前綴長度值。起始值是 F=0xC000,s=3,m=51,因此 f=51-48=3。前綴的數(shù)量是 8 (n=2^3)。遞增值是 0x400 (i=2^(16-(3+3))=1024=0x400)。新的前綴長度是 54 (P=51+3)。 構(gòu)造一個(gè)包含 8 行的表,如表所示。將 3FFE:FFFF:0:C000::/54 放在網(wǎng)絡(luò)前綴 1 所在的那一行的第二列,然后讓網(wǎng)絡(luò)前綴的子網(wǎng) ID 部分依次遞增 0x400,將結(jié)果分別填入后面的各行中。
網(wǎng)絡(luò)前綴 子網(wǎng)網(wǎng)絡(luò)前綴 1 3FFE:FFFF:0:C000::/54 2 3FFE:FFFF:0:C400::/54 3 3FFE:FFFF:0:C800::/54 4 3FFE:FFFF:0:CC00::/54 5 3FFE:FFFF:0:D000::/54 6 3FFE:FFFF:0:D400::/54 7 3FFE:FFFF:0:D800::/54 8 3FFE:FFFF:0:DC00::/54
要使用十進(jìn)制方法創(chuàng)建子網(wǎng)網(wǎng)絡(luò)前綴的枚舉列表,請(qǐng)執(zhí)行以下步驟:
1. 根據(jù)用于子網(wǎng)劃分的位數(shù) s、進(jìn)行子網(wǎng)劃分的網(wǎng)絡(luò)前綴的前綴長度 m 和進(jìn)行子網(wǎng)劃分的子網(wǎng) ID 的十六進(jìn)制值 F,計(jì)算以下各值:f = m - 48 f 是子網(wǎng) ID 中已固定的位的數(shù)目。n = 2^s n 是您將獲得的網(wǎng)絡(luò)前綴的數(shù)目。i = 2^(16-(f+s)) i 是各個(gè)連續(xù)子網(wǎng) ID 之間的遞增值。P = m+s P 是新的子網(wǎng)網(wǎng)絡(luò)前綴的前綴長度。D = F 的十進(jìn)制表示形式
2. 創(chuàng)建一個(gè)包含 n 行、三列的表。第一列存放網(wǎng)絡(luò)前綴編號(hào)(從 1 開始),第二列存放新的子網(wǎng)網(wǎng)絡(luò)前綴的子網(wǎng) ID 部分的十進(jìn)制表示形式,第三列存放新的子網(wǎng)網(wǎng)絡(luò)前綴。
3. 將子網(wǎng) ID 的十進(jìn)制表示形式 (D) 放在第一行的第一列,將子網(wǎng)前綴 [48 位前綴]:F::/P 放在第一行的第二列。
4. 用子網(wǎng) ID 十進(jìn)制表示形式的值加上 i,將結(jié)果放在下一行的第二列。例如,第二行的子網(wǎng) ID 的十進(jìn)制表示形式是 D+i。
5. 在第三列中,將子網(wǎng) ID 的十進(jìn)制表示形式轉(zhuǎn)換為十六進(jìn)制,并構(gòu)造前綴 [48 位前綴]:[SubnetID]::/P。例如,在第二行中,子網(wǎng)網(wǎng)絡(luò)前綴為 [48 位前綴]:[D+i(轉(zhuǎn)換為十六進(jìn)制)]::/P。
6. 重復(fù)步驟 4 和 5,直到您完成該表。
例如,要對(duì)站點(diǎn)本地網(wǎng)絡(luò)前綴 3FFE:FFFF:0:C000::/51 進(jìn)行 3 位子網(wǎng)劃分,首先計(jì)算前綴數(shù)量值、遞增值、新前綴長度值和起始子網(wǎng) ID 十進(jìn)制表示形式。我們的起始值是 F=0xC000,s=3,m=51,這樣 f=51-48=3。前綴數(shù)量是 8 (n=23)。遞增值是 1024 (i=216-(3+3))。新的前綴長度是 54 (P=51+3)。起始子網(wǎng) ID 的十進(jìn)制表示形式是 49152 (D=0xC000=49152)。 構(gòu)造一個(gè)包含 8 行的表,如表所示。將 49192 放在網(wǎng)絡(luò)前綴 1 所在的那一行的第一列,將 3FFE:FFFF:0:C000::/54 放在該行的第二列。讓網(wǎng)絡(luò)前綴的子網(wǎng) ID 部分(第四個(gè)十六進(jìn)制塊)依次遞增 1024,然后將結(jié)果轉(zhuǎn)換為十六進(jìn)制并分別填入后面的各行中。
網(wǎng)絡(luò)前綴 子網(wǎng) ID 的十進(jìn)制表示形式 子網(wǎng)網(wǎng)絡(luò)前綴 1 49192 3FFE:FFFF:0:C000::/54 2 50176 3FFE:FFFF:0:C400::/54 3 51200 3FFE:FFFF:0:C800::/54 4 52224 3FFE:FFFF:0:CC00::/54 5 53248 3FFE:FFFF:0:D000::/54 6 54272 3FFE:FFFF:0:D400::/54 7 55296 3FFE:FFFF:0:D800::/54 8 56320 3FFE:FFFF:0:DC00::/54
與 IPv4 相同的是,您可以對(duì) IPv6 地址前綴循環(huán)進(jìn)行子網(wǎng)劃分來在組織 Intranet 的各個(gè)層次提供路由摘要,定義單個(gè)子網(wǎng)的地址前綴可達(dá)到 64 位。與 IPv4 不同的是,您無法使用可變長度子網(wǎng)劃分來創(chuàng)建不同大小的子網(wǎng),因?yàn)樗?IPv6 子網(wǎng)都使用 64 位網(wǎng)絡(luò) ID 和 64 位接口 ID。