當(dāng)前位置:首頁 > 公眾號精選 > 8號線攻城獅
[導(dǎo)讀]▼點擊下方名片,關(guān)注公眾號▼初識IPv62019年11月25日已分配完公網(wǎng)IPv4地址,以后就沒有多余地址可以分配了。短期內(nèi)可以使用NAT技術(shù)進行緩解。長期來看,還是要用128位的IPv6地址替代32位的IPv4地址,IPv6有3.4×10^38個可用地址,多得不得了,可以滿足未...

點擊下方名片,關(guān)注公眾號


初識 IPv6

2019 年 11 月 25 日已分配完公網(wǎng) IPv4 地址,以后就沒有多余地址可以分配了。短期內(nèi)可以使用 NAT 技術(shù)進行緩解。長期來看,還是要用 128 位的 IPv6 地址替代 32 位的 IPv4 地址,IPv6 有 3.4×10^38 個可用地址,多得不得了,可以滿足未來 IP 地址的需求。

IPv6 地址

IPv6 地址不但比 IPv4 的地址長度長,還其它方面的不同。

1、IPv6 地址表示

32 位的 IPv4 地址,分隔成 4 個 8 位段,每 8 位段的值在 0 ~ 255 之間,每個 8 位段之間用 “ . ” 分開,這就是 “ 點分十進制表示法 ” 。舉個栗子:

192.168.0.1

而 128 位的 IPv6 地址,是 IPv4 地址的 4 倍,如果用點分十進制表示法,那么會有 16 個八位組,地址過于冗長。為了使用方便, 使用十六進制表示法,分隔成 8 個 16 位段,每 16 位段的值在 0000 ~ FFFF 的十六進制數(shù)之間,每個 16 位段之間用 “ : ” 分開。舉個栗子:

2001:1111:0100:000a:0000:00bc:2500:0a0b

為了方便理解,可以查看下面的進制轉(zhuǎn)換表。

但是 IPv6 地址還是太長,不方便記憶,看著都頭暈,也不方便書寫,毫無規(guī)律可言。于是就有了兩條簡化規(guī)則。第一條規(guī)則是:

  • 每組十六進制數(shù)中開頭的 0 可以省略。

上面的 IPv6 地址可以寫成:2001:1111:100:a:0:bc:2500:a0b

這里需要注意,開頭的 0 才能省略,末尾的 0 是不能省略的,因為這樣會引起歧義,無法確定省略的 0 是在數(shù)字前還是數(shù)字后。

如果有個 IPv6 地址有一串的 0 ,比如:

2001:0000:0000:0000:0000:0000:0000:0003

可以簡寫成:

2001:0:0:0:0:0:0:3

這時,還可以使用第二個規(guī)則進行簡化,第二條規(guī)則是:

  • 由全 0 組成的連續(xù)的 16 位段可以用一對冒號 “ :: ” 表示。

上面的地址還可以簡化成:

2001::3

這里需要注意,一個 IPv6 地址內(nèi),只能使用一次 “ :: ” 表示。如果使用兩次及以上,也會產(chǎn)生歧義。舉個栗子:

2001:0a0c:0000:0000:0021:0000:0000:0077

正確的寫法有是:

2001:a0c::21:0:0:77

2001:a0c:0:0:21::77

如果使用了兩次 “ :: ” ,那么就是錯誤的:

2001:a0c::21::77

有兩個全 0 字符串,就無法確定它們的長度,上面錯誤的地址會有幾種可能:

2001:0a0c:0000:0021:0000:0000:0000:0077

2001:0a0c:0000:0000:0021:0000:0000:0077

2001:0a0c:0000:0000:0000:0021:0000:0077

IPv4 的網(wǎng)段地址可以用子網(wǎng)掩碼表示,還可以用斜線法表示。IPv6 只能用斜線法表示網(wǎng)段地址,即在 IPv6 地址后面加上一個斜線 “ / ” ,后面加上一個十進制的數(shù)字,來表示前面多少位是網(wǎng)絡(luò)位。網(wǎng)絡(luò)位是 64 位的 IPv6 地址表示如下:

3001:2222:333:aa:bc::707:9900/64

