哦哇資訊網

開啟IPv6變卡?網頁打不開?如何絲滑地使用IPv6?只需一個步驟

由 旋律果子 發表于 美食2023-02-07

標題:開啟IPv6變卡?網頁打不開?如何絲滑地使用IPv6?只需一個步驟【好玩的網路-IPv6專題5】

摘要

DNS工作原理

IPv4和IPv6 DNS的區別,以及DNS伺服器對IPv4和IPv6的支援情況

DNS的各種記錄簡介,A記錄、AAAA記錄、CNAME記錄

客戶端(如Web瀏覽器)傳送的DNS請求

DNS伺服器對IPv4和IPv6 DNS請求的反應,以及反應時間

引入IPv6後,發現開啟網頁卡頓,應該如何設定

站內影片傳送門

往期精彩回顧:

IPv6-1 每家每戶都有的IPv6,你會用嗎?下載加速?校園網免流?內網穿透了?

IPv6-2 IPv6是否安全?IPv6哪些技術可防網路攻擊?IPv6的安全使用方法!

IPv6-3 給你家裡每一粒灰塵都分配一個公網IP:IPv6與IPv4到底哪裡不同?fe80是幹嘛的?

IPv6-4 IPv6網頁打不開?fe80 ping不通?IPv6的通訊以及基本使用方法!

Hi,大家好,我是旋律果子,一個專注於網路技術的Geek。關於IPv6的影片已經出了4期了,感興趣的小夥伴可以點點往期回顧。這一期是第5期影片,主要講一下有粉絲說的IPv6網路卡頓的問題,

開始之前先回復一下IPv6第3期的一個問題。

1。更正第三期的一個問題

第三期在講IPv6地址分配的時候,提到了運營商分配的字首一般是64位,在影片中顯示的畫面也有問題。評論區有粉絲指出來這裡面的問題,這裡統一更正回覆說明一下。

1。1第一點要說明的是內外網字首是否一致的問題。

路由器的Wan口上獲得的公網IPv6地址和Lan口以及內網裝置獲得的公網IPv6,雖然他們都是公網IPv6,字首長度也是64,但是他們的字首並不是一樣的。

路由器Wan口獲得的公網IPv6只能路由器本身用,路由器Lan口獲得的公網IPv6和內網裝置的公網IPv6字首是一樣的。

大家可以把影片暫停下來看一下區別。

1。2第二點要說的是運營商分配的IPv6字首長度的問題。

我們看到IPv6地址的64位,但是運營商下發的字首長度不一定是64位的,

開啟IPv6變卡?網頁打不開?如何絲滑地使用IPv6?只需一個步驟

比如,大家可以看這裡,在武漢電信分配的IPv6字首就是56位的,

開啟IPv6變卡?網頁打不開?如何絲滑地使用IPv6?只需一個步驟

所以上一期說的家庭使用者的1800億億個公網ip,

開啟IPv6變卡?網頁打不開?如何絲滑地使用IPv6?只需一個步驟

在這個基礎上還得乘以2的8次方,一共是2的72次方個公網IP。

開啟IPv6變卡?網頁打不開?如何絲滑地使用IPv6?只需一個步驟

這個56位的字首怎麼用呢,

開啟IPv6變卡?網頁打不開?如何絲滑地使用IPv6?只需一個步驟

如果你有多個內網,可以給不同的介面上分配一個64位的公網IPv6地址塊,這個就比較牛逼了。這個字首才是給路由器的Lan口和內網裝置配置地址用的,再強調一下,給內網分配的地址並不是用的路由器Wan口的字首。

1。3第三點是,如果運營商不給你下發字首,那麼你只有主路由能獲得公網IPv6,內網裝置是無法獲得公網IPv6的。內網就只能像IPv4那樣用網路地址轉換NAT了。

開啟IPv6變卡?網頁打不開?如何絲滑地使用IPv6?只需一個步驟

這就產生了另外一個問題,如果你的光貓是路由模式,光貓的lan已經代理了字首,那麼你的內部如果還有路由器的話,是無法獲得到字首的,內網裝置就沒辦法分配公網IPv6地址了。所以你的網路中,包括光貓,有且只能有一個路由器。要麼你的光貓是路由模式,其他所有路由器全部橋接模式。要麼光貓橋接模式,其他路由器有一個撥號上網,並給下面的裝置分配IPv6地址。

這些地方確實是有問題的,再次感謝這位粉絲的指出的問題,歡迎大家評論區交流。

