Linuxのワイヤレスブリッジに有線


17

Debian wheezyを使用して、Raspberry Piをブリッジとして設定しようとしています。私は持っていhostapd.confます:(セキュリティのためにいくつかの詳細が変更されました、そして、はい、私はWEPが良くないことを知っています)...

interface=wlan0
bridge=br0
driver=nl80211
auth_algs=1
macaddr_acl=0
ignore_broadcast_ssid=0
logger_syslog=-1
logger_syslog_level=0
hw_mode=g
ssid=MY_SSID
channel=11
wep_default_key=0
wep_key0=MY_KEY
wpa=0

そしてこれは/etc/network/interfaces

auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
auto br0
iface br0 inet dhcp
bridge-ports eth0 wlan0

すべてがうまくいくように思えますが、USBスティックの点滅するライトがパケットの交換を示唆していても、ブリッジワイヤレス接続と関連付けることはできません。

私はどこかで、すべてのカード/デバイスがhostapモードで実行されるわけではないことを読んでいます-それらは一方向にパケットを渡しません:そうですか?(情報は少し古い)-この私のカード:

[    3.663245] usb 1-1.3.1: new high-speed USB device number 5 using dwc_otg
[    3.794187] usb 1-1.3.1: New USB device found, idVendor=0cf3, idProduct=9271
[    3.804321] usb 1-1.3.1: New USB device strings: Mfr=16, Product=32, SerialNumber=48
[    3.816994] usb 1-1.3.1: Product: USB2.0 WLAN
[    3.823790] usb 1-1.3.1: Manufacturer: ATHEROS
[    3.830645] usb 1-1.3.1: SerialNumber: 12345

だから、私はここで何が間違っていましたか?

更新:だから私はさらなる調査を行ってブリッジを立ち上げることができますが、一見すると(有線の)イーサネット接続を破壊します。これは奇妙です。たとえば、RPiで:

システムを起動します...

ping 192.168.62.1 

(ルーター)-これは動作します

ワイヤレスLANに関連付けようとしましたが...失敗します(むしろ、Androidの電話で「接続が制限されている」-良くない)

brctl showmacs br0

これは、この時点でwlan0のmacと電話のmacを表示するだけです。

brctl addif br0 eth0 wlan0

この時点で、電話をワイヤレスネットワークに関連付けることができますが、...

ping 192.168.62.1

...失敗

同様に、ネットワーク上の他のマシンからRasPiにpingできなくなりました

ランニング

ifconfig br0

ブリッジがパケットをドロップしていることを示唆しています...

何か案は?

更なる更新/etc/network/interfacesファイルは(そして上記のシーケンスのために)読み取ります:

auto lo eth0

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

これは間違いなくスーパーユーザーにとって話題になっているため、心配する必要はありません。賞金に幸運を祈ります。答えも同様に知りたいです。
ブレークスルー

何がiw dev wlan0 info表示されますか?デバイスIDのグーグル検索では、このデバイスをAPモードで実行するには最新のカーネルまたはワイヤレスモジュールが必要であることがわかります。参照してくださいこれを。どのカーネルとath9kドライバーを実行していますか?
gertvdijk

この回答も参照してください。
トーマスギヨ-シオンネスト

回答:


10

簡単になった橋:

あなたの状況に合わせて作成されたsourceforgeのプロジェクトがあります。http://sourceforge.net/projects/bridger/これはdebパッケージとしても提供されています。

「ドロップ」パケットに関して:

  1. iptablesがデフォルトのドロップに設定されているかどうかを確認しましたか? sudo iptables --list このタイプのボックスの場合、「ACCEPT、ACCEPT、ACCEPT」と言う必要があります。それが問題であれば、それをオフにします。

  2. パケットを転送しますか?「net.ipv4.ip_forward = 1」行が/etc/sysctl.confでコメント化されていないことを確認し(デフォルト)、ネットワークを再起動します。

  3. 無差別モードは、ワイヤレスドングルではサポートされていません。(宛先でないパケットを受け入れることができないことを意味します)

