Чому для отримання IP-адреси через DHCP потрібні секунди?


24

З цікавості, чому часто потрібні секунди, щоб отримати конфігурацію мережі через DHCP, коли процесор здатний обробляти мільйони операцій в секунду, а пінг-роутер займає пару мілісекунд?

У моїй домашній обстановці з одним WiFi-роутером і приблизно 5-ма пристроями не рідко можна побачити рази, як 5-10 секунд.

Відповіді:


22

На додаток до фактичного придбання DHCP-оренди від DHCP-сервера (який зазвичай не займає дуже багато часу), деякі сервери спочатку надішлють IP-адресу, яку вона збирається роздати, перш ніж вона насправді передасть її, щоб переконатися, що її ще немає використовується в мережі - на це потрібно кілька секунд. Клієнт іноді зробить те ж саме (знову ж таки, щоб запобігти конфліктам IP-адреси), що додасть ще трохи часу. Потім, крім того, деякі клієнти також зареєструють свої записи DNS тощо.


3
Сервер dhcp в моїй роботі використовує ARP-запити для виявлення конфліктів IP.
erichui

9

DHCP може зайняти трохи більше часу, оскільки він включає низку транзакцій не з одним сервером, а з усіма пристроями в мережі під час початкового запиту, оскільки він надсилає широкомовні повідомлення.

Якщо ви перевірите RFC на DHCP,

http://www.faqs.org/rfcs/rfc2131.html

ви чітко бачите, що серія переговорів передбачає. На початку клієнт надсилає DHCPDISCOVER на всі пристрої в локальній мережі, потім сервери, на яких працює служба dhcp, повертають повідомлення DHCPOFFER. Клієнт також може зачекати, щоб отримати відповіді з усіх доступних dhcp-серверів, перш ніж вибрати його. Потім він надсилає DHCPREQUEST з ідентифікатором, який вказує, який сервер обрав своїм постачальником ip. Нарешті, він отримує DHCPACK з усіма параметрами конфігурації. Це лише короткий підсумок "3.1 взаємодії клієнт-сервер - виділення мережевої адреси" від RFC.

З мого досвіду dhcp займає тривалий час головним чином у великих локальних мережах з великою кількістю вузлів. У домашній роботі з одним сервером dhcp (наприклад, WIFI-роутером) і одним-двома ПК це досить швидко.


У моїй домашній мережі з одним WiFi-роутером і приблизно 5 пристроями, це займає приблизно 5-10 секунд, що я вважаю досить повільним. Але дякую за пояснення.
Борек Бернар

переконайтеся, що у вас є один сервер dhcp. Якщо це всього 5 пристроїв, ви можете зарезервувати IP-адреси для кожного пристрою на сервері dhcp. Але якщо вам достатньо цікаво, ви можете скористатися tcpdump, щоб переглянути фактичні переговори та побачити, що є причиною затримки.
Даніель т.

Залежно від сервера dhcp, це може зайняти кілька секунд, незалежно від активності мережі або швидкості процесора. Це тому, що сервер спочатку запитує мережу, щоб побачити, чи використовується адреса, перш ніж запропонувати її клієнту, і йому доведеться почекати хоча б трохи часу, щоб відповіді надійшли. Цей тайм-аут є частиною затримки, яку ви помітили, і він буде існувати навіть у найбільш тихій мережі.
ʇsәɹoɈ

2

Дві причини (і рішення) я знайшов, коли хотів швидких відповідей з мого сервера DHCP.

1) Мій DHCP зробив пінг адреси, яку хотів виділити. Це додало 3 секунди затримки. Я видалив це, змінивши конфігурацію DHCP, щоб мати відображення MAC-адреси на IP-адресу. В основному це використовується DHCP для виділення статичної адреси. Це зняло затримку на 3 секунди для мене.

2) У мене є ізольована мережа, проте ви можете це отримувати часом. Був зроблений пошук DNS, що для мене призвело до затримки багато секунд із отриманням IP-адреси від DHCP. У конфігурації сервера DHCP були варіанти для нашого домену та DNS-серверів. Після видалення параметрів DNS та зміни вище я отримав миттєві відповіді від сервера DHCP. (**)

Ці питання були те, що я знайшов у своєму налаштуванні. Ваш пробіг може відрізнятися.

ура

ФУНТ

(**) Якби я мав копійки щоразу, коли невдалий пошук DNS спричиняв затримку, що призводило до дивного удару по афекту, в результаті чого я почухав голову, я б мав багато багато копійок.


1

Я не знаю, який у вас сценарій, але в реальному світі ви отримуєте ip-адресу ... і т. Д. Від старого сервера (dhcp-сервер завжди той, який має найдавніше обладнання :)) з безліччю запитів, позаду брандмауера , один або кілька маршрутизаторів / комутаторів ... Затримка, потужність процесора ... і в світі Windows реалізація dhcp не настільки ефективна, як нам хотілося б !.


1
"У світі Windows реалізація dhcp не настільки ефективна, як ми хотіли б." Чи є у вас будь-яка документація чи джерела для резервного копіювання сказаного тут?
mfinni

Ні, але, наприклад, .... Linux забезпечує дуже прості варіанти DHCP, які перебувають у відмові Окрім вбудованої функціональності каталогів у Windows, є ще деякі моменти, які слід розглядати як потенційні проблеми із безпекою.
C_Sense

2
Мені здається, що ти регургітуєш гіперболу, що збирається роками, коли читаєш занадто багато публікацій в Інтернеті. "Microsoft поганий". "Чому?" "Тому що всі так кажуть".
joeqwerty

Ви можете робити перекриття областей DHCP на серверах Windows DHCP. З win2k8 R2, мабуть, є і новий варіант відмови. Можливо, Linux кращий за це. Ніщо з цього не має нічого спільного з "ефективністю". І про які "проблеми безпеки" у Windows DHCP ви посилаєтесь? Я попросив у вас джерел, а натомість ви кидаєте більше претензій.
mfinni

0

Якщо у вас виникли проблеми з продуктивністю dhcp;

  1. Перевірте затримку в мережі
  2. Подивіться на узгодження пакета dhcp cap. Ви повинні мати можливість бачити, які дії тривають тривалий час. (проблема може бути не в сервері dhcp, хто на кого чекає?)
  3. Вивчіть навантаження сервера dhcp та журнали.

Це сценарій домашньої мережі, я оновив питання.
Борек Бернар

ಠ_ಠ НІ ЧОГО НЕ ЗАПИТАТИ СУПЕРСЕР?
Аблуд

Може тому, що це пов’язано з мережами, і тут найкраще місце для цього?
Кедаре

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