Я пытаюсь настроить свой 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
Кажется, что все идет хорошо, но я не могу связываться с мостовым беспроводным соединением - даже если мигающие огни на флешке указывают на обмен пакетами.
Я где-то читал, что не все карты / устройства будут работать в режиме 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, что странно. Например, на RPi:
Загрузите систему ...
ping 192.168.62.1
(роутер) - это работает
Попытка связаться с беспроводной локальной сетью ... не удалась (или, скорее, "с ограниченной связью" на телефоне Android - не имеет смысла)
brctl showmacs br0
Это просто показывает Mac Wlan0 и Mac телефона на данный момент
brctl addif br0 eth0 wlan0
Теперь я могу связать телефон с беспроводной сетью, но ...
ping 192.168.62.1
... терпит неудачу
И так же я больше не могу пинговать RasPi с любой другой машины в сети
Бег
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
показывает? И поиск в Google по идентификатору вашего устройства показывает, что вам нужно новейшее ядро или беспроводные модули для запуска этого устройства в режиме точки доступа. Смотрите это . Какое ядро иath9k
драйвер вы используете?Ответы:
Мосты сделаны легко:
Существует проект sourceforge, созданный специально для вашей ситуации. http://sourceforge.net/projects/bridger/ Это даже входит в пакет deb.
Что касается «отбрасывания» пакетов:
Вы проверили, установлен ли iptables в значение по умолчанию?
sudo iptables --list
должен сказать «ПРИНЯТЬ, ПРИНЯТЬ, ПРИНЯТЬ» для коробки этого типа. Если это проблема, выключите его.Вы даже пересылаете пакеты, брат? Убедитесь, что строка «net.ipv4.ip_forward = 1» НЕ закомментирована в /etc/sysctl.conf (это по умолчанию), затем перезапустите свою сеть.
Случайный режим не поддерживается вашим беспроводным ключом. (то есть он не может принимать пакеты, которые ему не предназначены)
Чистый мост против общего моста:
iface br0 inet dhcp указывает общий мост, что означает, что сам мост получает ip и может быть конечной точкой для трафика.
Чистый мост не получает IP-адрес и только перенаправляет трафик между двумя интерфейсами
Образец общего файла / etc / network / interfaces config (Debian / Ubuntu)
Перезагрузите сеть:
sudo /etc/init.d/networking restart
после внесения сложных изменений в конфигурацию сети проще просто перезагрузиться, чем убедиться, что все перезагрузилось правильно при перезагрузке.Вы думаете, что у вас есть проблемы с маршрутизацией:
Устранить DNS как причину , протестировав с
ping 8.8.8.8
. Если это работает, возможно, у вас проблема с 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
Обновите свой общий мост внутрибрюшинно с
dhclient br0
и повторным тестированием сping 8.8.8.8
Проверьте интерфейсы «ведомых» с
ifconfig
и убедитесь , что eth0 и wlan0 НЕ имеют IP - адрес. Теперь они часть моста. Если это так, убедитесь, что вы удалили их из всех файлов конфигурации, установите для них статический 0.0.0.0 или что-то еще.Если НИЧЕГО из этого не работает, попробуйте это приложение для моста Debian, а если это не сработает, ваш беспроводной ключ не поддерживает беспорядочный режим. (см. выше)
Если он работает в любое время, перезагрузите компьютер и убедитесь, что он все еще работает.
источник
eth0
иwlan0
настройки в этом примере? В частности, как вы устанавливаете SSID и любую аутентификацию дляwlan0
?У меня есть несколько беспроводных мостов, работающих на Debian Linux и Openwrt, поэтому я очень хорошо знаком с этой проблемой.
Вы пропустили одну важную команду: вы забыли сказать своему беспроводному драйверу передавать 4-адресные кадры (иногда неправильно / исторически называемые WDS), что требуется для 802.11 / беспроводного моста. Сделайте это с помощью команды «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:
И убедитесь, что ваш wpa_supplicant версии 2.5 или новее. Он не будет работать с wpa_supplicant 2.4 и текущими версиями ядра.
Я также должен отметить, что в ifup в настоящее время имеется ошибка, из-за которой интерфейсы моста могут не работать во время загрузки, но это совсем другая проблема.
источник
Вы, кажется, нуждаетесь в пересылке ip.
пытаться
cat /proc/sys/net/ipv4/ip_forward
Если это
0
проблема:echo 1 > /proc/sys/net/ipv4/ip_forward
источник
sys.net.ipv4.ip_forward
предназначен для маршрутизации IPv4, NAT и т. д. Мосты работают на один уровень ниже в сетевом стеке.Мост может работать только тогда, когда интерфейс получает все пакеты, в противном случае они увидят пакеты, адресованные только им. Ваша текущая настройка может описывать конфигурацию для маршрутизатора, но не для моста.
У eth0 и wlan0 не должно быть IP-адресов (то есть 0.0.0.0), и при желании вы всегда можете использовать IP-адрес для br0.
Вот также некоторая официальная документация: http://wiki.debian.org/BridgeNetworkConnections
источник
настроить wlan0
vi / etc / network / interface
vi /etc/sysctl.conf
vi /etc/rc.local
источник