IPV6核心技術(乾貨)

ipv6地址結構:
IPV6核心技術(乾貨)
所以前綴最小長度爲48,子網ID最大爲64算法


ipv6 ipv4地址對比
IPV6核心技術(乾貨)api


IPV6接口ID生成算法
IPV6核心技術(乾貨)服務器


IPV6地址配置
IPV6核心技術(乾貨)網絡


Linux內核雙棧架構
IPV6核心技術(乾貨)架構

Linux內核中,IPv6協議棧與IPv4協議棧並行關係。IPv6和IPv4徹底是兩套不同的代碼實現。IPv6完整的協議棧邏輯模塊包括:
一、網絡層IPv6,核心邏輯:IPv6路由子系統
二、傳輸層TCP/UDP實現:TCPv六、UDPv6
三、控制報文協議ICMPv6,這裏值得一提的是ICMPv6在IPv6協議中的地位十分重要。
ICMPv6不只提供了與ICMPv4相同的服務診斷功能,例如報告數據包的錯誤和提供簡單的echo服務,ICMPv6是IPv6中鄰居發現協議的重要組成部分,用於管理鏈路上的點到點的通訊。
四、鄰居子系統的實現:鄰居發現協議NDP(對應於IPv4裏面的ARP協議)
五、其餘高級實現(IPv6 NAT、IPv6隧道、iPv6 IPSec等)
因爲咱們平時的開發工做在應用層,以上1-4是將會接觸得最多。ide


IPV6地址獲取:
無狀態地址獲取:
佈局

IPV6核心技術(乾貨)

IPV6核心技術(乾貨)

無狀態自動配置過程:
解釋一:
IPV6核心技術(乾貨)學習

解釋二:
一、由鏈路上的主機向鏈路發起「路由請求」報文,這個報文是以組播協議發送,尋找鏈路上最合適的路由器。
二、路由器收到請求會返回「路由通告」報文,報文裏面帶着本鏈路的地址前綴信息主機將接收到的前綴和自身的接口ID,組成完整的新地址。
三、主機嘗試使用新地址發起地址重複檢測,檢測鏈路上是否有其餘主機也是這個地址,若是有,就中止使用該地址;若是沒有,就啓用這個新地址。
能夠看到無狀態自動配置過程十分簡易(對比DHCPv4和DHCPv6來講),實際上,無狀態自動配置能夠單獨組網使用,也能夠配合有狀態自動配置通常會配合使用,增強網絡節點管理。涉及自動配置和地址檢測等更多細節,能夠查閱RFC197一、RFC4861。
參考資料:
https://zhuanlan.zhihu.com/p/355095603d


IpV6中的M位和O位:
M位,O位是RA報文裏攜帶的,值爲1表明有狀態,值爲0表明無狀態
RA報文中的有狀態自動配置地址的標誌位(M標誌位)全稱:managed-address-flag。
RA報文中的有狀態自動配置其餘信息的標誌位(O標誌位)。全稱: other-flag
M=0,O=0,表示直接從RA拿地址;
發佈RA消息的M和O標誌位,DHCPv6客戶端經過RA消息學習到IPv6網關的路由
好比DHCPV6中繼就會做爲網關設備,向客戶端發送RA報文,RA報文中攜帶的M位和O位來指定該網絡中的客戶端使用DHCPV6的方式獲取地址和其餘網絡配置參數代理


IPV6鄰居發現協議(ND):
IPv6鄰居發現協議主要提供了五個功能:地址解析、鄰居可達性檢測、重複地址檢測、路由器發現/前綴發現及地址自動配置、重定向功能。
交換機都會有一個ND表項,相似於ARP表項,是經過發送NS報文來維護這個表項的
鄰居發現協議包含,NS,NA,RS,RA,重定向
1)RS type=133 路由請求,請求得到設備的網關和其他的參數------------可以說明請求網關就行
2)RS type=134 路由應答,用於配置設備的網關和地址以及其它參數
3)Type=135(NS) TYPe=NA(136) 用於鄰居請求和鄰居應答,主要是作鏈路層地址解析,至關是ARP請求和應答
4)Type=137 重定向報文 發現有更優先的轉發路徑作報文的重定向

RA報文:
RA報文會攜帶前綴,DNS,MTU等信息,一個RA報文容許攜帶10個前綴信息,


IPv6地址的分配方法有如下幾種:
手動配置。手動配置IPv6地址/前綴及其餘網絡配置參數(DNS、NIS、SNTP服務器地址等參數)。
無狀態自動地址分配。由接口ID生成鏈路本地地址,再根據路由通告報文RA(Router Advertisement)包含的前綴信息自動配置本機地址。
有狀態自動地址分配,即DHCPv6方式。DHCPv6又分爲以下兩種:
DHCPv6有狀態自動分配。DHCPv6服務器自動分配IPv6地址/PD前綴及其餘網絡配置參數(DNS、NIS、SNTP服務器地址等參數)。
DHCPv6無狀態自動分配。主機IPv6地址仍然經過路由通告方式自動生成,DHCPv6服務器只分配除IPv6地址之外的配置參數,包括DNS、NIS、SNTP服務器等參數。


