![Зависят ли DHCP и IP друг от друга?](https://rvso.com/image/1703337/%D0%97%D0%B0%D0%B2%D0%B8%D1%81%D1%8F%D1%82%20%D0%BB%D0%B8%20DHCP%20%D0%B8%20IP%20%D0%B4%D1%80%D1%83%D0%B3%20%D0%BE%D1%82%20%D0%B4%D1%80%D1%83%D0%B3%D0%B0%3F.png)
DHCP — это протокол на прикладном уровне, поэтому он должен зависеть от протокола IP на сетевом уровне. Но протокол IP требует назначения IP-адресов сетевым интерфейсам, что является работой DHCP. Зависят ли DHCP и IP друг от друга и, следовательно, требуют существования друг друга заранее? Как работает эта циклическая зависимость?
решение1
DHCP — это протокол на прикладном уровне, поэтому он должен зависеть от протокола IP на сетевом уровне. Но протокол IP требует назначения IP-адресов сетевым интерфейсам, что является работой DHCP. Зависят ли DHCP и IP друг от друга и, следовательно, требуют существования друг друга заранее? Как работает эта циклическая зависимость?
Это нежесткийзависимость; DHCP существует только для удобства пользователя, а IP(v4) существовал задолго до DHCP (или BOOTP, или RARP). Хосты могут иметь свой IP-адрес, настроенный вручную или любым другим способом 1 без DHCP.
Но DHCP на IPv4 работает несколько необычно — в отличие от других (обычных) протоколов на основе UDP, DHCP-клиенту разрешено отправлять пакеты с «нулевого» адреса, 0.0.0.0
пока у хоста еще нет действительного IP-адреса.
(Чтобы увидеть это, установите Wireshark или другой инструмент для перехвата пакетов.)
Клиентское программное обеспечение DHCP достигает этого, используя «сырые сокеты», где оно вручную формирует целые IP-пакеты (добавляя заголовок UDP и заголовок IP) вместо того, чтобы позволить ОС добавить обычную обработку нижнего уровня. Таким образом, хотя протоколвыглядит какон передается внутри UDP/IP и на самом деле вообще не зависит от работы стека IP операционной системы.
В IPv6 ситуация иная, поскольку каждый интерфейс с поддержкой IPv6 автоматически имеет «локальный для канала» адрес IPv6 (адрес fe80:…
), поэтому хост может просто использовать его для отправки и получения своих пакетов DHCPv6 или запросов маршрутизатора ICMPv6 или чего-либо еще, необходимого для настройки.
1 Некоторые типы соединений имеют собственные механизмы настройки: например, все, что использует PPP — например, PPPoE для ADSL или PPTP VPN, или старый добрый dial-up — будет использовать интегрированную конфигурацию PPP вместо DHCP. Мобильные сети также делают свое дело. И обычно все такие механизмы используются только для соединений «пользователя», тогда как «основные» соединения между маршрутизаторами почти всегда используют вручную настроенные IP-адреса.