對應(yīng)的網(wǎng)段地址是:

3001:2222:333:aa::/64

全是 0 的 IPv6 地址可以寫成一對冒號。當(dāng)網(wǎng)絡(luò)位是 0 位時,表示默認地址。

::/0

當(dāng)網(wǎng)絡(luò)位是 128 位時,表示未指定地址( unspecified address )。設(shè)備未分配 IPv6 地址時,就用未指定地址作為標(biāo)識進行報文交互。

::/128

2、IPv6 地址類型

IPv6 地址根據(jù)使用范圍和功能,分為三種類型:

  • 單播( Unicast )

  • 任意播( Anycast )

  • 組播( Multicast )

對比 IPv4 ,IPv6 地址中沒有廣播地址,但是有一個包含全部節(jié)點的組播地址,跟 IPv4 中的廣播地址功能相同。

其中單播地址又細分為全球單播地址、唯一本地地址鏈路本地地址等。

2.1 全球單播地址
單播地址表示單臺設(shè)備的地址。全球單播地址是指這個單播地址是全球唯一的。也就是說,全球單播地址是可以在公網(wǎng)使用、全網(wǎng)可路由的 IPv6 地址,類似于 IPv4 的公網(wǎng) IP 地址。全球單播 IPv6 地址是由 Internet 地址授權(quán)委員會( IANA )分配給地區(qū) Internet 注冊機構(gòu)( RIR ),再由 RIR 分配給 Internet 服務(wù)提供商( ISP )。

IANA 分配 128 位的 IPv6 地址時,同 IPv4 一樣,也是分配一個網(wǎng)段,即網(wǎng)絡(luò)/子網(wǎng)位,不會分配 128 位的地址。IPv6 單播地址的通用格式如下:

全球單播 IPv6 地址的前 3 位固定為 001 ;第 4 ~ 48 ?位的這 45 位由地址分配機構(gòu)分配;48 位之后的 16 位是網(wǎng)絡(luò)劃分子網(wǎng)位,稱為子網(wǎng) ID ;剩余的 64 位 IPv6 地址就是主機位,但是叫做接口 ID( Interface ID )。因為一臺主機可以有幾個接口,用 IPv6 地址表示主機的一個接口更準(zhǔn)確,而不是表示一臺主機。同時,一個接口可以有多個 IPv6 地址,還可以有一個 IPv4 地址,接口 ID 只是這個接口的幾個標(biāo)識符之一。

通常,全球 IPv6 地址的接口 ID 是 64 位,子網(wǎng) ID 是 16 位。一個 16 位的子網(wǎng) ID 可以劃分 65536 個不同的子網(wǎng)。很少有這么多子網(wǎng)的網(wǎng)絡(luò),因此全球單播 IPv6 地址還有另外一種格式:前綴是 n 位,子網(wǎng) ID 是 64-n 位,接口 ID 也是 64 位。兩種格式也不是矛盾的。

將全球單播 IPv6 地址的前 3 位固定值轉(zhuǎn)換為 IPv6 表示法,可知全球單播地址的前綴為 2000::/3

IANA 和 RIR 把長度 /32 或 /35 的 IPv6 前綴分配給本地 Internet 注冊機構(gòu)( LIR )。LIR 通常是大型的 ISP ,LIR 分配前綴長度 /48 的 IPv6 地址給各個客戶。也有一些例外,會分配不同長度的前綴:

  • 如果一個客戶非常龐大,那么可以分配一個長度小于 /48 的前綴。

  • 如果有且僅有一個子網(wǎng)需要地址,那么可以分配一個長度是 /64 的前綴。

  • 如果有且僅有一臺設(shè)備需要地址,那么可以分配一個長度是 /128 的前綴。

2.2 IPv6 地址類型
IPv6 地址開頭的二進制標(biāo)識地址類型。比如:全球單播地址的前 3 位是 001 。

2.3 本地單播地址
除了全球單播地址,還有幾種其它類型的本地單播地址,分別應(yīng)用在不同的場景。

有哪些本地單播地址呢?

本地單播地址有 4 種類型,分別是唯一本地地址、鏈路本地地址未指定地址、回環(huán)地址。

  • 唯一本地地址

