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
更新情報をありがとうございます。
まず最初に提案したいのは、eth0
DHCP 範囲を から始まるように修正することです192.168.5.2
。現在は から始まっているようです192.168.5.1
。
次に投稿するのは、 経由で接続されたデバイスのルーティング テーブルeth0
と、 経由で接続されたデバイスのルーティング テーブルですwlan1
。
ルーティング テーブルを取得する前に、両方のデバイスが正常に DHCP を実行し、想定されるサブネット内にアドレスがあることを確認してください。