基本的に私のネットワークはこのようになっています
+------+
10.0.0.10 ------ 10.0.0.1=|Laptop|=11.0.0.11 ------ 11.0.0.1
(wlan0,client) (AP,wlan0)+------+(wlan1,client) (AP)
wlan0とwlan1はラップトップに接続されたUSB Wi-Fiアダプタです
これらのネットワークをラップトップ経由で接続したいのですが、最初はブリッジを試みましたが、ブリッジはサポートされていないことがわかりました。
これを試してみましたが、うまくいきませんでした。
iptables -A FORWARD -i wlan0 -o wlan1 -j ACCEPT
iptables -A FORWARD -i wlan1 -o wlan0 -j ACCEPT
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o wlan1 -j MASQUERADE
何か助けていただければ幸いです。
答え1
2 つのマスカレード ルールは必要ありません。コンピュータをデフォルト ルートとするクライアントをマスカレードするだけで済みます。つまり、「WAN」側のインターフェイスから送信されるパケットにソース NAT を適用します。
ファイアウォールがデフォルト状態の場合、必要なルールは次の 1 つだけです。
iptables -t nat -A POSTROUTING -o wlan1 -j MASQUERADE
異なるネットワーク上の MTU が異なる場合は、MSS 修正を適用する必要がある可能性があります。
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
(これは、「ping は機能するが、Web サイトは機能しない」または「一部のサイトは機能するが、他のサイトは機能しない」などの問題を解決するのに役立ちます)。
非常によくある落とし穴があります。私はこれを 20 年ほどやっていますが、すべてが機能するはずなのに、何かが機能しないという状況になるまで、このことを忘れてしまうことがよくあります。カーネルでパケット転送を明示的に有効にする必要があります。
sysctl net.ipv4.ip_forward=1
/etc/sysctl.conf
起動後に有効になるように同じ変数を設定します。