部署推進(jìn),泰策淺析基于IPv6的DNS技術(shù)

IPv4是第一個被廣泛使用,構(gòu)成現(xiàn)今互聯(lián)網(wǎng)技術(shù)的基礎(chǔ)的協(xié)議,自1981年被定義以來,作為IP的代名詞,已在IP領(lǐng)域稱霸30多年。但隨著Internet的呈指數(shù)級的飛速發(fā)展,導(dǎo)致IPv4地址空間面臨枯竭的危機、路由表膨脹、服務(wù)質(zhì)量難以保證等一系列自身無法解決的問題,IPv6在1998年應(yīng)運而生。IPv6能夠提供充足的網(wǎng)絡(luò)地址和廣闊的創(chuàng)新空間,是全球公認(rèn)的下一代互聯(lián)網(wǎng)商業(yè)應(yīng)用解決方案,IPv6取代IPv4成為下一代互聯(lián)網(wǎng)的核心是互聯(lián)網(wǎng)演進(jìn)升級的必然趨勢。

我國是世界上較早開展IPv6實驗和應(yīng)用的國家,在技術(shù)研發(fā)、網(wǎng)絡(luò)建設(shè)、應(yīng)用創(chuàng)新等方面都取得了重要階段性成果,已具備大規(guī)模部署的基礎(chǔ)和條件。但由于基于IPv4的互聯(lián)網(wǎng)生態(tài)已經(jīng)發(fā)展成熟,想要完成改造,涉及環(huán)節(jié)眾多,大規(guī)模IPv6部署并非易事,需要耗費大量人力物力以及全產(chǎn)業(yè)參與者的支持和配合。

2018年11月兩辦印發(fā)的《推進(jìn)互聯(lián)網(wǎng)協(xié)議第六版(IPv6)規(guī)模部署行動計劃》使得IPv6真正開始落地執(zhí)行,計劃要用5到10年時間,形成下一代互聯(lián)網(wǎng)自主技術(shù)體系和產(chǎn)業(yè)生態(tài),建成全球最大規(guī)模的IPv6商業(yè)應(yīng)用網(wǎng)絡(luò),實現(xiàn)下一代互聯(lián)網(wǎng)在經(jīng)濟(jì)社會各領(lǐng)域深度融合應(yīng)用,成為全球下一代互聯(lián)網(wǎng)發(fā)展的重要主導(dǎo)力量。

《推進(jìn)互聯(lián)網(wǎng)協(xié)議第六版(IPv6)規(guī)模部署行動計劃》也明確指出對域名系統(tǒng)的而升級改造。加快互聯(lián)網(wǎng)域名系統(tǒng)(DNS)的全面改造,構(gòu)建域名注冊、解析、管理全鏈條IPv6支持能力,開展面向IPv6的新型根域名服務(wù)體系的創(chuàng)新與實驗。

域名系統(tǒng)(Domain Name System,簡稱:DNS)DNS作為IP地址和域名的轉(zhuǎn)換系統(tǒng),在互聯(lián)網(wǎng)中有著舉足輕重的地位,可以說是互聯(lián)網(wǎng)的基石。幾乎所有的互聯(lián)網(wǎng)應(yīng)用都需要DNS, DNS的重要性是不言而喻的。IPv6網(wǎng)絡(luò)中的DNS作為Internet基石的地位更加鞏固,128位的IPv6地址根本不適應(yīng)人們的使用,人們將更加依附DNS。

IPv6網(wǎng)絡(luò)中的DNS與IPv4的DNS在體系結(jié)構(gòu)上是一致的,都是采用樹型結(jié)構(gòu)的域名空間。雖然IPv4協(xié)議與IPv6協(xié)議是存在相當(dāng)大區(qū)別的兩套協(xié)議,但這并不意味著需要單獨兩套DNS體系,相反在DNS的體系和域名空間上兩者必須是一致的,IPv4和IPv6共同擁有統(tǒng)一的域名空間。在IPv4到IPv6的過渡階段,域名可以同時對應(yīng)于多個IPv4和IPv6的地址。DNS主要通過UDP來承載,DNS的原始規(guī)范在UDP數(shù)據(jù)包大小方面采取了非常保守的立場。只使用UDP傳遞了小響應(yīng),如果響應(yīng)大于512字節(jié),將被截斷并分片傳輸,此時DNS協(xié)議中的flags字段Truncated位被置位顯示響應(yīng)已被截斷,即當(dāng)DNS響應(yīng)數(shù)據(jù)大于512字節(jié)的時候,數(shù)據(jù)只返回512字節(jié),剩余的數(shù)據(jù)將被丟棄。此時,DNS客戶端通常會使用TCP重新發(fā)起原來的查詢請求,允許返回響應(yīng)超過512個字節(jié)。由于IPv6和DNSSEC的引入,DNS數(shù)據(jù)包大于512字節(jié)的可能性大大增加,采用TCP會增大DNS服務(wù)器的負(fù)荷,這是因為需要進(jìn)行TCP連接的確立和切斷等處理。假如位于域名上游的所有路由服務(wù)器均由于高負(fù)荷的TCP處理而導(dǎo)致性能下降,那么整個DNS就會停止工作。這一點是采用TCP無論如何也無法避免的。