雖然 IPv6 地址非常充足,但是 IANA 還是分配了一段可以在私有網(wǎng)絡(luò)使用的私有 IP 地址空間。這種可以自行使用而不用申請的單播 IPv6 地址叫做唯一本地地址。唯一本地地址只能在私有網(wǎng)絡(luò)使用,不能在全球路由,不同的私網(wǎng)可以復(fù)用這類地址。它的作用和范圍跟 IPv4 的私有 IP 地址相同。

唯一本地地址的前 7 為固定是 1111110 ,前綴為 FC00::/7 的 IPv6 地址。之前還有站點本地地址( Site Local Address ),前綴是 FEC0::/10 ,已被ULA取代。

唯一本地地址的第 8 位比較特殊。第 8 位為 0 時,未定義,也就是說,FC00::/8 這個 IPv6 地址前綴屬于保留的地址空間。目前私有網(wǎng)絡(luò)使用的 IPv6 地址是以 11111101 開頭的,即前綴為 FD00::/8 的 IPv6 地址。

  • 鏈路本地地址

IPv6 的鏈路本地地址( Link-Local Address ),是 IPv4 地址中沒有的類型,是 IPv6 新定義的地址類型。

鏈路本地地址是只在鏈路內(nèi)有效的地址。啟動 IPv6 時,網(wǎng)絡(luò)接口會自動配置這樣的一個 IPv6 地址,就可以直接和同一鏈路上的其它設(shè)備通信。因為鏈路本地地址只在鏈路本地有效,所以這些數(shù)據(jù)包不會被發(fā)送到其它鏈路上。

鏈路本地地址的前 10 位固定是 1111111010 ,之后的 54 位固定為 0 ,最后 64 位是接口 ID 。也就是說,鏈路本地地址的前綴為 FE80::/10

如果鏈路本地地址的前 64 位都是相同的,那么接口如何使用 64 位的接口 ID 進行標(biāo)識,才能確保鏈路本地地址在鏈路中不會出現(xiàn) IP 地址沖突呢?答案是接口使用自己的物理 MAC 地址來填充接口 ID 字段。理論上接口的 MAC 地址是唯一的,因此通過 MAC 地址生成的接口 ID 和鏈路本地地址也是唯一的。

把 MAC 地址轉(zhuǎn)換成接口 ID ,使用 MAC-to-EUI64 轉(zhuǎn)換法。簡單的講,就是使用接口的 48 位 MAC 地址,在 MAC 地址中間,也就是 OUI 后面,插入一個固定的十六進制數(shù) 0xFFFE ,并把第 7 位的 U/L (全局/本地)位設(shè)置為 1 ,這樣就轉(zhuǎn)換為一個 64 位的接口 ID 。

  • 未指定地址

未指定地址是 128 位全為 0 的前綴地址,簡寫成 ::/128 ,相當(dāng)于 IPv4 中的 0.0.0.0/32 。這個地址不能分配給接口使用,只有當(dāng) IPv6 設(shè)備還沒獲取到地址時,才將未指定地址作為數(shù)據(jù)包的源 IPv6 地址。

  • 回環(huán)地址

回環(huán)地址是前 127 位全為 0 ,最后一位是 1 的 128 位前綴地址,簡寫成 ::1/128 ,相當(dāng)于 IPv4 中的回環(huán)地址 127.0.0.1/8 ?;丨h(huán)地址表示節(jié)點自己,不能分配給接口使用。只要設(shè)備的協(xié)議棧狀態(tài)正常,設(shè)備就可以收到發(fā)送給回環(huán)地址的數(shù)據(jù)包。

2.4 任意播地址
IPv6 定義了一種任性的功能,通過任意播地址( Anycast Address )實現(xiàn)。任意播地址是根據(jù)功能定義的,而不是根據(jù)報文格式,IPv6 沒有定義任意播的地址空間,與單播使用相同的地址空間。所以,無法根據(jù)地址判斷是單播地址還是任意播地址。

單播是一對一,組播是一對多,廣播是一對全體,那么任意播就是一對最近的通信方式。

