イーサネットからTunデバイスにトラフィックをルーティングする方法(VPNイーサネットポートの作成)

イーサネットからTunデバイスにトラフィックをルーティングする方法(VPNイーサネットポートの作成)

窒素ネットワークVアイデアエコーダーはイーサネットを介してRaspberry Piに直接接続され、Raspberry Piはイーサネットを介して接続されますwlan0。 Raspberry PiのVPN接続を介してNVRのすべてのトラフィックをルーティングしたいと思います。

VPNを起動する方法は次のとおりです。

openvpn --config /home/pi/my_conf.conf --pull-filter ignore redirect-gateway --route-noexec 

このコマンドは、サーバーがプッシュしたパスを無視しています。OpenVPNチュートリアルでこれを見つけました。確認すると、tun0VPN接続後にデバイスが作成されたことが確認されました。

したがって、NVRからVPNにトラフィックをルーティングするには、eth0NVRが使用する範囲内の静的IPをRaspberry Piのインターフェイスに提供する必要があります。私は次の方法でやりました/etc/dhcpcd.conf

interface eth0

static ip_address=192.168.1.1/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1

私のRaspberry Piにはwlan0ゲートウェイがあるので、192.168.0.1競合はありません。これで、NVRの範囲にあるethインターフェイスのIPアドレスがあり、VPNサーバーに接続されているので、NVRのIPアドレスにアクセスできるルートを追加tun0するだけですtun0。 192.168.0/24の範囲の一部のIPカメラにアクセスしたいので、ルーティングテーブルで次のことを行います。

pi@raspberrypi:~ $ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    202    0        0 eth0
0.0.0.0         192.168.0.1     0.0.0.0         UG    304    0        0 wlan0
192.168.0.0     0.0.0.0         255.255.255.0   U     304    0        0 wlan0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 tun0
192.168.1.0     0.0.0.0         255.255.255.0   U     202    0        0 eth0
192.168.255.5   0.0.0.0         255.255.255.255 UH    0      0        0 tun0

指標があるため、その範囲内のすべての項目が192.168.1.0/24通過するのがわかります。tun00

dnsmasqNVRでもeth0固定IPアドレスを使用していますが192.168.1.9

明らかに、NVRのどのカメラにもアクセスできません。 NVRの接続を192.168.1.189カメラに追加してみました。私は実行しようとしましたが、tcpdumpこれはeth0基本的に私が見るものです:

17:10:46.673062 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.189 tell 192.168.1.9, length 46

NVR(192.168.1.9)が誰であるかを見つけようとしていますが、192.168.1.189応答がありません。私の考えには何もルーティングされないようです。私も192.168.1.189それが動作することを確認するためにラズベリーパイにpingを試みました。最初の試みに成功しました。数分後にはもうPingを送信できなくなり、その理由がわかりません。しかし、Pingは192.168.1.1常に動作します。

修正する:

私は私が経験している問題をある程度理解しています。 NVRは192.168.1.0/24サブネット上にあり、同じサブネット上のカメラにアクセスしようとするため、IPパケットはゲートウェイ(Raspberry Pi)に送信されません。代わりに192.168.1.189tcpdumpが示すように、ARP要求を送信してカメラがどこにあるかを調べようとします。

この問題を解決するために、NVRのサブネットをに変更し、192.168.2.0/24Raspberry Piのインターフェイスにアドレスを提供しました192.168.2.1eth0これで、NVRがカメラや一部のAmazonサーバーなどに送信するすべてのパケットを見ることができます。しかし、答えはありませんでした。 NVRはパケットを送信するだけで何も受信しません。確認してみるtun0と到着経路に異常がないのでパケットは通過しなければならないようです。ただし、パケットは返されません。

修正する:

手動でパスを追加する代わりに、クライアントで開かれたVPN設定ファイルに次のものを追加しました.

route 192.168.1.0 255.255.255.0
route-metric 0
route-nopull

真下client。 VPNに接続すると、ルーティングテーブルにこのルートを表示できるようになりました。 Raspberry Piでpingを実行することもできます。しかし、NVRはまだパケットを送信するだけで、情報を受け取らないようです。

重要:実行すると、カメラにtcpdump -vvv -i eth0多くのパケットが移動していることがわかります。それらを通過させる測定値があるパスがあるので、192.168.1.189彼らは行かなければなりません。走れば数分間走っても何も見えない。だから物事はそこで進行しません。ただし、Raspberry Piの内部で(ssh経由で)実行すると、tcpdumpはすべてのpingパケットを見ることができます。これはパスが機能していることを確認します。ただし、イーサネットからの着信パケットには機能しません。tun00tcpdump -vvv -i tun0ping 192.168.1.189tun0

ベストアンサー1

おすすめ記事