## Способы выдачи IP-адресов
IP расшифровывается как Internet Protocol. Данный протокол имеет 2 версии: 
- IPv4: `185.114.246.105`
- IPv6: в 4 раза длиннее и выглядит примерно так - `2001:0DA8:AB10:0001:0010:0000:0001:00FB`
  
Способы получения IP-адреса:
- **Статический** - IP-адрес настраивается на устройстве вручную (администратором)
- **Динамический** - устройство получает IP-адрес автоматически при подключении к сети. Адрес присваивается устройству на ограниченный (опционально) промежуток времени
## Протокол DHCP и динамический IP
**DHCP** (Dynamic Host Configuration Protocol) - сетевой протокол для динамической выдачи IP-адресов, переводится как протокол динамической настройки узла.  
**Сетевой протокол** - это набор правил и последовательных действий. Исходя из них, устройства, которые находятся в сети, соединяются и обмениваются данными между собой.  
DHCP работает по модели "клиент-сервер":
- **Клиент** - это устройство, которому надо получить IP-адрес для работы в сети
- **Сервер** - это устройство, которое раздает IP-адреса клиентам и следит за тем, чтобы 2 клиента не получили одинаковый IP-адрес
## Взаимодействие DHCP-сервера и клиента
- **D** - Discover - Поиск
- **O** - Offer - Предложение
- **R** - Request - Запрос
- **A** - Acknowledgement (ACK) - Подтверждение
#### 1. Поиск (Discover): Клиент -> Сервер
![Поиск](../Pictures/05_01.%20Поиск.png)  
#### 2. Предложение (Offer): Сервер -> Клиент
DHCP-сервер получает сообщение от клиента, после чего выбирает свободный IP-адрес из числа доступных и отправляет его в ответном сообщении "DHCPOFFER".
#### 3. Запрос (Request): Клиент -> Сервер
Клиент получает IP-адрес и отправляет серверу ответное сообщение: "DHCPREQUEST". В нем он еще раз прописывает полученный адрес и тем самым подтверждает, что будет использовать его.  
Ответное сообщение с IP-адресом получают все DHCP-серверы в сети, если их несколько. Это необходимо для того, чтобы каждый сервер знал, что этот адрес занят, и не предлагал его другим клиентам.
#### 4. Подтверждение (ACK): Сервер -> Клиент
Сервер отправляет сообщение "DHCPACK" и тем самым закрепляет IP-адрес за клиентом. В сообщении содержится сам адрес, срок его использования и дополнительные настройки сети. Клиент проверяет эти настройки, применяет полученную конфигурацию и получает доступ к сети.  
В общем виде процесс взаимодействия выглядит так:
```
- (Клиент) Кто тут сервер? Мне надо получить IP-адрес: "DHCPDISCOVER"
- (Сервер) Я сервер, предлагаю тебе использовать этот IP: "DHCPOFFER"
- (Клиент) Хорошо, я буду использовать этот IP, что ты мне отправил: "DHCPREQUEST"
- (Сервер) Вот и договорились. Приятной работы в сети: "DHCPACK"
```
## Способы раздачи IP-адресов в DHCP
DHCP-сервер может назначать IP-адреса 3 способами:
- **Фиксированный** - в этом случае происходит настройка DHCP-сервера, в ходе которой администратор вручную прописывает соответствие между каждым MAC-адресом и IP-адресом. Таким образом, за каждым устройством закрепляется свой адрес, который будет выдавать сервер
- **Автоматический** - при таком способе каждое устройство автоматически получает IP-адрес, который не будет меняться. DHCP-сервер выдает адрес в бессрочную аренду, пока клиент от него не откажется
- **Динамический** - DHCP-сервер выдает клиенту любой адрес из диапазона свободных. Эти адреса не закрепляются за конкретными устройствами