2。如何正確配置IPv6

這一期,我們聊一下,為什麼,

很多人開了IPv6,發現透過瀏覽器訪問網頁,卡卡的,或者不能開啟網頁。

那麼,

我們該如何正確配置IPv6呢?

2。1 找原因:開啟IPv6為什麼會變卡?開啟IPv6為什麼網頁打不開?

開啟IPv6變卡?網頁打不開?如何絲滑地使用IPv6?只需一個步驟

之前我們講過網路協議棧的OSI模型,分析問題常用這個模型。

開啟IPv6變卡?網頁打不開?如何絲滑地使用IPv6?只需一個步驟

我們先從最直觀的地方開始找原因。

我們發出去的資料包遠距離傳輸時,都是工作在網路層,所以我們最直觀的測試,就是測一下網路層的速率。測網路層連通性,以及延遲,可以用最常用的ping命令。

開啟IPv6變卡?網頁打不開?如何絲滑地使用IPv6?只需一個步驟

一般來說,我們訪問遠端主機,如果你知道這個主機的IPv4和IPv6地址,你可以試著同時ping一下,很多時候,你會發現IPv6地址的延遲和IPv4的延遲,相差不過1毫秒。

開啟IPv6變卡?網頁打不開?如何絲滑地使用IPv6?只需一個步驟

這說明開啟IPv6後,那些很大的延遲,根本就不是IPv6效能本身的問題,同時也不是網路層的問題。所以,我們繼續往上找原因。

當我們訪問一個網站時,訪問的是網站的域名。如果想把資料包發到這個位置,我們需要知道對方的IP地址。

DNS就是將域名解析為IP地址的伺服器。

開啟IPv6變卡?網頁打不開?如何絲滑地使用IPv6?只需一個步驟

那麼,是DNS查詢的速度過慢造成的嗎?

在查詢之前,我們先講一個被很多人誤解的地方。大家可以把答案寫在評論區。使用IPv6瀏覽網頁,一定要配置IPv6的dns地址嗎?給大家3秒鐘思考一下。

開啟IPv6變卡?網頁打不開?如何絲滑地使用IPv6?只需一個步驟

其實是不需要的。果子之前也出過DNS的影片,

開啟IPv6變卡?網頁打不開?如何絲滑地使用IPv6?只需一個步驟

我們在電腦上填寫,或者是被路由器分配的DNS地址,

只是DNS伺服器本身的地址,並不意味著填寫IPv6的DNS才能解析出IPv6

我們填寫的這個DNS地址只是讓我們找到DNS伺服器的位置,所以這個DNS地址,無論是IPv4地址還是IPv6地址,

只要能引導我們的電腦找到這個DNS伺服器的位置,目標就完成了

那一個域名對應的IPv6地址在哪裡儲存的呢?

在DNS伺服器上可以儲存很多記錄,其中A記錄儲存了IPv4地址,AAAA記錄儲存了IPv6地址,CNAME記錄儲存了CDN域名。

開啟IPv6變卡?網頁打不開?如何絲滑地使用IPv6?只需一個步驟

瀏覽器訪問一個網站時,如果發現自己有IPv6地址,會同時去查詢一個網站域名的A記錄和AAAA記錄。

2。2IPv6 DNS解析

現在以IPv6為例,說一下DNS伺服器面對DNS請求的反應。如果DNS伺服器支援AAAA記錄並且存在記錄,那麼會立即返回解析結果,正常解析;

開啟IPv6變卡?網頁打不開?如何絲滑地使用IPv6?只需一個步驟

如果DNS支援AAAA記錄,但是發現域名沒有對應的IPv6地址,那麼會立即返回空的AAAA記錄的,

開啟IPv6變卡?網頁打不開?如何絲滑地使用IPv6?只需一個步驟

如果DNS不支援AAAA記錄,不去處理IPv6的解析,那麼就不會返回AAAA記錄,並且會超時。

開啟IPv6變卡?網頁打不開?如何絲滑地使用IPv6?只需一個步驟

IPv4和IPv6都有這3種情況。所以一共是3的平方,也就是9種情況。另外應用程式一般會優先使用IPv6。這樣就形成了下面的表格:

開啟IPv6變卡?網頁打不開?如何絲滑地使用IPv6?只需一個步驟

如果一個DNS伺服器沒有返回AAAA記錄,而A記錄正常解析先到達,那麼瀏覽器會等待AAAA記錄到達,如果沒有等到AAAA記錄,並且沒有收到回覆並且超時,才會去使用A記錄的IPv4去訪問。

