BGPでマルチパスするときに必要なmaximum-path以外の設定

PAKU740I9A4765_TP_V

BGPで複数経路を同時に利用する(マルチパス)場合の設定では「maximum-path」が有名ですが、これだけだとルーティングテーブルに複数パスが設定されない場合があります。

同じ事象で悩んでいる方は、この記事が役に立つかもしれません。

まぁ現実世界で利用する必要性はほとんどないかもしれませんが、CCIEのラボ環境だとありえるかもなので。

スポンサーリンク
レクタングル大

BGPでマルチパスを行う方法

詳細は、以下のリンクを参考してください。非常に非常に参考になります。というか、私がCCIEの勉強をしていた時もこのページは熟読しました。

シングルホームおよびマルチホーム環境における、BGP を使用したロード シェアリング:設定例

ちなみに、このレベルを勉強されている方は既にご存じだと思うのですが、そもそもマルチパスの対象とするBGPプレフィックスの候補になる為にはBGPのPath Selectionでかなり深いところまで対象のプレフィックスが一致する必要があります。その辺は以下を参考にしてください。CCIEを受けるなら、これも必読です。

BGP で最適パスを選択するアルゴリズム

つまり、マルチパスを行う流れとしては以下となります。

  1. ルータがBGPプレフィックスでマルチパスとしてルーティングテーブルに入れれる2つのプレフィックスを持っている事
  2. maximum-paths 2(かそれ以上)を設定する事

基本的には、これでルーティングテーブルに「B」がついた2つの経路が表示されるはずです。

上記だけだとマルチパスできなかったケース

今回、BGPのマルチパスの練習として以下のトポロジを作成したところ、マルチパスが出来ませんでした(R7のルーティングテーブルに1.1.1.1/32の経路が一つしか表示されない)。

例によってINEのトポロジを流用しています。汚くてごめんなさい。Apple Pencilに慣れるのにもう少しかかりそう。

IMG_0065 copy

考え方としては、R1で1.1.1.1/32をBGPのTableにInjectします。それを全部違うASで回して、最終的にR7がR6とR3から受け取るイメージ。

念のため、コンフィグを紹介します。

R1:

R3:

R6:

R7:

この状態でのR7のBGP Tableとip Tableが以下の通りです。

1.1.1.1/32を2経路から貰っているにもかかわらず、ip tableに1経路しか表示されていないことがわかると思います。このままだと、もともとの目的であるマルチパスが達成されいません。

なぜでしょうか?

複数AS元へマルチパスするときは追加設定が必要

ネットで色々調べたところ、どうやら複数AS元から同一プレフィックスをもらって、それをマルチパスするときは以下のコマンドが追加でR7に必要のようです。

・bgp bestpath as-path multipath-relax

なぜ「のようです」と書いているかと言いますと、このコマンド自体隠しコマンドで「?」などでcontext helpが使えません。

実際に設定してみました。

いかがでしょうか。「?」を入力してそんなコマンドないよ!と言われても実際にはコマンドを投入できています。そして、投入後のsh ip routeの結果としてマルチパスが実現できていることが確認できます。

ただ、現実的な設計では、殆どの場合同一ISPへマルチホーミングするなどでマルチパスを使用すると思うので、このコマンドを利用する機会は少ないのではないでしょうか。ラボ試験ではどんな問題がでるか分からないので、知っておくにこしたことはないと思います。

参考までに、R3をR6と同じAS(AS3→AS6)に変更した後にR7の情報を紹介しておきますね。bgp bestpath as-path multipath-relaxは外しました。

bgp bestpath as-path multipath-relaxなしでも、マルチパスが実現出来ています。

BGPは色々隠しコマンドがあってややこしいですね・・・

勉強を再会する方へ
スポンサーリンク
レクタングル大
  • このエントリーをはてなブックマークに追加

コメントをどうぞ

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">