一個任意播地址可以分配給多臺設(shè)備,路由器會有多條路由到達相同的目的地,選擇代價最小的路由進行數(shù)據(jù)轉(zhuǎn)發(fā)。在大型網(wǎng)絡(luò)中,流量可以發(fā)送到最近的設(shè)備,數(shù)據(jù)傳輸效率更高。而且當(dāng)最近的設(shè)備故障時,路由器可以把路由指向下一臺最近的路由器。

2.5 組播地址
組播地址不是標(biāo)識一臺設(shè)備,而是一組設(shè)備:一個組播組( Multicast Group )。發(fā)送組播數(shù)據(jù)包通常是單臺設(shè)備,可以是組播組成員,也可以是其它主機,數(shù)據(jù)包的目的地址是組播地址。

組播組成員有可能是一臺設(shè)備,也可能是這個網(wǎng)絡(luò)上的所有設(shè)備。IPv6 沒有廣播地址,但是有一個包含所有節(jié)點的組播組,和廣播地址做相同的事情:所有節(jié)點都是這個組播組的成員。

組播地址的前 8 位全是 1 ,后面跟著 4 位標(biāo)記位,再后面就是 4 位表示地址范圍。最后的 112 位作為組 ID ( Group ID ),標(biāo)識不同的組播組。前面的 80 位是 0 ,只使用后面的 32 位。

4 位標(biāo)記位中,第 1 位是保留標(biāo)記位,未使用,使用固定值 0 。第 2 位用于匯集點( Rendezvous Point ),匯集點是組播的一個概念,叫做 R 位,通常取值為 0 。第 3 位表示組播地址是否帶了前綴,叫做 P 位。組播地址沒前綴,取值為 0 。大多數(shù)情況是 0 。最后一位是 T 位,值為 0 時表示是已定義的、永久的組播地址;值為 1 時是臨時充當(dāng)一些設(shè)備的組播組。因此,各個協(xié)議使用的組播組是以 FF0 開頭的 IPv6 地址,而自定義的組播組是以 FF1 開頭的。

組播地址和單播地址一樣,有一個有效范圍,4 為范圍位定義了組播地址的使用范圍。不同取值的范圍表如下:

常見的 IPv6 組播地址的格式是標(biāo)記位的值是 0 ,范圍位的值是 2 ,即前綴為 FF02 的組播地址。

2.6 嵌入的 IPv4 地址
在 IPv6 地址的環(huán)境中使用 IPv4 地址,需要用到轉(zhuǎn)換技術(shù),把 IPv4 地址轉(zhuǎn)換成 IPv6 地址。比如 6to4 技術(shù)就是將 IPv4 地址轉(zhuǎn)換成 16 進制數(shù),再嵌入到 IPv6 地址的最后 32 位。

ICMPv6

IPv6 也是使用 ICMP 來管理網(wǎng)絡(luò),實現(xiàn)錯誤檢查和報告機制功能。IPv4 協(xié)議中 ICMP 使用的協(xié)議號是 1 ,而 IPv6 協(xié)議中 ICMPv6 使用的值是 58 。ICMPv6 對于頭部字段的定義也與 ICMP 相同。

ping 功能也是使用 Echo 請求和 Echo 應(yīng)答報文。除此之外,還有一個基于 ICMP 的新協(xié)議:鄰居發(fā)現(xiàn)協(xié)議。

NDP

