30 Minutes NetWorking
No.RT22

30Minutes NetWorking

BSCI

第22回BGP4(7) ポリシー制御とマルチホーミング

■ プレフィックスリスト

スーパーインター博士

BGPはポリシーベースルーティングだ、という話はしたな。

ハイパーネット助手

はい。パスアトリビュートを使って、メトリックという評価値以外の基準で柔軟にルーティングできるってことでしたよね。

スーパーインター博士

うむ。ルーティングをポリシーによって決定する、という方式のことだ。
パスアトリビュートによってルーティングを決定するのもこの1つだ。

ハイパーネット助手

この1つ?
じゃあ、他にも方法があるんですか?

スーパーインター博士

うむ。簡単だ。
ピアに使って欲しくないルートはアドバタイズしなければいい

ハイパーネット助手

………。
なるほど。アドバタイズされなければ、そのルートは知りようがないですからね。

スーパーインター博士

そうだろう。

ハイパーネット助手

コロンブスの卵というか、なんというか。豪快な方法ですね。

スーパーインター博士

確かに、そうかもな。
これはルートフィルタリングと呼ばれる方法だ。

ハイパーネット助手

ルートをフィルタリングする…。そのまんまですね。

スーパーインター博士

IGPでもルートフィルタリングは実行できる。特に再配布の時に重要なポイントとなる。
それは先の話として、今回はBGPでのルートフィルタリングの方法を説明する。

ハイパーネット助手

はい。

スーパーインター博士

Ciscoルータではプレフィックスリストというものを使う。

ハイパーネット助手

ぷれふぃっくす?
プレフィックスといえば、BSCI第1回でCIDRの時にプレフィックス長ってのが出てきましたが?

スーパーインター博士

うむ、そのプレフィックスだ。つまり、プレフィックス長をフィルタの条件とするリストだな。
アクセスリストっぽい書き方をするが、プレフィックス長がメインとなる。

ハイパーネット助手

ははぁ、なんかピンときませんけど。

■ プレフィックスリストの設定

スーパーインター博士

うむ。では例を出しつつ説明しよう。例えば、以下のようなネットワーク構成だとする。

プレフィックスリストの設定例

[FigureRT22-01:プレフィックスリストの設定例]

スーパーインター博士

そうだな。A、B、Cはそれぞれ別のASで、EBGPピアであるとしよう。
ここで、ルータAがルータCに対して送るアップデートのルータBの情報をある程度制限する必要があるとする。よってルータAに対し、プレフィックスリストを設定する。

ハイパーネット助手

ふむふむ。

スーパーインター博士

プレフィックスリストの設定コマンドはこう。

  • Router(config)#ip prefix-list list-name permit|deny ip-address/prefix [ge value] [le value]
ハイパーネット助手

あ〜、なんか確かにアクセスリストっぽいかも。

スーパーインター博士

うむ。これをアクセスリスト同様複数設定していくわけだが。
最後に暗黙のdenyがあるのもアクセスリストと同じだ。

ハイパーネット助手

っていうことは、お約束として最後に「すべてを許可」を書く、と。

スーパーインター博士

まぁ、そうなるかな。
ポイントはココだ。

  • ip-address/prefix [ge value] [le value]
スーパーインター博士

geは「以上(greater equal)」。leは「以下(less equal)」だ。
これを使うことにより、プレフィックス長が判断材料になる。

ハイパーネット助手

プレフィックス長が判断材料? なんですか、それは?

スーパーインター博士

うむ。つまりな。アドバタイズするネットワークのプレフィックス長を見て、permitかdenyか判断するのだよ。
例えば、「ge 16 le 24」だった場合は、16〜24のプレフィックス長のネットワークだけをpermitかdenyする。

プレフィックス長の判断

[FigureRT22-02:プレフィックス長の判断]

ハイパーネット助手

ははぁ。まず ip prefix-listの後ろのアドレスに含まれないと駄目なんですね。
それで、ge と le の範囲に入っていなければならない、と。

スーパーインター博士

そういうことだ。

ハイパーネット助手

もし、geとleがない場合とか、geだけとか、leだけの場合はどうなるんです?

スーパーインター博士

その場合は、以下のようになる。

プレフィックス長の判断・2

[FigureRT22-03:プレフィックス長の判断・2]

ハイパーネット助手

