# 外に出れません・・。 | 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` ![](https://i.imgur.com/czFw7PC.png) ## 考察 ### クライアントの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 ```