メインコンテンツへスキップ

細かいネスペ対策 - ルーティング編

    ネスペの勉強はもう終盤戦となり、全体的な技術の理解というより細かいところで点数を落とさないようにするためのフェーズとなってきた。そのため、試験前に見返せるようにいくつかの単位に区切って細かい用語やポート番号などの対策をまとめておく。


    技術

    ルーティングに関する技術についてそれぞれ概要と試験に出そうな特徴を書いていく。

    RIP(IGP)

    RIP(Routing Information Protocol)は距離ベクトル型のIGP(Interior Gateway Protocol)で、小規模~中規模ネットワークに用いられるシンプルなルーティングプロトコルとなっている。特徴は「距離ベクトル」と書かれている通り宛先までの距離(ホップ数)で経路選択をするという点で、非常にシンプルな設計となっている。

    RIPはバージョンが1, 2と二つあり、バージョン1は経路情報の通知がブロードキャストでクラスフル、認証がない。バージョン2は経路情報の通知がマルチキャスト(224.0.0.9)でクラスレス、認証はサポートがあるらしい。試験で問われそうなのはクラスフル/クラスレスあたりかな。

    また、RIPは障害時の経路情報更新が遅いというような欠点もある。RIPではリンクダウンなどでトリガーアップデートが発行されるが、通常のルーティングアップデートで誤った古い情報で上書きされる可能性がある。そのため、ホールドダウンタイマーと呼ばれる180秒の経路更新を受け付けない時間があり即座に経路の切り替えができない。

    OSPF(IGP)

    OSPF(Open Shortest Path First)はリンクステート型のIGPで、中規模~大規模ネットワークに用いられることが多いルーティングプロトコルとなる。主な特徴は全ルータがネットワークトポロジを把握する点と、コストにより柔軟な経路選択をさせることができる点だ。経路探索はダイクストラ法を用いる。

    OSPFはバージョン2, 3の二つがあり一般的にはバージョン2を指すことが多い。主な違いは対応しているIPのバージョンで、IPv4にはOSPFv2、IPv6にはOSPFv3がそれぞれ対応している。

    また、OSPFでは同じ宛先に対して複数の同コストの経路がある場合に負荷分散をすることができるECMP(Equal Cost Multi Path)という仕組みも存在する。負荷分散方式はルータによるため、OSPFではあくまでルーティングテーブルに複数記載するというところまで。さらに、RIPのようなホールドダウンタイマーがないため障害時に高速に切り替えができ、経路情報交換も間隔が長く負荷が少ない。

    BGP(EGP)

    BGP(Border Gateway Protocol)はAS(Autonomous System)間で経路交換をするEGP(Exterior Gateway Protocol)で、基本的にAS間はBGPが利用されている。BGPはパスベクタ型と呼ばれるルーティングプロトコルで、その名の通りパス(経路)の情報を付与したRIPのような仕組みになっている。特徴はいくつかのプロパティが用意されているところで、経路の優先度やパス情報などがある。

    BGPは一般的にBGP-4が利用されている。もともとはIPv4に対応するように作られているらしいが、IPv6やMPLSなどに対応するようにも拡張されている。それらの拡張を含めてBGP-4+やMBGPと呼ばれたりするらしい。

    また、BGPではAS間の境界ルータ間の接続をするeBGPとAS内のBGPルータ間で接続をするiBGPの2種類がある。iBGPが必要な理由は、ある企業が複数の企業とBGPで経路交換をして中継をする場合などがあげられる(ほかにも複数ISPの冗長化の際など)。

    ポート番号

    ルーティングに関して覚えた方が良いポート番号を書いていく。
    ルーティングプロトコルではそこまで覚える必要のあるポート番号はなく、特にOSPFではTCP/UDPではなく別のプロトコルを利用するためTCP/UDPポート番号は利用しない。ネスペではRIPが扱われることはそこまでないと思うので、BGPのTCP 179番を覚えておくと良さそう。

    • UDP 520:RIP

    • TCP 179:BGP

    ※ ちなみに、ポート番号ではないがOSPFはIP上のプロトコル番号89を利用する。

    用語

    ルーティングに関して覚えた方が良い用語を書いていく。

    RIP

    • 距離ベクトル型:RIPのルーティングアルゴリズム

    • ホップ数:宛先までに通るルータの数で、RIPで用いる

    • クラスフル/レス:IPアドレスのクラス単位のサブネットか、CIDRか

    • ルーティングアップデート:RIPの定期的な経路情報通知

    • トリガーアップデート:RIPの突発的な経路情報通知(障害時など)

    • スプリットホライズン:受け取った経路情報を送り返さない

    • ルートポイズニング:リンクダウンしたインターフェスのメトリック値を最大値にして隣接ルータに通知

    • ポイズンリバース:スプリットホライズンをメトリック値で実現したもの

    • ホールドダウンタイマー:一定時間経路情報を更新しないタイマー。リンクダウン時に誤った経路情報での上書きを防ぐ

    OSPF

    • リンクステート型:OSPFのルーティングアルゴリズム

    • Helloパケット:OSPFでネイバー確立&維持に使われるパケット

    • DBD(Database Description)パケット:自身のLSDBのLSA一覧

    • LSR(Link State Request)パケット:隣接へ不足したLSAの要求

    • LSU(Link State Update)パケット:LSRの返信

    • LSAck(Link State Acknowledgement)パケット:LSU受信の確認応答

    • ネイバーテーブル:OSPFの隣接機器をまとめた表

    • LSA(Link State Advertisement):OSPFで交換するルータの情報

    • LSDB(Link State Database):トポロジテーブル(下記)の別名

    • トポロジテーブル:収集したLSAを格納するテーブル

    • トポロジマップ:トポロジテーブルから作ったネットワークトポロジ

    • SPFツリー:トポロジマップから生成するネットワーク構成図

    • ECMP(Equal Cost Multi Path):同コストの複数経路をルーティングテーブルに記載する仕組み

    • エリア:LSAを交換する範囲を示す論理的なグループ

    • バックボーンエリア:エリア番号0のエリアで、全てのエリアが隣接必須

    • ABR(Area Border Router):エリアの境界となるルータ

    • ASBR(AS Boundary Router):ASの境界ルータでルート再配布をする

    • DR(Designated Router):LAN毎に選出されるLSA交換をするルータ

    • BDR(Backup Designated Router):LAN毎に選出されるDRの予備

    • DROTHER:DR、BDRに選出されなかったルータ

    • ネイバー関係:同じLAN内のOSPFルータ同士の関係

    • アジャセンシー関係:DR/BDR、DR/DROTHER間のLSAを交換する関係

    • LSAタイプ:LSAの種別で、1~11まであるがCiscoは1~5, 7のみサポート

    • LSAタイプ1:ルータLSA(エリア内)

    • LSAタイプ2:ネットワークLSA(エリア内)

    • LSAタイプ3:ネットワーク集約LSA(エリア間)

    • LSAタイプ4:ASBR集約LSA(エリア間)

    • LSAタイプ5:AS外部LSA(エリア間)

    • LSAタイプ7:NSSA外部LSA

    BGP

    • AS番号:ASの識別番号でIPと同じくグローバルとプライベートがある

    • パスアトリビュート:経路情報に付与された属性情報

    • OPEN:BGPネイバーとセッション開始するためのメッセージ

    • UPDATE:全て/差分の経路情報を送信するメッセージ

    • KEEPALIVE:BGPネイバー関係を維持するためのメッセージ

    • NOTIFICATION:エラー検出時などに通知されるメッセージ

    • iBGP:AS内のBGPルータ同士での接続で、TTLが255に設定

    • eBGP:AS間のBGPルータ同士での接続で、TTLが1に設定

    • BGPネイバーテーブル:BGPネイバーが記載された表

    • BGPテーブル:UPDATEパケットの経路情報があるテーブル

    • スタブAS:外部との接続が一つだけのAS

    • トランジットAS:外部と複数接続し、中継もするAS

    • 非トランジットAS:外部と複数接続するが、中継しないAS

    • ORIGIN:パスアトリビュートの1つ。小さい方が優先

    • AS_PATH:パスアトリビュートの1つ。短い方が優先

    • NEXT_HOP:パスアトリビュートの1つ。前提の到達可能性に使われる

    • LOCAL_PREF:パスアトリビュートの1つ。大きい方が優先

    • MED(MULTI_EXIT_DISC):パスアトリビュートの1つ。小さい方が優先


    ルーティングプロトコルに関しては覚えた方が良さそうな用語/ポート番号はこんな感じかな。他にもよく出そうなプロトコルの問題点とかそういうのは時間のある限り調べてみても良いかもしれない。どんな題材でもネットワークである以上ルーティングプロトコルはおそらく関係してくるはずだし、この辺にはさらに時間をかけたい。

    あと自分でもいまだに苦手だと感じているのはiBGPで、複数のISPと接続した冗長構成にiBGPを用いてBGPルータ同士を接続させる動作がよくわかっていない。題材としては割と出るけど、「iBGPではNEXT_HOP_SELFを設定して…」とか言われているのがあまりイメージがついていない。この辺も後で調べよう。

     
     
    情報工学や統計学などに興味を持っている。 最近は多少ハードにも興味が出てきて、少し前に自作キーボード1号を作った。今はメイン機にできる2号を製作中。できれば販売までしてみたい。

    あなたへのおすすめ