■ MED
前回説明すると言った残りのパスアトリビュートを説明する。まず、MED。
タイプコード | アトリビュート名 | 特性 |
---|---|---|
1 | Origin | Well-known Mandatory |
2 | AS_Path | Well-known Mandatory |
3 | Next_Hop | Well-known Mandatory |
4 | Multi_Exit_Discriminator(MED) | Optional Nontransitive |
5 | Local_Preference | Well-known Discretionary |
6 | Atomic_Aggregate | Well-known Discretionary |
7 | Aggregator | Optional Transitive |
8 | Community | Optional Transitive |
9 | Originator | Optional Nontransitive |
10 | Cluster_list | Optional Nontransitive |
- | Weight | - |
[TableRT19-03:パスアトリビュート]
まるち いくじっと でぃすくりみねーたー?
Discriminatorってなんです?
Discriminatorは「識別するもの」だな。つまりMEDは「複数の出入り口を識別するもの」という意味になる。
このパスアトリビュートは前回までのWell-known MandatoryではなくOptional Nontransitiveになる。
ピアがMEDをサポートしていなくてもいいし、他ピアに伝える必要もない、ですよね。
そうだ。何故かと言うと、名前が示す通りちょっと特殊だからだ。
MEDのMulti Exitつまり「複数の出入り口」とは何を意味する?
複数の出入り口?
出入り口が複数ある? なんの出入り口が複数あるんですか?
おいおい、発想力が貧困だな。
発想力が香港って、どんな発想力ですか?
豪快な聞き間違いをするな、キミは。香港な発想力がどんなかは私が知りたいよ。
ともかく、この図を見てもらおう。
[FigureRT16-03:シングルホーム・マルチホーム]
複数の出入り口…マルチホームAS?
そういうことだ。MEDはマルチホームASで使われるパスアトリビュートということだ。
図で説明しよう。
[FigureRT20-01:MED]
マルチホームASで、隣接ASからどのパスを使ってもらうか決定できるのがMED、ということになる。
どのパスを使ってもらうかを決定…。上の例ですと、AとC間のパスを使ってもらうために、AからのアドバタイズのMEDを100、BからのアドバタイズのMEDを200にしたってことですか?
そういうことだ。MEDだけが他ASのパス選択に影響を及ぼすことができるアトリビュートだ。
他のアトリビュートは基本的に自AS内での話だからな。
ははぁ、すごいアトリビュートなんですねぇ。
だが、MEDは後で話すがベストパス選択の優先順位が低いのだよ。
やはり自ASの都合(他のアトリビュート)が隣接ASの都合(MED)よりも優先する、ということだな。
ふむふむ。身内に甘いのですね、BGPは。
ヤな言い方だな、それは。
ちなみにCiscoルータでは、MEDは「メトリック」として表現される。
めとりっく? あのメトリックですか?
そうだ。ベストパス選択の仕組みを見てもらえばわかるが、MEDは事実上IGPのメトリックと同じ役割を果たすのだよ。
そうなんですか?
…MEDが低いパスをベストパスとして選択する…、うん、確かにIGPのメトリックっぽいですよね。
うむうむ、そういうことだ。
あとは、MEDはOptional Nontransitiveなので、送られる範囲が限定される、ということも覚えておくことだな。
[FigureRT20-02:MEDがアドバタイズされる範囲]
1つ向こうのASにはアドバタイズされないわけですね。
AS1とAS2の間でのアトリビュートだから、AS3は関係ない、と。
■ Local_Preference
さて、次はLocal_Preferenceだが。
名前からもわかるとおり、IBGPでしか使われないアトリビュートだ。
ろーかる、だからAS内のIBGPってことですね。
そうだ、Local Preference、「ローカルでの選択」とでも訳すのがいいだろう。
ローカルでの選択。何をですか?
他のASへ行くためのBGPスピーカを選択するのだ。
つまり、以下の図のような形になる。
[FigureRT20-03:Local_Preference]
他ASの出口を決定する…。
そうだ。宛先へ行くとき、どのBGPスピーカを経由していくかを決定するものだ。
もちろん、マルチホームASで有効なアトリビュートだ。
へへぇ、なんか、さっきでてきたMEDの逆みたいなアトリビュートですね。
そうだな。MEDがどのパスでASに入ってくるかを選択する(してくれるよう隣接ASに頼む)アトリビュートなのに対し、Local_Preferenceはどのパスで出て行くかを選択するアトリビュートということになるな。
ですよね、似てますよね。
でも、MEDは低い方がベストパスなのに、Local_Preferenceは大きい方がベストパスなんですね。
うむ。逆なので間違えないように。
Local_Preferenceのポイントはまず、IBGP専用アトリビュートであること。
そりゃそうですよね。どのスピーカで出て行くかなんて、他ASはしったこっちゃないですよね。
それと、Local_Preferenceは宛先ネットワークごとに変更ができる。
[FigureRT20-04:Local_Preferenceによるパス選択]
このように、AS単位でなく、ネットワーク単位でLocal_Preferenceを設定して、ベストパスを変えることも可能だ。
ははぁ、細かい制御ができるんですねぇ。
■ Weight
パスアトリビュートの説明として、最後にWeightというアトリビュートを説明しよう。
うぇいと? 重さ?
そうだな、重さだな。これはCiscoルータ独自のアトリビュートだ。
これはピアにアドバタイズされない、そのスピーカ専用のアトリビュートだ。
え〜っと、つまりそのルータでしか使われないアトリビュートってことですか?
そうだ。
役割的にはLocal_Preferenceの逆になる。使用するネクストホップを自分で決定するためのアトリビュートだ。
使用するネクストホップを自分で決定する…。Local_Preferenceは、ピアがアドバタイズした値を使うから、自分で決定するわけではない、ですね。
そういうことだ。
[FigureRT20-05:Weight]
つまり「そのBGPスピーカの都合」がWeightだ。
ははぁ、確かにそのBGPスピーカがピアに設定した値でベストパスが決まるわけですから、そのスピーカの都合、ってことになりますよね。
うむ。デフォルト値は他からのアドバタイズには0、自身が接続されているルートには32768が使われる。
ははぁ。デフォルトでは自身が接続されているルートがベストパスなんですね。当たり前と言えば当たり前ですけど。
…、ということは、ピアのWeightを32768より大きくすれば、直接接続じゃなくて、他のルータを経由していくこともありうるってことですか?
まぁ、そういうこともありえるかもしれんが、基本的に直接接続は管理距離が最小だから、そちらが普通選ばれるな。
あ〜、そういわれればそうかも。
■ ベストパス
さて、これで重要なパスアトリビュート、Origin、AS_Paht、Next_hop、MED、Local_Preference、Weightを説明したわけだ。他のアトリビュートは機会があったら紹介しよう。
はい。
ネット君、いままでの説明から言えることはなんだね?
はぁ、なんか覚えることが一杯ですね。
そういう事を聞いてるんじゃなくてだな……、ネット君。君はほんとに手ごわいな。
そうですか? いや面と向かって言われると照れますね。
褒めてねぇ。
はぅっ。
ともかくだ。パスアトリビュートによってベストパスが選択されるわけだ。
だが、アトリビュートの優先順位が必要じゃないか? というネット君の返答を期待していたのだが。
あぁ、そうそうそう。それですよ、そう。
まったく。ネット君は本当に発想力が…。
香港ですか?
いや、
ともかく、どのアトリビュートから比較していって、ベストパスを決定するかを説明しよう。
はい。
1つのネットワークに対し、複数のパスがBGPテーブルに存在する場合、ベストパス選択の第一歩は…。
Step.1
- Next_HopアトリビュートのBGPスピーカへ到達できないパスは削除します。
Next_Hopへ到達できないパスは使わない…。
なんかものすごく当たり前なんですけど。
まぁ、当たり前といえば当たり前のことだが、BGPではNext_Hopに指定されているからといって、必ずそこへ到達できるとは限らないからな。
前回出てきた、NBMAネットワークのようにですか?
うむ、そういうことだ。なお、Next_HopがIBGPピアだった場合、BGP同期がされていないパスも削除される。
そして次は…。
Step.2
- Weightが最も大きいパスをベストパスとする。
さきほど出てきたWeightだな。Cisco独自のアトリビュートということを忘れないように。
自分の都合が最優先ってことですね。
Step.3
- Weightが同じ場合、Local_Preferenceが最も大きいパスをベストパスとする。
次は身内の都合ですか。
そういうことだ。ここでの注意点はLocal_PreferenceはWell-known Discretionaryなので、パスによってはLocal_Preferenceが設定されていない場合があるということだ。
Well-known Discretionaryは、サポートは必ずしなければならないが、UPDATEに必ずしも含まれる必要はない、でしたよね。
Local_Preferenceがあるパスとないパスがあることがあるってことですよね。
うむ。そういう場合は、Ciscoルータの場合保留して、次のStepに進むことになる。
Step.4
- Local_Preferenceが同じ場合、自身が生成したパスをベストパスとする。
自分がアドバタイズするように設定したパスを優先するということだ。
Step.5
- 自身が生成したパスがなく、Local_Preferenceが同じ場合、AS_Pathが最短のパスをベストパスとする。
Step.6
- AS_Pathが同じ場合、Originが小さいパスをベストパスとする。
AS_PathとOriginは前回出てきましたよね。AS_Pathは経由AS数、Originは発生元でしたね。
そうだ。最初のNext_Hopを除くと、Step.5で初めてWell-known Mandatoryのアトリビュートが登場する。
つまり、WeightやLocal_Preferenceを特に設定しなかった場合AS_Pathがベストパス選択の基準となる。
Weightはローカル専用、Local_PreferenceはUpdateに含めなくてもいいアトリビュートですものね。
Step.7
- Originが同じ場合、MEDがもっとも低いパスをベストパスとする。
ここまでで説明したアトリビュートが全部出揃ったわけだ。
そうなりますね。
これでも決まらなかった場合、以下のように続く。
Step.8
- アドバタイズしてきたピアがIBGPピアよりもEBGPピアを優先し、ベストパスとする。
Step.9
- IBGPの場合、IGPで最も近いピアのルートをベストパスとする。
- EBGPの場合、最も古くアドバタイズされたパスをベストパスとする。
Step.10
- ルータIDが最小のピアのルートをベストパスとする。
Step.11
- IPアドレスが最大のピアのルートをベストパスとする。
これでベストパスが決定され、ルーティングテーブルに反映される。
その後、ピアにベストパスをアドバタイズする、ということが行われるわけだ。
うぅぅ、11個もステップがあると覚えるのが大変です。
ネット君はもちろんのこと、確かにちょっと大変だな。
Step7までを単純に言うと。
- Weightが最大(ルータの都合)
- Local_Preferenceが最大(ASの都合)
- AS_Pathが最短(パスベクタ)
- Origin
- MEDが最小(隣接ASの都合)
と、こうなる。
Step7までをとりあえずしっかりと覚えたまえ。
は〜。
Step7までだけでもポリシーベースルーティングと呼ばれる理由がわかるだろう?
そうですね。これだけいろいろあればほとんど望む形でパスを変更できますよね。
そうだ、この柔軟性がBGP4の特徴だからな。
さて、今回はここまで。
あ、はい。
ではまた次回。
了解です。
30分間ネットワーキングでした〜♪
- 32768
-
Weightは0〜65535の値をとります。
32768はちょうど中央。
- BGP同期が…
- もちろん、同期を有効にしていない場合は別。
- Ciscoルータの場合
- ベンダによってはLocal_Preferenceのデフォルト値を100として判断する場合もあります。
- 自分が生成した…
- つまり、そのルータがnetworkコマンドで指定したパスということになります。
- 管理距離
-
[Administrative Distance]
ネットワークの情報を複数のプロトコルで入手した場合に使用する優先度。
後述。
- ハイパーネット君の今日のポイント
-
- MEDはどのパスを使ってもらうか隣接ASのピアにアドバタイズする。
- Local_Preferenceは自AS内でネクストホップにどのピアを優先させるかを決定するためにアドバタイズする。
- WeigthはCisco独自のアトリビュートで設定したルータでのみ有効。
- ピアにWeightをつけることにより優先するピアを決定できる。
- ベストパスは、Weight、Local_Preference、AS_Path、Origin、MEDの順で決定される
- 特に設定しなければ、AS_Pathで決定される(パスベクタ)
- BGPではアトリビュートの変更により、柔軟にパスを決定できる
- ベストパスはルーティングテーブルに記載され、ピアにアドバタイズされる。