Раніше сервером називалися величезні комп'ютери, встановлені в закритому приміщенні з назвою "серверна". Сьогодні ж кожен другий комп'ютер в мережі в тій чи іншій мірі виконує серверні функції. Про те, як налаштувати один з таких сервісів - а саме DHCP - і піде мова.

Слово DHCP позначає Dynamic Host Configuration Protocol - тобто протокол динамічної конфігурації клієнтських машин. Це один з найбільш важливих і корисних протоколів сімейства TCP / IP, що допомагає автоматично конфігурувати десятки і сотні машин одночасно. Що ще важливо - багато технологій безпосередньо залежать від цього протоколу: наприклад, протокол віддаленого завантаження PXE явно шукає сервер DHCP для отримання подальших вказівок щодо отримання завантажувального образу. Сам по собі DHCP - другий, більш новий і поширений метод мережевої конфігурації. Використовувався до цього BOOTP останнім часом практично вийшов з ужитку, хоча і підтримується для гіпотетичних "legacy-пристроїв".

В принципі DHCP відноситься до числа "безпроблемних" протоколів, тобто всі операційні системи в рівній мірі коректно і консистентним підтримують його функції (на відміну від, скажімо, системи каталогів DNS і особливо DDNS, навколо яких постійно виникають непорозуміння і навіть розпалюються справжні війни) . Реалізація серверної частини в 90% випадків є відомий демон dhcpd, настроюється через файл конфігурації. Інший, поширений "Демон" Smile happy - Dhcp-сервіс, вбудований в Windwos Server. Реалізовано він, до речі, вельми коректно. Але, як відомо, і Linux, і Windwos Server - системи вельми примхливі, не тільки вимогливі до кваліфікації користувача, а й обмежують його геймерську активність. Але є і хороша новина: фактично вам не потрібна "серверна" платформа для установки DHCP-сервера, досить звичайної Windwos XP. Ця операційна система досить стабільна і продуктивна - в деяких аспектах навіть в більшій мірі, ніж той же Windwos Server або Лінукс (в тому числі, по частині драйверів).

Turbo DHCP

Розповімо про DHCP на прикладі реалізації DHCP Turbo від Weird Solutions (сайт компанії знаходиться за адресою ). Продукт повністю безкоштовний (в версії personal edition), відкритий для скачування з сайту виробника (а також знаходиться на нашому диску). Власне, сам сервер DHCP працює на платформах Windwos NT, Linux і Solaris. Крім сервера, існує приємний в обігу Turbo DHCP Manager, який може підключатися як до будь-якого локального, так і до віддаленого сервера Turbo DHCP за власним протоколу, захищеному кодуванням Blowfish.

Отже, як завжди, все починається з інсталяції - для установки знадобиться всього 10 Мб пам'яті, 8 Мб оперативної пам'яті і по 2,5 Мб для кожних 1000 адрес, наданих цим сервером. Коротше - вимоги самі несуттєві. Все інше відноситься до найцікавішого - конфігурації.

Для достовірності припустимо, що ви не один у вашій мережі - є ще кілька адміністраторів і, відповідно, серверів, в тому числі і DHCP. Слід сказати, що одночасна робота декількох DHCP-серверів є цілком штатним режимом. Власне негоціація (торгівля за) IP-адреси відбувається в два проходи - спочатку хост розсилає запит на резервацію, на який сервери відповідають на протязі деякого часу. На цьому етапі сервер може перевірити наявність вільного IP-адреси, пропінгувати його на предмет відсутності конфліктів або перевірити MAC-адресу на предмет "сервібельності" даного хоста. Сервер завжди може з тієї чи іншої причини відмовити клієнту в обслуговуванні, але ось чого він не може - так це змусити хост отримати установки саме у нього. Єдина можливість якось вплинути на події - це просто віддавати свою відповідь швидше за інших серверів. Звичайно, якщо ви домовитеся з іншими DHCP-адміністраторами, і вони будуть відмовляти в обслуговуванні "ваших" хостів, то в кінці кінців ви отримаєте бажаний результат. Але все ж найправильніше - це дотримуватися відповідність геометричній і логічної топології: просто включайте свій DHCP в один хаб або маршрутизатор з тими хостами, які він буде обслуговувати. Як відмовитися від обслуговування чужих хостів, буде показано трохи нижче.

