Recibiendo paquetes UDP desde la puerta de enlace / punto de acceso

3

Tengo una configuración de Raspberry Pi como punto de acceso WiFi (es un servidor DHCP y tiene HOSTAPD en ejecución). No tiene conexión a internet y no está enrutando tráfico. Los clientes solo se conectan a su red cuando quieren comunicarse con ella.

Tengo una secuencia de comandos de python en la Raspberry Pi que está enviando un mensaje UDP ~ 5 segundos.

Puedo ver los paquetes que se envían a través de Wireshark (que he instalado en la Raspberry Pi), pero ninguno de los clientes que se conectan a la red de Pi puede ver esos paquetes. Es como si estuvieran en un callejón sin salida en algún lugar antes de salir del Pi.

También debo mencionar que los clientes tienen sus firewalls apagados.

Aquí hay algunas capturas de pantalla del Pi: Puedes ver que Wireshark muestra los paquetes que se envían. También puede ver que BROADCAST está habilitado en wlan0. enter image description here

El cliente (una computadora con Windows 10 en este caso) también está ejecutando Wireshark y también puede ver la información de la red: enter image description here

¿Qué me falta en la configuración de la red que impide que esta transmisión llegue a los clientes? Si conecto la Raspberry Pi a un enrutador real, los clientes en esa red pueden ver bien los mensajes UDP. Eso me hace pensar que hay algo mal con la configuración de hostpot hospedada por mí mismo.

Gracias por cualquier información que pueda proporcionar.

El contenido de la configuración de hostapd:

interface=wlan0
driver=nl80211
#driver=rtl871xdrv
ssid=PI032378
channel=6
dtim_period=1
beacon_int=400

Aquí está la información de Wireshark sobre los paquetes que se envían, pero no se reciben:

Frame 162: 60 bytes on wire (480 bits), 60 bytes captured (480 bits) on interface 0
    Interface id: 0 (wlan0)
    Encapsulation type: Ethernet (1)
    Arrival Time: Feb 21, 2017 16:45:08.000647000 Central Standard Time
    [Time shift for this packet: 0.000000000 seconds]
    Epoch Time: 1487717108.000647000 seconds
    [Time delta from previous captured frame: 0.007711000 seconds]
    [Time delta from previous displayed frame: 0.000000000 seconds]
    [Time since reference or first frame: 1.299469000 seconds]
    Frame Number: 162
    Frame Length: 60 bytes (480 bits)
    Capture Length: 60 bytes (480 bits)
    [Frame is marked: False]
    [Frame is ignored: False]
    [Protocols in frame: eth:ethertype:ip:udp:data]
    [Coloring Rule Name: UDP]
    [Coloring Rule String: udp]
Ethernet II, Src: Shenzhen_0c:b4:25 (40:a5:ef:0c:b4:25), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
    Destination: Broadcast (ff:ff:ff:ff:ff:ff)
    Source: Shenzhen_0c:b4:25 (40:a5:ef:0c:b4:25)
    Type: IPv4 (0x0800)
Internet Protocol Version 4, Src: 192.168.42.1, Dst: 192.168.42.255
    0100 .... = Version: 4
    .... 0101 = Header Length: 20 bytes (5)
    Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)
    Total Length: 46
    Identification: 0xa04d (41037)
    Flags: 0x02 (Don't Fragment)
    Fragment offset: 0
    Time to live: 64
    Protocol: UDP (17)
    Header checksum: 0xc420 [validation disabled]
    [Header checksum status: Unverified]
    Source: 192.168.42.1
    Destination: 192.168.42.255
    [Source GeoIP: Unknown]
    [Destination GeoIP: Unknown]
User Datagram Protocol, Src Port: 44661, Dst Port: 5003
    Source Port: 44661
    Destination Port: 5003
    Length: 26
    Checksum: 0x779c [unverified]
    [Checksum Status: Unverified]
    [Stream index: 3]
Data (18 bytes)
    Data: 426c756562657272793a5049303332333738
    [Length: 18]
Jason Williams
fuente
Buscar en google temas similares con transmisiones utilizando hostapd en un RaspPi. Podría ser un problema de conductor / hostapd
dirkt
@dirkt gracias por el enlace. Modifiqué mi hostapd.conf con dtim_period y beacon_int. También apagué el modo de ahorro de energía y nada de eso ayudó. La Pi puede recibir transmisiones UDP de los clientes de la red, pero los clientes no pueden recibir transmisiones UDP desde ella.
Jason Williams
¿Puedes publicar tu archivo de configuración de hostapd?
Spiff
@Spiff lo agregué a la pregunta. Gracias por mirar.
Jason Williams
¿Puedes hacer ping a la máquina de Windows desde el Pi?
MariusMatutiae

Respuestas:

1

Las transmisiones y transmisiones por 802.11 se deben enviar utilizando un esquema de modulación (velocidad de datos) que cada cliente puede recibir. Deben ser una de las tarifas en el Conjunto de tarifas básicas (tarifa obligatoria establecida) para esa red, y deben estar cifradas con la clave de grupo y el cifrado de grupo para esa red.

Aunque es posible que tenga un problema de velocidad de multidifusión, si está utilizando el cifrado (es decir, WPA2-PSK), es más probable que sea un problema de cifrado. Como prueba, intente desactivar el cifrado inalámbrico en su configuración de hostapd y ver si el problema desaparece.

Spiff
fuente
Gracias por la info. La red está actualmente "abierta" sin contraseña ni cifrado y el problema está ocurriendo.
Jason Williams
@JasonWilliams ¿Puede realizar una captura en modo Monitor 802.11? ¿Las emisiones están saliendo al aire? Tal vez las transmisiones se estén transmitiendo al aire, pero los dispositivos cliente no las reciben con éxito. ¿Qué velocidad de datos (esquema de modulación) utiliza el RPi al transmitir estas transmisiones? También sería útil ver una baliza descodificada para que pueda ver qué capacidades publicita el RPi.
Spiff
Sé algunas de esas cosas :) Parece que es difícil obtener una captura en modo monitor en Windows (el único cliente que tengo ahora). En cuanto al faro, ¿tienes alguna sugerencia sobre cómo capturar eso? Tengo una aplicación llamada "WiFi Analyzer" que muestra algunos detalles, pero no estoy seguro de si eso es lo que estás buscando.
Jason Williams
Aquí hay una captura de pantalla de la información de WiFi Analyzer / beacon: enlazar
Jason Williams
0

Podría ser que la interfaz de red en la Raspberry Pi esté calculando incorrectamente las sumas de comprobación UDP. Puede verificar si la suma de comprobación está descargada en la interfaz de red ejecutando ethtool -k eth0 (o ethtool -k wlan0, o cualquiera que sea la interfaz de red en la que está sirviendo el servidor DHCP) en la Raspberry Pi. Si su salida muestra que la suma de comprobación está activada (es decir, tx-checksumming: on ), puede intentar deshabilitar la suma de comprobación:

sudo ethtool --offload eth0 tx off

He tenido este problema, y ​​hay una pregunta relevante En el stackexchange de Raspberry Pi.

Flux
fuente