私は、直接接続されたネットワーク(eth0が設定されている/ 64で)のホスティングプロバイダによって割り当てられたアドレスから、インターネット上の(仮想)サーバーに複数のIPv6アドレスを持つことができます。このIPv6アドレスをWireguard(VPN)に使用してこのサーバーに接続する場合はどうすればよいですか?
通常、サーバーを指すVPN内で使用されるIPv6アドレスへのパスが必要ですが、そのようなパスエントリがないため、ネイバー検索要求は機能しません。 VPNで使用されるIPv6アドレスをネイバー検索に応答してプライマリインターフェイス(eth0)の仮想アドレスとして定義することもできますか? IPv4の場合、NATを使用すると問題はありませんが、IPv6でNATを使用することは解決策ではありませんか?
答え1
wg-quick
システムが各個々のIPv6アドレスにトンネリングされる/ 128パスなど、通常どおりルーターとして構成されているとします(必要に応じてヘルプ)。 OPに情報が提供されていないため、この部分については役に立ちません。
アップストリームルーター(で接続できるサーバールーターeth0
)は、そのアドレスをサーバーを介して具体的にルーティングする必要があることを知るように設定されておらず、設定を変更することはできません。コマンド新しい民主党ただし、このアドレスを所有せずにルーティングするサーバーは、次のメッセージを受信してもこのクエリを気にしません。接続なし。
これらのアドレスを実際に所有することなく、そのアドレスに応答するようにサーバーを構成できます。つまり、プロキシとして機能し、その要求がNDPを介して受信されたときに応答するため、名前が付けられました。NDエージェント。最後に、ルータは(静的)ルーティング設定でトラフィックを知るのではなく、(動的に確認された)NDPからそのアドレスにトラフィックを送信する場所を知ります。サーバーにインストールされると、これらの操作はすべてLinuxカーネルによって処理されます。
次の2つの設定を完了する必要があります(Linuxのarp_proxy
IPv4の設定とは若干異なる場合があります)。
〜できるようにする
proxy_ndp
NDプロキシに必要なインタフェース(eth0
):sysctl -w net.ipv6.conf.eth0.proxy_ndp=1
一度は必ずやるべきことだ。
サーバーがルーティングする各IPv6アドレスにNDプロキシエントリを追加します。例えば
2001:db8:1:2::4242
:ip neigh add proxy 2001:db8:1:2::4242 dev eth0
いくつかの小さな詳細については、プロキシアドレスに関連付けられているマルチキャストアドレス(NDPで使用されている)に参加しているサーバーを確認することもできます。たとえば、
$ ip maddr show dev eth0 | grep '42:*42 *$' link 33:33:ff:00:42:42 inet6 ff02::1:ff00:4242
このキーワードは、
proxy
これらのアドレスを処理するために必要です(-6
常に使用する必要がある場合、または少なくともIPv4 ARPではなくIPv6 NDPに関するものであることを示すコンテキストがない場合)。例:ip -6 neigh show proxy # display ND proxy entries configured whatever the interface ip neigh delete proxy 2001:db8:1:2::4242 dev eth0 # delete a single entry ip -6 neigh flush proxy all dev eth0 # delete all of them on eth0
それにもかかわらず、インターフェイスが閉じて開いていると、非常に脆弱で自動的に消える可能性があります。この設定はネットワークツール設定に追加する必要があります
eth0
。
注:LANまたはサブネット全体をこの方法で処理する必要がある場合は、.ifを使用するだけでなく、トラフィックを破棄せずにユーザースペースを介して処理するようにip neigh ... proxy ...
インターフェイスを設定できます。ALLMULTI
ツールはすでに作業を行っています。ndppd
。 OPの状況ではこのツールをお勧めしません。