Опції

Для початку визначимося: всі параметри, що передаються від сервера клієнту, називаються опціями. Опції діляться на категорії. Існують обов'язкові опції, такі як IP-адреса і маска підмережі. Деякі опції використовуються лише в службових цілях, наприклад визначають початок і кінець списку опцій, - ви не зможете налаштувати їх значення, хоч і побачите їх у списку. Решта ж опції використовуються в спеціальних ситуаціях, наприклад при мережевий завантаженні.

Головне - визначити підмережа

Перше, що потрібно зробити при налаштуванні DHCP, це визначити діапазон роздають адрес і маску підмережі. З точки зору адміністрування маска є навіть більш важливим параметром. Дізнайтеся у вищестоящого адміністратора або самі подивіться в настройках, в якій підмережі ви працюєте. Часто використовуються підмережі категорії "D" (якої насправді не існує) - тобто маска підмережі НЕ вирівнюється по межі байта, а має довільну кількість біт. Перша адреса в підмережі завжди позначає саму сіть, останній - адреса групової розсилки, broadcasting. Кількість комп'ютерів в підмережі визначається кількістю нулів у кінці маски. Зведіть двійку в цей ступінь, відніміть два - і отримаєте потенційна кількість доступних вам адрес.

Приклад розрахунку підмережі

Для прикладу візьмемо мою власну підмережа: адреса мого сервера 10.0.0.97, маска 255.255.255.224, в бінарному вигляді - 11111111.1111111.1111111.11100000.

Число нулів в кінці маски - п'ять, тобто два в п'ятій дає 32. Отже, "гранулярность" наших підмереж категорії D - 32 адреси. Можна уявити, що перша підмережа починається з адреси 10.0.0.0, другий - 10.0.0.32, третин - 10.0.0.64, четвертої - 10.0.0.96. Насправді це зовсім не очевидно - може бути, перша підмережа, що починається з 10.0.0.0, має маску 255.255.255.192 == 1111111.11111111.11111111.11000000, тобто включає 64 адреси. Нас це в даному випадку абсолютно не цікавить - важливо, що ми працюємо в адресному просторі від 10.0.0.96 до 10.0.0.127 і, якщо хочемо, щоб наші хости після запуску потрапили в одну підмережу з сервером, то виділяти адреси повинні тільки з цього діапазону . Як вже було сказано, перший адреса - це адреса підмережі в цілому, останній - броадкастінг, так що вони виключаються. Фактично у мене всього (хех) три своїх хоста, які я збирався конфігурувати через даний сервер, так що мені було достатньо тільки трьох адрес. Після переговорів з нашим адміністратором пул роздають "пиріжків" скоротився від 10.0.0.124 до 10.0.0.126. Діапазон адрес і подмаскі мережі називається scope (видимість) і є одним з основних понять DHCP, з яким пов'язані всі інші настройки. Тобто будь-яка настройка відноситься до тієї чи іншої області.

Основні параметри для Windows-клієнтів

Опції - це тіпізованние пари ключ-значення, доступні на закладці Policies Наступне, що нас цікавить після створення області (додатково можна поставити ще кілька параметрів), це саме параметри, які ми роздаємо хосту, крім його IP і маски. Як правило, три з них мають важливе значення: маршрутизатор за замовчуванням, DNS-сервер і WINS-сервер. Ці параметри, як уже було сказано, задаються опціями. Опції - це добре документовані змінні, що мають номер і ім'я, так що в разі сумнівів щодо термінології завжди можна послатися на опцію по номеру. Номери можуть бути як позитивними, так і негативними, причому ви можете визначити і власні опції з номерами більше 128 - інша справа, яка система зможе їх використовувати. Опції, крім іншого, - тіпізованние значення, тобто вони можуть бути як числами і рядками, так і спеціальними типами, на кшталт IP- або MAC-адреси.

