Протокол DHCP - дозволяє робити автоматичне налаштування мережі на комп'ютерах і інших пристроях. DHCP може бути налаштований на маршрутизаторах Cisco або на базі будь-якого сервера. Дана стаття описує настройку DHCP сервера на маршрутизаторі Cisco. Однак, маршрутизатор може працювати і як DHCP клієнт - отримуючи адресу на один зі своїх інтерфейсів. Про це можна прочитати детальніше тут. Налаштування DHCP сервера на маршрутизаторі це зручно в тому плані, що якщо вже є працюючий маршрутизатор, то простіше повісити на нього максимальну кількість функціоналу (інтернет, NAT, DHCP і т.п.) щоб кожен пристрій займався своєю справою. DCHP дозволяє автоматично настроювати на клієнті такі основні параметри:
1. IP адрес. 2. Основний шлюз. 3. Маска підмережі. 4. DNS сервера. 5. Ім'я домену.
Це найбільш часте використання DHCP, але можна передавати і величезну кількість інших параметрів. Наприклад, можна передавати додаткові маршрути, щоб в різні мережі комп'ютер ходив через різні шлюзи. Або, за допомогою DHCP можна організовувати завантаження пристроїв по мережі. У цьому випадку клієнт отримує крім основних параметрів, адресу TFTP сервера і ім'я файлу на ньому (я маю на увазі ім'я файлу - завантажувача ОС, яку потрібно завантажити по мережі). Коли клієнт, наприклад, звичайний комп'ютер, запускається, ОС бачить, що для якоїсь мережевої карти коштує «Отримати параметри по DHCP». Такий комп'ютер не має поки IP адреси і відбувається наступна процедура отримання:
1. Комп'ютер відправляє широкомовний запит. При цьому на другому рівні в фреймі мак адресу відправника - адреса комп'ютера, мак адресу одержувача - ffff.ffff.ffff, а на третьому рівні - в пакеті адреса відправника відсутня, адреса одержувача 255.255.255.255. Таке DHCP повідомлення називається «DHCP discover».
2. Далі всі пристрої в мережі отримують це широкомовне повідомлення. DHCP сервера (а їх теоретично може бути декілька) відповідають клієнту. Сервер резервує у своєму пулі адресу (якщо не було резервації до цього для даної mac-адреси клієнта) і виділяє цей ip клієнту на якийсь час (lease time). Беруться інші налаштування і всі разом висилається. При цьому в якості адрес одержувача використовується вже новий виділений клієнтський ip і клієнтський mac. Це називається «DHCP offer».
3. Клієнт вибирає вподобаний йому сервер (зазвичай він всього один) або вибирається той хто відповів першим. І відправляє зі свого mac і нового ip на mac і ip вже конкретного сервера «DHCP request» - згода з отриманими параметрами.
4. Сервер резервує за клієнтом виділений адрес на якийсь час (lease time). До цього моменту адреса був виділений, але не зарезервований. Тепер же він остаточно закріплений за клієнтом. Сервер вносить так само рядок у свою ARP таблицю і висилає клієнту, повідомлення, що він успішно зареєстрований - «DCHP Acknowledge».
5. Клієнт починає працювати.
Давайте перейдемо до налаштування DHCP на маршрутизаторі. Є одна дивна, на перший погляд річ, на циского DHCP як би не прив'язаний до конкретного інтерфейсу, тобто просто створюється пул і маршрутизатор роздає адреси де хоче. Насправді, адреси лунають не всім, а тільки на тому інтерфейсі, на якому Ip адреса з тієї ж мережі, що згадується в пулі: дійсно, який сенс видавати комп'ютеру адресу шлюзу, який знаходиться не в його мережі. 
Налаштуємо маршрутизатор, який видаватиме по DHCP мережу 192.168.1.0/24 починаючи з 192.168.1.11.
R1#configure terminal Enter configuration commands, one per line. End with CNTL/Z.R1(config)#ip dhcp excluded-address 192.168.1.1 192.168.1.10
|
Ми просимо маршрутизатор не видавати адреси з 192.168.1.1 по 192.168.1.10. Оскільки перший адрес буде використовуватися самим маршрутизатором (шлюз), а решта дев'ять має сенс зарезервувати під різні сервера в цій мережі. Серверам не варто видавати адреси по DHCP - до них часто звертаються, тому адрес має бути вбитий статично і ніколи не мінятися. У нашому прикладі, наприклад, присутній DNS сервер з адресою 192.168.1.5, який вбито статикою. Тепер створюємо пул:
R1(config)#ip dhcp pool MY-POOL R1(dhcp-config)#network 192.168.1.0 255.255.255.0 R1(dhcp-config)#default-router 192.168.1.1 R1(dhcp-config)#domain-name my-domain.com R1(dhcp-config)#dns-server 192.168.1.5
R1(dhcp-config)#exit |
Видаватися адреси будуть з мережі 192.168.1.0/24 (крім тих що ми виключили раніше), в якості шлюзу будемо видавати 192.168.1.1 - наш маршрутизатор. Сам цей адрес треба ще налаштувати:
R1(config)#interface fa0/0 R1(config-if)#ip address 192.168.1.1 255.255.255.0 R1(config-if)#no shutdown %LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up R1(config-if)#exit R1(config)#exit R1# %SYS-5-CONFIG_I: Configured from console by console
|
Після того, як комп'ютер отримав адресу, можна перевірити список виданих адрес:
R1#show ip dhcp binding IP address Client-ID/ Lease expiration Type Hardware address 192.168.1.11 000A.F337.2447 -- Automatic
|
До статті докладаю приклад цієї конфігурації в Packet Tracer: DHCP сервер на cisco.
|