Вопрос о реализации псевдо-моста L3 для Raspberry Pi 4B

В BIOS отключите безопасную загрузку и быструю загрузку.

Когда запустится GRUB, нажмите на букву e

Перейдите в конец строки GRUB _CMDLINE _LINUX _DEFAULT и замените строку quiet splashна nouveau.modeset=0, затем нажмите [F10 ] продолжать.

3
29.01.2020, 19:01
1 ответ

Я еще раз протестировал настройку, чтобы проверить ваши проблемы, но, конечно, с текущей версией операционной системы и аппаратным обеспечением. Это Raspbian Buster на Raspberry Pi 4B. Упомянутая настройка — Обходной путь для моста Wi-Fi на Raspberry Pi с прокси-арпом . Для General Setup у меня есть классический преобразователь имен и демон avahi деинсталлирован и включен systemd -reolved , потому что я считаю, что он лучше подходит для systemd -networkd . Вы должны взглянуть на это.

1.) If the hotspot is not up, we can't ping the Raspberry Pi.

Это намеренно. RasPi должен быть прозрачным для подключенных устройств, как настоящий мост. Они должны видеть точку доступа, а не RasPi. Его IP-адрес предназначен только для управления прокси-сервером на уровне 3 OSI и не имеет значения для подключенных устройств. Если вы посмотрите на eth0 и wlan0 , они оба имеют один и тот же IP-адрес. Это не может работать на обычном сетевом устройстве. Поэтому, если точка доступа не работает, интерфейсы RasPis также не работают, потому что они работают так же, как и интерфейс.

2.) IF we run a long stretch of cable to the RPi [..] the RPi rarely handles this smoothly, often resulting in poor traffic through eth0 while it still attempts to link through wlan0, despite the poor connection.

Это пункт, который я не могу проверить, потому что у меня нет кабеля Ethernet на большие расстояния, но с длиной в пределах спецификации Ethernet это должно работать без проблем. Если нет, то это может быть проблема самого кабеля, экранирования, контактов и так далее. Чтобы получить представление, я провел тест пропускной способности в своей не очень производительной тестовой сети со старым RasPis. На проводном подключенном устройстве за точкой доступа я запускаю iperf --server. На устройстве, подключенном к eth0 на RasPi, я запускаю:

rpi ~$ iperf --time 60 --client 192.168.50.174
------------------------------------------------------------
Client connecting to 192.168.50.174, TCP port 5001
TCP window size: 43.8 KByte (default)
------------------------------------------------------------
[  3] local 192.168.50.3 port 43434 connected with 192.168.50.174 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-60.9 sec   286 MBytes  39.4 Mbits/sec

Интерфейс eth0 на RasPi не показывает никаких ошибок:

rpi ~$ ip -statistics link show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether dc:a6:32:01:db:ec brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast
    510673218  338397   0       0       0       155
    TX: bytes  packets  errors  dropped carrier collsns
    2690947    35971    0       0       0       0

На wlan0 нахожу аналогичный чистый результат без ошибок.

Ваши настройки статического адреса, шлюза и DNS в /etc/systemd/network/08-wlan0.networkверны. Я тестировал с аналогичной конфигурацией, и это не имеет ничего общего с отключением RPi, когда точка доступа не работает (, см. пункт 1.)выше ).

Неразборчивый режим необходим и устанавливается в файле модуля parprouted.service. Там вы найдете

ExecStartPre=/sbin/ip link set wlan0 promisc on
# and
ExecStopPost=/sbin/ip link set wlan0 promisc off

так что нет необходимости делать это снова.

0
28.04.2021, 23:25

Теги

Похожие вопросы