2番目のWiFiアダプタのネットワークへの「インターネットホットスポット」アクセスをどのように共有しますか?

2番目のWiFiアダプタのネットワークへの「インターネットホットスポット」アクセスをどのように共有しますか?

Linuxルーティングの問題を解決するために誰が助けることができますか?基本的に、Ubuntuノートブックを使用して接続されたネットワークへのインターネットアクセスを提供したいと思います。

Wi-Fiネットワーク(192.168.42.0/24)があるラズベリーパイがあります。 IPアドレスは192.168.42.20です。

インターネットアクセスはモバイルホットスポットを介して提供されます。 (192.168.43.0/24).インターネットゲートウェイは192.168.43.1です。

私は上記の各ネットワークに1つずつ2つのWi-Fiカードを持つLinuxノートブック(Ubuntu)を持っています。 (192.168.42.21および192.168.43.10)

また、クライアントとインターネット接続を正常に共有したイーサネットカードの他のネットワークも接続しました。ネットワークは10.42.0.0/24です。この例では、ノートブックはDHCPサーバーで、対応するIPは10.42.0.1です。

私はラップトップを使ってPiにインターネットアクセスをルーティングしようとしています。ノートブックに次のようなiptableルールを追加しました。これは、私が言ったように、インターネットに接続できる10.42.0./24ネットワークの転送ルールに由来します。

-A FORWARD -d 192.168.42.0/24 -o wlx801f0281f02a -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.42.0/24 -i wlx801f0281f02a -j ACCEPT
-A FORWARD -i wlx801f0281f02a -o wlx801f0281f02a -j ACCEPT
ip_forwarding is enabled

Piにパスを追加しました。これで、ルーティングテーブルは次のようになります。

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.42.21   0.0.0.0         UG    0      0        0 wlan0
192.168.42.0    0.0.0.0         255.255.255.0   U     303    0        0 wlan0

Piは他のネットワークにpingを送信でき、他の2つのネットワークはPiにpingを送信できます。

しかし... 10.42.0.117のデバイスは外部の世界にシームレスに接続できますが、Piはまだインターネットにアクセスできません。

10.42.0.117のルーティングテーブルは、Piのルーティングテーブルと完全に「並列」です。

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.42.0.1       0.0.0.0         UG    0      0        0 eth0
10.42.0.0       0.0.0.0         255.255.255.0   U     0      0        0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo

私は何を見逃していますか?

ベストアンサー1

したがって、@YoMismoが私を正しい方向に導いた後の答えは、iptablesルールをもう1つ追加することでした。

sudo iptables --table nat -A POSTROUTING -s 192.168.42.0/24 ! -d 192.168.42.0/24 -j MASQUERADE

結果を見ることができます

sudo iptables -t nat -L -n -v

要約すると、次のようにアクセスする必要があるデバイスにパスを追加します。

sudo ip route add 0.0.0.0/0 via 192.168.42.21 dev wlan0 

192.168.42.21は、「Linuxルーター」の「ブリッジ」Wi-FiアダプターのIPアドレスです。

次に、次のように「linux router」に iptables ルールを追加します。

sudo iptables -A FORWARD -d 192.168.42.0/24 -o wlx801f0281f02a -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -s 192.168.42.0/24 -i wlx801f0281f02a -j ACCEPT
sudo iptables -A FORWARD -i wlx801f0281f02a -o wlx801f0281f02a -j ACCEPT
sudo iptables --table nat -A POSTROUTING -s 192.168.42.0/24 ! -d 192.168.42.0/24 -j MASQUERADE

同様に、wlx801f0281f02aは、ネットワーク192.168.42.0/24への接続に使用するブリッジWi-Fiアダプタインターフェースです。

したがって、ソースデバイスからのインターネット要求は、ソースデバイスへのパスを使用して「Linuxルータ」の192.168.42.21にルーティングされ、ここでNATになりゲートウェイに転送されます。

ip_forwardが有効になっています。

要件が一時/一時である場合は、規則を継続的に作成するか、bashスクリプトに入れます。

おすすめ記事