# 外に出れません・・。
| host | user | pass | updated_at |
| -- | -- | -- | -- |
| `133.242.233.187` | `ubuntu` | `DttUkZgtM3AMBn` | `2019-08-29T22:36:06+09:00` |
## 問題文
あなたは新しくルーターを購入しました。そして、新しく購入したルーターを自分の部屋に設置しました。
新しいルーターは、元々家にあったルーターの配下に接続されています。(2重ルーターの状態です)
新しく購入したルーターに自分のPCを接続しましたが、なぜかInternetと通信ができません。
外部Internetと通信ができる状態にしてください。
### 条件
設定を変更できる機材は新しいルーターのみ
Ubuntuにログインはできるが、疎通確認のみに使用すること (ゲートウェイを変更するなどの設定は認められない)
### ゴール
ルーターの配下のPCから 8.8.8.8 へpingが通る
### 情報
ルーター2 (新しく購入したルーター)
※ルーター2はルーター1と異なるネットワークアドレスを配布する。
- IPアドレス: `192.168.0.102`
- ユーザー名: `admin`
- パスワード: `password`
クライアント (ubuntu)
- IPアドレス: `192.168.0.103`
- ユーザー名: `admin`
- パスワード: `password`

## 考察
### クライアントのip addr
```
$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 9c:a3:ba:30:79:61 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.103/24 brd 192.168.0.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::9ea3:baff:fe30:7961/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 9c:a3:ba:30:1f:9e brd ff:ff:ff:ff:ff:ff
inet 192.168.2.101/24 brd 192.168.2.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::9ea3:baff:fe30:1f9e/64 scope link
valid_lft forever preferred_lft forever
```
### VyOSのコンフィグ(一部)
```
system {
config-management {
commit-revisions 100
}
console {
}
gateway-address 192.168.1.1
host-name vyos
login {
user admin {
```
ゲートウェイのアドレスは正しそう
ルーターから8.8.8.8にpingは通る
```
admin@vyos:~$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_req=1 ttl=52 time=18.2 ms
64 bytes from 8.8.8.8: icmp_req=2 ttl=52 time=17.7 ms
64 bytes from 8.8.8.8: icmp_req=3 ttl=52 time=17.6 ms
^C
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 17.654/17.879/18.202/0.234 ms
```
### ip route(ルーター)
```
admin@vyos:~$ ip route
default via 192.168.1.1 dev eth1 proto zebra
127.0.0.0/8 dev lo proto kernel scope link src 127.0.0.1
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.102
192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.101
192.168.2.0/24 dev eth2 proto kernel scope link src 192.168.2.1
```
わからん
NAPTの設定がないから、受信パケットがクライアントに到達できないのが原因
---
お疲れ様です。チーム:thonk_spin.ex-large.rotate.parrot:の高山です。
外に出れません・・。の解答を送らせていただきます。
## 原因特定
ルータ2にログインし、`show configuration`で設定を見たところ、IPマスカレードの設定がないことを確認しました。
つまり、クライアントが送信するパケットは、送信元アドレスの`192.168.2.x`が`192.168.1.x`に変換されないまま送信されていると考えられます。そして、受信パケットの宛先アドレスも`192.168.2.x`のままになっているため、ルータ1上で経路不明のため喪失していると考えられます。
## 問題解決
ルータ2にログインし、以下のコマンドでIPマスカレードの設定を追加しました。
```
$ configure
# set nat source rule 100 outbound-interface eth1
# set nat source rule 100 source address 192.168.2.0/24
# set nat source rule 100 translation address masquerade
# commit
# save
# exit
```
そして、クライアントにログインし、以下のようにインターネットと疎通できることを確認しました。
```
$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=51 time=17.8 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=51 time=17.8 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=51 time=17.8 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=51 time=17.9 ms
^C
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 17.830/17.889/17.960/0.046 ms
```