您當(dāng)前位置:保定理工學(xué)院 >> 信息技術(shù)中心 >> 網(wǎng)絡(luò)安全 >> 瀏覽文章 |
校園IPv6地址規(guī)劃和管理實(shí)踐 【網(wǎng)絡(luò)安全】 加入時(shí)間:2023年05月08日 信息來(lái)源:本站原創(chuàng) 作者:admin 訪問(wèn)量: |
目前,可用的IPv4地址資源已基本消耗殆盡,為滿足物聯(lián)網(wǎng)時(shí)代“一物一地址,萬(wàn)物皆在線”的海量智能終端聯(lián)網(wǎng)需求,IPv6規(guī)模部署與發(fā)展越來(lái)越受到關(guān)注。在校園部署IPv6和IPv4的雙棧網(wǎng)絡(luò)已經(jīng)非常普遍,隨著應(yīng)用系統(tǒng)和網(wǎng)絡(luò)設(shè)備對(duì)IPv6支持度的不斷提升,純IPv6的校園網(wǎng)絡(luò)也離我們?cè)絹?lái)越近。
IPv6的優(yōu)勢(shì)在于大幅擴(kuò)展了地址的可用空間,提供了2128個(gè)地址。不僅如此,IPv6沒(méi)有廣播地址,網(wǎng)絡(luò)管理者不用再考慮類似IPv4地址解析協(xié)議(Address Resolution Protocol,ARP)的廣播風(fēng)暴問(wèn)題。此外,IPv6支持多種地址分配方式。不同終端和系統(tǒng)對(duì)無(wú)狀態(tài)地址分配(Stateless Address Autoconfiguration,SLAAC)和IPv6動(dòng)態(tài)主機(jī)配置協(xié)議(Dynamic Host Configuration Protocol for IPv6,DHCPv6)這兩種IPv6地址分配方式的支持度不一樣,因此IPv6的部署方式多種并存。
除了顯著增加地址空間外,IPv6另一個(gè)最顯著的特征就是它的即插即用性。RFC4861更新的鄰居發(fā)現(xiàn)協(xié)議(Neighbor Discovery Protocol,NDP)是IPv6協(xié)議體系中一個(gè)重要的基礎(chǔ)協(xié)議,定義了使用ICMPv6(互聯(lián)網(wǎng)控制報(bào)文協(xié)議第六版)報(bào)文實(shí)現(xiàn)地址解析、跟蹤?quán)従訝顟B(tài)、重復(fù)地址檢測(cè)、路由器發(fā)現(xiàn)以及重定向等功能,實(shí)現(xiàn)了即插即用的特性。
本文介紹了幾種適用校園IPv6全球單播地址的規(guī)劃和分配方式,并對(duì)傳統(tǒng)的DHCPv6分配方式進(jìn)行優(yōu)化,在此基礎(chǔ)上,進(jìn)行有效的統(tǒng)計(jì)和管理。科學(xué)規(guī)劃網(wǎng)絡(luò)中的IPv6地址,能減少網(wǎng)絡(luò)配置和維護(hù)過(guò)程中的人為失誤,使得安全策略制定更為容易,降低了故障排除時(shí)的工作難度,并為未來(lái)擴(kuò)容預(yù)留空間,提高網(wǎng)絡(luò)可擴(kuò)展性。
IPv6尋址模式介紹
IPv6尋址模式分為三種,即單播地址、組播地址和任播地址。
單播地址(Unicast):表示單一接口的地址。
組播地址(Multicast):表示一組接口的地址,發(fā)往多播地址的封包將會(huì)被配置該地址的所有接口接收。
任播地址(Anycast):允許相同功能的多個(gè)服務(wù)器使用同一個(gè)單播地址,路由器在收到指向這一地址的數(shù)據(jù)包時(shí),會(huì)把數(shù)據(jù)包發(fā)送到使用此地址的路由距離最近的服務(wù)器。
IPv6常用的單播地址包括:全球單播地址、鏈路本地地址、站點(diǎn)本地地址、特殊地址、過(guò)渡地址、環(huán)回地址。因?yàn)槿騿尾サ刂繁挥脕?lái)在IPv6網(wǎng)絡(luò)上進(jìn)行全局路由和訪問(wèn),本文只介紹全球單播地址的規(guī)劃和部署。
IPv6中的全球單播地址是全局可識(shí)別和唯一可尋址的。RFC3587定義的IPv6全球單播地址由3部分組成:
全球路由前綴、子網(wǎng)ID和接口標(biāo)識(shí)符,如圖1所示。全球路由前綴用來(lái)識(shí)別分配給一個(gè)站點(diǎn)的地址范圍。子網(wǎng)ID也稱為子網(wǎng)號(hào),一個(gè)子網(wǎng)ID與一個(gè)鏈接相關(guān)聯(lián),以識(shí)別站點(diǎn)中某個(gè)鏈接。接口標(biāo)識(shí)符用來(lái)識(shí)別鏈接上的某個(gè)接口,在該鏈接上是唯一的。互聯(lián)網(wǎng)服務(wù)提供商(ISP)分配給組織機(jī)構(gòu)的全球路由前綴通常為48位,對(duì)于SLAAC來(lái)說(shuō),48位的全球路由前綴和16位的子網(wǎng)ID合稱為子網(wǎng)前綴。
圖1 RFC3587定義的IPv6全球單播地址結(jié)構(gòu)
IPv6子網(wǎng)劃分
IPv6網(wǎng)絡(luò)對(duì)外訪問(wèn)采用全球單播地址。如前文所述,IPv6有128位超大地址空間,由64位子網(wǎng)前綴和64位接口標(biāo)識(shí)符組成。64位的子網(wǎng)前綴預(yù)留了足夠大的編址空間,能滿足各個(gè)機(jī)構(gòu)與ISP之間的編址需求。因?yàn)镾LAAC自動(dòng)生成的掩碼長(zhǎng)度最長(zhǎng)是64位,RFC7421建議IPv6子網(wǎng)掩碼最長(zhǎng)不超過(guò)64位。
運(yùn)營(yíng)商向大企業(yè)分配的常見(jiàn)前綴長(zhǎng)度是48位,子網(wǎng)ID為16位,組織或機(jī)構(gòu)可以用16子網(wǎng)位來(lái)創(chuàng)建出最多65536個(gè)掩碼為64的子網(wǎng)??茖W(xué)的子網(wǎng)劃分,能增強(qiáng)網(wǎng)絡(luò)的管理能力,正確反映網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。
決定子網(wǎng)劃分的位數(shù)
用于子網(wǎng)劃分的位數(shù)決定了子網(wǎng)劃分后新子網(wǎng)的可用地址前綴數(shù)量。設(shè)計(jì)者可以根據(jù)地理區(qū)域或部門分類來(lái)為網(wǎng)絡(luò)的不同部分分配新的地址前綴。分層結(jié)構(gòu)的各個(gè)不同層次選擇的位數(shù)越多,則在該機(jī)構(gòu)最后一層中可以用于各個(gè)子網(wǎng)的可用位數(shù)就越少。在任何一個(gè)給定的層次中,假設(shè)一部分比特位(f)已經(jīng)分配給了上一層,一部分比特位(s)用于在當(dāng)前層次中進(jìn)行子網(wǎng)劃分,還有一部分比特位(r)則留給下一個(gè)層次。那么,在任何時(shí)候,f+s+r=16都成立。
二進(jìn)制比特位子網(wǎng)劃分
首先使用子網(wǎng)ID的二進(jìn)制表示,再將劃分后的地址前綴轉(zhuǎn)換為十六進(jìn)制,計(jì)算出劃分后的新地址前綴。
比如,用3比特位來(lái)規(guī)劃地理位置的區(qū)域(f=3),用7比特位來(lái)規(guī)劃行政部門(s=7),這意味著某個(gè)地理位置的某個(gè)部門還剩下6個(gè)比特的子網(wǎng)位(r=6),即每個(gè)部門最多只能有64(=26)個(gè)子網(wǎng),如圖2所示。
圖2 依據(jù)比特位的IPv6子網(wǎng)ID劃分
下面以2001:da8:1234::/48的大學(xué)校園網(wǎng)為例進(jìn)行16位的子網(wǎng)劃分,如圖3所示。
圖3 校園子網(wǎng)比特位法劃分
第49-51比特,可能的取值是000-111,共8個(gè)數(shù),可以分給8個(gè)功能模塊或者地理區(qū)域;第52-58比特,可能的取值是0000000-1111111,共128個(gè)可能的組合,可以分給128個(gè)行政單位或者安全組;第59~64比特,可以分給行政單位64個(gè)不同樓棟、樓層或者小功能模塊。這種分配方式組網(wǎng)靈活,但是犧牲了可讀性。
十六進(jìn)制邊界子網(wǎng)分配
為便于分配和讀寫,建議按照16進(jìn)制邊界或者比特位邊界來(lái)制定子網(wǎng)劃分方案。如果可以在十六進(jìn)制邊界位劃分,則子網(wǎng)劃分會(huì)變得很簡(jiǎn)單。因此一個(gè)/48可以劃分為16個(gè)/52,256個(gè)/56,4096個(gè)/60,65536個(gè)/64大小的子網(wǎng)。即滿足f+s+r=16同時(shí)滿足4|f,s,r。
再以2001:da8:1234::48的大學(xué)校園網(wǎng)為例進(jìn)行16位的子網(wǎng)劃分,如表1所示。
表1 十六進(jìn)制邊界分配IPv6子網(wǎng)
在核心交換機(jī)上,辦公樓可以進(jìn)一步聚合為2001:da8:1234:1000::/50,數(shù)據(jù)中心可以進(jìn)一步聚合為2001:da8:1234:c000::/50。IPv6子網(wǎng)前綴可以手動(dòng)設(shè)置,也可以通過(guò)RFC3633標(biāo)準(zhǔn)化的DHCPv6前綴代理DHCPv6PD(Prefix Delegation)獲取。
IPv6接口標(biāo)識(shí)符分配 IPv6接口標(biāo)識(shí)符的產(chǎn)生
IPv6單播地址的后64位用作接口標(biāo)識(shí)符,這個(gè)接口標(biāo)識(shí)符在單播IPv6地址的64位子網(wǎng)前綴中是唯一的。
接口標(biāo)識(shí)符生成方法有如下幾種:
靜態(tài)配置:手動(dòng)分配地址,通過(guò)接口界面、命令行進(jìn)行配置。SLAAC:無(wú)狀態(tài)自動(dòng)配置,根據(jù)路由通告報(bào)文(RouterAdvertisement,RA)包含的前綴信息自動(dòng)配置IPv6地址,組成方式是“子網(wǎng)前綴+接口標(biāo)識(shí)符”,接口標(biāo)識(shí)符可以是RFC2464定義的EUI-64恒定接口標(biāo)識(shí)符、RFC4941定義的隨機(jī)產(chǎn)生接口標(biāo)識(shí)符,或RFC7217定義的穩(wěn)定語(yǔ)義不透明接口標(biāo)識(shí)符。
DHCPv6:通過(guò)DHCPv6服務(wù)器進(jìn)行配置。其中DHCPv6又分為2種:RFC3315定義的有狀態(tài)DHCPv6(Stateful DHCPv6),IPv6地址、其他參數(shù)(如DNS)均通過(guò)DHCPv6獲?。籖FC3736定義的無(wú)狀態(tài)DHCPv6(Stateless DHCPv6),IPv6地址依然通過(guò)路由通告RA方式生成,其他參數(shù)(如DNS)則通過(guò)DHCPv6獲取。
除了全球單播地址外,DHCPv6和SLAAC都支持RFC4941定義的IPv6臨時(shí)地址。RFC4941給出了無(wú)狀態(tài)地址分配的隱私擴(kuò)展。公共IPv6地址相對(duì)穩(wěn)定不會(huì)變動(dòng),臨時(shí)IPv6地址會(huì)周期性更換。
在源地址選擇機(jī)制中,RFC6724建議終端訪問(wèn)公共服務(wù)器的主機(jī)接口優(yōu)先使用臨時(shí)地址。IPv6臨時(shí)地址的產(chǎn)生,有效保護(hù)了終端的隱私性。但臨時(shí)地址在方便用戶使用和保護(hù)用戶安全的同時(shí),增加了網(wǎng)絡(luò)中不活躍IP地址的數(shù)量,同時(shí)也增加了子網(wǎng)被掃描的風(fēng)險(xiǎn)。
IPv6接口標(biāo)識(shí)符分配方式對(duì)比
表2是上述三種接口標(biāo)識(shí)符分配方式的對(duì)比。
表2 接口標(biāo)識(shí)符分配方式對(duì)比
SLAAC設(shè)計(jì)之初不支持DNS下發(fā),RFC6106定義了遞歸DNS服務(wù)器(RDNSS)用來(lái)支持DNS。表3是IPv6自動(dòng)配置部署方法對(duì)比。
表3 IPv6自動(dòng)配置方法對(duì)比
現(xiàn)階段并非所有操作系統(tǒng)和網(wǎng)絡(luò)設(shè)備都支持RDNSS,因此園區(qū)部署IPv6,通常可以用無(wú)狀態(tài)DHCPv6結(jié)合SLAAC的方式部署,通過(guò)SLAAC獲取全球單播地址,RA獲取默認(rèn)路由和網(wǎng)關(guān)信息,DHCPv6獲取IPv6的DNS服務(wù)器信息;
另一種常見(jiàn)方式是關(guān)閉RA的IPv6地址前綴信息下發(fā),RA只發(fā)布默認(rèn)路由,僅通過(guò)DHCPv6獲取全球單播地址和DNS服務(wù)器信息。
在IPv4和IPv6雙棧部署時(shí),如果DNS支持AAAA記錄,則不需要專用的IPv6DNS服務(wù)器,結(jié)合IPv4的DNS和IPv6的SLAAC,也可以滿足用戶的IPv6上網(wǎng)需求??紤]到安卓等部分操作系統(tǒng)對(duì)DHCPv6不支持,無(wú)線網(wǎng)絡(luò)適合用SLAAC部署IPv6,有線網(wǎng)絡(luò)因?yàn)榻K端位置、使用時(shí)間相對(duì)固定,建議采用DHCPv6部署。
接口標(biāo)識(shí)符隱私安全
2017年2月,IETF正式發(fā)布RFC8064,用RFC7217取代EUI-64模式,RFC7217引入了一種新的穩(wěn)定語(yǔ)義不透明的地址生成方案。在RFC7943中,DHCPv6定義了類似的穩(wěn)定不透明的接口標(biāo)識(shí)符產(chǎn)生函數(shù)。表4列出這兩種接口標(biāo)識(shí)符機(jī)制產(chǎn)生的函數(shù)。這兩種方式產(chǎn)生的接口標(biāo)識(shí)符能夠有效地減少用戶所面臨的地址關(guān)聯(lián)分析和隱私挖掘風(fēng)險(xiǎn)。
表4 穩(wěn)定語(yǔ)義不透明的接口標(biāo)志符產(chǎn)生方式
1.采用SLAAC部署IPv6
終端開啟臨時(shí)地址,網(wǎng)絡(luò)中IPv6地址數(shù)量比終端實(shí)際數(shù)量多出幾倍。在有線網(wǎng)絡(luò)環(huán)境中,終端長(zhǎng)期在線,單個(gè)終端有1個(gè)固定全球單播地址,7個(gè)臨時(shí)地址,整個(gè)子網(wǎng)IPv6地址數(shù)量是終端數(shù)量的5~7倍。在無(wú)線網(wǎng)絡(luò)環(huán)境中,設(shè)備上下線頻繁,臨時(shí)地址數(shù)量比有線網(wǎng)絡(luò)少,IPv6地址數(shù)量是終端數(shù)量的2~3倍。子網(wǎng)中IPv6地址增多增加了網(wǎng)絡(luò)維護(hù)的難度。
2.采用DHCPv6配置地址
RFC3315定義當(dāng)IA_TA(臨時(shí)地址身份關(guān)聯(lián))選項(xiàng)置位1時(shí),DHCPv6服務(wù)器分配臨時(shí)地址?,F(xiàn)階段終端支持DHCPv6獲取臨時(shí)地址極少,因此網(wǎng)絡(luò)中不活躍的IP地址數(shù)量大大減少,降低了管理員的維護(hù)復(fù)雜度。但如果僅采用DHCPv6分配主機(jī)IPv6地址,部分終端不支持。雖然子網(wǎng)地址數(shù)量相比SLAAC方式少,但由于地址長(zhǎng)期保持不變,IPv6單個(gè)子網(wǎng)地址范圍大,續(xù)簽地址仍然保持和上次分配的地址一樣,導(dǎo)致地址被追蹤和掃描的風(fēng)險(xiǎn)變大。
要解決這個(gè)問(wèn)題,本文建議將64位子網(wǎng)再細(xì)分為“范圍選取段+非范圍選取段”,如圖4所示。
范圍選取段:從接口標(biāo)志符的64位中取n位,分為k段(1≤k≤n)。依據(jù)需要每隔一段時(shí)間隨機(jī)或者輪詢從k段中選一段。每次DHCPv6地址分配的范圍設(shè)為:(64位前綴+2i(n-k)+::,64位前綴+(2(i+1)(n-k)-1)+f?f)(0≤i≤k)。更換選取范圍時(shí),主機(jī)分配到的IPv6地址也隨機(jī)變化。這可以解決地址長(zhǎng)期不變的問(wèn)題。但是當(dāng)?shù)刂犯淖儠r(shí),如果主機(jī)有網(wǎng)絡(luò)會(huì)話連接保持,會(huì)話將中斷重連。
DHCPv6服務(wù)器盡量采用高版本的服務(wù)器,并采用隨機(jī)算法或者RFC7943提到的穩(wěn)定不透明的接口標(biāo)識(shí)符算法,避免地址呈現(xiàn)連續(xù)狀態(tài)。采用分段的DHCPv6可以避免DHCPv6分配地址段呈現(xiàn)平均分布或者低位分布。
圖4 DHCPv6算法分配的優(yōu)化
IPv6地址管理方法
IPv6地址分配方式靈活,臨時(shí)地址變化頻繁,單個(gè)終端支持多個(gè)地址,導(dǎo)致日志記錄變得更加難以分析,這對(duì)于管理者是一個(gè)挑戰(zhàn)。網(wǎng)絡(luò)運(yùn)維要求統(tǒng)計(jì)內(nèi)網(wǎng)所有IP地址以及任意IPv6地址可溯源。在IPv4時(shí)代,溯源是通過(guò)IP地址查找主機(jī)對(duì)應(yīng)的網(wǎng)絡(luò)標(biāo)識(shí),即MAC地址。MAC地址和IP地址對(duì)應(yīng)關(guān)系可以通過(guò)查看ARP表或者DHCP的地址租用來(lái)獲取。在IPv6網(wǎng)絡(luò)中,仍然通過(guò)獲取IP地址和MAC地址的對(duì)應(yīng)關(guān)系來(lái)溯源主機(jī)。以下列出三種常用的運(yùn)維管理方法管理IPv6地址。
掃描IPv6地址
使用開源IP地址掃描工具Network Mapper(Nmap),或者使用IP Address Management(IPAM)地址管理工具進(jìn)行子網(wǎng)IPv6地址掃描。使用Nmap掃描IPv6子網(wǎng)耗時(shí)較長(zhǎng),而使用IPAM管理工具可以設(shè)置IP地址自動(dòng)掃描計(jì)劃,通過(guò)集成的DHCP和DNS、AD域(Active Directory Domain,活動(dòng)目錄域)配置管理功能,有效分配IP、管理IP,并通過(guò)反向解析(PTR)、AD域賬戶登錄記錄,溯源賬號(hào)信息。
日志分析
在DHCPv4中使用MAC地址來(lái)標(biāo)識(shí)用戶;在DHCPv6中,則采取“DUID+IAID”的模式。其中,DHCP唯一標(biāo)識(shí)符(DHCPv6 Unique Identifier,DUID)用來(lái)標(biāo)識(shí)系統(tǒng),DHCP身份關(guān)聯(lián)標(biāo)識(shí)符(Identity Association Identifier,IAID)用來(lái)標(biāo)識(shí)接口。標(biāo)識(shí)位和MAC地址是解耦的,因此不能通過(guò)DHCPv6獲取MAC地址和IPv6地址的關(guān)系。
DNS記錄了IPv6地址和域名的對(duì)應(yīng)關(guān)系,AD域記錄了域賬號(hào)和主機(jī)的對(duì)應(yīng)關(guān)系,主機(jī)加域之后,可以通過(guò)PTR查找到IPv6地址。防火墻會(huì)話日志記錄IP跨區(qū)域的訪問(wèn)記錄。Radius日志可以利用標(biāo)準(zhǔn)屬性Framed-Interface-Id和Framed-IPv6-Prefix上報(bào)用戶地址信息。鏡像抓包工具可以分析網(wǎng)絡(luò)設(shè)備每個(gè)鏡像接口的實(shí)時(shí)流量、歷史會(huì)話記錄、子網(wǎng)對(duì)應(yīng)MAC地址等。
NDP分析
NDP分析推薦兩種方法:第一種方法是在網(wǎng)關(guān)交換機(jī)或者路由器上定時(shí)獲取鄰居表的信息。此方法通過(guò)Python程序或腳本SSH(安全外殼協(xié)議)登錄交換機(jī)或路由器,并通過(guò)查詢鄰居表獲取MAC地址和IPv6地址的信息。
第二種方法是在網(wǎng)關(guān)處監(jiān)聽子網(wǎng)的重復(fù)地址檢測(cè)(DAD)的鄰居請(qǐng)求報(bào)文(Neighbor Solicitation,NS),來(lái)分析MAC和IPv6地址的信息。但這種方法需要網(wǎng)關(guān)支持,或抓取網(wǎng)關(guān)每個(gè)接口的鏡像流量。因此第一種方法更容易實(shí)現(xiàn)。
表5列出IPv6地址管理方法對(duì)比,網(wǎng)絡(luò)管理者可以根據(jù)現(xiàn)網(wǎng)終端類型和IPv6部署特征,并結(jié)合防火墻、Radius服務(wù)器、AD域、日志分析平臺(tái)網(wǎng)絡(luò)安全、經(jīng)濟(jì)成本等多種因素選擇合適的管理方法。
表5 IPv6地址管理方法對(duì)比
總結(jié)來(lái)看,IPv6有巨大的地址空間,大學(xué)根據(jù)園區(qū)地理劃分、終端類型進(jìn)行合理的IPv6地址規(guī)劃,制定合理的IPv6地址分配策略,可以簡(jiǎn)化IPv6路由表,提高IPv6地址的易讀性,簡(jiǎn)化網(wǎng)絡(luò)的規(guī)劃、管理、配置、變更和擴(kuò)展的工作量,同時(shí)提高校園網(wǎng)的安全性,減少IPv6地址被追蹤、掃描、暴露隱私的風(fēng)險(xiǎn)。IPv6地址的多樣性、終端對(duì)地址分配方式的支持程度決定了管理者不能只用一種方法來(lái)有效管理IPv6地址。綜合利用日志分析、IP掃描、NDP分析來(lái)管理是最全面和有效的管理方式。
作者:謝霞、曾祥容、成就、陳衍祚【香港中文大學(xué)(深圳)設(shè)備與資產(chǎn)管理處】 責(zé)編:項(xiàng)陽(yáng) |