ccna取得に向けてCiscoPacketTracerで構築練習　~OSPFルーティング~

## はじめに
CCNAを受験するにあたって、実際にコマンドを打って構築をすることが大切らしい。
Cisco Packet Tracerを使用して構築の練習とその流れ、結果を示して、気づいたことなどをまとめていこうと思う。

## 目標
+ OSPFを使用してダイナミックルーティングを実装する。
+ マルチエリアの構成も構築してみる。
+ 実際に障害を起こしてみてどうなるか見てみる。

## 実践
### 1. シングルエリアOSPF
まずはルータ2台のシンプルな構成でやってみる。
![OSPF-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2998315/b1b84e83-4944-b4da-1bbe-76c4a21b19d2.png)


```terminal:Router0
Router0(config)#interface fa 0/1
Router0(config-if)#ip address 192.168.1.1 255.255.255.0
Router0(config-if)#no shutdown

Router0(config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/1, changed state to up

%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up

Router0(config-if)#exit
Router0(config)#interface  fa 0/0
Router0(config-if)#ip address 192.168.10.1 255.255.255.0
Router0(config-if)#no shutdown 

Router0(config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up

Router0(config-if)#exit

//OSPF setting
Router0(config)#
Router0(config)#router ospf 1
Router0(config-router)#network 192.168.10.1 0.0.0.0 area 0
Router0(config-router)#network 192.168.1.1 0.0.0.0 area 0

//確認
Router0#show ip route
~略~
Gateway of last resort is not set

C    192.168.1.0/24 is directly connected, FastEthernet0/1
O    192.168.2.0/24 [110/2] via 192.168.10.2, 00:00:06, FastEthernet0/0
C    192.168.10.0/24 is directly connected, FastEthernet0/0

Router0#show ip ospf neighbor 

Neighbor ID     Pri   State           Dead Time   Address         Interface
192.168.10.2      1   FULL/DR         00:00:39    192.168.10.2    FastEthernet0/0
```

```terminal:Router1
Router1(config)#interface fa 0/1
Router1(config-if)#ip address 192.168.2.1 255.255.255.0
Router1(config-if)#no shutdown 

Router1(config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/1, changed state to up

%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up

Router1(config-if)#exit
Router1(config)#interface fa 0/0
Router1(config-if)#ip address 192.168.10.2 255.255.255.0
Router1(config-if)#no shutdown 

Router1(config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up

%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up

Router1(config-if)#exit

//OSPF setting
Router1(config)#
Router1(config)#router ospf 1
Router1(config-router)#network 192.168.10.2 0.0.0.0 area 0
Router1(config-router)#network 192.168.2.1 0.0.0.0 area 0

//確認
Router1#show ip route
~略~
Gateway of last resort is not set

O    192.168.1.0/24 [110/2] via 192.168.10.1, 00:13:10, FastEthernet0/0
C    192.168.2.0/24 is directly connected, FastEthernet0/1
C    192.168.10.0/24 is directly connected, FastEthernet0/0

Router1#show ip ospf neighbor 

Neighbor ID     Pri   State           Dead Time   Address         Interface
192.168.10.1      1   FULL/BDR        00:00:33    192.168.10.1    FastEthernet0/0
```
Router1がDRになり、ルーティングテーブルにOSPFの経路が載った。

### 2. マルチエリアOSPF
ルータの数を増やしてマルチエリアOSPFを実装する。
以降、IPアドレスの設定は省略する。
![OSPF-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2998315/50d9e7c5-5a32-f6af-0a61-2ff4e927a419.png)
```terminal:Router0
Router0(config)#router ospf 1
Router0(config-router)#network 192.168.1.0 0.0.0.255 area 0
Router0(config-router)#network 192.168.10.0 0.0.0.255 area 0

//確認
Router0#show ip route
~略~
Gateway of last resort is not set

     192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.1.0/24 is directly connected, FastEthernet0/1
L       192.168.1.1/32 is directly connected, FastEthernet0/1
O IA 192.168.2.0/24 [110/3] via 192.168.10.254, 00:10:15, FastEthernet0/0
     192.168.10.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.10.0/24 is directly connected, FastEthernet0/0
L       192.168.10.1/32 is directly connected, FastEthernet0/0
O IA 192.168.20.0/24 [110/2] via 192.168.10.254, 00:11:08, FastEthernet0/0
```

```terminal:Router1
Router1(config)#router ospf 1
Router1(config-router)#network 192.168.10.0 0.0.0.255 area 0
Router1(config-router)#network 192.168.20.0 0.0.0.255 area 1

//確認
Router1#show ip ospf database 
            OSPF Router with ID (192.168.20.1) (Process ID 1)

                Router Link States (Area 0)

Link ID         ADV Router      Age         Seq#       Checksum Link count
192.168.20.1    192.168.20.1    208         0x80000003 0x004727 1
192.168.10.1    192.168.10.1    208         0x80000003 0x0015f0 2

                Net Link States (Area 0)
Link ID         ADV Router      Age         Seq#       Checksum
192.168.10.1    192.168.10.1    208         0x80000001 0x007f93

                Summary Net Link States (Area 0)
Link ID         ADV Router      Age         Seq#       Checksum
192.168.20.0    192.168.20.1    203         0x80000001 0x0066fb
192.168.2.0     192.168.20.1    145         0x80000002 0x00353d

                Router Link States (Area 1)

Link ID         ADV Router      Age         Seq#       Checksum Link count
192.168.20.1    192.168.20.1    150         0x80000002 0x002e2d 1
192.168.20.254  192.168.20.254  150         0x80000003 0x006084 2

                Net Link States (Area 1)
Link ID         ADV Router      Age         Seq#       Checksum
192.168.20.254  192.168.20.254  150         0x80000001 0x00b33d

                Summary Net Link States (Area 1)
Link ID         ADV Router      Age         Seq#       Checksum
192.168.10.0    192.168.20.1    203         0x80000001 0x00d497
192.168.1.0     192.168.20.1    203         0x80000002 0x004033
```

```terminal:Router2
Router2(config)#router ospf 1
Router2(config-router)#network 192.168.20.0 0.0.0.255 are
Router2(config-router)#network 192.168.20.0 0.0.0.255 area 1
Router2(config-router)#network 192.168.2.0 0.0.0.255 area 1

//確認
Router2#show ip route
~略~
Gateway of last resort is not set

O IA 192.168.1.0/24 [110/3] via 192.168.20.1, 00:10:33, FastEthernet0/0
     192.168.2.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.2.0/24 is directly connected, FastEthernet0/1
L       192.168.2.1/32 is directly connected, FastEthernet0/1
O IA 192.168.10.0/24 [110/2] via 192.168.20.1, 00:10:33, FastEthernet0/0
     192.168.20.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.20.0/24 is directly connected, FastEthernet0/0
L       192.168.20.254/32 is directly connected, FastEthernet0/0
```

Router1のLSDBよりエリアが2つ存在することがわかる。
ルーティングテーブルにも反映されている。

![OSPF-2-pc0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2998315/49ebd2e4-132c-9f13-dbbd-506e44b72db2.png)
![OSPF-2-pc1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2998315/e3a1dc89-94f0-376e-fd2e-7c9c20cd3ca9.png)
PCからのPingも疎通確認ができた。

### 3. 実際に障害を起こしてみる
2拠点間のルーティングという想定でOSPFを設定して実際にネットワーク障害を起こしてみる。
（この時点でPacket Tracerに図形やメモを記入する機能があることに気づいた。）
![OSPF-3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2998315/fa7a6466-fa86-0a0d-c849-fe86b6db6cab.png)
通常時はRouter1経由の経路にするため、Router2経由のインターフェースにコスト10を設定する。
```terminal:Router0
Router0(config)#router ospf 1
Router0(config-router)#network 192.168.1.1 0.0.0.0 area 0
Router0(config-router)#network 192.168.10.1 0.0.0.0 area 0
Router0(config-router)#network 192.168.13.254 0.0.0.0 area 0
Router0(config-router)#exit
Router0(config)#interface fa0/1
Router0(config-if)#ip ospf cost 10

//結果
Router0#show ip route
~略~
Gateway of last resort is not set

     192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.1.0/24 is directly connected, FastEthernet1/1
L       192.168.1.1/32 is directly connected, FastEthernet1/1
O    192.168.2.0/24 [110/3] via 192.168.10.254, 00:00:53, FastEthernet0/0 //Router1経由ルーティング
     192.168.10.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.10.0/24 is directly connected, FastEthernet0/0
L       192.168.10.1/32 is directly connected, FastEthernet0/0
O    192.168.11.0/24 [110/2] via 192.168.10.254, 00:03:59, FastEthernet0/0
O    192.168.12.0/24 [110/11] via 192.168.13.1, 00:01:25, FastEthernet0/1
     192.168.13.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.13.0/24 is directly connected, FastEthernet0/1
L       192.168.13.254/32 is directly connected, FastEthernet0/1
```

