我有一個家庭網路伺服器、/29 IPv4 位址(由於具有需要網關位址的路由子網,目前可從該區塊分配 3 個位址)和兩個已指派給我的 DNS 記錄的位址。此外,我有一個 /64 IPv6 子網,其中兩個位址已指派給我的 DNS 記錄。
我已經更改了我的sysconfig > 網路腳本檔案(透過網路管理員管理,而不是DHCP),以使所有IPv4 位址可供我的系統使用,並將IPv6 子網路指派為輔助子網,如圖所示(我認為這是正確的,但請告訴如果不是我):
IPV6ADDR=2a10:b900:10e4:1::2/64
IPV6ADDR_SECONDARIES=2a10:b900:10e4:1::/64
IPV6_DEFAULTGW=2a10:b900:10e4:1::
問題? - 我需要修改我的綁定區域檔案以使用額外的可用 IP 位址和整個 IPv6 子網路。我想我可以將 IPv4 新增為附加 A 記錄(儘管我過去遇到過導致連線問題的問題),但這裡有人可以告訴我如何新增 IPv6 子網路嗎?
答案1
總結一下這些評論,沒有答案,因為這個問題完全基於錯誤的假設。
[...] 將 IPv6 子網路指派為輔助子網,如圖所示
IPV6ADDR=2a10:b900:10e4:1::2/64 IPV6ADDR_SECONDARIES=2a10:b900:10e4:1::/64
這實際上並沒有分配整個子網路。它分配單一位址(全零 IID 位址,2a10:b900:10e4:1:0:0:0:0)並將「子網路遮罩」設為 /64。該行為與分配任何其他地址相同;對於…:0:0:0:0 沒有特殊處理。兩種情況下的 /64 僅指示哪些位址是「線上」位址(可以透過實體介面在 MAC 層級到達)。
https:// 連接無法共用(即:如果它們是 http://,您可以透過相同 IP 位址擁有 10 個連接,但如果它們是 https://,則這些相同的連接將需要 10 個 IP 位址
不,他們不會,因為底層傳輸協定 TCP 已經具有復用機制 - 本地連接埠 + 遠端連接埠的組合。假設你有
- 一位客戶,
- 一台伺服器監聽一個端口,
理論上,(local_addr, remote_addr, local_port, remote_port)
透過改變 local_port 最多可以有 65535 個獨特的組合。實際上,該數字在 ~32k 或 ~48k 範圍內,取決於作業系統配置的「臨時連接埠」範圍。
這種機制獨立於上層協議,伺服器可以接受與連接埠443 的HTTPS 連接,就像它可以接受連接埠80 上的HTTP 連接一樣多。每個連接的每個資料包。
如果你的故事是關於 HTTP(S)「虛擬主機」而不是「連結」(即共享),那麼它仍然有意義網域在同一 IP 位址上。 10-20 年前,HTTPS 伺服器(更準確地說是 SSL/TLS 伺服器)只能透過單一 IP 位址:連接埠提供一個證書,因此只能為單一憑證提供的網域數量提供服務。
然而,現在所有現代客戶端都支援 TLS 1.1+“伺服器名稱指示”,這允許它們在 TLS 握手期間請求特定的域名,以便伺服器可以在開始應用層握手之前選擇正確的 TLS 憑證。
總之,一開始就沒有必要為伺服器分配子網路。
最後,技術上的主要問題:
因此,我嘗試創建一個解決方案,其中 BIND 可以在需要時進入位址池
DNS 沒有這樣的功能-只有 AAAA 記錄可以指向 IPv6 位址,而每筆這樣的記錄只能指向一個位址。 (還有其他類型,但它們有不同的用途,大多數軟體都會簡單地不看對他們。
您必須使用 BIND 的$GENERATE
功能,這是一個可以擴展到許多記錄的巨集,或編寫一個自訂 DNS 伺服器,根據需要產生具有隨機 AAAA 記錄的回應。