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