web-dev-qa-db-ja.com

IPv6とNAT、複数のISPへのルーティング

現在、私はプライベートIPv4アドレス空間と2つのISPからインターネットへのアップリンクを使用した素晴らしいセットアップをしています。 NATのおかげで、インターフェイスの1つを停止するだけで、インターネットアクセスはまだそこにあります。

この構成をIPv6で複製する方法を考えていました。私が読んだところによると、「NATは死んでいる」ということですが、それは本当に嬉しいです。私はそれが好きではありません(そして時には完全に嫌いです)が、それは用途があります。

いくつかの見方をすると、これは小さな会社であり、ネットワークに3ダースのコンピューターがあり、SLAおよびBGPサポートを備えた派手なリンクの予算がありません。だから私RIPE-NCCから​​の独自のIPv6サブネットが機能しないと考えてください

一方、2つの独立したリンクを持つことは非常に便利です。 IPv6で1対1のNATを実行する方法はありますか(Linuxマシンをルーターとして使用しています)?どうすればよいですか?2つを使用し続けることができますか? ISP(両方がIPv6をサポートしている場合)。

ISPからサブネットを取得するときは、インターネットに面したIPアドレス(パケットをISPにルーティングできるようにするため)と、LANに面した2番目のIPアドレスが必要です。 IPv6では、両方がルーティング可能である必要があります。これは、ISPから少なくとも2つのサブネットを取得する必要があるという意味ではありませんか?または、ISPは2つの/ 64サブネットだけでなく、/ 48サブネットを提供する必要がありますか? (そして、最初の/ 64サブネットをルーター内通信専用にします。)ISPから/ 64サブネットを1つだけ取得した場合はどうすればよいですか?

要約する:

質問

  • LinuxのIPv6で1対1 NATを実行できますか?どうすればよいですか?
  • ファイアウォールの背後にあるLANでルーティングを快適に設定するには、少なくとも2つの/ 64サブネットを受信する必要がありますか?
  • ISPから単一の/ 64サブネットを取得した場合、LANにパブリックアドレスを設定する方法はありますか?
6
Hubert Kario

BGPと「ビジネスクラス」ISPがなければ、マルチホーミングは機能しません。 is 1対1で行うことは可能ですNAT IPv6で。Linuxで構成する方法はわかりませんが、別の方法があります。

両方のISPからプレフィックスを取得します。おそらく/ 56または/ 48です。この場合、ISPへのリンクが独自のアドレスを取得するかどうかは重要ではありません。 IPv6は、番号のないアップリンクで完全に機能します。次に、各ISPからLANにルーターを接続します。どちらも、LAN上の独自のISPから/ 64をアドバタイズする必要があります。したがって、すべてのシステムは(少なくとも)2つのパブリックIPv6アドレスを取得します。1つは各ISPからです。プライマリISPのアドバタイズメントに高い優先度を与えることができます。 ISPへのリンクがダウンすると、対応するルーターはそのアドバタイズメントを撤回する必要があり、システムは他のリンクの使用を開始します。

唯一の欠点は、一方のISPがもう一方のISPからの送信元アドレスを持つパケットを受け入れない場合です。その場合、ルーターは送信元アドレスを確認し、間違った送信元アドレスを持つトラフィックを他のルーターに転送する必要があります。

ISPから/ 64を1つしか取得できない場合は、LANでそれを使用できます。しかし、彼らはあなたにそれ以上のものを与えるはずです。/48は長年の標準でしたが、最近は/ 56がより一般的になっていますが、/ 64よりも確実に多くなるはずです。

5
Sander Steffann

IPv6で1対1 NATを実行する方法はありますか(Linuxマシンをルーターとして使用しています)?

これは「ネットワークプレフィックス変換」として知られており、Linuxはそれをサポートしています。 「マングル」テーブルで「SNPT」および「DNPT」ターゲットを使用します(「nat」テーブルはステートフルNATにのみ使用されます)。

どうすればいいのですか?

SNPTターゲットを使用して発信パケットの送信元プレフィックスを変更し、DNPTターゲットを使用して着信パケットの宛先プレフィックスを変更します。ステートレスなので、明示的に両方向に変換する必要があります。

LANで1つのISPアドレスを使用して他のISPに変換するか、LANでULAアドレスを使用して両方のISPに変換することができます。

2つのISPを引き続き使用できますか(両方がIPv6をサポートしている場合)。

はい。

明らかに、V4 NATの場合と同様に、ISPスイッチは確立された接続を切断するため、ルーティングがかなり安定していることを確認する必要があります。

この構成をIPv6で複製する方法を考えていました。私が読んだことから、「NATは死んでいる」ということです

IPv6の純粋主義者はそれを好まないが、Linuxは最近IPv6のステートフルNAT実装を追加した。したがって、必要に応じて単一のV6IPの背後にネットワーク全体を隠すことができる。

ファイアウォールの背後にあるLANでルーティングを快適に設定するには、少なくとも2つの/ 64サブネットを受信する必要がありますか?

マシンにパブリックIPを配置する場合、またはNPTを使用する場合は、サブネットでそれを行う必要があります。

コンシューマー/小規模ビジネスISPでのIPV6の一般的なシナリオは、CPEルーターのインターネット側に単一のアドレスを割り当てることです。次に、DHCPv6プレフィックス委任を使用して、顧客がネットワークで使用するプレフィックスを割り当てます。通常は、各顧客に/ 56を割り当てます。

残念ながら、私が知っている少なくとも1つのISPは、現時点では以降のプレフィックス委任をサポートしていないISP提供のCPEルーターの使用を要求しています。したがって、ルーターの背後に独自のファイアウォールを配置したい場合は、ちょっと立ち往生しています:(

1
Peter Green

解決策はIPv4の場合と同じです。プライベートネットワークをNAT 2つのWANリンクで非表示にする必要があります。

一意のローカルアドレス(ULA)は、「IPv6のプライベートネットワーク」です。ネットワークプレフィックス変換(NPt)は「NATforIPv6」です。ネットワークに内部IPv6一意ローカルアドレスを割り当てます。そうする必要はありませんが(ネットワークが別のプライベートネットワークとマージする必要がある場合に、ULAが衝突する可能性はIPv4サブネットと衝突する可能性よりもはるかに小さい)、ULAを登録することには少なくとも理論上の利点があります。各WANインターフェイスでNPtを有効にし、内部ULAと各プロバイダーのIPv6プレフィックスをNPtに提供します。RIPE-NCCから​​の独自のIPv6サブネットは、独自のIPv4サブネットと同じ理由で機能しません。動作しません(BGPサポートの予算が不足しています)。

NPtは私にとって非常にうまく機能しました。私の意図は、内部IPv6アドレス指定スキームとISPのアドレス指定スキームを独立させることだけでした。そのため、ISPを切り替える場合、ネットワーク構成全体ではなく、ISPプレフィックスのみを変更する必要があります。理論的には、プロトコルがルーティング不可能なアドレスをリモートマシンに送信し、リモートマシンが接続を試みた場合、IPv4 NATと同じ問題が発生します。

1
Doug