Проводной беспроводной мост в Linux

я пытаюсь настроить Raspberry Pi в качестве моста, используя Debian wheezy. У меня 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

Итак, что же я здесь не так?

обновление: Итак, я провел дальнейшие исследования и могу поднять мост, но, похоже, это разрушает (проводное) соединение ethernet, что странно. Например, по ИРЦ:

загрузки системы...

ping 192.168.62.1 

(маршрутизатор) - это работает

попытка связаться с беспроводной локальной сетью ... терпит неудачу (точнее "с ограниченным подключением" на Андроид телефон - не годится)

brctl showmacs br0

это просто показывает mac wlan0 и mac телефона на данный момент

brctl addif br0 eth0 wlan0

на данный момент я могу связать телефон с беспроводной сетью, но...

ping 192.168.62.1

...не

и точно так же я больше не могу пинговать RasPi с любой другой машины на сеть

Running

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
14
задан adrianmcmenamin
21.02.2023 3:46 Количество просмотров материала 2751
Распечатать страницу

5 ответов

мосты легко:

есть проект на sourceforge, сделанный специально для вашей ситуации. http://sourceforge.net/projects/bridger/ оно даже приходит как пакет деб.

что касается "сбрасывания" пакетов:

  1. вы проверили, установлен ли iptables по умолчанию? sudo iptables --list должен сказать "принять, принять, принять" для коробки этого типа. Если это проблема выключить его.

  2. ты вообще пересылаешь пакеты, братан? убедитесь, что строка " net.ipv4.ip_forward=1 " не комментируется в /etc/sysctl.conf (по умолчанию), затем перезапустите сеть.

  3. случайный режим не поддерживается ваш беспроводной адаптер. (это означает, что он не может принимать пакеты, которые не предназначены для него)

чистый мост против общего Bridge:

  1. iface br0 inet dhcp показывает общий bridge, что означает, что сам мост получает ip-адрес и может быть конечной точкой для трафика.

  2. чистый мост не получает IP-адрес и только перенаправляет трафик между двумя интерфейсами

  3. Общий Мост файл конфигурации Sample /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. устранение 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 bridging, и если это не работает, то ваш беспроводной ключ не поддерживает случайный режим. (см. выше)

если он работает в любое время, перезагрузится и убедиться, что он все еще работает.

10
отвечен MattPark 2023-02-22 11:34

У меня есть несколько беспроводных мостов, работающих на Debian Linux и Openwrt, поэтому я очень хорошо знаком с этой проблемой.

вы пропустили одну важную команду: вы забыли указать драйверу беспроводной сети передавать 4-адресные кадры (иногда неправильно/исторически называемые WDS), что требуется для 802.11/Wireless bridging. Сделайте это с командой "IW dev wlan0 set 4addr on". Используйте оператор" pre-up " в файле интерфейсов Debian на мосту, чтобы применить его перед запуском моста. Обратите внимание, что режим фрейма с 4 адресами требует поддержки драйверов, и некоторые старые Дрянные драйверы 802.11 или оборудование могут не поддерживать его.

Я также сильно подозреваю, что ваши проблемы могут быть осложнены ошибкой в ядре Linux, которая конкретно влияет на мостовые интерфейсы. Я сам столкнулся с этой ошибкой и должен был скомпилировать свой собственный wpa_supplicant из источников, потому что версия в Debian старая и подвержена влиянию. wpa_supplicant и hostapd имеют общую кодовую базу, но я не совсем уверен, что это повлияло на hostapd, а также wpa_supplicant.

существует обходной коммит к проблеме здесь:

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

У меня сложилось впечатление, что это в выпуске 2.5, и я знаю, что это в текущем источнике 2.6. Текущая версия Debian 2.4, которая сломана. Пожалуйста, донимать проект Debian обновить свои wpasupplicant и hostapd пакеты.

вот пример конфигурации для клиента беспроводного моста, использующего WPA / WPA2 с беспроводным мостом между интерфейсами wlan0 и eth0, с хостом, получающим адрес DHCP на интерфейсе br0 (замените "dhcp" на "manual" без IP-адреса). Для ситуации, где вы хотите быть AP, включать interface= и bridge= команды в hostapd.conf и опустить команды 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 2023-02-22 13:51

вы, кажется, нужен IP переадресации.

попробовать cat /proc/sys/net/ipv4/ip_forward

Если это 0 вопрос: echo 1 > /proc/sys/net/ipv4/ip_forward

3
отвечен CSᵠ 2023-02-22 16:08

мост может работать только тогда, когда интерфейс получает все пакеты, иначе он увидит пакеты, адресованные только ему. Текущая настройка может описывать конфигурацию маршрутизатора, но не моста.

eth0 и wlan0 не должны иметь ip-адресов (что означает 0.0.0.0), и при желании вы всегда можете использовать IP-адрес для br0.

вот немного официальной документации, а также: http://wiki.debian.org/BridgeNetworkConnections

0
отвечен John Wilcox 2023-02-22 18:25

настроить 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 2023-02-22 20:42

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх