【初心者向け】Packet Tracerでネットワークを学ぶ(ルーティング②)
公開日: 2023/1/18
更新日: 2023/1/18
Packet Tracerでネットワークを学びます。
1. ダイナミックルーティング
スタティックルーティングでは障害が発生した場合に手動で切り替える必要があったり、ネットワーク機器が増えてくると管理に手間がかかります。
ダイナミックルーティングではルータ同士が自動で情報をやり取りするので、個別で経路設定をする必要がなくなり、障害発生時も自動で経路切替することが実現できます。
ダイナミックルーティングを使用するにはRIPやOSPFといったいずれかのプロトコルを使用します。
CCNAの試験でよく問われるプロトコルとしては以下があります。
・RIP
・OSPF
・EIGRP
ルータ同士のルーティングテーブルの情報を交換し距離(ディスタンス)と方向(ベクター)を基に最適経路を選出します。
全てのルータにてルート情報が収束されることをコンバージェンスと言いますが、OSPFやEIGRPより遅いですが、ルータへの負荷は他のプロトコルより小さいです。
ルータのインターフェース情報(リンクステート)を交換します。
コンバージェンスはRIPより早いですがルータへの負荷は大きいです。
帯域幅を計算して経路を選出します。
似たプロトコルにIs-Isと呼ばれるものもあります。
拡張ディスタンスベクタ型はディスタンスベクタ型にリンクステート型の特徴も取り入れられたものです。
その為、コンバージェンスが早かったりルータの負荷はRIPよりはやや大きいです。
「帯域幅、遅延、信頼性、負荷、MTU」といった要素から経路を選出します。
ダイナミックルーティングではルータ同士が自動で情報をやり取りするので、個別で経路設定をする必要がなくなり、障害発生時も自動で経路切替することが実現できます。
ダイナミックルーティングを使用するにはRIPやOSPFといったいずれかのプロトコルを使用します。
CCNAの試験でよく問われるプロトコルとしては以下があります。
・RIP
・OSPF
・EIGRP
RIP
ディスタンスベクタ型と言われるプロトコルです。ルータ同士のルーティングテーブルの情報を交換し距離(ディスタンス)と方向(ベクター)を基に最適経路を選出します。
全てのルータにてルート情報が収束されることをコンバージェンスと言いますが、OSPFやEIGRPより遅いですが、ルータへの負荷は他のプロトコルより小さいです。
OSPF
リンクステート型と言われるプロトコルです。ルータのインターフェース情報(リンクステート)を交換します。
コンバージェンスはRIPより早いですがルータへの負荷は大きいです。
帯域幅を計算して経路を選出します。
似たプロトコルにIs-Isと呼ばれるものもあります。
EIGRP
拡張ディスタンスベクタ型に分類されます。拡張ディスタンスベクタ型はディスタンスベクタ型にリンクステート型の特徴も取り入れられたものです。
その為、コンバージェンスが早かったりルータの負荷はRIPよりはやや大きいです。
「帯域幅、遅延、信頼性、負荷、MTU」といった要素から経路を選出します。
2. OSPFの環境を作成してみる
簡単なOSPFの環境を作成してみます。
目指す構成図は以下になります。
PC3台、ルータ3台の構成です。
目指す構成図は以下になります。
PC3台、ルータ3台の構成です。
2-1. 1.PC、ルータにIPアドレス、サブネットマスクを設定する
各PC、ルータにIPアドレスやサブネットマスクを設定します。
設定内容は以下になります。
PCA 192.168.10.10
PCB 192.168.30.10
PCC 192.168.50.10
R1 Gi0/0 192.168.10.1
R1 Gi0/1 192.168.40.1
R1 Gi0/2 192.168.20.1
R2 Fa0/0 192.168.30.1
R2 Fa0/1 192.168.20.2
R3 Fa0/0 192.168.50.1
R3 Fa0/1 192.168.40.2
サブネットマスクは全て255.255.255.0
ルータへはホスト名の設定やインターフェースの有効化も実施します。
設定内容は以下になります。
PCA 192.168.10.10
PCB 192.168.30.10
PCC 192.168.50.10
R1 Gi0/0 192.168.10.1
R1 Gi0/1 192.168.40.1
R1 Gi0/2 192.168.20.1
R2 Fa0/0 192.168.30.1
R2 Fa0/1 192.168.20.2
R3 Fa0/0 192.168.50.1
R3 Fa0/1 192.168.40.2
サブネットマスクは全て255.255.255.0
ルータへはホスト名の設定やインターフェースの有効化も実施します。
2-2. 2.OSPFの有効化
まずR1ルータにてOSPFの有効化を行ってみます。
OSPFの有効化には以下のコマンドをグローバルコンフィギュレーションモードで入力します。
#router ospf <プロセスID>
プロセスIDとは、ルータでは複数のプロセスを作成可能です。
その複数稼働しているプロセスを区別するためにプロセスIDを入力します。
値は1〜65535で、任意の値を入力します。ルータ内というローカルな環境でのIDとなるので他のルータのプロセスIDと一致させる必要はありません。
(R1とR2でプロセスIDを合わせる必要はない)
コマンド入力後はルータコンフィギュレーションモードに移行します。
OSPFの有効化には以下のコマンドをグローバルコンフィギュレーションモードで入力します。
#router ospf <プロセスID>
プロセスIDとは、ルータでは複数のプロセスを作成可能です。
その複数稼働しているプロセスを区別するためにプロセスIDを入力します。
値は1〜65535で、任意の値を入力します。ルータ内というローカルな環境でのIDとなるので他のルータのプロセスIDと一致させる必要はありません。
(R1とR2でプロセスIDを合わせる必要はない)
コマンド入力後はルータコンフィギュレーションモードに移行します。
2-3. 3.インターフェースの指定
OSPFを有効にするインターフェースを指定します。
有効にするとHelloパケットの送信、インターフェースに関するLSAを通知します。
※Helloパケット・・ネイバー(隣接ルータ)の発見と生存確認
※LSA・・ルータのIPアドレス等の情報のこと。各ルータがLSAを交換しLSDBにと呼ばれるデータベースに格納する。
コマンドはルータコンフィギュレーションモードで以下を入力します。
#network <ワイルドカード> area <エリアID>
にはインターフェースに設定されているIPアドレス、または所属しているネットワークアドレスを入力します。
<ワイルドカード>はサブネットマスクの0と1を逆にした表記を入力します。
例えばサブネットマスクが「255.255.255.0」の場合は「0.0.0.255」になります。
今回の構成はシングルエリアと呼ばれる構成なので<エリアID>には0を入力します。
エリアIDはプロセスIDと違い他のルータも0に合わせます。
R1は3つのネットワークに繋がっているため以下3種類のコマンドを入力します。
インターフェースコンフィギュレーションモードでもインターフェースの指定は可能です。
以下のコマンドを入力します。
#ip ospf <プロセスID> area <エリアID>
有効にするとHelloパケットの送信、インターフェースに関するLSAを通知します。
※Helloパケット・・ネイバー(隣接ルータ)の発見と生存確認
※LSA・・ルータのIPアドレス等の情報のこと。各ルータがLSAを交換しLSDBにと呼ばれるデータベースに格納する。
コマンドはルータコンフィギュレーションモードで以下を入力します。
#network
<ワイルドカード>はサブネットマスクの0と1を逆にした表記を入力します。
例えばサブネットマスクが「255.255.255.0」の場合は「0.0.0.255」になります。
今回の構成はシングルエリアと呼ばれる構成なので<エリアID>には0を入力します。
エリアIDはプロセスIDと違い他のルータも0に合わせます。
R1は3つのネットワークに繋がっているため以下3種類のコマンドを入力します。
インターフェースコンフィギュレーションモードでもインターフェースの指定は可能です。
以下のコマンドを入力します。
#ip ospf <プロセスID> area <エリアID>
2-4. 4.R2、R3ルータでもOSPFを設定する
R2、R3ルータでR1と同様にOSPFを設定します。
R2ではインターフェースコンフィギュレーションモードにて設定を行っています。
①Fa0/1にプロセスIDを「1」、エリアIDを「0」で設定
②Fa0/0にプロセスIDを「1」、エリアIDを「0」で設定
R3では以下の図のように設定しています。
①Fa0/1にプロセスIDを「1」、エリアIDを「0」で設定
②Fa0/0にプロセスIDを「1」、エリアIDを「0」で設定
2-5. 5.動作確認
一通り設定が完了しましたので動作確認をします。
OSPFにも様々な確認コマンドがあります。
R1で実行すると以下の図のようにR2とR3の情報が表示されます。
「Neighbor ID」 隣接ルータのルータIDです。
ルータIDはIPアドレスとは違う用途で、そのルータを表すIDのようなものです。
「Pri」 ルータに設定されているプライオリティです。
プライオリティはDR/BDRを選出するための値です。DR/BDRは別の機会に解説します。
「State」 隣接関係を表します。FULLや2Wayと表示されていれば問題ないです。
「Dead Time」 あと何秒間Helloパケットが届かなかったらダウンとみなすかを表します。
「Address」 隣接ルータのIPアドレスです。
「Interface」 隣接ルータに接続しているインターフェースです。
コードが「O」となっている行がOSPFで取得した経路になります。
「192.168.30.0」と「192.168.50.0」の2種類が経路で登録されました。
この2種類の経路がR2とR3から受け取った経路になります。
「192.168.10.0」向けの経路は、すでに直接接続した経路があります。同じ経路の場合はAD値が低い方がルーティング
テーブルに載ります。(直接接続のAD値は「0」、OSPFのAD値は「110」)
以下はGi0/1の情報です。
①IPアドレスと所属エリア
対向エリアとサブネットマスクやエリアIDが異なっているとネイバーになりません。
②プロセスID、ルータID、ネットワークタイプ、コスト
③リンク状態とプライオリティ
④DRとBDRのルータIDとIPアドレス
⑤HelloインターバルとDeadインターバル
この値が対向ルータとずれているとネイバーになりません。
どちらもPingが成功することが確認できました。
OSPFにも様々な確認コマンドがあります。
#show ip ospf neighbor
「show ip ospf neighbor」コマンドは隣接するルータを表示するコマンドです。R1で実行すると以下の図のようにR2とR3の情報が表示されます。
「Neighbor ID」 隣接ルータのルータIDです。
ルータIDはIPアドレスとは違う用途で、そのルータを表すIDのようなものです。
「Pri」 ルータに設定されているプライオリティです。
プライオリティはDR/BDRを選出するための値です。DR/BDRは別の機会に解説します。
「State」 隣接関係を表します。FULLや2Wayと表示されていれば問題ないです。
「Dead Time」 あと何秒間Helloパケットが届かなかったらダウンとみなすかを表します。
「Address」 隣接ルータのIPアドレスです。
「Interface」 隣接ルータに接続しているインターフェースです。
#show ip route
ルーティングテーブルでも確認してみましょう。(図はR1)コードが「O」となっている行がOSPFで取得した経路になります。
「192.168.30.0」と「192.168.50.0」の2種類が経路で登録されました。
この2種類の経路がR2とR3から受け取った経路になります。
「192.168.10.0」向けの経路は、すでに直接接続した経路があります。同じ経路の場合はAD値が低い方がルーティング
テーブルに載ります。(直接接続のAD値は「0」、OSPFのAD値は「110」)
#show ip ospf interface
OSPFが動作しているインターフェース情報も確認できます。以下はGi0/1の情報です。
①IPアドレスと所属エリア
対向エリアとサブネットマスクやエリアIDが異なっているとネイバーになりません。
②プロセスID、ルータID、ネットワークタイプ、コスト
③リンク状態とプライオリティ
④DRとBDRのルータIDとIPアドレス
⑤HelloインターバルとDeadインターバル
この値が対向ルータとずれているとネイバーになりません。
ping
Pingも発信してみましょう。PCBからPCA、PCCにそれぞれPingを実行してみます。どちらもPingが成功することが確認できました。