久しぶりにGNS3（その13：リアルネットワークへ接続その４）

# GNS3 VMを使ってリアルネットワークへ
[その３](https://qiita.com/infinite1oop/items/c9994ae934851e42dc62)で予告した内容。GNS3 VMを使ってリアルネットワークへ接続できることがわかった。そのメモ。

## GNS3 VM
### ネットワークアダプタ
![ネットワークアダプタ２.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/b5eda46c-850d-4d00-6664-dd3c6e0f3b47.png)
ネットワークアダプタ２は、NAT（Macを共有）となっている。

### Shell
GNS3 VMのメニューから「Shell」を選択すると、プロンプトが表示され、Linux（Ubuntu）が動作していることがわかる。いくつかコマンドをタイプ。
```
gns3@gns3vm:~$ ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:e6:23:9f:93  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.88.135  netmask 255.255.255.0  broadcast 192.168.88.255
        inet6 fe80::20c:29ff:fecc:9e7e  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:cc:9e:7e  txqueuelen 1000  (Ethernet)
        RX packets 153466  bytes 183313424 (183.3 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 32603  bytes 4320206 (4.3 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.245.159  netmask 255.255.255.0  broadcast 192.168.245.255
        inet6 fe80::20c:29ff:fecc:9e88  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:cc:9e:88  txqueuelen 1000  (Ethernet)
        RX packets 3254  bytes 372103 (372.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3607  bytes 314796 (314.7 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

gns3tap0-0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::8410:26ff:fee4:8294  prefixlen 64  scopeid 0x20<link>
        ether 86:10:26:e4:82:94  txqueuelen 1000  (Ethernet)
        RX packets 3065  bytes 316468 (316.4 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8961  bytes 566305 (566.3 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 63978  bytes 7004688 (7.0 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 63978  bytes 7004688 (7.0 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:c8:5b:91  txqueuelen 1000  (Ethernet)
        RX packets 1356  bytes 194944 (194.9 KB)
        RX errors 0  dropped 28  overruns 0  frame 0
        TX packets 300  bytes 115465 (115.4 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
gns3@gns3vm:~$
gns3@gns3vm:~$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.245.2   0.0.0.0         UG    100    0        0 eth1
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
192.168.88.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
192.168.245.0   0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.245.2   0.0.0.0         255.255.255.255 UH    100    0        0 eth1
```
デフォルトゲートウェイとして、「192.168.245.2」が見える。GNS3 VMを動作させているMac上でのネットワークアダプタを確認すると、
```
/// Mac
vmnet8: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	ether 00:50:56:c0:00:08 
	inet 192.168.245.1 netmask 0xffffff00 broadcast 192.168.245.255
```
となっているので、GNS3 VM Shellにて「ping」を実施。
```
gns3@gns3vm:~$ ping -c 5 yahoo.co.jp
PING yahoo.co.jp (182.22.16.251) 56(84) bytes of data.
64 bytes from edge1800.img.vip.otm.yimg.jp (182.22.16.251): icmp_seq=1 ttl=128 time=8.53 ms
64 bytes from edge1800.img.vip.otm.yimg.jp (182.22.16.251): icmp_seq=2 ttl=128 time=4.98 ms
64 bytes from edge1800.img.vip.otm.yimg.jp (182.22.16.251): icmp_seq=3 ttl=128 time=4.96 ms
64 bytes from edge1800.img.vip.otm.yimg.jp (182.22.16.251): icmp_seq=4 ttl=128 time=6.05 ms
64 bytes from edge1800.img.vip.otm.yimg.jp (182.22.16.251): icmp_seq=5 ttl=128 time=5.24 ms

--- yahoo.co.jp ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4004ms
rtt min/avg/max/mdev = 4.963/5.950/8.528/1.347 ms
```
インターフェース「eth1」を使い、GNS3 VMから外部へ疎通がある（通常のVMと同じ）。

## GNS3にて
### 設定
下記のようなネットワークを構成する。
![トポロジーMAC.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/dbf39028-3b08-beac-7741-88d5ca7b8687.png)
NATを選択するときに、
![UsingNATonMac.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/aa8dd523-4fd8-3a2a-837f-86a7882cbac1.png)
「GNS3 VM」を選択するのがポイント。

### 検証
DHCPにてIPアドレスを取得できそうなので、それを前提に、ルーターR1でコマンドをタイプ。
```
R1(config)#ip domain-lookup
R1(config)#interface fastEthernet 0
R1(config-if)#ip address dhcp
R1(config-if)#no shut
R1(config-if)#
*Mar  1 00:04:41.403: %LINK-3-UPDOWN: Interface FastEthernet0, changed state to up
*Mar  1 00:04:42.403: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0, changed state to up
R1(config-if)#
*Mar  1 00:04:48.487: %DHCP-6-ADDRESS_ASSIGN: Interface FastEthernet0 assigned DHCP address 192.168.122.142, mask 255.255.255.0, hostname R1

R1(config-if)#end
R1#ping
*Mar  1 00:04:59.587: %SYS-5-CONFIG_I: Configured from console by console
R1#ping yahoo.co.jp

Translating "yahoo.co.jp"...domain server (192.168.122.1) [OK]

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 183.79.219.252, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/14/24 ms
R1#
```
ルーターR1からリアルネットワークへの疎通成功。また、ルーターR1のIPアドレスが「192.168.122.xxx」となっているので、GNS3 VM上のネットワークアダプタ「virbr0」と接続されていることがわかる。

## Cloud（NATではなく）を用いてブリッジ接続
（Macではうまく動作せず、Windows環境で実施。）
下記のようなネットワークを構築するのであるが、
![topologyBrd.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/0890f1a7-d95a-f336-2ef2-318aa655e5bd.png)
GNS3 VMにてネットワークアダプタを追加して、ブリッジ接続により、リアルネットワークへ接続することができた。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/a5e009ee-b058-05d9-1919-020ba422c2d0.png", width=80%>
![ネットワークアダプタ設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/1e9dbb82-3ce6-b1dd-9a1f-acd8ad8b909b.png)

```
R1(config)#interface fastEthernet 0/0
R1(config-if)#no shut
R1(config-if)#
*Mar  1 00:00:47.523: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up
*Mar  1 00:00:48.523: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up

R1(config-if)#ip address dhcp
R1(config-if)#
*Mar  1 00:01:57.567: %DHCP-6-ADDRESS_ASSIGN: Interface FastEthernet0/0 assigned DHCP address 192.168.10.109, ma                 sk 255.255.255.0, hostname R1

R1(config-if)#exit
R1(config)#ip domain-lookup
R1(config)#exit

*Mar  1 00:02:32.815: %SYS-5-CONFIG_I: Configured from console by console
R1#ping yahoo.com

Translating "yahoo.com"...domain server (192.168.10.1) [OK]

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 98.137.11.164, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 192/206/224 ms
R1#
```

## 終わりに
リアルネットワークへの接続は、GNS3 VMを使うのがイージー。