Ubuntu Intrepid – статическая IP-сеть постоянно перезапускается с DHCP

Вопрос или проблема

У меня есть сервер на Linux с настроенным статическим IP, который, похоже, в порядке. Статический IP работает в течение нескольких часов, а затем снова устанавливается (как кажется) на то, что ему говорит использовать DHCP.

Вот мой /etc/network/interfaces

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 10.0.0.101
netmask 255.255.255.0
network 10.0.0.0
broadcast 10.0.0.255
gateway 10.0.0.254

Есть идеи?

У меня возникла такая же проблема на Ubuntu Server, но, похоже, я смог ее решить. Когда я перезапускаю сетевые службы, dhclient3 все еще работает. Смотрев на это через htop, я увидел в аргументах что-то вроде “eth0”, поэтому я заподозрил, что он все еще ищет обновления dhcp для eth0. Я не смог удалить dhcp-client с помощью apt-get, поэтому я выполнил:

sudo kill $(ps -aux | grep dhc | grep eth0 | awk '{print $2}')

ВНИМАНИЕ: Этот код может завершить другие процессы на вашем сервере! Будьте осторожны и замените “eth0” на имя интерфейса, для которого вы настроили статический IP! Или завершите работу dhclient или dhclient3 для вашего интерфейса через htop.

У меня была та же проблема. Демон dhclient ненормальный. Валидация требует доработки. Это должно выглядеть следующим образом:

  • Обнаружить существующую информацию об аренде (/var/lib/dhcp/*)
  • Проверить все интерфейсы на конфигурацию DHCP (/etc/network/interfaces)
  • Если интерфейс настроен статически, очистить информацию об аренде DHCP и игнорировать интерфейс на время выполнения.
  • Если интерфейс не настроен статически и имеет существующую информацию об аренде, то обновить соответственно.
  • Если интерфейс не настроен статически и не имеет существующей информации об аренде, то обнаружить соответственно.

ИСТОРИЯ

В то время как проблема продолжалась, я видел, как /var/log/syslog заполнялся следующей строкой:

May  3 06:25:36 xxxxxx dhclient: DHCPREQUEST on eth0 to 255.255.255.255 port 67

Процесс dhclient работал в фоновом режиме, как подтверждено командой ‘ps aux | grep dhc’

Подтвердив правильную настройку статического IP для eth0 в ‘/etc/network/interfaces’, я перезапустил сетевую службу. После перезапуска сетевой службы статический IP сохранялся, пока срок аренды не достиг половины, после чего dhclient обновил ранее назначенный DHCP адрес, который был получен при первоначальной настройке системы. Эта информация хранится в ‘/var/lib/dhcp/*’.

Это поведение наблюдалось на трех системах, над которыми я работал в последние несколько дней. Информация о системе:

# cat /etc/issue.net
Debian GNU/Linux 7
# cat /proc/version
Linux version 3.2.0-4-amd64 ([email protected]) (gcc version 4.6.3 (Debian 4.6.3-14) ) #1 SMP Debian 3.2.68-1+deb7u1
# dhclient -version
Internet Systems Consortium DHCP Client 4.2.2

РЕШЕНИЕ

Примечание: Выполняйте как root или добавьте sudo к каждой команде.

# dhclient -r
# dhclient -x
# rm /var/lib/dhcp/* 
# shutdown -r 0

Результат: Процесс dhclient не запустился автоматически с системой, ‘ifconfig’ показывает, что eth0 был правильно настроен со статическим IP, syslog чист от DHCP спама, и изменение сохраняется при нескольких перезапустках системы.

ОСТОРОЖНО: Мои системы зависят от статически назначенного IP-адреса для корректной работы. Если вы применяете это исправление к ноутбуку, это, вероятно, нарушит подключение к Wi-Fi.

Ответ или решение

Решение проблемы с сетевой конфигурацией в Ubuntu Intrepid – статический IP и DHCP

Проблема

Многие пользователи Ubuntu, особенно в версиях, основанных на Debian, сталкиваются с проблемой, когда статически настроенный IP-адрес иногда заменяется DHCP-адресом. Данная ситуация наблюдается через какое-то время после запуска системы, когда dhclient (клиент DHCP) самостийно обновляет настройки сети, игнорируя статическую конфигурацию.

Ваша конфигурация /etc/network/interfaces выглядит следующим образом:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 10.0.0.101
netmask 255.255.255.0
network 10.0.0.0
broadcast 10.0.0.255
gateway 10.0.0.254

При этом, несмотря на корректную настройку, через некоторое время dhclient начинает запрашивать новый адрес DHCP, что в конечном итоге приводит к перезаписи статической конфигурации.

Возможные причины

  1. Неправильная работа dhclient: Ваша система, вероятно, имеет запущенный процесс dhclient для интерфейса eth0, который пытается обновить свои DHCP-аренды, даже если статическая конфигурация считается более приоритетной.

  2. Система сохраняет информацию о DHCP-аренде: Папка /var/lib/dhcp/ может содержать информацию о предыдущих DHCP-арендах, которая используется при попытке обновления IP.

Решение проблемы

Для решения этой проблемы можно предпринять ряд шагов, чтобы гарантировать, что ваш статический IP-адрес не будет перезаписан.

  1. Остановка клиента DHCP:
    Используйте команду, чтобы остановить dhclient, который активно работает с интерфейсом eth0:

    sudo kill $(ps -aux | grep dhc | grep eth0 | awk '{print $2}')

    Обратите внимание, что эта команда может завершить и другие процессы, если они содержат "eth0" в своих аргументах. Будьте внимательны.

  2. Очистка DHCP-аренд:
    Выполните следующую команду для освобождения текущего адреса, а затем очистите все предыдущие DHCP-аренды на вашем интерфейсе:

    sudo dhclient -r
    sudo rm /var/lib/dhcp/*
  3. Перезапуск сети:
    После выполнения предыдущих шагов перезапустите сетевую службу:

    sudo service networking restart
  4. Рестарт системы:
    Зачастую переработка конфигурации требует перезагрузки системы, чтобы изменения вступили в силу:

    sudo shutdown -r now
  5. Проверка статического IP:
    После перезагрузки выполните команду ifconfig для проверки, что интерфейс eth0 настроен на использование вашего статического IP-адреса (10.0.0.101).

Примечание о рисках

Если вы применяете это решение на системе, зависящей от статического IP-адреса, удостоверьтесь, что в вашем окружении есть стабильный доступ к сети. На мобильных устройствах или ноутбуках вы можете потерять возможность подключения к Wi-Fi, так как они могут зависеть от DHCP для получения адресов.

Заключение

При правильной настройке и применении предложенных шагов вы сможете устранить проблему с перезаписью статического IP-адреса в Ubuntu. Убедитесь в правильности ваших конфигурационных файлов и состояния службы dhclient, чтобы обеспечить стабильную работу сети.

Оцените материал
Добавить комментарий

Капча загружается...