IPv6 的鄰居發(fā)現(xiàn)協(xié)議( NDP )相當(dāng)于 IPv4 的 ARP 、ICMP 的路由器發(fā)現(xiàn)和 ICMP 的重定向,還可以發(fā)現(xiàn)網(wǎng)絡(luò)中使用的 IPv6 地址前綴等參數(shù),并實現(xiàn)地址自動配置等。IPv6 協(xié)議通過 NDP 功能實現(xiàn)即插即用特性:

  • 路由器發(fā)現(xiàn)( Router Discovery ):當(dāng)一個節(jié)點接入到 IPv6 鏈路時,它可以發(fā)現(xiàn)鏈路上的路由器,而不需要借助使用 DHCP 。

  • 前綴發(fā)現(xiàn)( Prefix Discovery ):當(dāng)一個節(jié)點接入到 IPv6 鏈路時,它能夠發(fā)現(xiàn)鏈路的前綴。

  • 參數(shù)發(fā)現(xiàn)( Parameter Discovery ):節(jié)點能夠發(fā)現(xiàn)所在鏈路的參數(shù),像鏈路的 MTU 和跳數(shù)限制等。

  • 地址自動配置( Address Autoconfiguration ):節(jié)點能夠自動配置,不需要使用 DHCP 。

  • 地址解析( Address Resolution ):節(jié)點不需要通過 ARP 就能夠獲取鏈路上其它節(jié)點的 MAC 地址。

  • 下一跳確定( Next-Hop Determination ):能夠確定到達目的節(jié)點的下一跳鏈路層節(jié)點,或者所在鏈路的目的節(jié)點,或是到達目的節(jié)點的路由器。

  • 鄰居不可達檢測( Neighbor Unreachability Detection ):節(jié)點上能夠檢測到鏈路上的鄰居何時不可達,鄰居有可能是主機,也可能是路由器。

  • 地址沖突檢測( Duplicate Address Detection ):節(jié)點能夠檢測到要使用的地址是否已經(jīng)被其它節(jié)點占用。

  • 重定向( Redirect ):對于非連接的目的節(jié)點,路由器能夠通知主機存在更好的下一跳路由。

NDP 報文是在數(shù)據(jù)鏈路內(nèi)接收和發(fā)送,因此封裝 NDP 的數(shù)據(jù)包是使用 IPv6 鏈路本地地址,或者是鏈路范圍內(nèi)的組播地址。在安全性上也有加強,NDP 報文的跳數(shù)限制255 。如果收到的數(shù)據(jù)包的跳數(shù)限制值小于 255 ,那么這個數(shù)據(jù)包至少經(jīng)過了一臺路由器,因此丟棄這個數(shù)據(jù)包。這樣可以阻止 NDP 不會受到非本地鏈路的攻擊或欺騙。

1、NDP 報文

NDP 定義了 5 種報文類型,且跳數(shù)限制字段值都是 255 。如果收到的 NDP 報文中跳數(shù)限制字段值不是 255 ,那么會丟棄這個 NDP 報文。在 ICMPv6 封裝這 5 種 NDP 報文時,編碼字段都是 0 ,不同報文類型通過類型值來標(biāo)識:

  • 路由器請求( Router Solicitation ,RS ):路由器請求報文是由主機發(fā)出的,用來請求鏈路中的路由器發(fā)送一個 RA 。類型字段值是 133 。

  • 路由器通告( Router Advertisement ,RA ):路由器通告報文是路由器發(fā)出的,用來通告路由器的存在和鏈路參數(shù),比如:鏈路前綴、鏈路 MTU ,以及跳數(shù)限制等。這些報文周期性的發(fā)送,也用于響應(yīng)路由器請求報文。類型字段值是 134 。

  • 鄰居請求( Neighbor Solicitation ,NS ):也是有主機發(fā)起,用來請求另一臺主機的 MAC 地址,也用于地址沖突檢測、鄰居不可達檢測。類型字段值是 135 。

  • 鄰居通告( Neighbor Advertisement ,NA ):用于響應(yīng)鄰居請求報文。如果一個節(jié)點改變了 MAC 地址,那么它通過發(fā)送一個未請求的鄰居通告報文來告知這個新地址。類型字段值是 136

  • 重定向( Redirect ):跟 IPv4 協(xié)議中的 ICMP 用法相同,只不過是移植到 NDP 中。類型字段值是 137 。

2、路由器發(fā)現(xiàn)

路由器在所在的鏈路上周期性發(fā)送 RA ,告知它的存在和配置的所有參數(shù)。未收到請求的 RA 的源地址是路由器接口的鏈路本地 IPv6 地址,目的地址是所有節(jié)點的組播地址( FF02::1 )。

