Пинг-поведение двух интерфейсов netctl

Проблема в том, что значение, введенное в / etc / hostname , не соответствует ни одной записи в / etc / hosts .

Это приводит к тому, что команда hostname --fqdn возвращает неразрешимое имя хоста, в результате чего ssmtp не устанавливается.

Убедитесь, что вы добавили имя хоста вашего компьютера в / etc / hosts .

Связанные ошибки:

0
10.04.2019, 19:06
1 ответ

Я не знаком с netctl, но ваша основная проблема связана с тем фактом, что в вашей таблице маршрутизации ядра указаны два шлюза по умолчанию.

Why would the wifi ping fail when both devices are connected (or, more accurately, when both netctl profiles are active)?

Проблема здесь связана с тем, что ваша таблица маршрутизации содержит два шлюза по умолчанию:

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         10.10.0.1       0.0.0.0         UG    303    0        0 wlan0

Когда маршруты конфликтуют (, как эти два ), ядро ​​выбирает маршрут с наименьшей «метрикой» (, в данном случае eth0 со значением «0» )или тот, который был добавлен первый я верю.

Причина, по которой эхо-запросы на удаленных хостов не выполняются, когда вы указываете беспроводной интерфейс в вашем примере ping -Iwlan0, скорее всего, заключается в том, что ядро ​​не знает, как маршрутизировать к этому удаленному хосту, используя указанный вами интерфейс, поскольку шлюз по умолчанию (с самой низкой метрикой )технически доступен через другой интерфейс. Эти пинги, скорее всего, идут в битбакет.

Резервирование

Если вы ищете резервный интернет на случай отключения на той или иной стороне,вам, вероятно, потребуется создать свой собственный сценарий оболочки, который может делать следующее:

  1. Обнаружение отсутствия трафика на основном интерфейсе шлюза
  2. Измените таблицу маршрутизации ядра, чтобы использовать новый интерфейс для GW по умолчанию
  3. Мониторинг основного интерфейса на наличие трафика (UP и доступ к удаленным хостам)
  4. Перенастройте таблицу маршрутизации, чтобы вернуться к основному интерфейсу.

Примечание :Настройки netctl для проводного -на -аварийное переключение беспроводной сети могут быть полезны, если вы хотите обеспечить базовое подключение уровня 1 (кабель отключен или точка доступа Wi-Fi выходит из строя ), но обычно два интерфейса должны находиться в одной сети и в основном получать доступ в Интернет через один и тот же шлюз.

Is there a way to configure netctl to stop the profile if the interface goes down?

Думаю, вы можете сделать это с помощью директив preup и predown.

ExecUpPost='ifconfig wlan0 down|| true'
ExecDownPre='ifconfig wlan0 up|| true'

Взгляните на /etc/netctl/hooks/в документации.

0
28.01.2020, 03:50

Теги

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