```terminal:Router1
Router1(config)#router ospf 1
Router1(config-router)#network 192.168.10.0 0.0.1.255 area 0
```

```terminal:Router2
Router2(config)#router ospf 1
Router2(config-router)#network 192.168.12.0 0.0.1.255 area 0
```

```terminal:Router3
Router3(config)#router ospf 1
Router3(config-router)#network 192.168.2.1 0.0.0.0 area 0
Router3(config-router)#network 192.168.11.254 0.0.0.0 area 0
Router3(config-router)#network 192.168.12.1 0.0.0.0 area 0
Router3(config-router)#exit
Router3(config)#interface fa 0/0
Router3(config-if)#ip os
Router3(config-if)#ip ospf cost 10
Router3(config-if)#

//結果
Router3#show ip route
~略~
Gateway of last resort is not set

O    192.168.1.0/24 [110/3] via 192.168.11.1, 00:03:03, FastEthernet0/1　//Router1経由ルーティング
     192.168.2.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.2.0/24 is directly connected, FastEthernet1/1
L       192.168.2.1/32 is directly connected, FastEthernet1/1
O    192.168.10.0/24 [110/2] via 192.168.11.1, 00:03:32, FastEthernet0/1
     192.168.11.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.11.0/24 is directly connected, FastEthernet0/1
L       192.168.11.254/32 is directly connected, FastEthernet0/1
     192.168.12.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.12.0/24 is directly connected, FastEthernet0/0
L       192.168.12.1/32 is directly connected, FastEthernet0/0
O    192.168.13.0/24 [110/11] via 192.168.12.254, 00:02:18, FastEthernet0/0
```
ルーティングテーブルにRouter1経由の経路が載っていることがわかる。

#### 実際にパケットがRouter1経由になっているか確認する
PCから`tracert`コマンドを打って確認してもいいが、ここはシミュレーションモードでパケットの動きを見てみる。

![OSPF-3-sim-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2998315/63d90258-c40f-c551-57bc-fe6caa313e41.png)
画面右下の`Simutarion`ボタンを押すとデフォルトのリアルタイムモードから、シミュレーションモードに切り替わり、シミュレーションパネルが開く。

![OSPF-3-sim-pc0-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2998315/7a66a718-35f7-e458-b78a-f84e70bf9e22.png)

PC0からPC1宛にpingを打つとプロンプトが止まる。

![OSPF-3-sim-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2998315/b6778ea2-f35c-0e94-150a-c8cd28da4047.png)

メイン画面の方ではパケットを表すメールのアイコンが表示され、シミュレーションパネルには`ICMP`表示のパケットがリストに入る。(余計なOSPFやSTPのデータを表示させないために、フィルターをかけている)

![Cisco Packet Tracer - E__Cisco Packet Tracer 8.2.2_saves_ospfNetworkFailure-qiita.pkt 2024-05-18 16-51-09.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2998315/1a19a6e0-b262-a29d-480b-73d5164ad548.gif)
パケットがRouter1経由でルーティングされていることがわかった。

![OSPF-3-sim-3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2998315/40345e0f-bae9-e221-58c7-f415f257a7fb.png)

Router1の`Fa10/1`(192.168.10.0/24側)を無効にして同じようにpingを打ってみる。

![Cisco Packet Tracer - E__Cisco Packet Tracer 8.2.2_saves_ospfNetworkFailure-qiita.pkt 2024-05-18 16-43-52.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2998315/053e36b7-15fb-d8bb-6535-93c48418da4b.gif)

最初のパケットは破棄されたが、2つ目からRouter2経由の経路が使用された。

## 気になったこと,覚えておきたいこと
+ OSPFを有効にしたインターフェイスのネットワークをルーティングテーブルに載せるので、ルーティングしてほしいネットワークで有効にしないといけない。
  Ex. 実践-1において`192.168.10.0/24`だけ有効にしているとPCがあるネットワークがルーティングテーブルに載らない。
+ 実践-1において、OSPFの設定直後はRouter0がDRに選出されていた。ルータを再起動すると正しくRouter1がDRに選出された。-> 先にRouter0のOSPFを設定したのが原因？


## 参考サイト

https://www.infraexpert.com/study/study30.html

https://qiita.com/PoodleMaster/items/bc5dfad66a74f585e81d#%E3%83%80%E3%82%A4%E3%83%8A%E3%83%9F%E3%83%83%E3%82%AF%E3%83%AB%E3%83%BC%E3%83%88ospf%E3%81%AE%E8%A8%AD%E5%AE%9A%E4%BE%8B

https://hetare-nw.net/archives/686