コンピュータC、ルータR、Raspberry Pi Pがあります。彼らは接続されています:
インターネット <--イーサネット--> R <--wlan-->P <--イーサネット--> C
今Cがインターネットにアクセスできるようにしたいです。
Pにはwlan0とeth0があります。最初はeth0とwlan0を接続しようとしましたが、私が理解しているWi-Fiの性質のため、これは不可能です。
次のアプローチは、PにDHCPサーバーを追加し、CにIP番号をリースさせることです。ip route
Cを使用するとうまく機能します。
10.254.239.0/27 dev eth0 src 10.254.239.13 default via 10.254.239.10 dev eth0
Pのifconfigによって提供されます。
eth0リンクカプセル:イーサネットHWaddr b8:27:eb:44:bb:71 inetアドレス:10.254.239.10ブロードキャスト:10.254.239.31マスク:255.255.255.224 inet6 アドレス: fe80::3206:e7e:fb7e:23d5/64 範囲: リンク マルチキャストを実行するアップストリームブロードキャストMTU:1500指標:1 RXパケット:569エラー:0ドロップ:0オーバーフロー:0フレーム:0 TXパケット:235エラー:0ドロップ:0オーバーフロー:0キャリア:0 衝突: 0 txqueuelen: 1000 RXバイト:142936(139.5KiB)TXバイト:50384(49.2KiB) lo link encap: ローカルループバック inetアドレス:127.0.0.1マスク:255.0.0.0 inet6 アドレス:::1/128 範囲: ホスト 親ループバック操作MTU:65536指標:1 RXパケット:19エラー:0ドロップ:0オーバーフロー:0フレーム:0 TXパケット:19エラー:0ドロップ:0オーバーフロー:0キャリア:0 クラッシュ: 0 txqueuelen: 1 RXバイト:1444(1.4KiB)TXバイト:1444(1.4KiB) wlan0リンクカプセル:イーサネットHWaddr b8:27:eb:11:ee:24 inetアドレス:192.168.0.106ブロードキャスト:192.168.0.255マスク:255.255.255.0 inet6 アドレス: fe80::2501:6a8:8bcf:4a40/64 範囲: リンク マルチキャストを実行するアップストリームブロードキャストMTU:1500指標:1 RX パケット: 5415 エラー: 0 破棄: 4989 オーバーフロー: 0 フレーム: 0 TXパケット:454エラー:0ドロップ:0オーバーフロー:0キャリア:0 衝突: 0 txqueuelen: 1000 RXバイト:815495(796.3KiB)TXバイト:49230(48.0KiB)
CはPをpingできますが、Rはpingできないため、Pにルーティングエラーがあると信じられます。
RとCの間でトラフィックを転送するようにPを設定するには?
ip route
Pに与えられる:
デフォルトは 192.168.0.1 dev wlan0 metric 303 を渡します。 10.254.239.0/27 dev eth0プロトタイプカーネルスコープリンクsrc 10.254.239.10 192.168.0.0/24 dev wlan0プロトタイプカーネル範囲リンクsrc 192.168.0.106インジケータ303
Pでも
$猫/proc/sys/net/ipv4/ip_forward 1
答え1
これは典型的なIP転送ケースです。 Pで次のコマンドを実行します。
echo 1 > /proc/sys/net/ipv4/ip_forward