自動配置之無狀態自動配置(SLAAC)
IPv6無狀態地址配置方式(參看協議RFC2462)是目前普遍採用的IPv6地址自動配置方式。配置了該協議的主機只需相鄰設備開啓IPv6路由通告功能,便可以根據通告報文包含的前綴信息自動配置本機地址。
無狀態地址配置方案中設備並不記錄所鏈接的IPv6主機的具體地址信息,可管理性差。並且當前無狀態地址配置方式不能使IPv6主機獲取DNS服務器的IPv6地址等配置信息,在可用性上有必定缺陷。對於互聯網服務提供商來講,也沒有相關的規範指明如何向設備自動分配IPv6前綴,因此在部署IPv6網絡時,只能採用手動配置的方法爲設備配置IPv6地址。


自動配置之DHCPV6自動配置(有狀態自動配置)
與其餘IPv6地址分配方式(手工配置、經過路由器通告消息中的網絡前綴無狀態自動配置等)相比,DHCPv6具備如下優勢:
更好地控制IPv6地址的分配。DHCPv6方式不只能夠記錄爲IPv6主機分配的地址,還能夠爲特定的IPv6主機分配特定的地址,以便於網絡管理。
DHCPv6支持爲網絡設備分配IPv6前綴,便於全網絡的自動配置和網絡層次性管理。
除了爲IPv6主機分配IPv6地址/前綴外,還能夠分配DNS服務器IPv6地址等網絡配置參數。
DHCPv6服務器爲客戶端分配地址/前綴的過程分爲兩類:
DHCPv6四步交互分配過程(應用於網絡中多個服務器)
DHCPv6兩步交互快速分配過程(應用於網絡中單個服務器)
管理員能夠根據實際的網絡環境來配置使用哪一種方式
DHCPv6四步交互地址分配過程以下:
DHCPv6客戶端發送Solicit報文,請求DHCPv6服務器爲其分配IPv6地址和網絡配置參數。
若是Solicit報文中沒有攜帶Rapid Commit選項,或Solicit報文中攜帶Rapid Commit選項,但服務器不支持快速分配過程,則DHCPv6服務器回覆Advertise報文,通知客戶端能夠爲其分配的地址和網絡配置參數。
若是DHCPv6客戶端接收到多個服務器回覆的Advertise報文,則根據Advertise報文中的服務器優先級等參數,選擇優先級最高的一臺服務器,並向全部的服務器發送Request組播報文,該報文中攜帶已選擇的DHCPv6服務器的DUID。
DHCPv6服務器回覆Reply報文,確認將地址和網絡配置參數分配給客戶端使用。

IPV6核心技術(乾貨)
DHCPv6兩步交互地址分配過程以下:
DHCPv6客戶端在發送的Solicit報文中攜帶Rapid Commit選項,標識客戶端但願服務器可以快速爲其分配地址和網絡配置參數。
DHCPv6服務器接收到Solicit報文後,將進行以下處理:
若是DHCPv6服務器支持快速分配地址,則直接返回Reply報文,爲客戶端分配IPv6地址和其餘網絡配置參數,Replay報文中也攜帶Rapid Commit選項。
若是DHCPv6服務器不支持快速分配過程,則採用四步交互方式爲客戶端分配IPv6地址/前綴和其餘網絡配置參數。
IPV6核心技術(乾貨)


自動配置之DHCPV6自動配置(無狀態自動配置)
IPv6節點能夠經過DHCPv6無狀態方式獲取配置參數(包括DNS、SIP、SNTP等服務器配置信息,不包括IPv6地址)

DHCPv6無狀態工做過程以下:
DHCPv6客戶端以組播方式向DHCPv6服務器發送Information-Request報文,該報文中攜帶Option Request選項,指定DHCPv6客戶端須要從DHCPv6服務器獲取的配置參數。
DHCPv6服務器收到Information-Request報文後,爲DHCPv6客戶端分配網絡配置參數,並單播發送Reply報文,將網絡配置參數返回給DHCPv6客戶端。DHCPv6客戶端根據收到Reply報文提供的參數完成DHCPv6客戶端無狀態配置。

IPV6核心技術(乾貨)


ipv6沒有廣播報文,因此使用組播,使用到的兩個組播地址:

