freebsdでopenbgpdを使用している間の発信トラフィックの負荷分散


8

2つのISP接続を備えたfreeBSDでopenbgpdを使用しています。自分のAS番号と/ 22ネットワークがあります。現在、/ 22全体を両方のネットワークに広告しています。インバウンドトラフィックが着信しますが、私のアウトバウンドトラフィックは単一のリンクを経由します。

送信トラフィックも負荷分散されるように、両方のリンクを介して送信トラフィックを分散したいと思います。

freebsdでopenbgpdを使用してこれを構成する方法?

私の現在のopenbgpd構成は参照用に添付されています。

AS 00my-as
listen on xx.xx.xx.x
router-id xx.xx.xx.x
network aa.aa.aa.0/22
group "ISP1" {
  remote-as 11remoteas-1
  neighbor bb.bb.bb.1 {
   descr "ISP1"
   announce all  
  }
}
group "ISP2" {
  remote-as 22remoteas-2
  neighbor cc.cc.cc.37 {
   descr "ISP2"
   announce all  
  }
}
deny from any
deny to any
allow from bb.bb.bb.1
allow to bb.bb.bb.1
allow from cc.cc.cc.37
allow to cc.cc.cc.37

回答:


2

私は何年もopenbgpdを使用していないので、構成に適用できるいくつかの理論を説明します。

プロバイダーはルートを送信できます。通常、「デフォルト」、「顧客」、または「完全」を送信します。デフォルトのルートはそれだけで、0.0.0.0 / 0がアナウンスされ、それらを介して0.0.0.0/0(任意のIP)に到達することがわかっています。あなたの状況は、両方のプロバイダーがあなたにデフォルトルートを手渡しているように聞こえます、そして、最も可能性が高いのは、ASNがより低いプロバイダーがすべてのトラフィックを得ていることです(ASNは、パケットが複数の宛先に行き、ASパスが等しい場合、タイブレーカーです)長さなど)。

「顧客」フィードでは、直接接続されているすべてのルートをアナウンスします。Level3のようなプロバイダーを使用している場合、このフィードを介してインターネットの半分が表示される可能性があります。他のプロバイダーのASNが低い場合、ピアに直接接続されていないトラフィックを受け取り、カスタマールートをアナウンスします。

「完全な」フィードには、直接接続されているサイトだけでなく、プロバイダーが到達方法を知っているすべてのサイトのルート通知があります。

あなたは次のようなことができるはずです:

show ip bgp summary(IOSコマンド)

どこかに受信されたプレフィックスの数をリストする必要があります。

既存のプロバイダーの両方がデフォルトルートを送信している場合、接続は現在フェイルオーバー用に設定されています。プロバイダーAがダウンすると、プロバイダーBにルーティングされます。デフォルトルートとともに両方からカスタマーフィードを取得すると、トラフィックは、指定されたアドレスに到達するためのASpathが最も短いプロバイダーに流れ、デフォルトにフォールバックします。アドレスが見つからなかった場合はルーティングします。両方から完全なフィードを受け取った場合、プロバイダー間のオーバーラップに応じて、トラフィックをそれぞれへの「最適な」パスから送信します。

ボーダールーターの1つで、310540のアクティブなルートを表示します。十分なRAMがあり、完全なルートをとる場合は両方のプロバイダーからのルートを処理するようにマシンを構成していることを確認してください。より快適になるまで、両方からカスタマールートを取得して実験することもできます。または、2つの小規模プロバイダーから顧客ルートを取得して、状況がどのように変化するかを確認します。

これでもまだ「ロードバランス」またはトラフィックに応じてトラフィックを均等に分割しません。1つのプロバイダーが依然としてトラフィックの大部分を占めていることに気付くでしょう。この時点で、トラフィックを調整して一方または他方を優先するように、いくつかのプレフィックス/ルートマップを実行する必要があります。

ルートマップまたはASNマッチを設定してトラフィックをシフトすると、宛先サイトがダウンし、それらのルートがそのプロバイダーから削除された場合でも、ルーターはトラフィックを他の接続に送信します。BGPはやや自己回復します。

これで、ASNに基づいて一致するいくつかのマップが定義されました。

PROVIDER_A_TO PROVIDER_A_THROUGH PROVIDER_B_TO PROVIDER_B_THROUGH

ジュニパーネットワークスを使用すると、コミュニティを使用するよりも簡単になります。

プレフィックスリストは、宛先が特定のASNであるかどうかを確認し、そうである場合は、_TOマップを通過します。ASNが_THROUGHにリストされている場合、そのプロバイダーを優先します。プロバイダーの1つがAT&Tに直接接続しているため、PROVIDER_B_THROUGHは7018 | 7019(および他のいくつかのASN)に一致するため、AT&TトラフィックはデフォルトでプロバイダーBに送信されます。 。

openbgpdにも同様の方法があると思います。


3

BGPはロードバランシングプロトコルではありません。

繰り返しますが、BGPは負荷分散プロトコルではありません

すべてのトラフィックが単一の接続で送信される場合、私の最初の推測は、無視されているプロバイダーからの完全なフィードを取得していないことです。ルーティングは、より具体的なルートが優先されるようになっているため、192.168.0.0 / 23のルートがプロバイダーaに行き、192.168.0.0 / 24と192.168.1.0/24の2つのルートがプロバイダーbに行く場合、プロバイダーaは完全に無視されます。OpenBGPについてはよく知りません。ですから、確認せずに確認する方法の詳細を説明することはできません。ただし、最初に行う必要があるのは、両方のプロバイダーが既定のルートだけでなく、完全なフィードを提供していることを確認することです。

その場合は、アウトバウンドトラフィックのルートプリファレンスとインバウンドトラフィックのパスパディングを調べる必要があります。変更の有効性を判断するのに十分な大きさのデータセットがあることを確認するために、構成変更の間に24〜48時間待つようにしてください。


1

橋を架ける。Freebsdは、実際には現在のプレフィックスの上流機能の負荷分散を行い、非常にうまく負荷分散します。BGPはしません。/ 22ごとにアップストリームISPをインストールし、両方のISPにアナウンスすることができ、/ 30 wanプレフィックスを拒否する可能性がありますが、iBGPがそれをピックアップします。iBGPはブリッジで適切に動作し、OSPFを実際に必要としません。これで、ロードバランサーと完全に冗長なBGPセットアップができました。私たちはいくつかのアップを持っており、インターネットへのギグリンクでそれらを愛しています。


1

最初に確認することは、両方のBGPセッションが実際に機能しているかどうかです。使用する

bgpctl show summary

また、両方のピアとメッセージを交換しているかどうかを確認してください。

また、ピアを介してトラフィックをルーティングさせたい場合を除き、「すべてをアナウンス」を削除する必要があります。

Justeはアナウンスをすべて削除すれば大丈夫です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.