純粋なブリッジと共有ブリッジ:

  1. iface br0 inet dhcp共有ブリッジを示します。つまり、ブリッジ自体がIPを取得し、トラフィックのエンドポイントになります。

  2. 純粋なブリッジはIPアドレスを取得せず、2つのインターフェース間でトラフィックを転送するだけです

  3. 共有ブリッジのサンプル/ etc / network / interfaces設定ファイル(Debian / Ubuntu)

#このファイルは、システムで使用可能なネットワークインターフェイスを記述します
#およびそれらをアクティブにする方法。詳細については、interfaces(5)を参照してください。

#ループバックネットワークインターフェイス
オートロー
iface lo inetループバック

#eth0とwlan0間のブリッジ
自動br0
iface br0 inet dhcp
  pre-up ip link set eth0 down
  pre-up ip link set wlan0 down
  事前準備brctl addbr br0
  事前準備brctl addif br0 eth0 wlan0
  pre-up ip addr flush dev eth0
  pre-up ip addr flush dev wlan0
  ポストダウンIPリンクセットeth0ダウン
  ポストダウンIPリンクセットwlan0 down
  ポストダウンIPリンクセットbr0ダウン
  ポストダウンbrctl delif br0 eth0 wlan0
  ポストダウンbrctl delbr br0

ネットワークを再起動する:sudo /etc/init.d/networking restart複雑なネットワーク構成の変更を行った後、再起動ですべてが正しく再起動することを確認するよりも、単に再起動する方が簡単です。

あなたはルーティングの問題があると思う:

  1. を使用してテストすることにより、DNSを原因として排除しますping 8.8.8.8。これが機能する場合、おそらくネットワークにDNSの問題があります。

  2. sudo ip routeうまくいけば、ゲートウェイ確認してくださいdefault via 192.168.1.1 dev br0 proto dhcp(ゲートウェイが192.168.1.1であると仮定)。見つからないか間違っている場合は、修正しsudo ip route add default via 192.168.1.1ます。もう一度テストします。ping 8.8.8.8

  3. で共有ブリッジIP更新dhclient br0、再テストしますping 8.8.8.8

  4. 「スレーブ」インターフェースチェックし、ifconfig eth0とwlan0にIPアドレスがないことを確認します。彼らは今、橋の一部です。その場合は、すべての構成ファイルから削除して、静的0.0.0.0などに設定してください。

このどれも動作しない場合は、そのdebianブリッジングアプリを試してください。動作しない場合、ワイヤレスドングルは無差別モードをサポートしていません。(上記を参照)

ここでいつでも機能する場合は、再起動して、まだ機能することを確認してください。


interfacesファイルの最新の更新プログラムを参照してください。はい、すべてのチェーンがACCEPT
adrianmcmenamin

少なくともdhclient br0を適用し、eth0を0.0.0.0にロックダウンするように指定した場合、これらの指示は機能します。今では、自動化する方法を
考え出す

わかりました、rc.localスクリプトを使用して、ちょっとしたジグリーポケリーで実行しています(本質的にはhostapdを再起動する必要があります)。しかし今、同じボックス上の私のsquidサーバーは失敗しています-しかし、私はそれについてあなたに尋ねなかったので、それは別の質問である必要があります。
adrianmcmenamin

イカの質問は今superuser.com/questions/522332/で

何であるeth0wlan0、この例の設定は?具体的には、SSIDと認証をどのように設定しますwlan0か?
イアン14年

6

Debian LinuxとOpenwrtで動作するワイヤレスブリッジがいくつかあるので、この問題に非常に精通しています。

1つの重要なコマンドを見逃しました。802.11/ワイヤレスブリッジングに必要な4アドレスフレーム(不適切または歴史的にWDSと呼ばれることもあります)を送信するようにワイヤレスドライバーに指示するのを忘れました。これを行うには、「iw dev wlan0 set 4addr on」コマンドを使用します。ブリッジを起動する前に、ブリッジのDebianインターフェイスファイルで「pre-up」ステートメントを使用して適用します。4アドレスフレームモードではドライバーのサポートが必要であり、一部の古いくだらない802.11ドライバーまたはハードウェアではサポートされない場合があります。

