WANの仕組み

ネットワークのWANについて勉強したのでメモしておきます。画像を作るのが面倒だったので参考にさせていただいた各サイト様から引用させていただきました。

LANとWAN

ネットワークは大きくLANとWANの2つに大別されています。

LAN

Local Area Network(ローカル・エリア・ネットワーク)とは、広くても一施設内程度の規模で用いられるコンピュータネットワークのことです。その頭文字をつづったLANと書かれる場合も多く、一般家庭、企業のオフィスや研究所、工場等で広く使用されています。

WAN

Wide Area Network(ワイド・エリア・ネットワーク)は、LANと比較して広い範囲(市街地を越え郊外、県外や国際の範囲)におよぶネットワークのことです。広義には、非常に広大な面的広がりを持つインターネットとほぼ同義の言葉として使われます。一方、狭義には、点在するLANとLANを接続する線としてのネットワークというような意味合いでも使われます。

用法としては、LANの対義語として良く用いられます。例えば、LANとISP(インターネットサービスプロバイダ)への回線とを結ぶルータは、WANルータと言われ、ISPへの回線側をWAN側と言います。

Image_wideareanetwork2

WANの大まかな仕組み

インターネットはISP(インターネットサービスプロバイダ)やIX(インターネット相互接続点)同士が繋がってできています。インターネットに存在する全てのアドレスに到達するための経路情報(フル・ルート)を持っているISPはTier1と呼ばれています。

Tier1以外のISP(Tier2、Tier3、…)は、Tier1が持つ経路情報をTier1などの上位のISPから入手することで、インターネット全体の接続性を確保しています。

※ISPのTier1という括りに厳密な定義はありません。Tier1の各ISPは接続先のISPやIXを公表していないので「このISPと繋がっていればTier1だ」という定義は難しいためです。

WANを理解するために必要な知識

WANを構成するISPやIX同士が接続する仕組みをもっと深く理解するためには、以下の用語について知る必要があります。

  • AS(自律システム)
  • ルーティングの種類(スタティック、ダイナミック)
  • 経路制御プロトコル
    • EGP(AS間で使用するプロトコル群の総称)
    • IGP(AS内で使用するプロトコル群の総称)

以下より、順番に説明します。

AS(自律システム)

インターネットにおけるAS(自律システム、autonomous system) とは、インターネットに繋がるひとつのルーティングポリシー配下にあるIPネットワークやルータの集合のことを言います。

簡単に言うと、ASは配下にあるネットワークのルーティングにおいて責任を持つ範囲のことで、ISPなどが代表的なASです。

ASには一意の(他と被らない)識別番号が割り当てられており、割り当てられた番号はAS番号と呼ばれます。AS番号を割り当てるのはNIC(Network Information Center)と呼ばれる組織で、地域毎に存在しています。ちなみに日本のNICとしてはJPNICがあります。

JPNICが管理しているAS番号を見てみると、IIJやKDDIなど、どこかで一度は名前を聞いたことがあるISPやIXが名を連ねています。

ルーティングの種類(スタティック、ダイナミック)

IPネットワークにおいて経路情報を管理する手法として、「スタティック・ルーティング」と「ダイナミック・ルーティング」が存在します。

まず、前提としてルータがルーティングを行うにはルーティングテーブルを参照し、個々のネットワークの宛先への経路の一覧を確認する必要があります。

スタティック・ルーティングとは、経路情報を各ルータ内に手動で設定する手法で、この経路情報は基本的にルーティングテーブルより消えることはありません。これに対し、ダイナミック・ルーティングとは、RIP、OSPF、BGPなどのルーティング・プロトコルを用いてルータが経路情報を自動的に学習する手法で、この経路情報はルータにより動的に更新されます。

例えば、ダイナミックルーティングでは、ある経路に障害が発生したとき、経路情報は自動的に更新され、別の経路がアクティブになります。特定の経路が不通になったとしてもルータが動的に経路の切り替えを行うというわけです。

経路制御プロトコル

ルータがダイナミックルーティングを行うときはプロトコルを用いて経路制御を行います。
経路制御プロトコルの分類方法はいくつかありますが、制御しようとする経路の対象範囲によって、EGPとIGPの2つに大別することができます。

EGP(AS間で使用するプロトコル群の総称)

AS間で使用するプロトコル群の総称のことをEGP(Exterior Gateway Protocol)と呼び、EGPとして使用されるプロトコルには、BGPやEGP(EGPに分類されるEGPというプロトコル)などが存在します。インターネットが台頭し始めたころにはEGPが使用されていましたが、このルーティング・プロトコルはいくつかの問題を抱えていたため、現在ではほとんど使用されていません。現在では、「BGP-4(バージョン4)」がインターネットのAS間ルーティングにおける標準となっています。

IGP(AS内で使用するプロトコル群の総称)

AS内(組織内部)で使用されるプロトコル群のことをIGP(Interior Gateway Protocol)と呼び、RIP(Routing Information Protocol)やOSPF(Open Shortest Path First)、EIGRP(Enhanced Interior Gateway Routing Protocol)などはIGPに分類されます。

ma_zu03

BGPを用いた経路制御の実際

BGPを用いた経路制御では、地域毎のNICからAS番号(例:AS12345など)とIPアドレス(例:150.95.184.0など)の割り当てを受けた後、Tier1などの上流ISPやIXへの接続が必要です。

その後、自組織のBGPルータと接続先のBGPルータ間でピアと呼ばれる経路情報の交換を行う設定を行います。BGPによる経路制御はこのピアを通して行います。ピアを設定後、自組織のIPアドレスブロック(例:150.95.184.0 ~ 150.95.195.255などのIPアドレスの範囲)を接続先へピアを通じて通知する必要があり、このことを「アドレスをアナウンスする」と言います。自組織のアドレスをアナウンスするだけではなく、インターネット上の経路を上流ISPから取得することも必要です。

0800_2

BGPプロトコルの流れ

BGPはTCPポート179番を利用して通信を行います。BGPルータはピアを確立するために、メッセージと呼ばれる形式で機能情報を交換します。メッセージはBGPの状態により数種類存在します。ピアが確立した後は、経路情報を伝達するためのメッセージを定期的に交換し、お互いの持つ経路情報を保持、更新し続けます。

BGPではピアを確立するルータが同じAS間である場合と、異なるAS間である場合とで異なる方式で経路情報を処理します。同じAS間でのピアをiBGP(内部BGP)ピアと呼び、異なるAS間でのピアをeBGP(外部BGP)ピアと呼びます。

bgpz03

メッセージの種類

BGPプロトコルはメッセージと呼ばれる形式でBGPルータ間の機能情報を交換します。以下がメッセージの種類です。

OPEN

OPENメッセージはTCPセッションの確立後、最初に交換されるメッセージです。OPENメッセージはお互いのAS番号やピアの認証を行い、拡張機能などについて情報の交換を行います。ピアの確立に問題が無ければ、後述のKEEPALIVEメッセージやUPDATEメッセージの交換に移ります。

KEEPALIVE

KEEPALIVEメッセージはピアが確立されていることを確認するために定期的に交換するメッセージです。KEEPALIVEメッセージを交換する頻度は、OPENメッセージのホールドタイマの値から設定されます。一般的にKEEPALIVEメッセージはホールドタイマの1/3の間隔で交換されます。ホールドタイマの時間が過ぎてもKEEPALIVEメッセージやUPDATEメッセージが交換されないと、ピアがダウンしたと判断されます。

UPDATE

UPDATEメッセージは実際の経路情報を伝達するメッセージです。UPDATEメッセージには新規にアナウンスする経路情報と削除する経路情報のリストが格納されています。UPDATEメッセージの中には経路情報ごとにパス属性という属性情報が存在し、経路制御に利用されます。パス属性の詳細については後述します。

NOTIFICATION

NOTIFICATIONメッセージはピアに対し、ピアの継続不可能なエラーが発生した場合に送信されます。NOTIFICATIONメッセージを送信した送信者側は、NOTIFICATIONメッセージを送信後、TCPのセッションを切断します。

パス属性の種類

UPDATEメッセージの中には経路情報ごとにパス属性という属性情報が存在し、経路制御に利用されます。以下がパス属性の種類です。

ORIGIN

ORIGIN属性はその経路情報の生成元を表します。ORIGIN属性にはIGP/EGP/INCOMPLETEの3種類があります。IGPはAS内で生成された経路、EGPはAS外部で生成された経路、INCOMPLETEはそれ以外の方法で生成された経路を表します。

AS_PATH

AS_PATH属性はその経路情報が通過してきたAS番号を並べたAS番号のリストです。

図では、各ASを通過する毎にAS番号が追加されています。このように宛先ネットワークに対して通過するASの列が出来上がって行きます。

0220-1

ピアからUPDATEメッセージを受け取った時にAS_PATH属性の中に自分のAS番号を含む経路は全て無視します。このことにより、一度通ったルータが経路上にもう一度出現し、パケットを送信すると宛先に届かずにぐるぐると回ってしまうこと(ルーティングループ)を防ぐことができます。

