Система теряет статический IP-адрес


11

Одной из моих безголовых систем назначен статический IP-адрес через /etc/network/interfacesпроводной Ethernet. Он подключен к маршрутизатору, который также является сервером DHCP. Через пару дней статический адрес сбрасывается и заменяется адресом DHCP. С чего бы это?

  • Если я делаю sudo ifdown eth0 && sudo ifup eth0или sudo service networking restartили перезагружаюсь, система снова принимает свой статический адрес, но затем, через пару дней, IP-адрес меняется на динамический.
  • В сети нет другой системы с (случайно) тем же статическим адресом.
  • NetworkManager не работает в системе.
  • Я настроил систему так, чтобы она отправляла мне электронные письма сразу после изменения адреса, но время, когда это происходит, кажется совершенно случайным. Время аренды DHCP составляет 24 часа, но это, похоже, не коррелирует, и в любом случае это не должно иметь значения для статического адреса.
  • Мой / etc / network / interfaces такой:
    авто ло
    iface lo inet loopback
    авто eth0
    iface eth0 inet static
    адрес 192.168.124.104
    шлюз 192.168.124.253
    маска сети 255.255.255.0

Это немного загадка.

Что может заставить систему отказаться от своего статического адреса и вместо этого запросить адрес DHCP? Что искать, в каком файле журнала?


Это не должно произойти, менеджер сети пытается управлять интерфейсом? nmcli dev statusесли не опубликовать свой/etc/network/interfaces
meccooll

@meccooll Как я уже сказал, Network Manager не работает.
Джос

Единственное, о чем я могу думать, это неправильно сконфигурировать /etc/network/interfacesего или, может быть, какое-то задание cron, запущенное dhclient?
meccooll

Шлюз х.253 а не х.254? Где объявлены DNS-серверы имен?
chili555

@ chili555 шлюз и DNS не должны влиять на DHCP. Посмотрите наsudo grep eth0 /var/log/dmesg
meccooll

Ответы:


8

Недавно я наткнулся на эту проблему, и после некоторого расследования выяснилось, что /etc/dhcp/dhcp.conf нужно добавить блок (или некомментированный), подобный этому:

псевдоним {интерфейс "eth0";   
фиксированный адрес 10.1.1.1;   
опция маска подсети 255.0.0.0; }

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

С уважением, Глендон Гросс


Спасибо Глендон. Я раскомментирую и изменю эти строки и посмотрю, что произойдет. Проблема все еще возникает, но очень редко.
Jos

Большое спасибо, Глендон. Это исправило это для меня. Кажется бессмысленным, что статический конфиг внутри /etc/network/interfacesвсе еще настраивается демоном dhcp ...
pztrick

Интересно, что когда мой сетевой адаптер вернулся к DHCP, это создало псевдоним сетевой карты с правильным IP-адресом, и мои клиенты не были мудрее, и все гудело. Все еще не уверен, почему это происходит, но это исправление покажет!
FreeSoftwareServers

2
также это, кажется, /etc/dhcp/dhclient.conf для меня.
FreeSoftwareServers

1

Хм, странно ... Я не уверен, что это имеет значение, но ради аккуратности я бы поместил netmaskпараметр сразу после "адреса", а не после "шлюза". Вам также следует удалить / деактивировать пакет ( isc-) dhcp-clientс хоста и остерегаться ipv6 и resolveconfпакета. Перед этим: Чтобы выяснить, что происходит, нужно установить правило брандмауэра, которое принимает и регистрирует весь трафик к портам DHCP и обратно (сервер 67 UDP и клиент 68 UDP) или создать протоколирование для состояния устройств, dhcp-clientили нюхать свой трафик.

Обходное решение (или альтернативное решение) заключается в настройке резервирования DHCP для некоторых ваших хостов или неограниченного времени аренды для их адресов DHCP. Для меня это работает очень хорошо, и преимущество заключается в централизованном управлении. Если ваш DHCP-сервер является вашим модемом / маршрутизатором, вы, вероятно, можете настроить его в веб-интерфейсе (время аренды или резервирование), а на некоторых маршрутизаторах вы даже можете установить флажок «фиксированный адрес». Если вы настроили свой собственный сервер (Ubuntu?), Вам нужно отредактировать dhcpd.confфайл, добавив несколько строк, например:

host Accountant {
  hardware ethernet 00:1F:6A:XX:XX:XX;
  fixed-address 192.168.124.104;
}

1

Я знаю, что это старый, но я столкнулся с аналогичной проблемой, с которой я боролся. Я также открыл дело с Canonical, чтобы попросить о помощи.

С тех пор я решил свою проблему и вернулся к этому посту в надежде, что это может оказаться полезным для кого-то еще, кто может наткнуться на это. Моя проблема, в конце концов, оказалась «wicd-daemon». Я не уверен, как или почему пакет был установлен, но он был основным источником сброса моего статического адреса и вызывал другие сетевые проблемы для меня.

Признаком моей проблемы было то, что dhclient запустился бы, если бы я отключил сетевой кабель и снова подключил его. Подобно проблеме, о которой здесь сообщалось, я бы тогда получил другой IP-адрес. Если я установил свой сетевой адаптер вручную, все было в порядке, но через некоторое время он получал другой IP-адрес (кажется, из-за запуска dhclient в фоновом режиме). Проверьте, работает ли dhclient. Что касается того, почему dhclient даже работает, это еще одна проблема. Ниже я опишу, что разрешил для меня dhclient, и в итоге я проследил несколько путей (avahi, ntpd, ifup, ...). Для моего случая это был wicd-демон.

Первоначально проблема обнаружилась при тестировании, когда я переключал сети, которые требовали от меня физического перемещения сетевого кабеля. Это вызвало проблемы с сетью для меня, что не должно было иметь. Также потребовалось некоторое время, чтобы обнаружить проблему, поскольку я не ожидал, что мой статический IP-адрес упадет или изменится.

В конце концов, очистка wicd-daemon и python-wicd позаботилась об этой проблеме. Моя система теперь сохраняет статический IP-адрес, даже если сетевой кабель был отключен. Я не видел запуска dhclient, так что я думаю, что проблема также разрешилась сама собой. Я также пошел по другим путям, глядя на avahi, который, кажется, играл роль в проблемах, которые у меня были, я также смотрел на ntpd (странно, я знаю, но он обнаруживался в системных журналах одновременно с другими проблемами). сделал; NTPD, вероятно, не имел ничего общего с этим, но он производил подозрительные журналы). Я пробежал по нескольким кроличьим норам, пока случайно не наткнулся на процесс wicd, запущенный во время другого тестирования.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.