Estoy intentando configurar mi Raspberry Pi como un puente, usando Debian wheezy. Tengo un hostapd.conf
: (algunos detalles cambiaron por seguridad, y sí, sé que WEP no es bueno) ...
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
Y esto en /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
Todo parece salir bien, pero no puedo asociarme con la conexión inalámbrica en puente, a pesar de que las luces parpadeantes en la memoria USB sugieren que se están intercambiando paquetes.
He leído en alguna parte que no todas las tarjetas / dispositivos se ejecutarán en modo hostap; no pasarán paquetes en una dirección: ¿es así? (La información era un poco vieja) - esta es mi tarjeta:
[ 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
Entonces, ¿qué me he equivocado aquí?
Actualización : Así que he realizado más investigaciones y puedo levantar el puente, pero aparentemente eso destruye la conexión de Ethernet (por cable), lo cual es extraño. Por ejemplo, en el RPi:
Arranque el sistema ...
ping 192.168.62.1
(enrutador): esto funciona
Intentar asociarse con LAN inalámbrica ... falla (o mejor dicho, "con conectividad limitada" en un teléfono Android, no es bueno)
brctl showmacs br0
Esto solo muestra mac de wlan0 y mac de teléfono en este punto
brctl addif br0 eth0 wlan0
En este punto, ahora puedo asociar el teléfono con la red inalámbrica, pero ...
ping 192.168.62.1
... falla
Y de manera similar, ya no puedo hacer ping a RasPi desde ninguna otra máquina en la red
Corriendo
ifconfig br0
Sugiere que el puente está cayendo paquetes ...
¿Algunas ideas?
Actualización adicional : el /etc/network/interfaces
archivo ahora (y para la secuencia anterior) dice:
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
fuente
iw dev wlan0 info
muestra? Y Google en su ID de dispositivo muestra que necesita un núcleo reciente o módulos inalámbricos para ejecutar este dispositivo en modo AP. Mira esto . ¿Qué núcleo yath9k
controlador estás ejecutando?Respuestas:
Puentes fáciles:
Hay un proyecto en sourceforge hecho solo para su situación. http://sourceforge.net/projects/bridger/ Incluso viene como un paquete deb.
Con respecto a los paquetes de 'caída':
¿Revisó para ver si iptables está configurado como predeterminado?
sudo iptables --list
debe decir "ACEPTAR, ACEPTAR, ACEPTAR" para un cuadro de este tipo. Si ese es el problema, apáguelo.¿Estás incluso reenviando los paquetes, hermano? Asegúrese de que la línea "net.ipv4.ip_forward = 1" NO esté comentada en /etc/sysctl.conf (es por defecto), luego reinicie su red.
El modo promiscuo no es compatible con su dongle inalámbrico. (lo que significa que no puede aceptar paquetes que no están destinados para ello)
Puente puro versus puente compartido:
iface br0 inet dhcp indica un puente compartido , lo que significa que el puente mismo obtiene una ip y puede ser un punto final para el tráfico.
Un puente puro no obtiene una dirección IP y solo reenvía el tráfico entre las dos interfaces
Muestra de puente compartido / etc / network / interfaces config file (Debian / Ubuntu)
Reinicie la red:
sudo /etc/init.d/networking restart
después de realizar cambios complejos en la configuración de la red, es más fácil reiniciar en lugar de asegurarse de que todo se reinició correctamente en el reinicio.Cree que tiene problemas de enrutamiento:
Elimine DNS como causa probando con
ping 8.8.8.8
. Si esto funciona, entonces probablemente tenga un problema de DNS en su red.Verifique su puerta de enlace con la
sudo ip route
esperanza que vedefault via 192.168.1.1 dev br0 proto dhcp
(suponiendo que su puerta de enlace sea 192.168.1.1). Si falta o está mal, corríjalosudo ip route add default via 192.168.1.1
. Prueba de nuevo:ping 8.8.8.8
Renueve su ip de puente compartido con
dhclient br0
y vuelva a probar conping 8.8.8.8
Revisar sus interfaces 'esclavos' con
ifconfig
y asegúrese de eth0 y wlan0 NO tienen direcciones IP. Ahora son parte del puente. Si lo hacen, asegúrese de eliminarlos de todos los archivos de configuración, configúrelos en static 0.0.0.0 o algo así.Si NINGUNO de estos funciona, intente esa aplicación de puente Debian, y si eso no funciona, entonces su dongle inalámbrico no es compatible con el modo promiscuo. (véase más arriba)
Si funciona en cualquier momento aquí, reinicie y asegúrese de que todavía funciona.
fuente
eth0
ywlan0
en este ejemplo? Específicamente, ¿cómo configura el SSID y cualquier autenticación parawlan0
?Tengo algunos puentes inalámbricos trabajando en Debian Linux y Openwrt, por lo que estoy muy familiarizado con este problema.
Se perdió un comando importante: olvidó decirle a su controlador inalámbrico que transmita tramas de 4 direcciones (a veces llamadas WDS de manera incorrecta / histórica), que se requiere para el puente 802.11 / inalámbrico. Haga esto con el comando "iw dev wlan0 set 4addr on". Use una declaración "previa" en su archivo de interfaces de Debian en el puente para aplicarlo antes de abrir el puente. Tenga en cuenta que el modo de trama de 4 direcciones requiere soporte de controladores y algunos controladores o hardware antiguos de 802.11 pueden no ser compatibles.
También sospecho que sus problemas pueden haberse complicado por un error en el kernel de Linux que afecta específicamente a las interfaces puenteadas. Me encontré con este error y tuve que compilar mi propio wpa_supplicant de las fuentes porque la versión en Debian es antigua y está afectada. wpa_supplicant y hostapd comparten una base de código común, pero no estoy completamente seguro de que esto haya afectado tanto a hostapd como a wpa_supplicant.
Hay un compromiso para solucionar el problema aquí:
https://w1.fi/cgit/hostap/commit/?id=e6dd8196e5daf39e4204ef8ecd26dd50fdca6040
Tengo la impresión de que esto está en la versión 2.5, y sé que está en la fuente 2.6 actual. La versión actual de Debian es 2.4, que está rota. Por favor moleste el proyecto Debian para actualizar sus paquetes wpasupplicant y hostapd.
Aquí hay una configuración de muestra para un cliente de puente inalámbrico que usa WPA / WPA2 con un puente inalámbrico entre las interfaces wlan0 y eth0, con el host obteniendo una dirección DHCP en la interfaz br0 (reemplace "dhcp" con "manual" para ninguna dirección IP). Para una situación en la que desea ser el AP, incluya los comandos interface = y bridge = en hostapd.conf y omita los comandos wpa- * a continuación.
En su archivo / etc / network / interfaces:
Y asegúrese de que su wpa_supplicant sea la versión 2.5 o posterior. No funcionará con wpa_supplicant 2.4 y las versiones actuales del kernel.
También debo tener en cuenta que actualmente hay un error de carrera en ifup donde las interfaces de puente pueden fallar en el momento del arranque, pero ese es otro problema.
fuente
Parece que necesita reenvío de IP.
tratar
cat /proc/sys/net/ipv4/ip_forward
Si es un
0
problema:echo 1 > /proc/sys/net/ipv4/ip_forward
fuente
sys.net.ipv4.ip_forward
es para enrutamiento IPv4, NAT, etc. Bridges funciona una capa más abajo en la pila de red.El puente solo puede funcionar cuando una interfaz recibe todos los paquetes; de lo contrario, verán los paquetes dirigidos solo a ellos. Sin embargo, su configuración actual puede describir una configuración para un enrutador, pero no para un puente.
eth0 y wlan0 no deben tener direcciones IP (es decir, 0.0.0.0) y, si lo desea, siempre puede usar una dirección IP para br0.
Aquí también hay documentación oficial: http://wiki.debian.org/BridgeNetworkConnections
fuente
configurar wlan0
vi / etc / network / interface
vi /etc/sysctl.conf
vi /etc/rc.local
fuente