LwIP Нет маршрута к хосту - PullRequest
0 голосов
/ 24 апреля 2019

Настройка: На хосте Linux работает слегка измененная версия кода тестового примера LwiP. PPPoS к модулю Wi-Fi uBlux W132 Модуль Wi-Fi подключен к домашней сети с доступом в интернет

Проблема: Я не могу открыть сокет TCP для echo.u-blox.com. Ошибка всегда «Нет маршрута к хосту» . Я думаю, что проблема заключается в моем ограниченном понимании сетей! Я считаю, что LwIP, PPP и мой модуль работают правильно, но я не знаю, как открыть сокет для внешнего мира! Также возможно, что я неправильно настроил LwIP для шлюза, хотя IP-адреса и шлюз для PPP автоматически настраиваются через PPP. На самом модуле WiFi можно настроить очень мало.

Дополнительная информация: топология сети показана ниже. Я могу пропинговать 192.168.1.121 с других компьютеров в моей домашней сети, но только во время работы кода LwIP (показывает, что LwIP обрабатывает эхо-запрос). Я могу открыть сокет UDP на 172.30.0.251:23 от LwIP до модуля WiFi и использовать его для отправки AT-команд для настройки модуля. Я могу вызвать lwip_gethostbyname ("echo.u-blox.com"), чтобы получить правильный IP-адрес (195.34.89.241), чтобы DNS работал.

Linux Host
Running LWiP                         W132 WiFi Module                                   Home Network                        Destination
172.30.0.252  <-- PPPoS -->   172.30.0.251 <> 192.168.1.121   <-- WiFi -->   192.168.1.XXX  <> ext ip   <-- Internet -->   195.34.89.241 
Netmask                                       Netmask
255.255.255.255                               255.255.255.0
Gateway                                       Gateway
172.30.0.251                                  192.168.1.1
DNS
172.30.0.251

Когда я выполняю пошаговый просмотр кода LWiP, он завершается неудачно при вызове ip_route, поскольку целевой IP-адрес не соответствует подсети и маске или IP-адресу шлюза. Я не уверен, как открыть сокет, который соответствует этим критериям, но также указан правильный адрес назначения.

Заранее спасибо, могу предоставить дополнительную информацию, если потребуется.

1 Ответ

0 голосов
/ 24 апреля 2019

Кажется, я решил свою проблему.Мне нужно было вручную установить интерфейс PPP в качестве сетевого интерфейса по умолчанию.Я не совсем понимаю, почему, но изучу код, чтобы выяснить!

Подсказка пришла от этой страницы в разделе, озаглавленном "дальнейшее управление netif".

...