changed 6 years ago
Published Linked with GitHub

外に出れません・・。

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.x192.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
Select a repo