30 Minutes NetWorking
No.RT17

30Minutes NetWorking

BSCI

第17回BGP4(2) BGPピア

■ EGP

スーパーインター博士

前回からBGP4について説明しているわけだが。

ハイパーネット助手

前回は、BGPというよりもASの話でしたけどね。

スーパーインター博士

まぁ、確かにそうだったな。
だがASの意味がわかってないと、EGPsの話なんかしても無駄だからな。

ハイパーネット助手

それはそうですね。

スーパーインター博士

さて、そのAS間用ルーティングプロトコルであるBGP4だが、前身というべきプロトコルが存在する。

ハイパーネット助手

前身?

スーパーインター博士

うむ、EGPだ。 ▼ link

ハイパーネット助手

RFC904っていうと、1984年4月。ずいぶん古いプロトコルですね。

スーパーインター博士

うむ、現在ではほとんど使われていない歴史的なプロトコルという奴だ。

ハイパーネット助手

ははぁ。

スーパーインター博士

ちなみにCCNPにはまったく出ないが、せっかくだからちょっと紹介する。

ハイパーネット助手

せっかくだから?

スーパーインター博士

せっかくだから、だ。
EGPはIPを直接利用するプロトコルだ。

ハイパーネット助手

IPを直接利用する?

スーパーインター博士

うむ、ICMPのように、IPヘッダの次にEGPメッセージがつく形だな。

EGPパケット

[FigureRT17-01:EGPパケット]

ハイパーネット助手

…ということは、コネクション・レスってことですか?

スーパーインター博士

そうだ。IPを直接利用することにより、TCPのようなオーバヘッドを無くすことができるが、信頼性が低い
つまりパケットを失う可能性があるということだな。これはインターネットワークの規模が大きくなると致命的になる。

ハイパーネット助手

何故です?
OSPFやEIGRPもIPを直接使いますよね?そちらはいいんですか?

スーパーインター博士

ネットワークのサイズが違うのだよ。インターネットワークが巨大になると、送受信するアドバタイズメッセージも大きくなる。パケットが失われると、それをもう1度送りなおさなければならなくなる。これは結構な手間になってしまう。

ハイパーネット助手

TCPを使えば、セグメントに分割して、失われたセグメントだけ送りなおせばいいですから負荷が少ないですよね。

スーパーインター博士

うむ、そういうことだ。
さらに、EGPはホップ数をメトリックとしたディスタンスベクタ型ルーティングプロトコルだ。

ハイパーネット助手

へへぇ、RIPみたいですね。

スーパーインター博士

そうだな。もうすでにRIPも「歴史的プロトコル」扱いされているしな。
正直言って、ホップ数というメトリックは柔軟性に欠ける。時代に適応していないといってもいい。

ハイパーネット助手

そうですねぇ、途中の帯域も、優先度も、信頼性もまったく関係なし単に中継ルータ数だけで判断ですものねぇ。

スーパーインター博士

うむ。RIPはまだIGPだからその欠点が致命的にならないこともあるが、EGPは大規模用のルーティングプロトコルだ。ディスタンスベクタとホップ数という単純な仕組みでは限界がある。

ハイパーネット助手

ですね。だからBGPなんですか?

スーパーインター博士

まぁ、そういうことだ。EGPの仕組みについてこれから延々と説明しようと思ったが、手間がかかるわりにCCNPに関係ないので、その機会は先に譲ってBGPの話をしよう。

ハイパーネット助手

了解です。

■ BGPの特徴

スーパーインター博士

さて、BGPの特徴だが。
まずEGPとからめて言うとBGPはTCPを使用する。ポート番号は179だ。

ハイパーネット助手

信頼性のあるアドバタイズってことですね。

スーパーインター博士

なにぶん大規模だからな。
そして、パスベクタ型という方式を使う。

ハイパーネット助手

ぱすべくた?
「パス」は「経路」。「ベクタ」は「方向」だから、「経路方向式」?

スーパーインター博士

簡単に言うと中継したASの数をメトリックとするのだ。

パスベクタ

[FigureRT17-02:パスベクタ]

ハイパーネット助手

ホップ数をルータの数じゃなくて、ASの数にした感じですね。
でも、こういうのはさっき単純な仕組みだ、とおっしゃってた気がするんですけど?

スーパーインター博士

うむ。なのでBGPでは経由AS以外にもメトリックで使用できる
かなり柔軟なルーティングが可能なのだ。ちなみにBGPではメトリックという言葉ではなくパスアトリビュートと表現する。

ハイパーネット助手

ぱすあとりびゅーと?
アトリビュートは「属性」だから、「パス属性」?

スーパーインター博士

そうだ、パスが持つ「属性」によりベストパスを選択するということだ。
先ほどの経由AS数もこのパスアトリビュートの1つになる。これは先で詳しく話す。

ハイパーネット助手

メトリック、じゃなくて「属性」なんですね。了解です。

スーパーインター博士

他にもBGPは最近のルーティングプロトコルのお約束として、CIDRに対応したクラスレスルーティングが可能だ。
ネット君、クラスレスなルーティングと言えば?

ハイパーネット助手

言えば?
経路集約ですか?

スーパーインター博士

その通り。BGPは経路集約もサポートしている。これも先で説明する。

ハイパーネット助手

はい。

