使用颶風電力隧道透過 dnsmasq 向網路提供 IP

使用颶風電力隧道透過 dnsmasq 向網路提供 IP

我在 x86 機器上運行我的網絡,運行 Ubuntu 18.04、firewalld(UFW 不適合用作路由器)、/networks/interfaces(netplan 有一個錯誤,使其不適合用途)以及用於 DHCP 和 DNS 的 dnsmasq。

我有一個 ISP 運行帶 PD 的 ipv6,我使用了這裡的設置。我目前的 ISP 不支援 IPV6,因此我透過颶風電建立了一條到路由器的隧道 - 這已設定完畢,並且可能可以正常工作,因為我可以 ping 通。

我將 enp1s0 作為外部接口,所有其他接口橋接在一起,作為 br0 為網路的其餘部分提供服務。也有 he-ipv6 作為隧道,不橋接到任何東西

目前,路由器位於 ISP 路由器後面,有兩個不同的網段 - 192.168.1.x 供其他人使用,我自己的測試網路位於 192.168.2.x 中,路由器位於 DMZ 中。這不應該成為一個問題。

問題是我想堅持使用 dnsmasq,但我在資助如何設定它的文件方面遇到了困難。

這就是我現在所擁有的

  • 我已按照 hurricane electric 網頁上的說明將 ipv6 設定到我的路由器,包括我的 /etc/networks/interfaces 上的以下內容
auto he-ipv6
iface he-ipv6 inet6 v4tunnel
        address 2001:470:YY:YYYY::2
        netmask 64
        endpoint 216.218.221.6
        local xxx.xxx.x.xxx
        ttl 255
        gateway 2001:470:YY:YYYY::1

這有效。我可以 ping ipv6.google.com 和其他已知的 ipv6 網站。我似乎無法取得IP還要別的嗎

我試過

##For HE
enable-ra
dhcp-range = 2001:470:YY:YYYY::
dhcp-option=option6:dns-server,[2001:470:20::2],[2001:4860:4860::8888]

但顯然語法是錯的。

如何為從路由器取得 IP 的用戶端以及 br0 取得 IPv6 位址?

答案1

在一切之前:

與 IPv4 一樣,每個連結都需要自己的子網路前綴。 「隧道端點2001:470:YY:YYYY::/64」專門用於您和 Hurricane 之間的連結(即,它用於 IPv4 術語中的「WAN 位址」) – 它不能重複用於您的任何 LAN。對於後者,您需要在隧道設定頁面中找到的「路由 IPv6 前綴」之一 - 這將相當於 DHCPv6-PD 委託前綴。

通常,每個 LAN 都有一個 /64 大小的子網路前綴,以允許基於標準 SLAAC 的位址分配工作(許多用戶端,尤其是 Android,不支援基於 DHCPv6 的位址分配)。因此,如果您打算使用多個子網,請選擇「分配 /48」以獲得具有相當數量 (64ki) /64 的前綴。

(如果您已經分配了 /48,則無需使用「分配 /64」。如果您做過使用“分配/64”,注意前綴是輕微地與「隧道端點」前綴不同;他們常常感到困惑。


一旦您有了自己的範圍,例如 2001:470:ZZ::/48,請從中選擇 /64(範圍從 0 到 ffff,例如 2001:470:ZZ:1::/64) 並將其用於您的br0介面以及 dnsmasq 配置。

enable-ra
dhcp-range = 2001:470:ZZ:1::, ra-stateless
dhcp-option = option6:dns-server, [2001:470:20::2], [2001:4860:4860::8888]

如前所述,許多客戶端(尤其是 Android)不支援透過 DHCPv6 進行位址分配。它們需要 SLAAC,因此您至少需要其中之一slaac或者ra-stateless在“dhcp-range”配置中。 (「ra-stateless」模式也告訴 SLAAC 用戶端他們仍然可以從 DHCPv6 取得 DNS 設置,這對 Windows 很有用。無論選擇如何,dnsmasq 也將透過 SLAAC-RDNSS 自動為 Android 提供 DNS 伺服器。)

然而,對於布0(或無論 LAN 介面是什麼)您應該靜態分配一個 IP 位址 - 我不確定核心是否接收自己的多播,也不確定是否要關注它們。無論如何,我懷疑dnsmasq 本身可能會拒絕在缺少匹配位址的介面上運行(就像 IPv4 已經做的那樣)...

iface br0 inet6 static
    address 2001:470:ZZ:1::1/64

iface br1 inet6 static
    address 2001:470:ZZ:2::1/64

執行 dnsmasq 後,可以rdisc6 eth0從另一個 Linux 系統使用它來要求並顯示路由器通告的內容。確保它具有非零的“路由器生命週期”;至少一個「前綴」(需要是 /64、線上、自主、非零有效時間);並且它來自鏈路本地fe80::*地址而不是全域地址。

相關內容