CiscoのルーターでスタティックNAT

# はじめに
人にCiscoコマンドを教えることになり学習をしている。
私はネットワークの知識は多少あるが、Ciscoについては見たこともなければ触ったこともない。
そんな私が学習したCiscoコマンド等を備忘録として残しておく。

# 必要ソフト
Ciscoのルーターを実際に買うと高価なので、学習目的の場合はこのソフトを利用する
- Cisco Packet Tracer
Cisco製のネットワーク機器をソフトウェア上で操作できるシミュレーターツール
こちらから無料でダウンロードできる
https://www.netacad.com/ja/courses/packet-tracer

# 行うこと
- PCとルーターを接続して、スタティックNATを行う
- NATとはLAN側のプライベートIPアドレス（内部ローカルアドレスともいう）をWAN側のグローバルIPアドレス（内部グローバルアドレスともいう）に変換する技術である
- NATはIPv4アドレスの枯渇問題の回避策として考えられた
- スタティックNATとは、LAN側のプライベートIPアドレス（内部ローカルアドレス）とWAN側のグローバルIPアドレス（内部グローバルアドレス）を1対1で対応させる技術で、ルーター内に保存されるNATテーブル情報を、管理者が手動で登録する方法である

# 構成図
![static-nat.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273110/d5a64c53-e8a2-3e05-f015-532039e47b97.png)

- 192.168.0.0/24にはPC1、PC2とRouter1が接続されている
- 172.16.0.0/24にはServer1、Sniffer、Router1が接続されている
- Router1に表NATテーブルの情報を登録する
- PC1とPC2からServer1に対してそれぞれping通信を行う。このとき、Snifferというパケットキャプチャができる機器を使って、Switch2を通るパケットをキャプチャしてNAT変換が行われていることを確認することをゴールとする

# 実践
Cisco Packet Tracerで以下のような構成を作成する。
- PCは画面下部から「PC-PT」というのを選択してドラッグ＆ドロップする
- Serverは画面下部から「Server-PT」というのを選択してドラッグ＆ドロップする
- Routerは画面下部から「1841」というのを選択してドラッグ＆ドロップする
- Switchは画面下部から「2960」というのを選択してドラッグ＆ドロップする
- Snifferは画面下部から「Sniffer」というのを選択してドラッグ＆ドロップする
- 各デバイス間は「Copper Cross-Over」という線で繋ぐ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273110/9a0f2bd8-dbd3-d656-7136-eaa8c1ee44ec.png)


## PC1での設定
「Desktop」タブの「IP Configuration」を選択して開く画面から、IPアドレス、サブネットマスク、デフォルトゲートウェイを設定する
IPアドレスには自身のIPアドレスである「192.168.0.100」、サブネットマスクは「/24」を現す「255.255.255.0」、デフォルトゲートウェイはRouter1のインタフェースを指定する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273110/ec4051c7-14bf-666a-2ebb-5974fb3bfa79.png)

## PC2での設定
「Desktop」タブの「IP Configuration」を選択して開く画面から、IPアドレス、サブネットマスク、デフォルトゲートウェイを設定する
IPアドレスには自身のIPアドレスである「192.168.0.101」、サブネットマスクは「/24」を現す「255.255.255.0」、デフォルトゲートウェイはRouter1のインタフェースを指定する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273110/47bf0977-fba6-b96d-798f-63fa505fcdad.png)

## Server1での設定
「Desktop」タブの「IP Configuration」を選択して開く画面から、IPアドレス、サブネットマスク、デフォルトゲートウェイを設定する
IPアドレスには自身のIPアドレスである「172.16.0.100」、サブネットマスクは「/24」を現す「255.255.255.0」、デフォルトゲートウェイはRouter1のインタフェースを指定する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273110/17618d2c-68ec-df52-049b-968bc6f7baa6.png)

## Router1での設定コマンド

### IPアドレスの付与とインタフェースにinside, outside設定
NATを使うにはルーターのインターフェースにインサイド（内部）、アウトサイド（外部）の指定をしないといけない。なので、それぞれのインタフェースに指定する
```cisco_ios
Router>en
Router#conf t
Router(config)#interface fastEthernet 0/0
Router(config-if)#ip address 192.168.0.1 255.255.255.0
Router(config-if)#no shutdown 
Router(config-if)#ip nat inside 
Router(config-if)#exit
Router(config)#interface fastEthernet 0/1
Router(config-if)#ip address 172.16.0.1 255.255.255.0
Router(config-if)#no shutdown 
Router(config-if)#ip nat outside 
Router(config-if)#exit
```

### スタティックNAT設定
ルーターのNATテーブルに内部ローカルアドレスと内部グローバルアドレスの組み合わせを登録する
```cisco_ios
Router(config)#ip nat inside source static 192.168.0.100 172.16.0.2
Router(config)#ip nat inside source static 192.168.0.101 172.16.0.3
```

### 登録情報を確認する
```cisco_ios
Router#show ip nat translations 
Pro  Inside global     Inside local       Outside local      Outside global
---  172.16.0.2        192.168.0.100      ---                ---
---  172.16.0.3        192.168.0.101      ---                ---

Router#
```

## Switch2での設定コマンド

パケットをSnifferに転送するための設定を行う
```cisco_ios
Switch>en
Switch#conf t
Switch(config)#monitor session 1 source interface fastEthernet 0/1
Switch(config)#monitor session 1 destination interface fastEthernet 0/3
```

## 接続確認

### PC1
PC1の「Desktop」タブから「Command Prompt」を選択してコマンドプロンプトを起動し、ping通信を行う。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273110/1db17485-c50a-5b3e-c9ee-4663cbdac0f8.png)

SnifferのGUIを見ると、IPパケットの「SRC IP」が「172.16.0.2」と変換されてICMP要求が飛んでいることがわかる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273110/e1980f31-afd8-5d8f-9088-caf095a6f491.png)

### PC2
PC2の「Desktop」タブから「Command Prompt」を選択してコマンドプロンプトを起動し、ping通信を行う。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273110/ef2d89ea-72bf-6f98-2ca9-05711c34a104.png)

SnifferのGUIを見ると、IPパケットの「SRC IP」が「172.16.0.3」と変換されてICMP要求が飛んでいることがわかる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273110/8b8e6807-88f9-2b25-cf8e-01eef1d58988.png)

現場からは以上です