Ipv6

我的意思是為每個主機分配一個 /64 嗎?

  • April 8, 2015

我一直在閱讀相互衝突的來源,並看到有關 CPE 路由器應如何分配 IPv6 地址的不同行為。

RFC3633似乎暗示每個主機都應該獲得 /64,而RFC6204表示路由器應該為每個 LAN 介面分配一個 /64(對於簡單的住宅網路,每個主機仍然是一個 /64,對吧?)

同時,我被分配了一個 /56(通過隧道),並且我有一個執行 OpenWRT Barrier Breaker 的路由器。

我電腦上的 SLAAC 只給我來自第一個 /64 的 IP;並且為了嘗試自動為每台電腦分配一個完整的 /64(而不是通過手動分配),我嘗試過的兩個 DHCPv6 伺服器(odhcpd 和 dnsmasq)仍然只在第一個 /64 中分配 IP。

更具體地說,使用 dnsmasq,我已經嘗試過dhcp-range=2001:xxxx:e001:c501::,2001:xxxx:e001:c5ff::,但它出現“不一致的 DHCPv6 範圍”錯誤,並dhcp-range=2001:xxxx:e001:c500::,56給出“前綴長度必須至少為 64”。

所以實際的 DHCPv6(和 SLAAC)似乎只為整個網路使用了一個 /64,但我只讀到每個主機都應該得到一個 /64。

那麼哪個是對的?

編輯:

如果整個網路的 /64 是住宅站點的“正確”分配,為什麼為每個站點分配 /56 或 /48 是目前最佳做法?

我的假設是每個主機都會被路由器分配一個/64。

PS,我的路由器介面上的 IP 如下所示:

$ ip -6 addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 
   inet6 ::1/128 scope host 
      valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
   inet6 fe80::a2f3:c1ff:fed4:3678/64 scope link 
      valid_lft forever preferred_lft forever
5: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 
   inet6 2001:xxxx:e001:c500::1/56 scope global 
      valid_lft forever preferred_lft forever
   inet6 fdd0:da3b:f524::1/56 scope global 
      valid_lft forever preferred_lft forever
   inet6 fe80::a2f3:c1ff:fed4:3678/64 scope link 
      valid_lft forever preferred_lft forever
7: eth0.2@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 
   inet6 fe80::a2f3:c1ff:fed4:3678/64 scope link 
      valid_lft forever preferred_lft forever
8: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
   inet6 fe80::a2f3:c1ff:fed4:3678/64 scope link 
      valid_lft forever preferred_lft forever
22: sit1: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1280 
   inet6 2001:xxxx:f000::32af/128 scope global 
      valid_lft forever preferred_lft forever
   inet6 fe80::7892:987e/64 scope link 
      valid_lft forever preferred_lft forever
   inet6 fe80::c0a8:101/64 scope link 
      valid_lft forever preferred_lft forever

每個廣播域都有一個 /64。如果您將主機隔離,因此每個子網應該只有一個,您可以為單個主機分配整個 /64。這主要用於伺服器,無論如何您都使用靜態 IP 分配。如果您發現需要 SLAAC 或有狀態 DHCPv6,您可能應該為整個網段分配 /64,而不是單個主機。

IPv6 通常對每個子網使用 /64。路由器向 LAN 發送路由器廣告或 RA。此 RA 包含 LAN 的基本設置,例如使用哪些前綴(通常是單個 /64)、路由器是否可以用作預設網關、是否允許主機自動配置以及是否有 DHCPv6 伺服器LAN(以及什麼樣的 DHCPv6 伺服器:有狀態或無狀態)。預設 DNS 解析器也可以在 RA 中發送。

是的,這意味著在沒有 DHCP 的情況下執行網路並讓一切自動執行完全沒有問題。

如果允許主機自動配置自己,它們將採用 RA 中宣布的 /64 並在 /64 中給自己一個或多個地址。可能讓您感到困惑的是,這顯示為 eg 2001:db8:aa:b::12ab/64。這並不意味著主機獲​​得整個 /64,這意味著主機LAN 上的 /64 的一部分,地址為2001:db8:aa:b::12ab

DHCPv6 可以以兩種方式工作:有狀態和無狀態。有狀態類似於您在 IPv4 中所使用的:DHCP 伺服器為主機分配地址並為它們提供配置資訊,如 DNS 解析、NTP 伺服器等。無狀態更簡單:它只提供配置資訊。LAN 上可用的 DHCPv6 伺服器類型在 RA 中進行通信。

自動配置和無狀態 DHCPv6 的組合非常常見。

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