FF02::1:2(All DHCP Relay Agents and Servers):全部DHCPv6服務器和中繼代理的組播地址,這個地址是鏈路範圍的,用於客戶端和相鄰的服務器及中繼代理之間通訊。全部DHCPv6服務器和中繼代理都是該組的成員。
FF05::1:3(All DHCP Servers):全部DHCPv6服務器組播地址,這個地址是站點範圍的,用於中繼代理和服務器之間的通訊,站點內的全部DHCPv6服務器都是此組的成員。


DHCP惟一標識符(DUID)
DHCP設備惟一標識符DUID(DHCPv6 Unique Identifier),每一個服務器或客戶端有且只有一個惟一標識符,服務器使用DUID來識別不一樣的客戶端,客戶端則使用DUID來識別服務器。
客戶端和服務器DUID的內容分別經過DHCPv6報文中的Client Identifier和Server Identifier選項來攜帶。兩種選項的格式同樣,經過option-code字段的取值來區分是Client Identifier仍是Server Identifier選項


身份聯盟(IA)
身份聯盟IA(Identity Association)是使得服務器和客戶端可以識別、分組和管理一系列相關IPv6地址的結構。每一個IA包括一個IAID和相關聯的配置信息。
客戶端必須爲它的每個要經過服務器獲取IPv6地址的接口關聯至少一個IA。客戶端用給接口關聯的IA來從服務器獲取配置信息。每一個IA必須明確關聯到一個接口。
IA的身份由IAID惟一肯定,同一個客戶端的IAID不能出現重複。IAID不該由於設備的重啓等因素髮生丟失或改變。
IA中的配置信息由一個或多個IPv6地址以及T1和T2生存期組成。IA中的每一個地址都有首選生存期和有效生存期。
一個接口至少關聯一個IA,一個IA能夠包含一個或多個地址信息。


DHCPv6報文類型
IPV6核心技術(乾貨)
IPV6核心技術(乾貨)
IPV6核心技術(乾貨)


DHCPv6 PD前綴工做機制
DHCPv6前綴代理DHCPv6 PD(Prefix Delegation)是一種前綴分配機制,
經過DHCPv6前綴代理機制,下游網絡設備不須要再手工指定用戶側鏈路的IPv6地址前綴,它只須要向上遊網絡設備提出前綴分配申請,上游網絡設備即可以分配合適的地址前綴給下游設備,下游設備把得到的前綴(通常前綴長度小於64)進一步自動細分紅64前綴長度的子網網段,把細分的地址前綴再經過路由通告(RA)至與IPv6主機直連的用戶鏈路上,實現IPv6主機的地址自動配置,完成整個系統層次的地址佈局。


DHCPv6 PD前綴工做原理
DHCP前綴表明簡稱DHCPv6-PD,是對DHCPv6的擴展。
DHCPv6爲客戶端分配地址、DNS等信息。DHCPv6-PD能夠爲DHCP客戶端分配一個網絡號,而後這個DHCPv6客戶端能夠把這個網絡號再分紅若干個網段分配給它的接口,以及鏈接在這些接口中的主機或者其餘節點。
好比,將企業客戶的出口路由器配置成DHCPv6-PD客戶端,將ISP的路由器配置成DHCPv6-PD的服務器。客戶的出口路由器將從ISP路由器得到一個網段地址,而後再進一步劃分紅幾個網段後,分配給內部主機使用。
又好比,咱們公司的ONU,配置了IPV6 wan以後就會獲取一個前綴,而後再配置一下lan測地址來源是是wan 測代理,這樣就能夠爲onu下接的設備分配ip地址了,這個時候通常須要在dhcpv6 server上配置兩個地址池,一個是給wan測分配,一個是lan測分配


DHCPv6 PD四步交互地址分配過程以下:
DHCPv6 PD客戶端發送Solicit報文,請求DHCPv6 PD服務器爲其分配IPv6地址前綴。
若是Solicit報文中沒有攜帶Rapid Commit選項,或Solicit報文中攜帶Rapid Commit選項,但服務器不支持快速分配過程,則DHCPv6服務器回覆Advertise報文,通知客戶端能夠爲其分配的IPv6地址前綴。
若是DHCPv6客戶端接收到多個服務器回覆的Advertise報文,則根據Advertise報文中的服務器優先級等參數,選擇優先級最高的一臺服務器,並向該服務器發送Request報文,請求服務器確認爲其分配地址前綴。
DHCPv6 PD服務器回覆Reply報文,確認將IPv6地址前綴分配給DHCPv6 PD客戶端使用。
DHCPv6 PD一樣也支持攜帶Rapid Commit選項的兩步交互方式,報文交互方式與DHCPV6交互方式同樣
DHCPV6 PD工做原理圖:
IPV6核心技術(乾貨)


配置兩個前綴長度的解釋:
ipv6 local pool dhcpv6-pool 2001:DB8:1200::/40 48 //定義一個前綴長度爲40的本地前綴表明地址池,而且定義分配給DHCPv6-PD Client的前綴長度是48位


