El punto de acceso no reenvía paquetes DHCP a la puerta de enlace para asignar IP - Raspberry Pi Bridge

El punto de acceso no reenvía paquetes DHCP a la puerta de enlace para asignar IP - Raspberry Pi Bridge

Tengo un Pi con 2 interfaces inalámbricas, 1 está conectada a la puerta de enlace de la red y la otra actúa como punto de acceso gracias ahostapd.

El AP no ejecuta ningún software DHCP o NAT, simplemente ejecuta hostapt para permitir que varios dispositivos se conecten a él.

Estoy intentando conectar mi computadora portátil a este punto de acceso.

Usar una dirección IP estática e ingresar manualmente la dirección de la puerta de enlace, DNS, etc. funciona perfectamente bien.

Sin embargo, cuando intento conectarme mediante DHCP, no funciona; desde Wireshark puedo ver que el paquete DHCP Discover inicial se envía al punto de acceso al intentar conectarme. Sin embargo, este paquete no se reenvía fuera de la interfaz conectada a la puerta de enlace a pesar de que tengo algún software de puente que escribí en Python ejecutándose en el Pi.

El software simplemente envía paquetes a la interfaz opuesta en la que fueron recibidos (una simplificación excesiva de lo que hace, pero esa es la esencia general de este escenario, es un puente de red). Entonces, la interfaz AP debería recibir el paquete DHCP y reenviarlo a la puerta de enlace, que debería responder con la oferta DHCP, etc.

El software funciona porque puedo ver otros mensajes de información de DHCP en mi computadora portátil que han pasado por el software de puente, así como otros descubrimientos/ofertas/solicitudes/accesos de DHCP que el software de puente está enviando a mi computadora portátil en este momento debido a que están transmisiones.

Me pregunto si la razón por la que estos paquetes DHCP Discover no se reenvían a la puerta de enlace se debe a alguna configuración o característica del punto de acceso hostapd.

Estoy seguro de que el problema no reside en el código que he escrito, ya que funciona perfectamente bien para DNS y similares.

Además, si creo manualmente un paquete de descubrimiento DHCP, la interfaz conectada a la puerta de enlace lo reenvía y lo envía sin problemas, los paquetes DHCP solo no se reenvían cuando mi computadora portátil los envía automáticamente al intentar obtener una dirección IP. desde el punto de acceso al que está intentando conectarse.

Supongo que el punto de acceso no necesita proporcionar la dirección IP directamente, pero puede comunicarse con el servidor DHCP real en la red para asignar una correctamente.

Si alguien tiene alguna idea de por qué el punto de acceso parece absorber el paquete antes de que pueda reenviarse a la otra interfaz, ¡hágamelo saber!

Respuesta1

Supongo que está utilizando WPA2 en el lado del "enlace ascendente". Esto no funcionará, ya que WPA2 está vinculado a la dirección MAC al cifrar. Entonces la retransmisión de paquetes no funcionará.

Necesitaría construir algo con proxy arp o reenvío de IP.

Si intentas reinventar la rueda en Python, no te preocupes, todo está en el kernel de Linux. Pero recuerde: DHCP Discover es una transmisión y la respuesta es una unidifusión de capa 2 a la MAC emisora. Entonces, si traduces aquí, necesitarás reescribir el interior de los paquetes. Podría ser más fácil experimentar con una configuración de retransmisión DHCP, ya que Raspi sería un conmutador que haría exactamente eso.

Mi primera recomendación sería hacer que la configuración funcione con NAT y el servidor DHCP en el cuadro del medio y luego, como segundo paso, trabajar hacia un cuadro del medio más transparente.

información relacionada