ルーティングされた IPv6 プレフィックスを仮想インターフェイスとして使用する

ルーティングされた IPv6 プレフィックスを仮想インターフェイスとして使用する

最近、専用サーバーホストを「ReliableSite」から「Psychz」に変更する必要がありました。 ARIN IPv6割り当ての公開を要求したとき、Psychzは私のサーバーが「ルーター」として使用されると仮定し、それを「ルーティング」ブロックとして提供しました。

明確にするために、ARINの123 :: 48があると仮定し、「ブリッジ」構成のサーバーインターフェイスで直接123 :: 48を使用する代わりに、Psychzが提供する234 ::を介して123 :: 48をルーティングします。 567 IPv6 アドレス。

openSUSEで仮想インターフェイスを作成し、123 :: 48 IPv6を設定しようとしましたが、外部からアクセスできません。 Rocky LinuxとFreeBSDにも同様の問題があります。

サーバー自体のIPアドレスのみを使用している場合は、LinuxサーバーでルーティングされたIPv6ブロックを使用する正しい方法はありますか?

ベストアンサー1

「パス」は単に意味上流プレフィックス全体をユーザーにルーティングします(アドレスを直接ARPではなくユーザーを「次ホップ」ゲートウェイとして使用)。これらのパケットがユーザに転送される場合、ユーザが何をしても構いません。アップストリームは、サーバーがそのパケットを独自のアドレスとして処理するのか、それとも別の場所に転送するのかは関係ありません。そしてあなたのサーバーは、これらのパケットがARP / NDを介して到着するのか、ルーティングを介して到着するのか全く気にしません。

つまり、dummy0(または「lo」)にアドレスを設定するだけで十分です。 Linuxでは、有効にする必要がある可能性が高いです。net.ipv6.conf.all.forwardingあなたじゃなくてもsysctlを通して本物インバウンドインターフェイス以外のインターフェイスで送信されることを除いて、どこからでもパケットを転送するにはIP転送を有効にする必要があるようです。

物理イーサネットインターフェイスでアドレスを/ 128に設定することもオプションであり、上記の問題を回避できます。 (はい、/48ではなく/128です。)

しかし、何よりもまずtcpdump -n -i eth0 "net 123::/48"はい実際には、必要に応じてアップストリームからパケットを受信します。 (ARINで一意のプレフィックスを取得した場合は、BGPを実行しているとします。セッションが動作していることを確認してください。)

(場合に備えてtcpdumpを実行して、誤ってルーティングしたことを-i all確認してください。あなたのパケットが正しいゲートウェイ以外の場所にあります。ルーティングテーブルをチェックして、BGPデーモンがすべてのエントリに対して「... via unreachable」を表示せずにネクストホップを確認できることを確認します。 )


他のホストと共有サブネットを設定せずに別々のアドレスを使用する場合は、dummy0にアドレスを設定する方が適切ですが、/128これは重要ではありません。多く、しかし、/48は奇妙です。 (/48 プレフィックスがありますが、これが /48 サブネットを持つ必要があるわけではありません。)

(そうでなければ、少なくとも/ 64で構成します。インターフェイス全体で/ 48を直接設定することは1)少し奇妙で、2)いつでも問題が発生する可能性が高いです。するより小さな塊のいくつかを他の場所にルーティングすることにしました。 )

おすすめ記事