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

eth0 со статическим ip отключается после сбоя dhclient

У меня есть Nvidia Jetson TX2 SoC на несущей плате Connecttech Astro под управлением Ubuntu 16.04. У оператора есть два порта Gigabit Ethernet, которые я хотел бы настроить со статическими IP-адресами. В системных настройках -> сеть:

Проводное соединение 1 -> Настройки IPv4: вручную IP: 192.168.22.148 Маска: 24 Шлюз по умолчанию: 192.168.22.1

Проводное соединение 2 -> Настройки IPv4: вручную IP: 192.168.1.148 Маска: 24

При нормальной работе этот TX2 подключается к другому TX2 и некоторым другим компонентам через простой неуправляемый коммутатор. Все компоненты имеют статические IP-адреса, поэтому они могут работать без DHCP-сервера. Когда TX2 включен, все работает как надо, но через 5 минут eth0 (проводное соединение 1) исчезает. Глядя на системный журнал, кажется, что это связано с тем, что dhclient не получает ответа от DHCP-сервера (потому что он не подключен), что вызывает отключение интерфейса. Avahi-daemon берет на себя управление eth0 и пытается его настроить, но безуспешно. Я вижу, что тайм-аут в /etc/dhcp/dhclient.conf установлен на 300 секунд.

Я пытаюсь понять, почему dhclient что-то делает, поскольку для интерфейса установлен ручной режим со статическим IP-адресом.

Я также настроил статический IP через / etc / network / interfaces:

auto eth0
iface eth0 inet static
address 192.168.22.148
netmask 255.255.255.0
gateway 192.168.22.1

auto eth1
iface eth1 inet static
address 192.168.1.148
netmask 255.255.255.0

/etc/NetworkManager/NetworkManager.conf

[main]
plugins=ifupdown,keyfile,ofono
dns=dnsmasq

[ifupdown]
managed=false

но это не имело значения. Итак, мой вопрос: почему dhclient выполняет DHCP-запросы для eth0, когда он настроен как статический? Что выключает eth0 в случае сбоя? Как правильно это исправить?

Пара других лакомых кусочков информации: 1) если подключен маршрутизатор или другой DHCP-сервер, все работает отлично. 2) У меня была аналогичная конфигурация оборудования с Jetson TX1 под управлением Ubuntu 14.04, которая работала нормально.

Этот пост бесполезен: https://askubuntu.com/questions/459140/why-dhclient-is-still-running-when-i-choose-static-ip

  • Убедитесь, что dhclient не вызывается из каких-либо сценариев запуска или работает в фоновом режиме. (ps auxw | grep dhclient). Вы можете убить его: pkill -f dhclient.

  • В Ubuntu есть несколько сетевых служб и оболочек, поэтому их можно вызывать из приложения, такого как network-manager. Если вы запускаете безголовый сервер, я бы рекомендовал вам отключить сетевой менеджер и полагаться на собственную сеть.

sudo systemctl disable NetworkManager.service

После применения этих изменений я бы перезапустил компьютер для хорошей меры, чтобы убедиться, что не осталось никаких служб, вызывающих dhclient.

Надеюсь это поможет!