Ответ
DHCP (Dynamic Host Configuration Protocol) — это сетевой протокол, который автоматически назначает IP-адреса и другие сетевые параметры (маску подсети, шлюз по умолчанию, DNS-серверы) устройствам при их подключении к сети.
Процесс получения адреса (DORA):
- Discover: Клиент отправляет широковещательный запрос
DHCPDISCOVERв поисках сервера. - Offer: DHCP-сервер отвечает
DHCPOFFERс предложением свободного IP-адреса. - Request: Клиент отправляет
DHCPREQUEST, запрашивая предложенный адрес. - Acknowledgment: Сервер подтверждает выделение адреса пакетом
DHCPACKи указывает срок аренды (lease time).
Пример конфигурации (фрагмент файла dhcpd.conf для ISC DHCP Server):
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8, 8.8.4.4;
default-lease-time 86400; # 24 часа
max-lease-time 172800; # 48 часов
}
Преимущества:
- Автоматизация: Устраняет ручное конфигурирование IP-адресов.
- Экономия адресов: Адреса выдаются динамически и возвращаются в пул при отключении устройства.
- Централизованное управление: Смена параметров сети (например, DNS) происходит на сервере.
Недостатки/риски:
- Единая точка отказа: При недоступности DHCP-сервера новые устройства не смогут подключиться.
- Атака истощения пула: Злоумышленник может зарезервировать все адреса, отправляя множество запросов.
Ответ 18+ 🔞
Вот, представляешь, сидит комп в сети, как лох неподписанный, без айпишника. И начинает орать на весь сегмент, как сука в лесу: «Люди! Кто тут главный по раздаче адресов? Мне хоть что-нибудь, а то я нихуя не подключусь!». Это и есть первый этап — Discover, он же DHCPDISCOVER. Просто крик души в пустоту.
А тут, из темноты, выползает DHCP-сервер, такой важный дядька с пачкой свободных бумажек. И такой: «На, братан, лови мой DHCPOFFER! Вот тебе свободный айпи, маска, маршрут — всё, как у людей». Кидает ему предложение, а сам думает: «Авось, возьмёт».
Клиент, получив офер, не долго думая, орёт обратно уже конкретнее: «Окей, я согласен на этот ваш 192.168.1.133! Давайте его мне, я его запомнил!». Это уже DHCPREQUEST. Не благодарность, а требование, да.
Ну а сервер, видя, что клиент не сбежал, ставит жирную печать DHCPACK и говорит: «Подтверждаю, адрес 192.168.1.133 за тобой на 24 часа. Не потеряй, не забывай продлить. DNS-сервера вот, роутер вот. Счастливо!». Всё, устройство в сети. Весь этот цирк зовётся DORA — Discover, Offer, Request, Acknowledgement. Красиво, да? А по сути — четыре пакета, чтобы не тыкать адреса руками, как последний лузер.
Вот, смотри, как это примерно в конфиге прописывается, если ты, вдруг, сам за сервер решил:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200; # Вот отсюда будем раздавать, не жадничаем
option routers 192.168.1.1; # Сюда слать всё, что не по адресу
option domain-name-servers 8.8.8.8, 8.8.4.4; # Чтоб интернет знал, куда стучаться
default-lease-time 86400; # Сутки на аренду
max-lease-time 172800; # Но можешь выпросить и двое, хитрожопый
}
Чем это, блядь, хорошо? Да тем, что не нужно бегать с бумажкой и вбивать айпи вручную на каждом новом телефоне, ноутбуке и чайнике. Всё само. Адреса экономятся — отключился девайс, адрес вернулся в общий котёл. Захотел сменить DNS на всей сети — ткнул одну строчку на сервере, и все, как один, побежали на новые. Удобно, ёпта!
А чем пиздецово? А тем, что если этот самый сервер накроется медным тазом — всё, приехали. Новые устройства будут сидеть и материться, адресов не получая. Единая точка отказа, её в рот. Да ещё какой-нибудь пидарас шерстяной может устроить атаку на истощение пула: начнёт слать тысячи запросов и скупит все свободные адреса, как последний спекулянт. И потом вся сеть будет стоять, как вкопанная, потому что новым юзерам просто нихуя не достанется. Вот такие дела, друг мой. Автоматизация она, блядь, палка о двух концах.