労働者の要求に応じて:BGPを使用しないCiscoルーター上のデュアルISP

それにもかかわらず、疑問を提起し続ける典型的なタスク。



テクノロジーの本質と落とし穴について簡単に説明します。



したがって、1つの内部ポート(g0 / 0)と2つの外部(f0 / 0、f0 / 1)を備えた1つのCiscoボーダールーターを用意します。 2つのプロバイダーへの接続があり、それぞれがアドレスプール(ISP1)とプール(ISP2)のプールを発行しました(これらは特定のプロバイダーに属するいくつかのネットワークです)。 簡単にするために、同じプールのインターフェイスのアドレスをf0 / 0およびf0 / 1とします。 そして、同じプールからのゲートウェイのアドレス(それぞれゲート(ISP1)とゲート(ISP2))。

BGPを上げる機能がないため、各プロバイダーのデフォルトルートを登録する必要があります。 そして、ここで最初の質問が発生します:どの問題を解決したいですか? 2つのプロバイダーとの予約または同時作業ですか?





ご予約



このトポロジでは、一度に1つのプロバイダーのみが機能します。 つまり、ISP1プロバイダーがチェックされるように手配し、生きている場合はそれを通過し、「死んでいる」場合はISP2バックアッププロバイダーに切り替える必要があります。 落とし穴があります:NAT。 いくつかの変換ルールを記述できますが、何らかの方法でISP1を終了するときにプール(ISP1)を使用し、ISP2を終了するときにプール(ISP2)を使用することを示す必要があります。 ISP2を通過し、ソースアドレスがプール(ISP1)からのものである場合、最適な場合は非対称ルーティングを取得し、最悪の場合はパケットがまったく届かないことは明らかです。たとえば、プロバイダーはRFC2827フィルタリングを使用する要件を満たしているためです。ネットワークからではなく送信元アドレスを持つパケットを受信します。

したがって、2つのサブタスクがあります。出力インターフェースを考慮して、プロバイダー(ルート)の活性をチェックし、アドレス変換を行います。



活気を確認してください。


