Linux

ipv6 在沒有路由器的情況下分發 ula 前綴

  • November 24, 2021

我有一個沒有 ipv6 連接到網際網路的網路。但我想玩一點私人網路。

所以我想為我的設備使用 ULA 並自動分發前綴。

我知道 ipv6 使用路由器廣告來做到這一點。但是(因此得名……)它也宣傳路由器。在我使用 dnsmasq 的情況下,它是執行它的伺服器的地址。所以它最終在我的客戶中作為預設路由。

由於我沒有路由器並且不希望我的客戶擁有預設路由,有沒有辦法在沒有路由器的情況下動態分配 ula 前綴?

甚至更“高級”:有沒有辦法在沒有路由器的情況下使用 dhcpv6?

這個有可能。

根據RFC 4861(IPv6 中的鄰居發現)*第 4.2 節。*路由器廣告消息格式:

Router Lifetime
[...]
A Lifetime of 0 indicates that the router is not a
default router and SHOULD NOT appear on the default
router list.  The Router Lifetime applies only to
the router's usefulness as a default router; it
does not apply to information contained in other
message fields or options.  Options that need time
limits for their information include their own
lifetime fields.

使用radvd這可以通過例如:

interface eth0
{
   AdvSendAdvert on;
   AdvDefaultLifetime 0;
   prefix fd10:1::/64
   {
   };
};

使用dnsmasq,它可能看起來像這樣:

enable-ra
ra-param=eth0,0,0
dhcp-range=::,constructor:eth0,ra-stateless

(注意 ra 參數。第二個零是路由器的生命週期)(儘管請注意 eth0 配置為具有 fd10:1::XX/64)

兩者都會在用於無狀態自動配置的客戶端上產生一個分配的前綴,從而產生像 fd10:1::c00l:cafe:baad:food 這樣的地址。沒有設置預設路由。

不,Router Advertisements 意味著 RA 發送者願意成為路由器,以及前綴資訊。你需要一個路由器來做任何對 IP 有用的事情。

主機將發送路由器請求。他們將假設返回的路由器廣告來自路由器,並將其連結本地地址用作網關。這樣做的好處是,發現網關是鄰居發現所固有的,自動的,不需要 DHCP。

只允許從您希望成為路由器的主機發送 RA。如果您不希望 dnsmasq 發送 RA,請禁用它。在您的路由器上啟用 RA。如果您還沒有準備好在生產中實施 IPv6,請在測試環境中練習。

對於您的地址計劃,請從您的 ISP 獲取全域可路由前綴,或生成唯一的 ULA 前綴以供使用。請注意,ULA 無法讓您訪問網際網路。

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