3

У меня Raspberry Pi настроен как точка доступа WiFi (это DHCP-сервер, на котором запущен HOSTAPD). Он не подключен к интернету и не маршрутизирует трафик. Клиенты подключаются к его сети только тогда, когда они хотят общаться с ней.

У меня есть скрипт на Raspberry Pi, который отправляет UDP-сообщение ~ 5 секунд.

Я могу видеть пакеты, отправляемые через Wireshark (который я установил на Raspberry Pi), но ни один из клиентов, подключающихся к сети Pi, не может видеть эти пакеты. Как будто они зашли в тупик где-то перед тем, как выйти из Пи.

Я должен также упомянуть, что у клиентов отключены брандмауэры.

Вот несколько скриншотов с Pi: вы видите, что Wireshark показывает отправленные пакеты. Вы также можете увидеть, что BROADCAST включен на wlan0.

Клиент (в данном случае компьютер с Windows 10) также работает под управлением Wireshark, и вы также можете просмотреть информацию о сети:

Чего мне не хватает в настройке сети, которая не позволяет этой трансляции достигать клиентов? Если я подключу Raspberry Pi к реальному маршрутизатору, клиенты в этой сети смогут нормально видеть сообщения UDP. Это заставляет меня думать, что что-то не так с собственной хост-машиной, которую я настроил.

Спасибо за любую информацию, которую вы можете предоставить.

Содержимое конфига hostapd:

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

Вот информация Wireshark о пакетах, которые отправляются, но не принимаются:

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]

2 ответа2

1

Многоадресные и широковещательные рассылки по 802.11 должны отправляться с использованием схемы модуляции (скорости передачи данных), которую может получить каждый клиент. Они должны быть одной из скоростей в Базовом наборе скоростей (набор обязательных скоростей) для этой сети, и они должны быть зашифрованы с помощью группового ключа и группового шифра для этой сети.

Хотя у вас может быть проблема скорости многоадресной рассылки, если вы используете шифрование (например, WPA2-PSK), это, скорее всего, проблема с шифрованием. В качестве теста попробуйте отключить беспроводное шифрование в конфигурации хоста и посмотрите, исчезнет ли проблема.

0

Возможно, сетевой интерфейс Raspberry Pi неправильно вычисляет контрольные суммы UDP. Вы можете проверить, выгружена ли контрольная сумма в сетевой интерфейс, запустив ethtool -k eth0 (или ethtool -k wlan0 , или любой другой сетевой интерфейс, на котором вы обслуживаете сервер DHCP) на Raspberry Pi. Если его вывод показывает, что контрольная сумма включена (т.е. tx-checksumming: on), вы можете попытаться отключить контрольную сумму:

sudo ethtool --offload eth0 tx off

У меня была эта проблема, и есть актуальный вопрос по обмену стека Raspberry Pi.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .