Debian wheezy を使って Raspberry Pi をブリッジとして設定しようとしています。私は hostapd.conf
を持っています。(セキュリティのためにいくつかの詳細を変更しました。)
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
…fails
同様に、ネットワーク上の他のどのマシンからもRasPiにpingすることができなくなりました
Running
ifconfig br0
ブリッジがパケットを落としていることを示唆している
Any ideas?
更なる更新: /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
17 None 2012-12-16
ブリッジは簡単にできました
あなたの状況に合わせて作られたプロジェクトが sourceforge にあります。http://sourceforge.net/projects/bridger/ deb パッケージとしても提供されています
パケットの「ドロップ」に関しては
iptablesがデフォルトのドロップに設定されているか確認しましたか?
sudo iptables --list
は、このタイプのボックスには “ACCEPT, ACCEPT, ACCEPT” と書かれているはずです。それが問題ならば、それをオフにしてくださいパケットを転送していますか?etc/sysctl.conf に “net.ipv4.ip_forward=1” という行がコメントされていないことを確認してください (デフォルトでコメントされています)
お使いのワイヤレスドングルでは、プロミスキュアスモードはサポートされていません。(宛先不明のパケットを受信できないことを意味します)
ピュアブリッジ対シェアードブリッジ
iface br0 inet dhcp は共有ブリッジを示し、ブリッジ自身が ip を取得してトラフィックのエンドポイントになることを意味します
純粋なブリッジはIPアドレスを取得せず、2つのインターフェース間のトラフィックを転送するだけです
共有ブリッジのサンプル /etc/network/interfaces 設定ファイル (Debian/Ubuntu)
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # Bridge between eth0 and wlan0 auto br0 iface br0 inet dhcp pre-up ip link set eth0 down pre-up ip link set wlan0 down pre-up brctl addbr br0 pre-up brctl addif br0 eth0 wlan0 pre-up ip addr flush dev eth0 pre-up ip addr flush dev wlan0 post-down ip link set eth0 down post-down ip link set wlan0 down post-down ip link set br0 down post-down brctl delif br0 eth0 wlan0 post-down brctl delbr br0
ネットワークを再起動してください。sudo /etc/init.d/networking restart
複雑なネットワーク設定を変更した後は、再起動ですべてが適切に再起動されたことを確認するよりも、再起動する方が簡単です
ルーティングの問題があると思っているのか
ping 8.8.8.8
でテストしてDNSを原因から除外してください。これがうまくいった場合は、おそらくネットワークにDNSの問題があると思われます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
共有ブリッジのIPを
dhclient br0
で更新し、ping 8.8.8.8
で再テストしてくださいifconfig
で’スレーブ’インターフェースをチェックして、eth0とwlan0がIPアドレスを持っていないことを確認してください。それらは今ではブリッジの一部です。もしそうなら、全ての設定ファイルからそれらを削除し、静的な0.0.0.0.0か何かに設定することを確認してください
どれもうまくいかない場合は、debian ブリッジングアプリを試してみて、うまくいかない場合は、あなたのワイヤレスドングルが promiscuous モードをサポートしていないことになります。(上記参照)
ここでいつでも動くようになったら再起動して、まだ動くか確認してください
10 MattPark 2012-12-18
私は、Debian Linux と Openwrt でいくつかのワイヤレスブリッジを動かしたことがあるので、この問題についてはよく知っています
重要なコマンドを見逃しています。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 にも影響を与えたのかどうかは完全にはわかりません
ここには、この問題に対する回避策があります
私はこれが 2.5 リリースに含まれているという印象を受けていますし、現在の 2.6 のソースに含まれていることも知っています。現在の Debian のバージョンは 2.4 で、これは壊れています。Debian プロジェクトに wpasupplicant と hostapd パッケージを更新するよう懇願してください
ここでは、WPA/WPA2 を使用したワイヤレスブリッジクライアントの設定例を示しています。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 には、起動時にブリッジインターフェースが立ち上がらないというレースバグがあることにも注意しなければなりませんが、それは全く別の問題です
6 turnip_turnip_turnip 2016-03-19
ip転送が必要なようですね
試してみてください cat /proc/sys/net/ipv4/ip_forward
0
の問題であれば。echo 1 > /proc/sys/net/ipv4/ip_forward
3 CSᵠ 2012-12-17
ブリッジングは、インターフェイスがすべてのパケットを受信したときにのみ動作します。あなたの現在の設定は、ルータのための設定を記述しているかもしれませんが、ブリッジのための設定ではありません
eth0 と wlan0 は ip アドレスを持たないはずです (0.0.0.0.0 を意味します) 必要であれば、常に br0 に IP アドレスを使うことができます
こちらにも公式ドキュメントがあります。http://wiki.debian.org/BridgeNetworkConnections
0 John Wilcox 2012-12-20
configure 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
0 netawater 2015-01-06