Linuxでの有線から無線へのブリッジ

bridge linux raspberry-pi wireless-networking

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 パッケージとしても提供されています

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

  1. iptablesがデフォルトのドロップに設定されているか確認しましたか?sudo iptables --list は、このタイプのボックスには “ACCEPT, ACCEPT, ACCEPT” と書かれているはずです。それが問題ならば、それをオフにしてください

  2. パケットを転送していますか?etc/sysctl.conf に “net.ipv4.ip_forward=1” という行がコメントされていないことを確認してください (デフォルトでコメントされています)

  3. お使いのワイヤレスドングルでは、プロミスキュアスモードはサポートされていません。(宛先不明のパケットを受信できないことを意味します)

ピュアブリッジ対シェアードブリッジ

  1. iface br0 inet dhcp は共有ブリッジを示し、ブリッジ自身が ip を取得してトラフィックのエンドポイントになることを意味します

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

  3. 共有ブリッジのサンプル /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 複雑なネットワーク設定を変更した後は、再起動ですべてが適切に再起動されたことを確認するよりも、再起動する方が簡単です

ルーティングの問題があると思っているのか

  1. ping 8.8.8.8でテストしてDNSを原因から除外してください。これがうまくいった場合は、おそらくネットワークに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.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 にも影響を与えたのかどうかは完全にはわかりません

ここには、この問題に対する回避策があります

hostap - 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


タイトルとURLをコピーしました