開啟IPv6變卡?網頁打不開?如何絲滑地使用IPv6?只需一個步驟

如果AAAA記錄正常返回並且為空,瀏覽器會直接選擇IPv4進行訪問,不會繼續等待。

開啟IPv6變卡?網頁打不開?如何絲滑地使用IPv6?只需一個步驟

從這個表格來看,一般IPv4的解析都是正常的,所以表格的下面兩行幾乎不用考慮。

開啟IPv6變卡?網頁打不開?如何絲滑地使用IPv6?只需一個步驟

所以就剩下上面這三種情況。

開啟IPv6變卡?網頁打不開?如何絲滑地使用IPv6?只需一個步驟

當IPv6功能開啟時,如果DNS伺服器不支援AAAA記錄,或者AAAA記錄到DNS伺服器的過程中丟包,那麼就很容易出現第一行的第3種情況,這樣就導致非常卡了。

開啟IPv6變卡?網頁打不開?如何絲滑地使用IPv6?只需一個步驟

如果一個域名沒有AAAA記錄,那麼dns伺服器會返回一個空記錄,這時瀏覽器就不會繼續等待,直接使用IPv4進行訪問,速度也快。

所以,不怕DNS說,“我這裡沒有你要的IPv6”,怕就怕,DNS伺服器什麼話都不說,那我們就得乾等著了。

開啟IPv6變卡?網頁打不開?如何絲滑地使用IPv6?只需一個步驟

2。3 原因:

如果DNS伺服器出了問題,解析出錯誤的IPv6地址,伺服器的IPv6網路也有問題的話,就會出現網路打不開的情況了。

如果涉及到CNAME記錄和CDN,情況要更加複雜一些,也會變得更慢。

知道了這個原理,我們就很好排查故障原因了。

你們可以觀察一下自己的DNS伺服器,是否很好的支援IPv6,

開啟IPv6變卡?網頁打不開?如何絲滑地使用IPv6?只需一個步驟

在macos系統中,可以使用dig命令來測試。

開啟IPv6變卡?網頁打不開?如何絲滑地使用IPv6?只需一個步驟

在windows系統中,可以使用nslookup來測試。

開啟IPv6變卡?網頁打不開?如何絲滑地使用IPv6?只需一個步驟

不少家用路由器為了提升DNS解析的速度,在自己這裡搭建了一個DNS快取伺服器,相當於路由器本身是一個DNS伺服器。路由器會透過DHCP將自己的IP地址作為DNS伺服器分配給終端裝置。你可以觀察一下,你的DNS地址是不是路由器的lan口IP地址。

家用路由器經歷了長期的更新迭代,在IPv4的時代還好,現在一般沒什麼問題。但是在IPv6時代,不少家用路由器還沒做好準備,對IPv6的支援也不是很完善,

導致DNS快取伺服器對IPv6的支援不好,所以,只要一開IPv6,就卡頓。

2。4最佳化IPv6配置,解決網頁卡頓/打不開

那麼,說到這裡,解決方案就很簡單了,直接給自己的電腦設定公用DNS就可以了,比如騰訊dnspod的地址,119。29。29。29。

開啟IPv6變卡?網頁打不開?如何絲滑地使用IPv6?只需一個步驟

最好是直接在路由器的DHCP伺服器中設定DNS地址,將DNS地址設定為119。29。29。29,這樣,接入區域網的裝置,就能自動被分配設定好的DNS地址了。

開啟IPv6變卡?網頁打不開?如何絲滑地使用IPv6?只需一個步驟

設定好這些後,大家再來看看,在開啟IPv6的情況下,是否流暢。歡迎評論區留言!

以上是針對大多數使用者的情況。還有一部分使用者,家裡開了特殊的上網環境,而這些特殊的線路不支援IPv6,卻預設IPv6優先,導致問題出現,這些也有解決的辦法,就是不知道影片發不發得出來了,不過可以先點個關注。

這就是本期影片的全部內容了,如果IPv6能保持較好的熱度,IPv6系列會一直出,希望大家多多支援。我是旋律果子,一個網路極客,我們下期再見。

關注博主,學習更多網路知識!還有更多實戰經驗等著你!

圖文編輯: 旋律果子 貓小爪

旋律果子: 網路Geek/Linux開發者/中國科學院大學在讀博士/科技數碼博主/國家水利水電二級建造師/優質科技領域創作者

TAG: IPv6DNS地址伺服器路由器