また、ブリッジインターフェースに特に影響を与えるLinuxカーネルのバグによって、問題が複雑になっている可能性も強くあります。Debianのバージョンは古く、影響を受けているため、自分でこのバグに遭遇し、ソースから独自のwpa_supplicantをコンパイルする必要がありました。wpa_supplicantとhostapdは共通のコードベースを共有しますが、これがhostapdとwpa_supplicantに影響することは完全にはわかりません。

この問題に対する次善策のコミットがあります:

https://w1.fi/cgit/hostap/commit/?id=e6dd8196e5daf39e4204ef8ecd26dd50fdca6040

私はこれが2.5リリースにあるという印象を受けており、現在の2.6ソースにあることを知っています。現在のDebianバージョンは2.4ですが、壊れています。Debianプロジェクトをせがんでwpasupplicantおよびhostapdパッケージを更新してください。

インターフェイスwlan0とeth0間のワイヤレスブリッジでWPA / WPA2を使用するワイヤレスブリッジクライアントのサンプル構成を次に示します。ホストはbr0インターフェイスでDHCPアドレスを取得します(IPアドレスがない場合は「dhcp」を「manual」に置き換えます)。APになりたい場合は、hostapd.confにinterface =およびbridge =コマンドを含め、以下のwpa- *コマンドを省略します。

/ etc / network / interfacesファイルで:

allow-auto br0
iface br0 inet dhcp
    bridge_ports wlan0 eth0
    bridge_stp off
    bridge_waitport 5
    bridge_fd 0
    wpa-ssid mynetwork
    wpa-psk abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123
    wpa-iface wlan0
    wpa-bridge br0
    pre-up iw dev wlan0 set 4addr on
    post-down iw dev wlan0 set 4addr off

そして、wpa_supplicantがバージョン2.5以降であることを確認してください。wpa_supplicant 2.4および現在のカーネルバージョンでは動作しません。

また、現在、ifupには、起動時にブリッジインターフェイスが起動しないという競合バグがありますが、それはまったく別の問題です。


3

IP転送が必要なようです。

試してみる cat /proc/sys/net/ipv4/ip_forward

0問題がある場合:echo 1 > /proc/sys/net/ipv4/ip_forward


sys.net.ipv4.ip_forwardIPv4ルーティング、NATなどのためのものです。ブリッジは、ネットワークスタックの1つ下の層で機能します。
トーマスギヨ-シオンネスト

0

ブリッジングは、インターフェイスがすべてのパケットを受信した場合にのみ機能します。そうしないと、パケットは自分宛てのパケットのみが表示されます。現在の設定では、ブリッジの構成ではなくルーターの構成が記述されている場合があります。

eth0およびwlan0にはIPアドレス(0.0.0.0を意味する)を含めないでください。必要に応じて、br0には常にIPアドレスを使用できます。

また、いくつかの公式ドキュメントもあります:http : //wiki.debian.org/BridgeNetworkConnections


1
私はこれが古い投稿であることを知っていますが、何か他のものを検索しているときに見つけたので、ブリッジインターフェイスがブリッジに関する限りIPアドレスを持っている/持っていないかは関係ないと言及したいと思いました。Linuxでは、ブリッジドインターフェイスもARPパケットを中継します(OSIレイヤー2)。スイッチは、ブリッジの反対側に接続された複数のデバイスを、そのスイッチポートで受け入れられるようにマッピングします。私の参照は、経験S.アメリカのための1つのプライマリUSA NAPを含む一流のデータセンターでの高可用性の展開になど、ルータ、ブリッジ、ファイアウォール、としてLinuxサーバを展開している
jetole

0

wlan0を構成する

vi / etc / network / interface

iface eth0 inet static
address 192.168.2.1
network 192.168.2.0
netmask 255.255.255.0
broadcast 192.168.2.255

vi /etc/sysctl.conf

net.ipv4.ip_forward=1

vi /etc/rc.local

iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o wlan0 -j MASQUERADE
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.