為解決此問題,域名服務(wù)協(xié)議進(jìn)行了協(xié)議擴展,利用旨在通過UDP幫助DNS交換超過512字節(jié)的數(shù)據(jù)的EDNS0。使用EDNS0,在向DNS發(fā)出請求時,客戶端可以通過指定UDP緩沖區(qū)大小來表示其愿意通過UDP接收更大的數(shù)據(jù)包。使用這一功能,就可以通過一個UDP數(shù)據(jù)包來交換超過512字節(jié)的數(shù)據(jù)而無需借助TCP進(jìn)行傳輸,當(dāng)然在超時機制和重復(fù)查詢等機制開啟的情況下,仍收到截斷響應(yīng),則應(yīng)該切換到嘗試TCP。

當(dāng)然截斷搜索響應(yīng)也需要大量時間并且可能包含大量數(shù)據(jù)包,如果大型響應(yīng)數(shù)據(jù)包在DNS中不常見或者碎片丟包非常罕見,這種開銷也是可以接受的。但事實并非如此。由于IPv6和DNSSEC的引入,DNS大型響應(yīng)并不少見,且碎片丟包率也很高。

由于IPv6的數(shù)據(jù)只能在源端分片,目的端重組,不允許在中間路由器上進(jìn)行分片和重組。將這個比較耗時的分片與重組操作從中間路由器轉(zhuǎn)到端系統(tǒng),大大加快了網(wǎng)絡(luò)中的IP轉(zhuǎn)發(fā)速率。那么如果路由器收到IPv6數(shù)據(jù)包太大,超過它的MTU而不能轉(zhuǎn)發(fā)出去怎么辦?通常情況下,IPv6包發(fā)向一個目的地址的第一個包,如果在路由過程中被某個中間路由器卡住,該路由器會丟棄該數(shù)據(jù)包并向源主機返回一個“分組太大”的ICMPv6差錯報文,同時會附上它自己的MTU,源主機再調(diào)整包的大小,會使用較小長度的IP數(shù)據(jù)包重新發(fā)送數(shù)據(jù),然后后面的數(shù)據(jù)包就都不會超過這個大小,即第一個包可能會重發(fā)。再如果過了這個中間路由器,報文繼續(xù)往下走,又遇到一個路由器,MTU更小,同樣該路由器也會向源主機發(fā)個ICMPv6的報文,告訴源主機,包大了,源主機要再調(diào)整包大小重發(fā),就這樣直到數(shù)據(jù)包達(dá)到目的地址。所以IPv6碎片丟包率遠(yuǎn)遠(yuǎn)高于IPv4數(shù)據(jù)。2017年9月的早期工作顯示,當(dāng)嘗試通過DNS遞歸解析器傳遞碎片化的IPv6 UDP數(shù)據(jù)包時,失敗率為38%。

從理論上講,TCP應(yīng)該能通過保守選擇會話的最大報文長度(MSS)來避免數(shù)據(jù)包太大而被丟棄的問題,但是UDP怎么樣?那么UDP的主要客戶端應(yīng)用程序DNS呢?我們可以將DNS從UDP移開并使用TCP代替,這樣肯定會使許多功能變得更加容易,但是缺點是TCP在服務(wù)器上施加了更大的負(fù)載開銷。所以我們還需要改進(jìn)UDP中大響應(yīng)的處理方式,那么我們試試使用UDP和TCP的混合方法:在可能的情況下使用UDP,而在必要時使用TCP。