DHCPV6中繼報文交互過程
DHCPv6客戶端向全部DHCPv6服務器和DHCPv6中繼發送目的地址爲FF02::1:2(組播地址)的請求報文。
根據DHCPv6中繼轉發報文有以下兩種狀況:
若是DHCPv6中繼和DHCPv6客戶端位於同一個鏈路上,即DHCPv6中繼爲DHCPv6客戶端的第一跳中繼,中繼轉發直接來自客戶端的報文,此時DHCPv6中繼實質上也是客戶端的IPv6網關設備。DHCPv6中繼收到客戶端的報文後,將其封裝在Relay-Forward報文的中繼消息選項(Relay Message Option)中,並將Relay-Forward報文發送給DHCPv6服務器或下一跳中繼。
若是DHCPv6中繼和DHCPv6客戶端不在同一個鏈路上,中繼收到的報文是來自其餘中繼的Relay-Forward報文。中繼構造一個新的Relay-Forward報文,並將Relay-Forward報文發送給DHCPv6服務器或下一跳中繼。
DHCPv6服務器從Relay-Forward報文中解析出DHCPv6客戶端的請求,爲DHCPv6客戶端選取IPv6地址和其餘配置參數,構造應答消息,將應答消息封裝在Relay-Reply報文的中繼消息選項中,並將Relay-Reply報文發送給DHCPv6中繼。
DHCPv6中繼從Relay-Reply報文中解析出DHCPv6服務器的應答,轉發給DHCPv6客戶端。若是DHCPv6客戶端接收到多個DHCPv6服務器的應答,則根據報文中的服務器優先級選擇一個DHCPv6服務器,後續從該DHCPv6服務器獲取IPv6地址和其餘網絡配置參數。


DHCPv6地址租約更新
DHCPv6服務器爲DHCPv6客戶端分配的地址是有租約的,租約由生命期(包括地址的首選生命期和有效生命期構成)和續租時間點(IA的T一、T2)構成。地址有效生命期結束後,DHCPv6客戶端不能再使用該地址。在有效生命期到達以前,若是DHCPv6客戶端但願繼續使用該地址,則須要更新地址租約。
DHCPv6客戶端爲了延長其與IA關聯的地址的有效生命期和首選生命期,在T1時刻,發送包含IA選項的Renew報文給服務器,其中IA選項中攜帶須要續租的IA地址選項。若是DHCPv6客戶端一直沒有收到T1時刻續租報文的迴應報文,那麼在T2時刻,DHCPv6客戶端經過Rebind報文向DHCPv6服務器繼續續租地址
IPV6核心技術(乾貨)
T1時刻地址租約更新過程以下:
DHCPv6客戶端在T1時刻(推薦值爲優先生命期的0.5倍)發送Renew報文進行地址租約更新請求。
DHCPv6服務器迴應Reply報文。
若是DHCPv6客戶端能夠繼續使用該地址,則DHCPv6服務器迴應續約成功的Reply報文,通知DHCPv6客戶端已經成功更新地址租約。
若是該地址不能夠再分配給該DHCPv6客戶端,則DHCPv6服務器迴應續約失敗的Reply報文,通知DHCPv6客戶端不能得到新的租約。
IPV6核心技術(乾貨)
T2時刻地址租約更新過程以下:
DHCPv6客戶端在T1時刻發送Renew請求更新租約,可是沒有收到DHCPv6服務器的迴應報文。
DHCPv6客戶端在T2時刻(推薦值爲優先生命期的0.8倍),向全部DHCPv6服務器組播發送Rebind報文請求更新租約。
DHCPv6服務器迴應Reply報文。
若是DHCPv6客戶端能夠繼續使用該地址,則DHCPv6服務器迴應續約成功的Reply報文,通知DHCPv6客戶端已經成功更新地址/前綴租約。
若是該地址不能夠再分配給該DHCPv6客戶端,則DHCPv6服務器迴應續約失敗的Reply報文,通知DHCPv6客戶端不能得到新的租約。
若是DHCPv6客戶端沒有收到DHCPv6服務器的應答報文,則到達有效生命期後,DHCPv6客戶端中止使用該地址。


IP地址預留
DHCPv6服務器支持預留IPv6地址,即保留部分IPv6地址不參與動態分配。好比預留的IPv6地址可做爲DNS服務器的IPv6地址。


PC獲取IPv6信息注意事項:針對缺省採用IPv6協議路由通告方式自動獲取IPv6地址的客戶端(例如PC),還須要在客戶端的網關上配置RA消息的標誌位,以實現客戶端經過DHCPv6方式獲取IPv6地址。像咱們電腦接ONU,使用DHCPV6 PD方式獲取前綴,而後再經過RA的方式將ipv6信息分配給PC

相關文章
相關標籤/搜索