Ciscoルーターには、SLAと呼ばれるすばらしい技術があります。 これを使用すると、pingを使用して特定のアドレスを確認できるだけでなく、特定のサービス(ftp-connect、tcp-connect)または通信チャネルパラメーター(icmp-jitter、udp-jitter)の活性も確認できます。 ここでは、最も単純で最も一般的な方法である特定のホストへのpingを検討します。 簡単にするために、ゲートプロバイダー(ISPX)のゲートウェイアドレスにpingを実行します。 別のアドレスをpingする必要がある場合は、チェックする特定のプロバイダーを介してこのアドレスへのルートを明示的に登録する必要があります。



 !  「pingoval」のパラメーターを設定します
 ip sla {#}
   icmp-echo {ip} [ソースインターフェイス{int}]
 !
 !  pingovalkuを開始します
 ip sla schedule {#}今すぐ永遠に開始
 !
 ! ルートが依存する「スイッチ」(トラック)を設定します
追跡{#} ip sla {#}到達可能性
 !
 ! 追跡付きのデフォルトルートを設定する
 ip route 0.0.0.0 0.0.0.0 {next-hop} track {#}




注:古いIOSでは、slaへのトラックのバインディングコマンドは次のようになりました



 {#} rtr {sla#}到達可能性を追跡する


ホストが応答すると、トラックはUP状態になり、ルートはルーティングテーブルになります。 A

pingが消えた場合、設定された期間(デフォルトでは3 * 10秒)後に追跡します

状態をDOWNに変更し、ルートが再び変更されるまでルートが削除されます

状態。



例:

 ip sla 1
   icmp-echo Gate(ISP1)
 ip sla schedule 1 start now life forever
トラック11 ip sla 1到達可能性
 ip route 0.0.0.0 0.0.0.0 Gate(ISP1)トラック11


ISP2は、チャネルに不要なサービストラフィックを作成しないようにチェックできません。 予備のものがあり、高価な場合があります(たとえば、衛星チャンネル、または勤務時間で支払われるダイヤルアップチャンネル)。 アドミニストレーティブディスタンスが大きい2番目のプロバイダーへのルートを作成し、メインプロバイダーが消えたときにのみ機能するようにします。



発信インターフェイスに基づいてアドレス変換ルールを設定します。




実際には、動的変換と静的アドレス変換の2つのタスクがあります。 最初に外出する必要があり、2つ目はサービスの発表用です。 どちらの場合も、ルートマップと呼ばれる構成が必要です(各プロバイダーのルートマップを作成する必要があります)



 ! ルートマップを作成する
ルートマップISPX許可{#}
   ! この段落ルートマップに入るための基準を指定する  
  一致インターフェース{送信インターフェース}




微妙な点があります:ツールチップでword interfaceを指定すると、



  ルートの最初のホップインターフェイスと一致します


つまり 一般的に言えば、このパラメーターが何であるかは明確ではありません。 さらに、インターフェイス自体に書かれている内容によっては、この基準は着信インターフェイスと発信インターフェイスの両方を意味する場合があります! そして、それはインターフェイスのip natコマンドで何が書かれているかに依存します:



ip nat inside-基準は着信インターフェースを意味します

ip nat outside-基準は発信インターフェースを意味します



次に、各プロバイダーからのアドレスのプールが必要です



   ip nat pool PoolX {start-ip(ISPX)} {end-ip(ISPX)}


そして、あなたはすでに各プロバイダーのNATルールを書くことができます



  ソースルートマップISPX poolXオーバーロード内のip nat


オーバーロード-PAT(ポートアドレス変換、ソースポート変換)を使用することを意味するキーワード

静的なブロードキャストを追加する必要がある場合、ほぼ同じことを行います(サーバーが各プロバイダーからSrv(ISPX)アドレスを、サーバーSrv(LAN)からローカルアドレスを予約できるようにします)。



  ソーススタティックSrv(ISPX)Srv(LAN)ルートマップISPX内のip nat




____________

UPD注意:アッパーミッション!

でなければならない

  ソーススタティックSrv(LAN)Srv(ISPX)ルートマップISPX内のip nat 


____________



この場合、もちろん、DNSサーバー上の両方のアドレス(Srv(ISP1)とSrv(ISP2))が登録され、同じ名前を指していることを確認する必要があります。



合計、我々は得た:



 ! 
 ! インターフェース
 int g0 / 0
   IPアドレス[LAN]
  内部IP NAT
 !
 int f0 / 0
   IPアドレスアドレス(ISP1)
   ip nat outside
 !
 int f0 / 1
   IPアドレスアドレス(ISP2)
   ip nat outside
 !
 ! ルーティング
 ip sla 1
   icmp-echo Gate(ISP1)
 ip sla schedule 1 start now life forever
トラック11 ip sla 1到達可能性
 ip route 0.0.0.0 0.0.0.0 Gate(ISP1)トラック11
 ip route 0.0.0.0 0.0.0.0 Gate(ISP2)50
 !
 !  NATのプール
 ip nat pool POOL1 {start-ip(ISP1)} {end-ip(ISP1)}
 ip nat pool POOL2 {start-ip(ISP2)} {end-ip(ISP2)}
 !
 !  NATaのルートマップ
ルートマップISP1許可10
  インターフェースf0 / 0と一致
 !
ルートマップISP2許可10
  インターフェースf0 / 1に一致
 !
 !  NATaルール
ソースルートマップISP1 POOL1オーバーロード内のip nat
ソースルートマップISP2 POOL2オーバーロード内のip nat
ソーススタティックSrv(LAN)Srv(ISP1)ルートマップISP1内のip nat
ソーススタティックSrv(LAN)Srv(ISP2)ルートマップISP2内のip nat




2つのプロバイダーの同時使用



最初のケースですべてが明確で曖昧でない場合、2つのプロバイダーを同時に使用する場合に問題が発生します。



このトピックは面白いですか? どんな考えや問題がありますか?

書く:私は私の考えでコンパイルし、必要に応じてレイアウトします。



All Articles