Як змусити dhclient забути останню оренду DHCP?


28

Що я намагаюся досягти, це отримати оренду DHCP на холодному запуску, що означає примушування dhclientчерез повний процес відкриття та конфігурації (DHCPDISCOVER – DHCPOFFER – DHCPREQUEST – DHCPACK на відміну від скороченого циклу DHCPREQUEST – DHCPACK, який використовує запам'ятовуваний адреса). Мені це потрібно для налагодження проблеми з налаштуванням мережі.

Я намагався:

  • промивання поточної оренди dhclient -r, відключення поточного підключення Менеджера мереж;
  • вбивство будь-якого залишку dhclientта dnsmasqпроцесів;
  • /var/lib/dhcp/каталог очищення , який нібито містить базу даних про оренду клієнта;
  • sudo restart network-manager.

Але навіть після цих кроків я бачу, що в журналах DHCPDISCOVER одразу слідує DHCPREQUEST якось ще запам’ятованої адреси.

Ясна річ, що ОС зберігає адресу якось інакше, і у мене не вистачає ідей. Будь-яка допомога громади?


Ви це зрозуміли. Я також стикаюся з тією ж проблемою. У NetworkManager також є файли оренди. Я їх також видалив. Чомусь він все ще набирає стару адресу.
gudge

Відповіді:


18

Це зробив для мене хитрість (для eth0, бігти з sudo su):

dhclient -r -v eth0 && rm /var/lib/dhcp/dhclient.* ; dhclient -v eth0

1
Коли я це зробив, я отримав нову оренду, але, схоже, IP-адреса не використовувалася системою. Якщо я спробую ввести ім'я або пов'язану з ним IP-адресу, це не вдасться. Якщо я використовую ifconfigдля перевірки поточної адреси, я можу це зафіксувати.
TafT

Зміна rmчастини робить цю роботу для мене (без цього використовувалася до оренди: dhclient -r -v eth0 && rm /var/lib/dhcp/dhclient* ; dhclient -v eth0)
davejagoda

6

Програма клієнта DHCP записує оренду у файл. Просто видаліть файл і перезапустіть мережевий менеджер.

/var/lib/dhcp/dhclient.leases

Тут зберігається оренда в моєму комп’ютері.


2

Що ви бачите, це не ваш апарат запам'ятовує IP. У syslog ви бачите ОГОЛОШЕННЯ ПРОПОЗИЦІЇ ПРОПОЗИЦІЇ, але це не в тому порядку, як це сталося. Насправді ПОТРІБНО ЗАЯВИТИСЯ ПРОПОЗИЦІЇ, щоб підтвердити це, Ви можете нюхати трафік між ПК та сервером DHCP вище. Ви надіслали ВІДКРИТИ сервер, який ви надіслали ПРОПОЗИЦІЮ, і ви отримали IP від ​​ПРОПОЗИЦІЇ на ЗАПИТ

Ви все зробили правильно, однак, коли ви зробили "dhclient -r", dhclient надішле одноадресне звільнення, а деякі провайдери приймуть пакети для передачі багатоадресної передачі на свій DHCP-сервер, так що ЗВ'ЯЗКУ ніколи не потрапляло туди, що стосується сервера, ваша оренда все ще дійсно, тому він повернув вам той самий IP в ПРОПОЗИЦІЇ.


Дякую за це! Я ніколи не розумів, чому в журналі завжди відображаються ОТМИСЛЕННЯ, ЗАПИТАННЯ, ПРОПОЗИЦІЯ, АКК; оскільки послідовність ніколи не мала сенсу. Просто усвідомлення того, що це насправді не те, що трапляється, дає мені довгий шлях у з'ясуванні власної проблеми. Отже, моя машина отримує DHCPOFFERIP, який я не хочу, і потім каже "ОК", але якщо я змушую його спробувати отримати щось інше, сервер каже DHCPNACK, і я взагалі не маю мережі. Як здогадується, бронювання на сервері призначено для неправильного MAC.
Auspex

Єдине, про що я можу подумати, ви можете спробувати змінити "ефір hwaddress xx: xx: xx: xx: xx: xx" в / etc / network / інтерфейси, якщо ваш Інтернет-провайдер дозволяє вам змінити ваш mac без необхідності дзвонити їм і повідомляти їх, і ваш кабельний модем не замінює свій mac з льоту, то сервер повинен бачити вас як когось нового і давати вам вільну ip в оренду.
Метт

Проблема полягала в тому, що вона була дати мені вакантний IP. І я намагався змусити його дати мені той, який був нібито зарезервований, оскільки зовнішній DNS вказував на цей! Отже, я надіслав адміністратору мережі фактичну MAC-адресу і запитав, чи дійсно він резервує IP для цього MAC.
Auspex

1

Зазвичай dhclient -rслід робити трюк; але якщо це не працює для вас, я знайшов рішення тут :

+ Оновіть IP-адресу одноразово:

Примітка. У цьому прикладі ми будемо використовувати інтерфейс eth0. Інтерфейс повинен бути налаштований для DHCP під час роботи та роботи.

  • Відкрийте термінал і виконайте sudo suкорінь.
  • Введіть, ifconfigщоб показати поточну IP-адресу, яку ви отримали від DHCP.
  • Введіть, dhcpcd -kщоб надіслати відповідні сигнали dhcpcd (можливо, вам знадобиться встановити dhcpcd, виконуючи це apt-get install dhcpcd).
  • Тепер поверніть інтерфейс назад, ввівши ifup eth0.
  • Введіть, ifconfigщоб показати нову IP-адресу.

Також є розділ про оновлення IP-адреси щоразу, але опис було для дистрибутивів на основі RPM (на відміну від дистрибутивів на основі Debian, таких як Ubuntu).

Сподіваюся, це допомагає :)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.