
私は、Ubuntu 18.04、firewalld (UFW はルーターとして使用するには適していません)、/networks/interfaces (netplan には目的に適さないバグがありました)、および DHCP と DNS 用の dnsmasq を実行している x86 ボックスでネットワークを実行しています。
私はPDでipv6を実行するISPを持っていて、ここでの設定現在の ISP は IPV6 をサポートしていないため、ハリケーン エレクトリック経由でルーターへのトンネルを設定しました。これは設定済みで、ping が通るのでおそらく動作するはずです。
外部インターフェースとしてenp1s0があり、他のすべてのインターフェースはブリッジ接続されてネットワークの残りの部分をbr0として提供しています。また、トンネルとしてhe-ipv6があり、何にもブリッジされていません。
現時点では、ルータはISPルータの背後にあり、2つの異なるネットワークセグメント(他の全員用の192.168.1.xと、ルータがDMZにある192.168.2.xの私自身のテストネットワーク)があります。すべきではない問題になる。
問題は、dnsmasq を使い続けたいのですが、その設定方法に関するドキュメントを入手するのが難しいことです。
今私が持っているものは次のとおりです
- ハリケーンエレクトリックのウェブページの指示に従って、ルーターに 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
これはうまくいきました。ipv6.google.comや他の既知のipv6サイトにpingできます。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 プレフィックス」の 1 つが必要です。これは、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が必要なので、少なくとも以下の1つが必要です。slaac
またはra-stateless
'dhcp-range' 設定で。(モード 'ra-stateless' は、SLAAC クライアントに、DHCPv6 から DNS 設定を取得できることも伝えます。これは Windows に便利です。選択に関係なく、dnsmasq は Android に SLAAC-RDNSS 経由で DNS サーバーを自動的に提供します。)
しかし、br0(または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 システムから使用して、ルーター広告の内容を要求して表示します。ルーター広告にゼロ以外の「ルーターの有効期間」があること、少なくとも 1 つの「プレフィックス」(/64、オンリンク、自律、ゼロ以外の有効時間である必要があります) があること、fe80::*
およびグローバル アドレスではなくリンク ローカル アドレスからのものであることを確認します。