Назад | Перейти на главную страницу

Ethernet отключает Wi-Fi

Мы работаем с платой iMX6, работающей в сборке Yocto 4.9.88. Он имеет как Wi-Fi, так и Ethernet-соединения. Когда мы подключили только WiFi, пинг работает нормально. Пинг работает, если подключить Ethernet. Когда мы отключили Ethernet, WiFi по-прежнему получает IP-адрес и показывает, что он подключен, но мы не можем выполнить пинг.

У Wi-Fi метрика сети равна 10, а у Ethernet - 0. Ниже приведены таблицы маршрутизации для различных экземпляров.

Когда подключен только WiFi,

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    10     0        0 wlan0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 wlan0

Когда Wi-Fi + Ethernet подключен,

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
0.0.0.0         192.168.0.1     0.0.0.0         UG    10     0        0 wlan0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 wlan0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.0.1     0.0.0.0         255.255.255.255 UH    0      0        0 eth0
202.83.21.25    192.168.0.1     255.255.255.255 UGH   0      0        0 eth0
202.83.21.43    192.168.0.1     255.255.255.255 UGH   0      0        0 eth0

Когда Ethernet отключен, но Wi-Fi все еще подключен,

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 wlan0

Почему Ethernet также удаляет записи wlan0 в таблице маршрутизации и возможно ли, чтобы оба интерфейса работали без каких-либо ограничений?

Общий подход заключается в создании интерфейса связи для обоих интерфейсов. Отключите IP-адреса на обоих интерфейсах и настройте интерфейс связывания по своему усмотрению.

У вас всегда будет один и тот же IP-адрес, и он будет использовать интерфейсы по мере их доступности.

Быстрое решение - повторно добавить недостающий маршрут к wlan0.

Более длинная история:

Поведение в целом нормальное и логичное (кроме одной вещи, которая может быть ошибкой или неправильной конфигурацией).

Когда вы используете Wi-Fi и подключаете Ethernet, административное расстояние изменяется так, что Ethernet имеет приоритет. Вот что означают эти две строчки:

0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
0.0.0.0         192.168.0.1     0.0.0.0         UG    10     0        0 wlan0

Метрика 0 означает наивысший приоритет. Метрика 10 будет находиться в режиме ожидания, пока у вас активен и работает eth0. Если вы отключите кабель / eth0, тогда wlan0 снова станет основным подключением.

Пока все хорошо, но если при отключении проводной и маршрутизации

0.0.0.0 192.168.0.1 0.0.0.0 UG 10 0 0 wlan0

больше нет, то у вас, конечно, проблема с подключением, у вас больше нет фактического маршрута. Вы можете обойти это, добавив шлюз последней инстанции.

Если вы настроили несколько сетей в качестве возможных маршрутов по умолчанию, используя ip default-network command, сеть с наименьшим административным расстоянием выбирается в качестве шлюза последней инстанции. Если все сети имеют одинаковое административное расстояние, тогда сеть, указанная первой в таблице маршрутизации (show ip route) выбирается в качестве шлюза последней инстанции. Если вы используете оба ip default-network и ip route 0.0.0.0 0.0.0.0 команды для настройки сетей-кандидатов по умолчанию и сети, используемой ip default-network команда известна статически, сеть, определенная с помощью ip default-network команда имеет приоритет и выбирается для шлюза последней инстанции. В противном случае, если сеть, используемая ip default-network команда получена протоколом маршрутизации, ip route 0.0.0.0 0.0.0.0 команда, имеющая меньшее административное расстояние, имеет приоритет и выбирается для шлюза последней инстанции. Если вы используете несколько ip route 0.0.0.0 0.0.0.0 Команды для настройки маршрута по умолчанию, трафик балансируется по нескольким маршрутам и будет работать на любом из двух, когда один из них активен.

Вы можете выбрать, какая ситуация лучше всего подходит для вашего случая.