Отже, головні опції: 3 (Gateways), 6 (Domain Name Servers), 44 (NBT Name Servers), 46 (NBT Node Type). Кілька пояснень - по-перше, як ви бачите, всі параметри групові, тобто мають на увазі кілька значень, ніж ви можете скористатися. WINS налаштовується через параметри NBT - опція 44 вказує на сервер, а опція 46 повинна дорівнювати 8 (hybrid). Всі зазначені опції ви додаєте на закладці Policies.

Перевірити настройки можете відразу ж після збереження їх в менеджері Turbo DHCP. Для цього навіть не обов'язково перезавантажувати клієнтську машину - досить скинути параметри інтерфейсів і отримати їх з сервера заново:

  ipconfig / release
 ipconfig / renew
 ipconfog / all 

Хоча це зовсім і не обов'язково, але ви можете отримати у DHCP-сервера будь-які додаткові параметри для завантажується машини, наприклад суфікс доменного імені (опція 15), ім'я DHCP-сервера (опція 20), мережеве ім'я хоста (опція 12) і так далі .

Хочеться відзначити, що Лінукс (як, втім, і багато інших) клієнти використовують DHCP значно інтенсивніше, додатково отримуючи адреси X-сервера, сервера шрифтів, NIS / NIS + сервери і домени, сервери POP, SMTP, NNTP і безліч інших опцій.

обмеження сервібельності

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

Важливе питання - як відмовитися від чужих мережевих MAC-адрес і обслуговувати лише кілька підопічних хостів? Адже, як правило, ви не хочете встановлювати міст і відрізати підопічні комп'ютери від решти мережі - це зажадає додаткового сервера з двома інтерфейсами, а також налаштування маршрутизації і т.д. Цього і не потрібно робити - достатньо визначити ваш сервер як приватний. Зробити це можна на закладці Властивості сервера, доступною по правій кнопці миші над ім'ям сервера.

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

Віддалене завантаження

Під кінець перелічу кілька опцій, необхідних для налаштування віддаленої (мережевий) завантаження хостів. Отже, крім обов'язкових параметрів вам знадобиться всього два параметри: -1 ім'я завантаження образу і -14 адресу TFTP-сервера. По крайней мере, для прошивки PXE, яка стоїть на сучасних картках, цього цілком достатньо.

До речі, у мене з цієї завантаженням трапилася невелика жахлива історія, обставинами якої я з вами поділюся. Сітуёвіна: вантажиться комп по бездисковой схемою, при PXE все проходить нормально, вантажиться операційка, але при її завантаженні IP і налаштування беруться не з мого сервера, а з іншого, де все "як непотрібно". Я був в шоці буквально три секунди! Виявляється, що якось, за часів, коли у мене не було сервера, я прописав в драйвер мережевого інтерфейсу (картки) софт-MAC - майже всі сучасні картки це дозволяють. Потрібно це було з тієї причини, що у нас адреси лунають по фіксованому лізинговому планом: на кожен MAC - певний IP, а всі інші - на фіг. Картки змінювалися, а будити адміна кожен раз була не хочеться ... Ну, ось з цим-то "голімий маком" мій комп і ломився до мого ж приватному сервера, який налаштований тільки на обслуговування певних мережевих адрес. Накладочка вийшла, однако. А я вже почав думати, що визначення "улюбленого" DHCP недетерминировано, і може відрізнятися для PXE BIOS і операційки - хоча, як знати, напевно, може і таке статися в складній мережі, якщо якась ділянка "приляже" або ботлнек десь то зафакапітся на час. Але ви повинні уникати такої непонятки усіма бітами своєї бінарної душі.

Коротше: піднімайте свій DHCP, налаштовуйте його як слід - і вам не потрібно буде бігати за системних адміністратором хоча б з цього питання. Вдалого DHCP'інга.