Puentes simplificados:
Hay un proyecto en sourceforge hecho solo para su situación. http://sourceforge.net/projects/bridger/ Incluso viene como un paquete de deb.
Con respecto a 'descartar' paquetes:
-
¿Comprobó si iptables está configurada para descartar por defecto?
sudo iptables --list
debe decir "ACEPTAR, ACEPTAR, ACEPTAR" para una caja de este tipo. Si ese es el problema, apágalo. -
¿Estás 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 por su dongle inalámbrico. (lo que significa que no puede aceptar paquetes que no están destinados a él)
Puente puro frente a puente compartido:
-
iface br0 inet dhcp indica un compartido puente, lo que significa que el propio puente 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
-
Puente compartido Ejemplo de archivo de configuración /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
Reiniciar 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:
-
Eliminar DNS como causa probando con
ping 8.8.8.8
. Si esto funciona, probablemente tenga un problema de DNS en su red. -
Comprueba tu puerta de enlace con
sudo ip route
espero que veasdefault via 192.168.1.1 dev br0 proto dhcp
(suponiendo que su puerta de enlace sea 192.168.1.1). Si falta o es incorrecto, corríjalosudo ip route add default via 192.168.1.1
. Prueba de nuevo:ping 8.8.8.8
-
Renueva tu ip puente compartida con
dhclient br0
y vuelve a probar conping 8.8.8.8
-
Comprueba tus interfaces 'esclavas' con
ifconfig
y asegúrese de que eth0 y wlan0 NO tengan direcciones IP. Ahora son parte del puente. Si lo hacen, asegúrese de eliminarlos de todos los archivos de configuración, configúrelos en 0.0.0.0 estático o algo así.
Si NADA de esto funciona, pruebe esa aplicación puente de Debian, y si eso no funciona, entonces su dongle inalámbrico no es compatible con el modo promiscuo. (ver arriba)
Si funciona en algún momento aquí, reinicie y asegúrese de que todavía funciona.
Tengo algunos puentes inalámbricos funcionando en Debian Linux y Openwrt, así 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 incorrectamente/históricamente llamado WDS), que se requiere para 802.11/puente inalámbrico. Haga esto con el comando "iw dev wlan0 set 4addr on". Use una instrucción "pre-up" en su archivo de interfaces de Debian en el puente para aplicarlo antes de abrir el puente. Tenga en cuenta que el modo de marco de 4 direcciones requiere compatibilidad con el controlador y que algunos controladores o hardware 802.11 antiguos pueden no admitirlo.
También sospecho firmemente que sus problemas pueden haberse complicado por un error en el kernel de Linux que afecta específicamente a las interfaces puenteadas. Yo mismo 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 afecte tanto a hostapd como a wpa_supplicant.
Hay un compromiso de solución alternativa para 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 al 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" si no hay dirección IP). Para una situación en la que desee 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:
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
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 no aparecer en el momento del arranque, pero ese es otro problema.
Parece que necesita el reenvío de ip.
prueba cat /proc/sys/net/ipv4/ip_forward
Si es 0
problema:echo 1 > /proc/sys/net/ipv4/ip_forward