は〜。なんか不思議な感じがしますねぇ。プレフィックス長で判断するなんて。
アクセスリストのポート番号で判断、とか言われた方がわかりやすいですよ。

スーパーインター博士

まぁ、そうかもしれん。このプレフィックスリストを配置するのだが、アクセスリストと違い、インタフェースに配置するのではなく、neighborコマンドで配置する

  • Router(config)#neighbor ip-address prefix-list list-name in|out
ハイパーネット助手

最後のin・outはアクセスリストでお馴染みですけど。
インタフェースではなくて、neighborに設定するんですか。

スーパーインター博士

うむ。では先ほどの例を使ってみよう。

[FigureRT22-04:prefix-listによるフィルタリング]

ハイパーネット助手

へぇ。なんか結構柔軟に設定できるんですね。

スーパーインター博士

そうだな。集約ルートの扱いを上手くすることができる。
小さいサブネットをいちいちアドバタイズしないようにもできるわけだ。

ハイパーネット助手

なるほど。

■ マルチホーミング

スーパーインター博士

さて、このプレフィックスリストと、パスアトリビュートを使ったポリシー制御が特に有効なのはマルチホーミングASでの話だ。

マルチホームAS

[FigureRT16-03:シングルホーム・マルチホーム]

ハイパーネット助手

まるちほーむ、っていうと。
他ASへのルートが2つあるASですよね。

スーパーインター博士

うむ。冗長性を確保するため、2つのISPと接続するなんて時は、このマルチホームASになるわけだ。
またはより最適なルートを選択するために、マルチホーミングする、ということもありえる。

ハイパーネット助手

ふむふむ。

スーパーインター博士

マルチホーミングで考えられるのは以下の3パターンだ。

  • ISPからはデフォルトルートのみをアドバタイズしてもらう。
  • ISPから特定の宛先のルートと、デフォルトルートをアドバタイズしてもらう
  • ISPからすべてのルートをアドバタイズしてもらう
スーパーインター博士

まず、デフォルトルートのみのアドバタイズの場合。
これはAS内部のルータのルーティングテーブルの肥大を防ぐことができる。

ハイパーネット助手

そうですね。他AS宛のルートはデフォルトルート1つになりますからね。

スーパーインター博士

うむ。だがこの場合、BGPではどちらのISPを選ぶか、ということを決めることはできない。

ハイパーネット助手

何故ですか?

スーパーインター博士

どちらのデフォルトルートがベストパスか、なんてことは普通ありえないだろ?
デフォルトルートは「ベストパスがない場合に使用するルート」なんだから。

ハイパーネット助手

あ〜、そういわれればそうかも。

スーパーインター博士

なので、AS内ではIGPによってどちらのISPを使うか選択する

デフォルトルートのみアドバタイズ

[FigureRT22-05:デフォルトルートのみアドバタイズ]

ハイパーネット助手

場合によっては、選んだISPでは遠回りになる可能性もあるわけですか?

スーパーインター博士

うむ。それはありうる。すべてデフォルトルートでまかなう場合の弊害だな。
なので、次のパターン、「特定の宛先」だけBGPによりルーティングするという方式がある。

ハイパーネット助手

特定の宛先だけルーティング?
何故そんなことをするんです?

スーパーインター博士

例えば、大量のデータを特定の宛先だけとやりとりすることが多い場合だ。
この場合は、最短ASを使ったり、ポリシーで制御した方が効率がいい

ハイパーネット助手

デフォルトルートの弊害、ってことですね。
大量のデータをやりとりするのに遠回りはしてられない、と。

スーパーインター博士

もちろん、この特定の宛先以外はデフォルトルートを使うので、IGPのメトリックで判断したルーティングになる。
最後は、すべてのルートをアドバタイズしてもらう方式だが。利点と欠点はわかるな?

ハイパーネット助手

利点はポリシーに従ったルーティングが可能で、欠点はルーティングテーブルが肥大化するですね。

スーパーインター博士

その通り。インターネットでは膨大なネットワークが存在する。まぁそのAS自身がISPでもなければやらない方式だな。

ハイパーネット助手

なるほど。

■ AS内部でのポリシー制御

スーパーインター博士

さて、AS内部でのポリシー制御ではやはりパスアトリビュートが重要だ。
ネット君。パスアトリビュートの中で、最も柔軟性があるパスアトリビュートはなんだ?

ハイパーネット助手

もっとも柔軟性がある?
柔軟性があるってことは、自在に値が変更できて、かつ望むようにルーティングするように設定できるアトリビュートってことですよね?

スーパーインター博士

そうだ。
BGPのパス選択の順位が高い方がなお望ましい。先にルートが決定してしまうからな。

ハイパーネット助手

順位が高い?
となると、Weight

スーパーインター博士

うむうむ。その通り。
Weightはそのルータがどのルートを選ぶかを決定できる。もっとも強力な制御ポリシーだ。

ハイパーネット助手

そうなりますね。Weightの大きいルータをまず選びますからね。

スーパーインター博士

そうだ。WeightをBGPピアに設定するコマンドは以下の通り。

  • Router(config-router)#neighbor ip-address Weight 0〜65535
スーパーインター博士

デフォルトは0だ。なので優先的に選択したいBGPピアに設定してやれば、そのBGPピアを必ず使うことになるだろう。

ハイパーネット助手

ふむふむ。

スーパーインター博士

次に順位が高いパスアトリビュートは何かね?

ハイパーネット助手

Local_Preferenceです。

スーパーインター博士

うむ、Lcoal_Preferenceも柔軟性が高い。
特にAS外部へ出て行くルートを決定するときに有効だ。

ハイパーネット助手

Weightとどう違うかがいまいちピンとこないんですけど。
Weightを使っても、どのルート(ネクストホップとして使うBGPピア)を選択できますよね。

スーパーインター博士

まず、Weightは他BGPピアを評価するパスアトリビュートであり、Local_Preは自身を評価するパスアトリビュートである、という点だ。

ハイパーネット助手

他BGPピアを評価? 自身を評価?

スーパーインター博士

つまり、Weightは「こっちのピアを使おう」と決めるアトリビュートで。
Local_Preは「私を優先的に使いなさい」と通達するアトリビュートってことだ。

ハイパーネット助手

あ〜、なるほど。

スーパーインター博士

それともう1つ。Local_PreはAS内全ピアにアドバタイズされ、適用されるアトリビュートだ。

ハイパーネット助手

そういえば、Weightはピアにアドバタイズされないアトリビュートでしたっけ。

スーパーインター博士

そういうことだ。
Local_Preferenceを設定するコマンドは以下の通り。

  • Router(config-router)#bgp default local-preference 0〜429467295
スーパーインター博士

デフォルトは100だ。自分をあまり選んで欲しくなければ100より小さい設定をし、優先的に選んで欲しければ100より大きく設定すればいい。

ハイパーネット助手

なるほどです。

スーパーインター博士

うむ、では今回はここまでにしよう。

ハイパーネット助手

はい。

スーパーインター博士

一応今回でBGPは終了にする。
まだ話してないこともあるが、それはまたの機会に譲ろう。

ハイパーネット助手

長かったですね。BGP。

スーパーインター博士

なんといっても、インターネットの根幹を担うルーティングプロトコルだからな。
さて、次回からは、これまた違うルーティングプロトコルの話だ。

ハイパーネット助手

了解です。
30分間ネットワーキングでした〜♪

ルートフィルタリング
[Route Filtering]
プレフィックスリスト
[prefix-list]
プリフィックス、と読む場合もあります。
アクセスリスト
[access-list]
苦手な人はとことん苦手な、Ciscoルータでパケットフィルタを実現するリスト。
パケットフィルタ以外にも使い道は多いのでとても重要。
暗黙のdeny
最後に明記されないが「すべてを拒否」が入っているということ。
忘れるとパケットが流れないという羽目になります。
ハイパーネット助手ハイパーネット君の今日のポイント
  • アドバタイズを制御するためにルートフィルタリングを行う。
  • Ciscoルータではプレフィックスリストを使ってルートフィルタリングを行う。
    • プレフィックスリストはプレフィックス長を判断材料にした制御リストである。
  • 複数のISPとの接続を行うことをマルチホーミングという。
  • ISPからどのようなルートをアドバタイズされるかでAS内部の動作がかわる。
  • WeightとLocal_PreferenceはAS内部で柔軟にポリシーを制御することができる。

30 Minutes NetWorking No.RT22

管理人:aji-ssz(at)selene.is.dream.jp