例えば、以下の例ではAS64504がAS64505に伝える203.0.113.0/24へのAS_PATHは一つだけです。

0220-2

AS_PATH属性は、ベストパスを決定する際に最も良く使われる指標です。しかし、AS_PATH以外の属性と合わせて、AS_PATH的には最短ではないパスがベストパスとして選ばれることもあります。

NEXT_HOP

NEXT_HOP属性はeBGPピアやiBGPピアなどの経路取得方法によって異なります。BGPのネクストホップは「次のルータ」ではなく、「次のASに到達するIPアドレス」を意味します。つまり、eBGPでは自分のIPアドレスをネクストホップとして付加し送信します。しかし、iBGPで送信するときは、デフォルトではネクストホップを変更せずに送ります。そうなるとネクストホップの到達性の問題点がでてきます。しかし、この問題点はnext-hop-selfコマンドを入力することで解決できます。設定方法は割愛します。

MULTI_EXIT_DISC属性

隣接ASに対して、自AS内のネットワークへルーティングする際の入り口を指定します。隣接ASから見て自ASに入ってくる入り口が複数あるときに経路を制御する目的で使用されます。MULTI_EXIT_DISC属性は値が小さい方が優先されます。

図では、AS65002が自ASです。

  1. ルータAからMED150、ルータBからはMED200を設定してAS65001にUPDATEメッセージを送ります。
  2. ルータCは値を見て小さい方が優先と判断し、ルータA経由のルートをベストパスに選定しています。
  3. 自AS内のネットワークである10.10.10.0/24宛のユーザーパケットはルータA経由で入ってきます。

r5zu03

LOCAL_PREF属性

自ASから他ASにパケットをルーティングするとき、自ASのどの出口ポイントを使用するかを指定することができます。値が大きい方が優先されます(デフォルト値は100)。AS内のみで有効な値であるため、次のASに到達したときに値は削除されます。

図では、AS65004が自ASになっています。

  1. AS65001からUPDATEメッセージが送信されています。
  2. 自AS内のルータであるAとBはAS65002とAS65003からアップデートを受信した時にLOCAL_PREFERENCEの値を設定します。
  3. それをルータCに送信します。
  4. ルータCは値を見て大きい方が優先と判断し、ルータB経由のルートをベストパスに選定します。
  5. 10.10.10.0/24宛のユーザーパケットがルータCに届くとルータB経由で送信されます。

r5zu02

BGPによる経路の優先順位

BGPで取得した経路が複数存在する場合、次の順番で利用する経路が決定されます。

  1. ネクストホップへのIGPルートを持っていない経路は無視されます。
  2. weightパラメータを持つルータはweightパラメータ値が最大の経路を選択します。
  3. LOCAL_PREF属性の値の最も高い経路を選択します。
  4. AS_PATH属性のリストの長さが最も短い経路を選択します。
  5. ORIGIN属性の値からIGP、EGP、INCOMPLETEの順に優先度を付けて経路を選択します(IGPが最も優先度が高く、INCOMPLETEが最も低い)。
  6. ルートが同じASから取得し、複数存在する時にはMULTI_EXIT_DISC属性の低い経路を優先します。
  7. iBGPよりもeBGPで取得した経路を優先します。
  8. ネクストホップへIGPで最も近い経路を優先します。
  9. ルータIDが最も低いピアから学習した経路を優先します。(ルータIDは通常、ルータのインタフェースから自動的に生成されます)

参考資料
スクールの教科書
書籍 ポートとソケットがわかればインターネットがわかる――TCP/IP・ネットワーク技術を学びたいあなたのために (Software Design plus)
インターネット10分講座:BGP - JPNIC
AS番号取得にあたっての参考情報 - JPNIC
BGP - IBGPピアとEBGPピアの違い
Local Area Network - Wikipedia
Wide Area Network - Wikipedia
インターネットサービスプロバイダ - Wikipedia
自律システム (インターネット) - Wikipedia
Tier1 | 日経 xTECH(クロステック)
ルーティング・プロトコルの役割を理解する:IPルーティング入門(1) - @IT
BGPの仕組みと役割を理解する:IPルーティング入門(2) - @IT
BGPアトリビュートの設定 (1/2):CCNP対策講座 ROUTE編(9) - @IT
BGPアトリビュートの設定 (2/2):CCNP対策講座 ROUTE編(9) - @IT
Tier1 ISPは秘密結社か?:Geekなぺーじ
BGPを解説してみた:Geekなぺーじ