2つの異なるインターフェースで異なるサブネットIPにアクセスする

2つの異なるインターフェースで異なるサブネットIPにアクセスする

Raspberry Pi を設定して、eth0 または wlan1 のいずれかに接続されたデバイスにアクセスできるようにしようとしています。

望ましい機能は次のとおりです。

  • ユーザーはwlan1経由でRPi APに接続し、IP(192.168.4.x)が割り当てられます。
  • eth0 経由で RPi に接続し、IP (192.168.5.x) が付与される別のデバイス
  • ユーザーはローカルIPアドレスを介してeth0接続デバイスの設定インターフェースにアクセスできます。

私は dnsmasq を使用して各インターフェースに DHCP サーバーを設定しましたが、IP は問題なく提供されています。

# dnsmasq.conf
interface=wlan1
dhcp-range=wlan1,192.168.4.2,192.168.4.99,24h

interface=eth0
dhcp-range=eth0,192.168.5.1,192.168.5.99,24h

listen-address=::1,127.0.0.1,192.168.5.1,192.168.4.1

また、インターフェース間のトラフィックを転送するために iptables を更新しました。

sysctl -w net.ipv4.ip_forward=1
iptables -A FORWARD -i wlan1 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o wlan1 -j ACCEPT

しかし、実際にさまざまな IP にアクセスするとなると、まだ少し困惑しています。いくつかのルートを設定する必要があると思いますが、これを正確に実装する方法を理解するのに苦労しています。

wlan0 接続経由で 192.168.4.x および 192.168.5.x IP に ping を実行します。 ここに画像の説明を入力してください

そして、eth0 接続からの ...4.x および ...5.x の場合: ここに画像の説明を入力してください

iptables と netstat の出力:

pi@rak-gateway:~ $ sudo iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
pi@rak-gateway:~ $ netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0          0 wlan0
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 wlan0
192.168.4.0     0.0.0.0         255.255.255.0   U         0 0          0 wlan1
192.168.5.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0

答え1

しかし、実際にさまざまな IP にアクセスするとなると、まだ少し困惑しています。いくつかのルートを設定する必要があると思いますが、これを正確に実装する方法を理解するのに苦労しています。

ルーティングについて覚えておくべきことはルート上のすべてのコンピューター特定のパケットをどこに送信するかを知る必要があります。

つまり、Aが192.168.4.xとしてRaspPiに接続し、Bが192.168.5.yとして接続する場合、

  • 192.168.5.*/24 へのパケットは RaspPi の 192.168.4.? アドレスに送信されることを知っておく必要があります。
  • B は、応答するときに、192.168.4.*/24 へのパケットが RaspPi の 192.168.5.? アドレスに送信されることを認識する必要があります。

AとBがRaspberry Piにのみ接続されていて、RasPiのIPアドレスがデフォルトゲートウェイとして設定されている場合は、これを無料で取得できます。そうでない場合、たとえば、AとBが他のものにも接続されているか、dnsmasqデフォルトゲートウェイをアドバタイズするように構成していない場合は、ルートを設定する必要があります。AとBについて

これをAまたはBで直接静的に行うか、DHCPを使用してルートを配布することができます(最初のGoogleリンクでハウツーを確認できます)。ここ(詳細はGoogleで検索してください)。

いずれにせよ、デバッグにはルートを見るA と B の両方で (Linux では、 を使用できますip route get 1.2.3.4。ここで、1.2.3.4 は宛先アドレスです)。

答え2

更新情報をありがとうございます。

まず最初に提案したいのは、eth0DHCP 範囲を から始まるように修正することです192.168.5.2。現在は から始まっているようです192.168.5.1

次に投稿するのは、 経由で接続されたデバイスのルーティング テーブルeth0と、 経由で接続されたデバイスのルーティング テーブルですwlan1

ルーティング テーブルを取得する前に、両方のデバイスが正常に DHCP を実行し、想定されるサブネット内にアドレスがあることを確認してください。

関連情報