web-dev-qa-db-ja.com

RaspberryPiを使用した2つのサブネット間のネットワークトラフィックのルーティング

2つのサブネット間でトラフィックをルーティングするのに問題があります。現在の設定では、Rasbperry Piから両方のサブネット上のホストにpingを実行できますが、あるサブネットから別のサブネットにホストをpingすることはできません(タイムアウト)。

基本的に、一方のサブネットのホストがもう一方のサブネットのホストにアクセスできるようにします。私の計画は、サブネット間のほぼすべてのルーティングを処理するようにRaspberry Piを構成することでした。これは、各サブネットが、静的ルーティングをサポートしない独自の基本的な家庭用ルーターの背後にあるためです。次に、RPiの「ゲートウェイ」インターフェイスを介して、各ホストのルートを反対側のサブネットに追加します。

これが私の現在の設定です:

LAN A <--->ルーターA <---> RPi <--->ルーターB <---> LAN B

LAN A
ネットワーク:192.168.0.0/24
ゲートウェイ:192.168.0.1

LAN B
ネットワーク:192.168.1.0/24
ゲートウェイ:192.168.1.1

RPi
OS:ラズビアン
eth0:192.168.0.4
eth1:192.168.1.4

RPiインターフェース構成:

# cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 192.168.0.4
    netmask 255.255.255.0
    broadcast 192.168.0.255
    gateway 192.168.0.1

# The USB-Ethernet interface 1
allow-hotplug eth1
iface eth1 inet static
    address 192.168.1.4
    netmask 255.255.255.0
    broadcast 192.168.1.255
    gateway 192.168.1.1

RPiルート:

# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
192.168.0.0     192.168.0.1     255.255.255.0   UG    0      0        0 eth0
192.168.0.0     *               255.255.255.0   U     0      0        0 eth0
192.168.1.0     192.168.1.1     255.255.255.0   UG    0      0        0 eth1
192.168.1.0     *               255.255.255.0   U     0      0        0 eth1

RPiファイアウォールルール:

# iptables -t nat -n -L -v
Chain PREROUTING (policy ACCEPT 2711 packets, 147K bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain INPUT (policy ACCEPT 33 packets, 5204 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 97 packets, 7344 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain POSTROUTING (policy ACCEPT 97 packets, 7344 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 MASQUERADE  all  --  *      eth0    192.168.0.0/24       192.168.1.0/24
    0     0 MASQUERADE  all  --  *      eth1    192.168.1.0/24       192.168.0.0/24

ホスト192.168.0.3(WIN 10)ルート:

>route PRINT
===========================================================================
Interface List
...
===========================================================================

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      192.168.0.1      192.168.0.3    281
...
      192.168.1.0    255.255.255.0      192.168.0.4      192.168.0.3     26
...
===========================================================================
...

現在、これは、ホスト192.168.0.3から反対側のサブネットのゲートウェイにpingを実行すると発生します。

>ping 192.168.1.1

Pinging 192.168.1.1 with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 192.168.1.1:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss).

私のセットアップを見ると、おそらくショットガンのアプローチを採用したと言えるでしょうが、残念ながらうまくいきませんでした。他に何を設定する必要があるのか​​、どこが間違っているのかを教えてください。さらに情報を提供する必要がある場合はお知らせください。

よろしくお願いします。 :)

1

セットアップの完全なコンテキストは、ガレージのジャンパーケーブルを介してRPiを使用して結合した独自のインターネット接続とLANを備えた2つのアパートメントがあることです。この演習の要点は、ネットワークトラフィックが建物を離れることなく、2階のアパートのNASを管理できるようにすることです(これにより、データの共有も大幅に高速化されます)。また、各アパートを保持することもできます。 RPiがダウンした場合でも機能し続けるためのインターネット/ネットワークのセットアップ各アパートのコモディティルーターにはオプションと機能が非常に不足しているため、管理を行うホストに手動でルートを追加することで妥協しました。私のサブネットから。

確かにネットワーキングをより深く理解する必要があり、ITプロフェッショナルとして継続的に理解を深めています。今日、同僚と私の問題について話しましたが、ルートを追加する必要はなく、MASQUERADEの代わりにSNATを使用するようにファイアウォールルールを変更するだけで、サブネットが相互に通信し始めました(私も必要でした) Paulが提案したようにIPv4転送を許可するには、ありがとう!):

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 192.168.0.0/24 -o eth0 -j SNAT --to-source 192.168.0.4
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 192.168.1.0/24 -o eth1 -j SNAT --to-source 192.168.1.4

完全なiptablesリスト:

# iptables -t nat -n -L -v
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 SNAT       all  --  *      eth0    192.168.1.0/24       192.168.0.0/24       to:192.168.0.4
    0     0 SNAT       all  --  *      eth1    192.168.0.0/24       192.168.1.0/24       to:192.168.1.4

ご覧のとおり、ホスト192.168.0.3からテストすると、トラフィックは建物内にとどまります。

>tracert 192.168.1.1

Tracing route to 192.168.1.1 over a maximum of 30 Hops

  1     1 ms     1 ms    <1 ms  192.168.0.4
  2     1 ms     1 ms     1 ms  192.168.1.1

Trace complete.

コメントありがとうございます。

2