web-dev-qa-db-ja.com

VPNに接続されていますが、リモートネットワーク上のホストにpingできません

R2でセットアップしたVPN(L2TP/IPSec)サーバーにPC2を接続しています。 PC3とPC4にpingを実行するにはPC2が必要ですが、機能しません。 Windowsマシンを使用してVPNに接続すると、R2でホストにpingを実行できますが、Linuxマシン(Raspbian Jessie)ではそうではありません。解決策はルーティングテーブルに関係していると思いますが、そこで何をしているのかわかりません。

ブラウザに192.168.1.1と入力すると、リモートルーターのログイン画面が表示されるため、PC2からR2に接続していることがわかります。

Networking diagram

PC2はR1では192.168.1.125、R2では192.168.1.69です。 R2のパブリックIPは76.73.240.120です。現在のルーティング情報は次のとおりです。

root@raspberrypi:/home/pi# ip route show
default dev ppp0  scope link
default via 192.168.1.1 dev wlan0  metric 303
76.73.240.120 via 192.168.1.1 dev wlan0
192.168.1.0/24 dev wlan0  proto kernel  scope link  src 192.168.1.125  metric 303
192.168.1.1 dev ppp0  proto kernel  scope link  src 192.168.1.69

PC2がR2の下のホストにpingできるようにするには、何をする必要がありますか?

1
etho201

これはめちゃくちゃに見えます!まず最初に、ルーターは異なるネットワークを相互に接続します。簡単にするために、物事が同じネットワーク上にある場合、それらは互いに直接通信できるはずです。 2つのネットワーク192.168.1.0/24があります。最も簡単な解決策は、そのうちの1つ(PC1、PC2、R1)の番号を192.168.2.0/24に変更することです。

PC3が192.168.1.10にあるとしましょう。

問題になる理由は、PC3へのアクセス方法に3つのルールがあるためです。1つは192.168.1.0/24に一致するため、2つはdefaultルールに一致するためです。これも0.0と記述できます。 .0.0/0(1回はppp0インターフェイス(トンネル)経由、もう1回はwlan0インターフェイス経由)。

24は0より大きいため、より具体的であり、したがって使用されるため、ルールは順番にランク付けされます。

したがって、このルーティングテーブルは、PC2がwlan0インターフェイスを介してPC3と直接通信できることを示しています。したがって、ping PC3すると、ワイヤレスカードが使用されます。

PC1、PC2、およびR1の番号を192.168.2.0/24ネットワーク上に変更すると、PC2の場所のルールがはるかに単純になります。パケットを192.168.2.0/24に送信する必要がある場合は、wlan0経由で送信します。それ以外の場合は、ppp0経由で192.168.1.1に送信します。

192.168.1.1に到達するには、ppp0経由で0.0.0.0/0、wlan0経由で0.0.0.0/0、wlan0経由で192.168.1.0/24、ppp0経由で192.168.1.1/32の4つの選択肢があります。/32ルートが最も具体的であるため、選択されます。これが、R2が表示される理由を説明しています。

あなたcould PC3とPC4のルートを追加します。

ip route add 192.168.1.10/32 dev ppp0
ip route add 192.168.1.11/32 dev ppp0

そして、R2がパケットを返すのに十分なものを分類することを期待しますが、番号の付け直しははるかに簡単です。

1
icarus