スーパーインター博士

他にもいくつか特徴はあるが。それはおいおい説明していくとして。
覚えておいて欲しい用語で、BGPスピーカがある。BGPを実行しているルータのことだ。

ハイパーネット助手

びーじーぴーすぴーか。

スーパーインター博士

これはルータだけに限らない。BGPを実行するデバイスすべてをBGPスピーカという。
あぁ、そうそう。CiscoIOSでBGPを実行するコマンドは以下の通り。

  • Router(config)#router bgp AS-number

■ BGPピア

スーパーインター博士

実際にBGPの動作の説明を始めるが。
BGPが情報を交換する隣接ルータのことをBGPピアという。

ハイパーネット助手

びーじーぴーぴあ? ピアって「ピアツーピア」の「ピア」ですか?
「ネイバー」でなくて?

スーパーインター博士

「ピアツーピア」の「ピア」だ。
あぁ、「BGPネイバー」と表現することもあるが、一般的には「BGPピア」だな。

ハイパーネット助手

ははぁ、そうなんですか。

スーパーインター博士

この相手はOSPFやEIGRPのような自動検出はおこなわないので、相手を指定する必要がある。
CiscoIOSでの設定はこうだ。

  • Router(config-router)#neighbor IP-address remote-as AS-number
スーパーインター博士

BGPピアを確立する手順を説明しよう。

[FigureRT17-03:BGPピアの確立]

ハイパーネット助手

TCPだから、まずスリーウェイハンドシェイクからなんですね。

スーパーインター博士

そうだ、TCPだからな。ムービー内でもいっている通り、OPENやKEEPALIVE、UPDATEメッセージの後にはTCPの確認応答が行われている。ムービーでは省略したがな。

ハイパーネット助手

で、その後OPENメッセージ、と。

スーパーインター博士

うむうむ。BGPで交換されるメッセージは4種類存在する。

タイプ名前説明
1OPENBGPスピーカ間でピアを確立し、情報交換を可能にする。
2UPDATEルーティング情報の更新。
3NOTIFICATIONBGPピアの切断。エラー条件が検出された場合使う。
4KEEPALIVE生存確認。

[TableRT17-01:BGPメッセージ]

スーパーインター博士

最初に交換するOPENメッセージには、自分のAS番号、IPアドレス、使用しているBGPのバージョンなどが入っている。それと、KEEPALIVEの交換時間もこのOPENのやりとりで決定される。

ハイパーネット助手

ふむふむ。
で、OPEN後にUPDATEですね。

スーパーインター博士

UPDATEは経路情報だ。最初のUPDATEの交換はともかくとして、UPDATEでは変更箇所のみを送る。

ハイパーネット助手

OSPFやEIGRPみたいですね。

スーパーインター博士

そうだな、EGPはすべての経路を送ってしまうが、BGPは変更箇所のみだ。
UPDATEには、取り消し経路、パスアトリビュート、NLRIなどが含まれている。

ハイパーネット助手

えぬえるあーるあい?

スーパーインター博士

ネットワーク到達可能性情報と訳される。つまりアドバタイズするネットワークのことだな。
BGPでは各UPDATEにつき1ルートだけアドバタイズされる

ハイパーネット助手

ははぁ。それと取り消し経路ってなんですか?

スーパーインター博士

その名の通り、使用不能となりルーティングテーブルから削除されるルートのことだ。

ハイパーネット助手

そのままですね。

スーパーインター博士

うむ。
さて、今回はここまでにしておこう。

ハイパーネット助手

はい。微妙に短いですが。

スーパーインター博士

ふふふ。BGPは話すことが多いからな。お楽しみはこれからだよ。

ハイパーネット助手

そうなんですか?

スーパーインター博士

うむ。
安心しろネット君が「もうやめてぇ~」というぐらいネタはある。

ハイパーネット助手

うわぁ、大変そうだ。

スーパーインター博士

ま、楽しみにしておけ。
ではまた次回。

ハイパーネット助手

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

EGP
[Exterior Gateway Protocol]
RFC904で定義。EGPsと混同しないよう注意。
ホップ数
EGPでは8ビット、254ホップまでカウントします。(255は到達不能)
パスベクタ型
[Path-Vector]
ディスタンスベクタを拡張したルーティング方式。
パスアトリビュート
[Path Attributes]
BGPピア
[BGP Peer]
相手のルータのことを「ピアルータ」とも言う。
一般的には
「ピア」の方が「確固たる相手」というイメージがあります。
「ネイバー」は「お隣さん」。
BGPではブロード(マルチ)キャストで発見する「お隣さん」ではなく、「決められた相手」だからかも。
BGPスピーカ
[BGP Speaker]
NLRI
[Network Layer Reachability Information]
ハイパーネット助手ハイパーネット君の今日のポイント
  • BGPはTCPを使い信頼性のあるアドバタイズを行う。
  • 中継ルータの数を基準とするパスベクタ方式である。
  • BGPのメトリックに相当するものをパスアトリビュートという。
  • 情報を交換する隣接ルータのことをBGPピアという。
  • BGPピアは動的に決定されず、手動で設定する。
  • OPENメッセージを交換してBGPピアを確立する。
  • 経路情報は変更箇所のみをアドバタイズする。

30 Minutes NetWorking No.RT17

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