Domain-Name-System

IPv4 到 IPv6 遷移建議

  • April 13, 2020

我目前正在為我們的網路添加 IPv6 功能,我對 2020 年將我們習慣的一些 IPv4 概念轉換為 IPv6 世界的最佳實踐有一些疑問。

在我擁有的目前設置中,我們從 ISP 分配了一個 /64,路由器通告該前綴供客戶端使用 SLAAC 配置自己。這似乎工作正常,據我所知,每個人都可以訪問 IPv6 網際網路。

但是,我們希望能夠按名稱查詢事物,我不確定為客戶提供 AAAA 記錄的最佳做法是什麼。

我所做的是在執行我們的 DHCPv4 的 dnsmasq 實例上部署有狀態的 DHCPv6,並告訴它從某個範圍內分發 ULA,這自然會為任何要求地址的人提供 AAAA 記錄。這似乎也可以正常工作,但我知道有狀態 DHCPv6 有一些不喜歡。這也有助於我整合靜態 IP 上的伺服器分配,就像我對 DHCPv4 所做的那樣,出於各種原因,這些伺服器應該可以通過固定 IP 地址訪問,我們希望 IPv6 繼續保持這種情況。

我能想到的做 AAAA 記錄的唯一其他方法是通過單播從路由器向 dnsmasq 機器發送 RA 前綴,然後使用 dnsmasq 使用該ra-names選項為 slaac 通告 GUA 前綴。據我所知,這並不能解決靜態地址分配問題,而且我不確定它實際上有多可靠。有沒有比使用有狀態 DHCPv6 的 ULA 更好的方法來處理內部 AAAA 記錄?

最後,隨著事情開始奏效,我們現在正在考慮將我們的公共服務遷移到 IPv6。我的理解是,這將需要一個固定的 GUA 供伺服器提供公共 AAAA 記錄。我不確定如何使用邊緣路由器的 SLAAC 來實現這一點,除非有某種等效的動態 dns。**我可以再次使用 DHCPv6 或其他手動分配方法在我們分配的前綴中選擇 IP 嗎?**我猶豫要不要這樣做,因為我認為它可能會與 SLAAC 地址發生衝突,而且我不確定如果發生衝突會發生什麼。或者,我可以選擇向 ISP 詢問 /48,**我是否應該這樣做並為本地客戶端宣傳單個 /64 以獲得連接,而為靜態伺服器宣傳不同的 /64?**這對我來說似乎有點矯枉過正,我們已經接近填充單個 /64 但這可能是我的 IPv4 心態讓我感到困惑。

這對我來說似乎有點矯枉過正,我們已經接近填充單個 /64 但這可能是我的 IPv4 心態讓我感到困惑。

停止計算主機,這是 IPv4 的想法。子網千篇一律,非常龐大。/64 可以處理所有已製造的 IP 設備,並有足夠的空間。

然而地址空間更大,以至於單個站點可以輕鬆地請求 /48。64,000 /64s,4 個十六進制數字,根據您想要的地址計劃發出。

對於 /48,我到底該怎麼做。

無論你想要什麼!慷慨並為成長做計劃。為每個子網、每個 VLAN、wifi SSID、安全區域、雲和遠端訪問 VPN、每個容器主機、虛靜態服務地址的“全零”/64 等提供 /64s。

盡可能聚合,以避免碎片化。因此,也許將 /60s 或 /56s 委託給內部網路,例如 DHCP 伺服器、手動分配的靜態池、wifi 控制器或容器編排系統。並為上述所有測試環境。

不必是動態的,例如 DHCP-PD,特別是如果您有來自 ISP 的靜態前綴。但是以某種方式在 IPAM 系統中跟踪事物。

或者,如果它確實發現了衝突,會有優雅的解決方案?

IPv6 節點應該對所有單播地址、無狀態、DHCPv6、手動或其他方式進行重複地址檢測。標準是停止重複而不是導致難以診斷的問題。/64 中隨機生成的地址發生衝突的可能性非常低。

ULA

ULA不是網際網路定址。由於無法全域訪問,標準的預設地址選擇策略將它們的優先級甚至低於 IPv4。見 rfc6724。因此,您將需要在 IPv6 Internet 上獲得的主機上的全域可路由(非 ULA)地址。

某種動態dns等價物。

是的,DNS 是必要的。對於人類來說,名稱比 IP 更容易。

是的,知道 IP 通常是在具有狀態的 DHCPv6 伺服器和配置有動態 DNS 客戶端的 SLAAC 節點之間進行選擇。 路由器通告標誌 A 和 M告訴客戶端是有狀態的還是無狀態的。

AD DS 加入的主機相當簡單,預計它們會將自己添加到 DNS。

或者,也許,使用無狀態但基於非隨機 EUI-64 的地址配置伺服器介面。然後你可以根據MAC地址預先計算出地址,並將其放入DNS中。

也許並非所有設備都需要在 DNS 中。如果允許個人 Android 設備訪問來賓 Internet,它們不會執行 DHCPv6。如果不是由 MDM 管理,您將不會知道他們的 IP。

引用自:https://serverfault.com/questions/1012044