web-dev-qa-db-ja.com

ラズベリーパイのeth0にタップをブリッジする方法は?

私はRaspberryPiをxbox360のopenvpncleintとして使用しています。これは、大学では、厳密なNATタイプまたは接続制限のいずれかでxboxliveが開始されるためです。 VPNに問題なく接続できます。タップインターフェイスをpiのeth0インターフェイスとブリッジする方法を知る必要があります。基本的に私がやっていることは、イーサネットポートをpiからxboxに接続して、vpnをxboxに共有することです。 piはwlan0を介してwifi経由でインターネットに接続していますが、より安定させるために、ある時点でusbイーサネットNICを購入する場合があります。これは、piからの起動時に自動的に実行される必要があるため、電源障害が発生した場合は、自動的に再接続されます。

私はラップトップを使用してxboxへのVPN接続を共有しましたが、それは問題なく機能するので、私の理論が機能することはわかっています。piでそれを行う方法が必要なので、この仕事でラップトップを占有する必要はありません。

1
bob riley

2つの接続のブリッジングは簡単です。現在非推奨のbridge-utilsの使用を避け、代わりにiproute2ユーティリティを使用します。

 ip tuntap add tap0 mode tap user root
 ip link set tap0 up
 ip link add br0 type bridge
 ip link set tap0 master br0
 ip link set dev eth0 down
 ip addr flush dev eth0 
 ip link set dev eth0 up
 ip link set eth0 master br0
 ip link set dev br0 up

そして今、あなたはbr0にアドレスを割り当てることができます。

編集:

あなたは正しいです、あなたは正しくないことを言いました:tunとtapインターフェースの間には重要な違いがあり、tunインターフェースはbrdigすることができません。から ウィキペディア

TUN(つまりネットワークTUNnel)は、ネットワーク層デバイスをシミュレートし、IPパケットのような層3パケットで動作します。 TAP(つまりネットワークタップ)は、リンク層デバイスをシミュレートし、イーサネットフレームのような層2パケットで動作します。 TUNはルーティングで使用され、TAPはネットワークブリッジの作成に使用されます。

したがって、エラーメッセージは非常に重要です、つまりこれは修正できないものです。

Tunインターフェースを機能させるには、それを作成する必要があります(mode tapmode tun上記)、LAN範囲外のIPアドレスを割り当て、ファイル/etc/sysctl.confでIP転送をアクティブにして再起動しますsysctl。ルーティング構成は自動であり、それに基づいて行動する必要はありません。最後に、Piがeth0経由で接続されていると仮定して、iptablesrouleをfollwosとして変更します。

  iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

それでも、有益ではありますが、これはVPNによって自動的に実行される必要があります。確かにOpenVPNはそれを実行します。なぜVPNがそれを担当しないのですか?

2
MariusMatutiae