剛接入到鏈路的主機,需要等待一個 RA ,用來發(fā)現(xiàn)鏈路上的路由器和鏈路參數(shù)。默認等待 200 秒的時間太長。所以,主機激活時,就會發(fā)送一個 RS ,這個報文的源地址可以是未指定地址( :: ),也可以是主機的鏈路本地 IPv6 地址。目的地址就是所有路由器的組播地址( FF02::2 ),請求鏈路本地路由器為主機提供一些信息。

只有路由器才會監(jiān)聽鏈路本地路由器組播地址,當(dāng)路由器收到 RS 時,就會發(fā)送一條 RA 作為響應(yīng)。如果收到報文的源地址是鏈路本地地址,那么使用鏈路本地地址單播發(fā)送。如果源地址是未指定地址( :: ),那么會以組播方式發(fā)送給所有節(jié)點( FF02::1 )。

當(dāng)主機收到 RS 時,會把路由器的鏈路本地地址作為默認路由地址,添加到自己的路由表中。如果路由器列表有多條默認路由器條目,那么主機要給出選定默認路由器的方法。要么是整個默認路由器列表依次輪詢,要么選擇單臺路由器作為默認路由。

3、地址自動配置

當(dāng)一臺 IPv6 的設(shè)備第一次接入鏈路時,它能夠自動配置自己的接口地址。這個過程的第一步就是確定 64 位接口 ID 部分,使用 MAC-to-EUI64 轉(zhuǎn)換法獲取接口 ID 。

當(dāng)然,接口 ID 只是 IPv6 地址的一半,還需要一個 64 位的前綴。前面提到過,鏈路本地前綴是 0xFF80::/10 。用它作為 64 位前綴( 0xFF80::/64 ),再加上轉(zhuǎn)換后的接口 ID ,就是一個完整的 IPv6 地址,可以和同一鏈路上設(shè)備進行通信。

如果一臺主機只需要和所在鏈路上的設(shè)備通信,那么它自動配置的鏈路本地地址就已經(jīng)滿足了。但是如果主機需要和鏈路之外的設(shè)備通信,那么它就需要一個更大范圍的地址,通常是一個全球 IPv6 地址。有兩種途徑獲取這類地址:有狀態(tài)或無狀態(tài)的地址自動配置。

使用 DHCPv6 服務(wù)器來分配 IPv6 地址,稱為有狀態(tài)地址自動配置。主機要么根據(jù)預(yù)先的配置查找 DHCPv6 服務(wù)器,要么收到字段 M 置位的路由器通告報文來獲取 DHCPv6 服務(wù)器。

更有趣的是無狀態(tài)地址自動配置( Stateless Address Autoconfiguration ,SLAAC ),不依賴服務(wù)器、不需要手動配置。這個過程非常簡單,當(dāng)一臺 IPv6 設(shè)備接入網(wǎng)絡(luò)時,會發(fā)送 RS 來查詢網(wǎng)絡(luò)中是否存在路由器。RA 有一個字段可以告訴 IPv6 設(shè)備使用哪種方式配置自己的 IPv6 地址,這個字段稱為 M 位。如果 M 位置位,值為 1 時,表示設(shè)備通過 DHCPv6 協(xié)議動態(tài)配置 IPv6 地址;如果 M 位不置位,值為 0 時,則表示設(shè)備通過 SLAAC 來配置 IPv6 地址。

IPv6 設(shè)備從收到的 RA 中獲取一個或多個鏈路前綴,再加上之前確定的接口 ID ,就得到了一個全球唯一的 IPv6 地址。

IPv6 設(shè)備執(zhí)行 SLAAC 的過程,不需要人工干預(yù),也沒有 DHCP 服務(wù)器參與,設(shè)備自行完成配置。也就是說,這種機制為 IPv6 網(wǎng)絡(luò)提供了即插即用功能。

4、鄰居地址解析

IPv4 通過 ARP 獲取 MAC 地址,然而 ARP 協(xié)議無法照搬到 IPv6 環(huán)境中,IPv6 沒有定義廣播地址。為了解決查詢目的設(shè)備的 MAC 地址問題, IPv6 通過 NDP 獲取 MAC 地址。IPv6 設(shè)備使用 NS 和 NA 來實現(xiàn) MAC 地址的查詢和響應(yīng)。IPv6 使用目的節(jié)點組播地址作為 NS 的目的地址。

