eth0とwlan0ブリッジ

eth0とwlan0ブリッジ

コンピュータC、ルータR、Raspberry Pi Pがあります。彼らは接続されています:

インターネット <--イーサネット--> R <--wlan-->P <--イーサネット--> C

今Cがインターネットにアクセスできるようにしたいです。

Pにはwlan0とeth0があります。最初はeth0とwlan0を接続しようとしましたが、私が理解しているWi-Fiの性質のため、これは不可能です。

次のアプローチは、PにDHCPサーバーを追加し、CにIP番号をリースさせることです。ip routeCを使用するとうまく機能します。

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 routePに与えられる:

デフォルトは 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

関連情報