解決這一挑戰(zhàn)的方法是”附加截斷響應(yīng)”(Additional Truncated Response,簡稱ATR,記錄為互聯(lián)網(wǎng)草案:2017年9月的draft-song-atr-large-resp-00, 下一代互聯(lián)網(wǎng)國家工程中心的宋林建)提案。本草案中描述的方法很簡單:如果DNS服務(wù)器提供需要發(fā)送分段的UDP數(shù)據(jù)包的響應(yīng),則服務(wù)器應(yīng)等待10ms的時間并將原始查詢作為截斷響應(yīng)返回。如果客戶端接收并重新組合分段的UDP響應(yīng),則客戶端的DNS解析器將忽略隨后的截斷響應(yīng),因為其未完成的查詢已被回答。如果網(wǎng)絡(luò)丟棄了分段的UDP響應(yīng),則將接收截斷的響應(yīng),并且將觸發(fā)客戶端立即切換到使用TCP重新查詢。

經(jīng)有關(guān)部門對每個IP解析器行為的測試,使用UDP時,高達(dá)40%的IPv4解析器未能收到大的分片UDP響應(yīng),50%的IPv6解析器未能收到分片的UDP響應(yīng),這個分片UDP響應(yīng)包的丟失比率是很驚人的。如果強制使用TCP協(xié)議,大約21%的IPv4解析器無法完成解析任務(wù),45%的IPv6解析器無法完成解析任務(wù)。而使用ATR,在IPv4中的ATR丟失率為29%,即有超過10%的無法接收分片UDP響應(yīng)的解析器能夠切換TCP并完成任務(wù);IPV6中ATR的丟失率為45%。

在DNS中,超過90%的用戶使用IP地址最常用的10000個解析器,所以在查看DNS時,不應(yīng)使用計算解析器行為來推斷對用戶的影響。我們需要從用戶角度來衡量ATR的影響。測試數(shù)據(jù)表明在IPv4情況下,大約9%的服務(wù)器使用ATR將通過向客戶端發(fā)信號通知立即切換到TCP以執(zhí)行重新查詢來提高分段UDP響應(yīng)的解析速度。在IPv6中,大約15%的服務(wù)器使用ATR通知客戶端切換為TCP重新查詢。

ATR可以實現(xiàn)在傳遞大型DNS響應(yīng)時提高DNS的解析速度和成功率,ATR方法消除客戶端執(zhí)行大量超時和重新查詢周期,消除大量查詢數(shù)據(jù)包并縮短解決時間。但是ATR將另一個UDP數(shù)據(jù)包添加到大型分段DNS響應(yīng)中,這有助于攻擊者使用DNS DDoS攻擊,因為當(dāng)ATR數(shù)據(jù)包添加到大型DNS響應(yīng)時,相同的初始查詢流將生成更多數(shù)據(jù)包和更大的字節(jié)數(shù)。

DNS是互聯(lián)網(wǎng)中極為重要的組成部分,ATR并沒有完全解決響應(yīng)問題,如果解析器無法接收碎片UDP響應(yīng)并且無法使用TCP執(zhí)行DNS查詢,則ATR無法提供幫助。但是,在IP片段過濾存在問題的情況下,ATR可以使查詢不可避免地轉(zhuǎn)移到TCP,速度比現(xiàn)在快很多,但它是以額外的數(shù)據(jù)包和額外的DNS功能為代價的。基于IPv6的DNS應(yīng)用還面臨很多挑戰(zhàn)需要我們逐一解決。

為實現(xiàn)下一代互聯(lián)網(wǎng)在經(jīng)濟(jì)社會各領(lǐng)域深度融合,IPv6規(guī)模建設(shè)既是國家戰(zhàn)略,也是高速發(fā)展的移動通信網(wǎng)絡(luò)的需求。作為國內(nèi)首家DNS商用解決方案提供商,泰策一直在跟蹤最新的IPv6技術(shù)要求,并憑借十多年的DNS相關(guān)技術(shù)經(jīng)驗,獲得了IPv6 READY認(rèn)證logo,積極配合各地的電信運營商進(jìn)行DNS系統(tǒng)的IPv6改造,保證各地運營商的設(shè)備和系統(tǒng)具備IPv4/IPv6雙棧功能,為解決網(wǎng)絡(luò)地址資源數(shù)量問題提供了有力保障,助力提升我國互聯(lián)網(wǎng)的承載能力和服務(wù)水平。

極客網(wǎng)企業(yè)會員

免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進(jìn)一步核實,并對任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,應(yīng)及時向本網(wǎng)站提出書面權(quán)利通知或不實情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實,溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。

2018-09-30
部署推進(jìn),泰策淺析基于IPv6的DNS技術(shù)
IPv4是第一個被廣泛使用,構(gòu)成現(xiàn)今互聯(lián)網(wǎng)技術(shù)的基礎(chǔ)的協(xié)議,自1981年被定義以來,作為IP的代名詞,已在IP領(lǐng)域稱霸30多年。

長按掃碼 閱讀全文