目的節(jié)點的組播地址的前 104 位固定是 FF02::1:FF ,后 24 位使用目的單播 IPv6 地址接口 ID 的后 24 位。當(dāng)接口獲取一個單播或任意播 IPv6 地址時,就會同時監(jiān)聽發(fā)送給這個單播地址對于的目的節(jié)點組播地址。

如果目的節(jié)點是鏈路之外的節(jié)點,那么可以通過路由器通告報文,獲取默認路由器的 MAC 地址。如果目的節(jié)點在鏈路內(nèi),那么節(jié)點會先查找鄰居緩存看一下是否已經(jīng)學(xué)到這個地址。IPv6 的鄰居緩存IPv4 的 ARP 緩存相似,記錄 IP 地址和 MAC 地址的對應(yīng)關(guān)系。

如果地址不在鄰居緩存中,節(jié)點會發(fā)送一個 NS 。目的節(jié)點收到報文后,就知道源節(jié)點的 MAC 地址,并回復(fù)鄰居通告報文。

如果目的節(jié)點存在并且收到了 NS ,那么它會回復(fù)一個 NA 。這個 NA 的目的地址就是源節(jié)點的源地址。收到響應(yīng)的 NA 后,源節(jié)點就把目的節(jié)點的 MAC 地址添加到鄰居緩存的條目中。

NDP 的 NA 還有另一種用法,當(dāng) IPv6 節(jié)點的 MAC 地址發(fā)生變化時,也可以在未收到 NS 的情況下,直接向本地鏈路發(fā)生一條 NA ,向本地鏈路上其它設(shè)備通告新的 IPv6 地址和 MAC 地址的對應(yīng)關(guān)系。因為目的是通告給鏈路中所有設(shè)備,而不是某一臺設(shè)備,所有 NA 的目的地址就是鏈路本地所有節(jié)點組播地址( FF02::1 )。

5、地址沖突檢測

雖然通過 MAC 地址轉(zhuǎn)換成接口 ID ,大多數(shù)情況下可以保證是設(shè)備地址是唯一的,但是也可能存在重復(fù) MAC 地址的情況,因此不管設(shè)備是如何獲取地址的,都需要在使用之前進行地址沖突檢測。

獲取一個地址的節(jié)點會把新地址作為臨時狀態(tài)的地址。在地址沖突檢測完成前,地址不能被使用。節(jié)點會發(fā)送目的地址是新地址的 NS 來驗證。NS 的源地址是未指定地址,目的地址是目的節(jié)點的組播地址。

如果節(jié)點收到一個 NS ,并且目的地址是這個節(jié)點已經(jīng)使用的地址,就會發(fā)送一個目的地址為已使用地址的 NA 。源節(jié)點收到 NA 后,就會知道這個地址是沖突的,并且不能使用。

6、私有地址

無狀態(tài)地址自動配置會有一個安全隱患:即使一臺設(shè)備從一個子網(wǎng)轉(zhuǎn)移到另一個子網(wǎng),它的接口 ID 始終保持不變。那么就可以通過接口 ID 來識別用戶,推斷出用戶的所在位置,追蹤用戶的活動和位置記錄,暴露個人隱私信息。

這個問題可以通過 IPv6 私有地址來解決。私有地址是隨機生成的接口 ID 。接口 ID 通常一天變化一次,也會在獲取一個新的 IPv6 地址時改變。

但是服務(wù)器的地址不需要經(jīng)常變化。跟服務(wù)器通信的節(jié)點,以及 DNS 服務(wù)器必須通過靜態(tài)地址了解服務(wù)器的位置。因此,標(biāo)準(zhǔn)的無狀態(tài)配置的 IPv6 地址保留“公共”地址,任何一個向服務(wù)器發(fā)送數(shù)據(jù)時,使用這個地址作為目的地址。但是服務(wù)器發(fā)送數(shù)據(jù)時,使用的卻是私有地址。這就像公司的分機短號一樣,你能看見是誰在打你電話,但是別人看不到你的號碼。

end


微信公眾號后臺回復(fù)關(guān)鍵字“加群”,添加小編微信,拉你入技術(shù)群。
本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