web-dev-qa-db-ja.com

複数のeBGPルーターで非対称ルーティングを防ぐ方法は?

/ 22サブネットを異なるプロバイダーに通知する2つのルーターがあります(1つのプロバイダーが2つのルーターのそれぞれに接続します)。/22を2つの/ 23に分割して、各ルーターと/ 22で1つずつ/ 23をアナウンスしました(プロバイダーはより具体的なルートを使用します)。これにより、フェイルオーバーして、/ 23内のトラフィックを同じプロバイダーに出入りさせることができます。

/ 22だけを両方のルーターでアナウンスし、ルーターの背後にあるネットワーク上のサーバーからのパケットを、それらが入ったのと同じルーターから送り返すことができる他の方法は何ですか?

編集:

私が遭遇する主な問題は、エンドユーザーとクライアントが最も不満を言うことですが、最小ホップルートが「最適な」ルートではない場合があるということです。私の場合、プロバイダーBの方がX国家への待ち時間が長い可能性があることを知っています。しかし、パケットがプロバイダーBから着信すると、プロバイダーAまたはプロバイダーBから発信される可能性があります。逆も同様です。プロバイダーAからX国にパケットを送信すると、ホップ数が多くても、パケットはプロバイダーBから届く可能性があります(この国へのレイテンシ、パケット損失などが大きい可能性があります)。

5
Andy Shinn

厳密に言えば、複数のプロバイダーにプレフィックスをアナウンスすると、受信トラフィックの完全な制御が失われます。これは、リターントラフィックのダウンストリームで独立したルーティング決定が行われるためです。さらに、アナウンスは、送信後に下流のプロバイダーによって変更される可能性さえあります。

これは、起こり得ることの1つの例です。 2.2.0.0/22を所有するAS 777があるとします。ルーターAを使用している会社がアクセスする必要のあるサービスがあります...また、AS 100が適切なリンクを持っていないと仮定しましょう(おそらく、修正できなかった物理層の問題により、断続的にトラフィックが破損している可能性があります)。 )。ですから、あなたは自分で考えてみてください"AS100へのすべてのアナウンスに大量のASNを付加するだけなので、これを修正できるまで誰もAS100リンクを好まないでしょう"

bgp asymmetric

問題は送信ルーティングの決定を完全に制御できることだけです。あなたはインバウンドの完全な制御を得られません...それで、ルータAの管理者がAS100へのリンクが悪いことを知らないと仮定しましょう。それらはAS200とAS100にデュアルホーム接続されていますが、AS100はMbpsあたりのはるかに安価なトランジットを提供します。したがって、ルーターAのエンジニアはAS100から完全なルートを取得し、AS200のみをバックアップとして使用します(それらからデフォルトのみを取得します)。

AS 777の管理者として、AS 200を介してルーターAへのトラフィックを強制できますが、ルーターAから2.2.0.0/22へのトラフィックは引き続きAS 100になります(ルーターAでの最適なルートはAS 100を経由するため)。

可能な解決策

トラフィックを受信するロードバランサーまたはファイアウォールのため、通常は非対称パスが重要です。いくつかの可能な解決策:

  • 提供されるサービス他のASN内の場合、NAT all outboundトラフィックを特定のリンクにローカルなアドレスに送信しますAS(ただし、これはサービスプロバイダーには適していません)
  • 提供されるサービスの場合in your ASN、ソースNAT all inboundトラフィックをBGPピアリングのサブネットに対してローカルなアドレスに送信できます問題のルーター(ただし、これはサービスプロバイダーには適していません)
  • DMZを設定して、すべての異なるASNからトラフィックを受信し、アップストリームからのトラフィックに単一の入口/出口ポイントを提供することができます。状況によっては、 DMZデバイス(ただし、これはサービスプロバイダーにはうまく機能しません)
  • BGP Conditional Advertisement などの機能を使用する場合は、2.2.0.0/22へのインバウンドトラフィックに他のキャリアを使用しない代わりに、この種の問題を回避できることがあります。

サービスの性質と問題についての詳細を提供していただければ、より具体的なアドバイスを提供できる可能性があります。

8
Mike Pennington

/ 22だけを両方のルーターでアナウンスし、ルーターの背後にあるネットワーク上のサーバーからのパケットを、それらが入ったのと同じルーターから送り返すことができる他の方法は何ですか?

なぜこれが欲しいのですか?より正確には、なぜforceこの動作をしたいのですか(通常、これはルーティングの魔法のおかげで起こることなので)?


BGPと最新のインターネットを構成する分散型ルーティング階層の全体のポイントは、パケットが宛先への利用可能な最良のルートをとることです。パケットが着信した場合Route A だが Route Bは、何らかの理由で返信に適していますが、最適なルートで返信を送信したくないのはなぜですか。

これについて私が見ることができる唯一の理由は、より高価な運送業者からトラフィックを偏らせることを望んでいることです(その場合、より良い方法があります)。

1
voretaq7

ここで対称性を実現する方法は、実際にはNATの場合ほどBGPの機能ではありません。両方のルーターから/ 22と、それぞれから/ 23をアドバタイズするスキームを続行するとします。アウトバウンドNATを設定して、特定の境界ルーターを出るトラフィックにそのルーターの/ 23のソースアドレスが与えられるようにします。インバウンドトラフィックの対称性を実現するには、ソースNAT接続をグローバルソースから各境界ルーターに割り当てられた個別のプールに変換します。

接続が実際に行われているサーバーレベルでの可視性は失われますが、その情報はNetflowまたは同様のメカニズムを介してルーターから取得できます。

ここで紹介されているかなりの程度の潜在的な複雑性があり、これはサーバーのデフォルトゲートウェイをどこにどのように配置するかを意味します(しゃれはありません)。これは、ローカルで発信されたトラフィックを正しい方向に維持するために、適切なポリシーを備えたBGPスピーキングルータの中間層を必要とする場合があります。ただし、一般に、複数のルーターから同一のメトリックを使用して同一のルートをアドバタイズする場合、対称ルーティングを保証するエレガントな方法はありません。そして、正直なところ、特定のファイアウォールやロードバランサーなどの状態認識デバイスの特定の要件の外では、これはほとんどのネットワークの設計目標であるものではありません。

0
rnxrx