Разное

Как работает dhcp протокол: Что такое DHCP и как это работает

Содержание

Что такое DHCP и как это работает

Даже многие системные администраторы, годами работающие с сетевыми устройствами, не всегда могут дать чёткий и внятный ответ — что такое DHCP сервер. Знают что если он работает, то у компьютера появится IP-адрес — и то хорошо.
А ведь это очень важный момент! Этот протокол значительно облегчает жизнь системному администратору при настройке и управлении сетями. Он работает как в обычных домашних сетях на бытовых WiFi-роутерах и модемах, так и в крупных корпоративных сетях и помогает компьютеру, ноутбуку или иному сетевому устройству быстро получить АйПи-адрес и идентифицироваться.
Давайте подробнее рассмотрим основные принципы работы DHCP сервера.

Что такое DHCP?

DHCPDynamic Host Configuration Protocol — это протокол динамической настройки узла прикладного уровня по модели OSI. Он разработан ещё в 1993 году, но до сих пор не только не потерял актуальности, но и наоборот — получил новую версию для работы с протоколом IPv6. Модель работы — «Клиент-сервер». При этом, у DHCP-сервера есть собственный метод обмена сообщениями между клиентом и сервером. Протокол позволяет выполнить автоматическую настройку протокола IP версии 4, а так же и более новой версии 6, тем самым облегчив процесс настройки сети и исключив вероятность ошибки при ручном вводе данных.

Что делает DHCP-сервер?!

На ДХЦП-сервере системным администратором задаётся определённый диапазон IP-адресов, которые можно выдавать устройствам-клиентам при обращении. При этом дополнительно может настраиваться срок аренды адреса (lease time) в течение которого он закреплён за MAC-адресом компьютера и не может быть занят иным устройством.

У сервера есть три варианта распределения адресов в сети:

1 — Динамическое. Именно этот вариант работает на 95% серверов. Адрес выдаётся компьютеру на определённый срок (время аренды), по истечению которого АйПи будет считаться свободным и может быть назначен иному компьютеру в сети.

2 — Автоматическое. Всё аналогично динамическому распределению, за тем лишь исключением, что IP выдаётся устройство на постоянной основе и более не меняется.

3 — Ручное. В этом случае администратором сервера составляется таблица соответствия IP и MAC-адресов устройств, согласно которой в дальнейшем они и будут получать сетевые параметры. Этот способ практически не используется. Если только в сетях с повышенным уровнем безопасности.

Как работает DHCP сервер

Работа сервера основывается на широковещательных сетевых запросах. Процедура «общения» клиента и сервера выглядить примерно так:

1. Клиент отправляет broadcast-сообщение «Мне нужен IP»
2. Сервер отвечает таким же сообщением «У меня есть адрес xxx.xxx.xxx.xxx. Устроит?»
3. Клиент — «Да устроит!»
4. Сервер — «ОК! Адрес xxx.xxx.xxx.xxx зарезервирован за тобой».
Для представленного «общения» используются следующие специальные широковещательные broadcast-запросы.

Вот, для наглядности, схема диалога клиента и сервера ДХЦП:


Диапазон IP-адресов, предназначенных для распределения между клиентами одной сети с помощью протокола DHCP, рассматривается как единый административный блок. Он называется «область действия» — scope. Если сервер работает с несколькими подсетями, то при настройке службы DHCP, администратор должен создать отдельную область действия для каждой физической подсети.
В идеале, для стабильной работы, для каждого обслуживаемого сегмента сети должно быть как минимум два DHCP-сервера, но для домашнего использования это требование не актуально.

Виды запросов сервера

Схема обмена сообщениями между клиентом и DHCP сервером:

DHCPDISCOVER — Это сообщение отправляется клиентом при подключении к сети для поиска активного DCHP сервера. При этом в качестве исходного IP используется 0.0.0.0, а в качестве адреса доставки — 255.255.255.255.

DHCPOFFER — Ответное сообщение DHCP-сервера на клиентский запрос DHCPDISCOVER, в котором предлагаются определённые сетевые настройки.

DHCPREQUEST — Broadcast-сообщение от клиента в ответ на DHCPOFFER, сообщающее о том, что он принял настройки.

DHCPACK — ответное послание клиенту после получения от него DHCPREQUEST, означающее завершение процесса общения. Оно подтверждает о том, что всё согласовано и ПК может работать в сети.

DHCPRELEASE — Такое широковещательное сообщение отправляется клиентом если он прекращает использования сетевого адреса.

DHCPNAK — Этот ответ будет отправлен клиенту в случае, если невозможно удовлетворить параметры DHCPREQUEST.

DHCPDECLINE — Широковещательный ответ серверу в том случае, когда клиент обнаруживает, что присвоенный ему IP-адрес уже используется.

DHCPINFORM — Сообщение серверу в том случае, если у клиента DHCP прописан статический IP-адрес и он не нуждается в динамическом распределении.

Сообщения протокола DCHP имеют следующие поля:

ПолеДлина (байты)Описание
op1Тип сообщения
htype1Тип адреса аппаратной части
hlen1Длина адреса аппаратной части
hops1Используемое количество агентов ретрансляции. Клиенты устанавливают значение на 0.
xid4ID  (уникальный идентификационный номер) транзакции используемой клиентом и серверов во время сессии
secs2Прошедшее время (в секундах) с момента запроса клиентом начала процесса
flags2Значение флагов
ciaddr4IP-адрес клиента (если имелся ранее).
yiaddr4IP-адрес, предложенный сервером клиенту
siaddr4IP-адрес сервера
giaddr4IP-адрес relay-агента (агента ретрансляции)
chaddr16Адрес аппаратной части клиента (в основном MAC).
sname64Имя сервера.
file128Название загрузочного файла.
optionsизменяемаяДополнительные опции

Как включить DHCP на сетевом адаптере

В операционной системе Windows 10 DHCP-клиент включен по умолчанию как служба, а на сетевом адаптере необходимо выставить автоматическое получение IP. Для этого нажимаем комбинацию клавиш Win+R чтобы открыть окно «Выполнить» и вводим команду ncpa.cpl.

Нажимаем на кнопку «ОК». Появится окно с сетевыми подключениями Виндовс 10.

На том адаптере, где хотим включить DHCP, кликаем правой кнопкой чтобы появилось контекстное меню. В меню — выбираем пункт «Свойства».

В следующем окне надо выбрать строчку «IP версии 4(TCP/IPv4)» и нажимаем на кнопку «Свойства» чтобы открыть параметры протокола:

Здесь необходимо поставить галочки на автоматическое получение адресов и нажать на кнопку «ОК».

В операционных системах семейства Linux все настройки прописаны в конфигурационных файлах. Например, в популярной Ubuntu это /etc/network/interfaces. Вот пример конфига, который позволяет включить DHCP на сетевом адаптере eth0:

Здесь:
auto eth0 — автоматическое включение сетевой карты eth0 при загрузке системы.
iface eth0 inet static — этой строчкой мы указываем системе, что интерфейс сетевой карты eth0 находится в диапазоне адресов с динамическим получением ip.

Если в системе работает менеджер соединение Network Manager, то можно включить DHCP на сетевом адаптере и в графическом интерфейсе:

 P.S.:
Отдельно стоит отметить что наличие работающего сервиса DHCP является признаком хорошего тона для любой локальной сети. Настройка сервера требует от администратора особых серьёзных знаний! В большинстве современных сетевых устройств (терминалов, роутеров и модемов) он вообще уже настроен по умолчанию и не требует дополнительной конфигурации.


Протокол DHCP для чайников — принцип работы протокола

DHCP расшифровывается, как Dynamic Host Configuration Protocol — протокол динамической конфигурации хостов. Компьютеру, для того, чтобы он мог работать в сети нужно получить IP-адрес.

Есть два варианта назначения IP-адресов. Во-первых, IP-адреса можно назначать вручную, это удобно делать, когда в сети мало компьютеров, например, дома или в небольшой организации. Но если в вашей сети сотни или тысячи компьютеров назначить на каждый IP-адрес вручную практически невозможно. Для этого необходимы методы автоматического назначения IP-адресов. Как раз протокол DHCP предоставляет такую возможность. Это позволяет существенно снизить трудозатраты по настройке сетевых параметров в компьютерах в больших сетях.

С другой стороны, чтобы использовать протокол DHCP необходимо создать соответствующую инфраструктуру, создать в сети DHCP сервер и поддерживать его. Другой недостаток DHCP в том, что одному и тому же компьютеру в разное время DHCP сервер может назначать разные IP-адреса.

Работа протокола DHCP

DHCP работает по модели клиент-сервер. Клиент это компьютер, который получает IP-адрес автоматически. А сервер DHCP это компьютер, который раздает ip-адреса и следит за тем, чтобы один и тот же ip-адрес не был выдан двум клиентам, в противном случае они не смогут работать с сетью. Для того, чтобы получить ip-адрес, клиент и сервер обмениваются между собой сообщениями DHCP в режиме запрос-ответ.

Получение IP-адреса

Рассмотрим, как происходит получение IP-адреса по протоколу DHCP. Когда клиент включается, у него нет никакой информации о той сети в которой он находится. Его первая задача узнать, где находится DHCP сервер. Для этого он посылает сообщение DHCP DISCOVER.

Для того, чтобы найти DHCP сервер, сообщение DHCP DISCOVER посылается на широковещательный МАК-адрес. Это сообщение принимают все компьютеры в сети.

Сервер, после того, как получил сообщение DHCP DISCOVER в ответ посылает сообщение DHCP OFFER. В сообщение DHCP сервер включает ip-адрес, который предлагает использовать клиенту.

Клиент в ответ посылает сообщение DHCP REQUEST с тем же самым ip-адресом.

На следующем шаге сервер посылает подтверждающее сообщение DHCP ACK, куда еще раз включается ip-адрес. После этого клиент может использовать ip-адрес для работы в сети. Проще всего запомнить процесс получения ip-адреса по протоколу DHCP по первым буквам DHCP сообщений DORA (Discover, Offer, Request, Ack).

Кроме тех сообщений, которые мы рассмотрели, есть и другие сообщения.

  • Сообщение NACK запрещает использование клиентом ip-адреса, который он запросил в сообщении DHCP request.
  • Сообщение RELEASE используется для освобождения ip-адреса, который уже не нужен клиенту.
  • Сообщение INFORM используется для получения информации о сети, если клиент уже знает свой IP-адрес и ему не надо получать его с помощью протокола DHCP. Например, адрес может быть сконфигурирован вручную.

Зачем нужно четыре шага?

Зачем нужно 4 шага? Ведь на первый взгляд достаточно трёх шагов. Ответ на этот вопрос Вы узнаете из видео на 3:40 минуте.

Назначение адресов в DHCP

DHCP сервер может использовать 2 способа назначения адресов компьютерам.

  1. Первый способ — фиксированный. В этом случае в конфигурационных серверах DHCP сервера для каждого МАК-адреса прописывается соответствующий ему IP-адрес, который DHCP сервер должен выдавать клиенту. Это удобно делать в небольшой сети, где Вы знаете MAC-адреса всех компьютеров. Но в крупной сети или если Вы не знаете мак-адреса всех компьютеров это сделать невозможно. Например, если вы делаете сеть в кафе, куда люди приходят со своими ноутбуками, смартфонами, планшетами, вы не можете знать заранее их мак-адреса.
  2. Другой подход — динамический. В этом случае у DHCP сервера есть пул адресов, это диапазон адресов из которого DHCP сервер может взять любой IP-адрес и назначить компьютеру. При этом DHCP сервер следит за тем, чтобы один и тот же IP-адрес из пула не был назначен двум компьютерам одновременно.

Время аренды в DHCP

DHCP сервер выделяет IP-адрес компьютера на некоторое ограниченное время, которое называется временем аренды (lease time). Время аренды может быть разное от нескольких минут, до нескольких часов и даже суток в зависимость от потребности конкретной сети и конкретной организации.

Обновление аренды IP-адреса

После того, как время арены закончилось, ip-адрес освобождается и DHCP сервер может отдать его другому клиенту. Но что делать, если текущий клиент хочет использовать этот IP-адрес дальше? Для этого клиенту необходимо продлить аренду, обычно клиенты начинают это делать после того, как пройдет половина времени аренды, для продления аренды используется специальная сокращенная процедура получения IP-адреса. Так как клиент уже знает свой IP-адрес он сразу пересылает серверу сообщение DHCP request в котором указывает этот ip-адрес и если все нормально, то сервер в ответ высылает сообщение DHCP ACK, которое подтверждает, что клиент может использовать этот ip-адрес дальше.

Прекращение использования адреса

После того, как компьютер перестал работать с сетью, например при выключении, ему необходимо сказать об этом DHCP серверу, для этого используется сообщение DHCP Release. После получения такого сообщения DHCP сервер может отдать этот ip-адрес какому-нибудь другому компьютеру в сети. 

Все современные операционные системы автоматически отправляют сообщения DHCP Release при выключении, никаких дополнительных действий от пользователя не требуется. 

Если сообщение DHCP Release не будет отправлено, например в случае, когда компьютер выключен некорректно или произошел сбой в операционной системе, то DHCP сервер будет считать, что этот адрес занят пока не закончится время аренды и только после окончания времени аренды он может отдать этот ip-адрес другому компьютеру. 

Конфигурационная информация

Компьютеру, для корректной работы в сети, обычно, нужен не только ip-адрес. Нужно знать маску подсетей и маршрутизатор по умолчанию. Также, хорошо узнать адреса серверов имен. DHCP позволяет передать эти и другие сведения о конфигурации сети с помощью опций. Опции включаются в пакет DHCP и передаются вместе с ip-адресом. Кроме маски подсети и маршрутизатора по умолчанию, обычно передается адрес DNS серверов, которые используются для разрешения имен, адреса серверов времени, какие-либо полезные локальные маршруты, а также другая конфигурационная информация.

Поиск DHCP сервера в сети

Если Вы используете DHCP для назначения ip-адресов своей сети, то при планировании сети необходимо обращать внимание на то, где расположен DHCP сервер. Он должен располагаться в той же самой подсети, что и клиенты, которые будут получать ip-адреса по протоколу DHCP.

Почему так происходит? Клиент DHCP при включении не знает, где находится DHCP сервер и отправляет запрос DHCP Discover на широковещательный адрес.

Его получают все компьютеры, которые находятся в данной подсети в том числе и DHCP сервер.

Рассмотрим, что происходит, если DHCP сервер находится в другой подсети, то есть отделен от клиента одним или несколькими маршрутизаторами. Клиент DHCP отправляет сообщение DHCP Discover на широковещательный мак-адрес, но маршрутизатор не передает широковещательный трафик, поэтому сообщение DHCP discover не доходит до сервера DHCP, соответственно он не может выдать клиенту ip-адрес.

Чтобы решить эту проблему, используется DHCP Relay. Это специальная конфигурация маршрутизаторов или маршрутизирующих коммутаторов, которые позволяют им передавать широковещательный трафик, но не весь, а только тот, который относится к протоколу DHCP. Если наш маршрутизатор способен работать в режиме DHCP Relay, то он передаст сообщение DHCP Discover от клиента к DHCP серверу, который находится в другой сети.

И только в этом случае DHCP сервер может выдать ip-адрес клиенту, который находится за маршрутизатором.

Заключение

Протокол DHCP используется для автоматического назначения IP-адресов и другой конфигурационной информации. Протокол DHCP использует архитектуру клиент-сервер и работает в режиме запрос ответ. Чтобы получить IP-адрес используются 4 DHCP сообщения, сокращенно DORA. DHCP сервер выдает адреса на ограниченный срок (срок аренды). Чтобы DHCP сервер мог выдавать ip-адреса клиентам, он должен находиться с ними в одной подсети или необходимо использовать DHCP Relay на маршрутизаторах и коммутаторах.

Протокол DHCP | Microsoft Docs



  • Чтение занимает 2 мин

В этой статье

Применяется к: Windows Server (Semi-Annual Channel), Windows Server 2016Applies to: Windows Server (Semi-Annual Channel), Windows Server 2016

Этот раздел можно использовать для краткого обзора DHCP в Windows Server 2016.You can use this topic for a brief overview of DHCP in Windows Server 2016.

Примечание

Помимо этого раздела, доступна следующая документация по DHCP.In addition to this topic, the following DHCP documentation is available.

Протокол DHCP — это протокол клиента или сервера, который автоматически предоставляет узел протокола IP с его IP-адресом и другие связанные сведения о конфигурации, такие как маска подсети и шлюз по умолчанию.Dynamic Host Configuration Protocol (DHCP) is a client/server protocol that automatically provides an Internet Protocol (IP) host with its IP address and other related configuration information such as the subnet mask and default gateway. RFC 2131 и 2132 определяют протокол DHCP в качестве стандарта Internet Engineering Task Force (IETF), основанного на протоколе начальной загрузки (BOOTP), протокола, с помощью которого DHCP предоставляет много сведений о реализации.RFCs 2131 and 2132 define DHCP as an Internet Engineering Task Force (IETF) standard based on Bootstrap Protocol (BOOTP), a protocol with which DHCP shares many implementation details. DHCP позволяет узлам получать необходимые сведения о конфигурации TCP/IP от DHCP-сервера.DHCP allows hosts to obtain required TCP/IP configuration information from a DHCP server.

Windows Server 2016 включает DHCP-сервер, который является необязательной ролью сервера сети, которую можно развернуть в сети для аренды IP-адресов и других сведений клиентам DHCP.Windows Server 2016 includes DHCP Server, which is an optional networking server role that you can deploy on your network to lease IP addresses and other information to DHCP clients. Все клиентские операционные системы на основе Windows включают DHCP-клиент как часть TCP/IP, а DHCP-клиент включен по умолчанию.All Windows-based client operating systems include the DHCP client as part of TCP/IP, and DHCP client is enabled by default.

Зачем использовать DHCP?Why use DHCP?

Каждое устройство в сети на основе TCP/IP должно иметь уникальный IP-адрес одноадресной рассылки для доступа к сети и ее ресурсам.Every device on a TCP/IP-based network must have a unique unicast IP address to access the network and its resources. Без DHCP IP-адреса новых компьютеров или компьютеров, перемещаемых из одной подсети в другую, необходимо настроить вручную. IP-адреса для компьютеров, удаленных из сети, необходимо вручную освободить.Without DHCP, IP addresses for new computers or computers that are moved from one subnet to another must be configured manually; IP addresses for computers that are removed from the network must be manually reclaimed.

При использовании DHCP весь процесс автоматизирован и управляется централизованно.With DHCP, this entire process is automated and managed centrally. DHCP-сервер поддерживает пул IP-адресов и арендованный адрес любому клиенту с поддержкой DHCP при запуске в сети.The DHCP server maintains a pool of IP addresses and leases an address to any DHCP-enabled client when it starts up on the network. Так как IP-адреса являются динамическими (арендованными), а не статическими (без постоянного назначения), адреса, которые больше не используются, автоматически возвращаются в пул для перераспределения.Because the IP addresses are dynamic (leased) rather than static (permanently assigned), addresses no longer in use are automatically returned to the pool for reallocation.

Сетевой администратор устанавливает DHCP-серверы, которые сохраняют информацию о конфигурации TCP/IP и предоставляют клиентам с поддержкой DHCP в виде предложения аренды.The network administrator establishes DHCP servers that maintain TCP/IP configuration information and provide address configuration to DHCP-enabled clients in the form of a lease offer. DHCP-сервер хранит сведения о конфигурации в базе данных, которая включает в себя:The DHCP server stores the configuration information in a database that includes:

  • Допустимые параметры конфигурации TCP/IP для всех клиентов в сети.Valid TCP/IP configuration parameters for all clients on the network.

  • Допустимые IP-адреса, поддерживаемые в пуле для назначения клиентам, а также исключенные адреса.Valid IP addresses, maintained in a pool for assignment to clients, as well as excluded addresses.

  • Зарезервированный IP-адрес адреса, связанные с конкретными клиентами DHCP.Reserved IP addresses associated with particular DHCP clients. Это обеспечивает единообразное назначение одного IP-адреса одному клиенту DHCP.This allows consistent assignment of a single IP address to a single DHCP client.

  • Срок действия аренды или период времени, в течение которого IP-адрес может быть использован до продления срока аренды.The lease duration, or the length of time for which the IP address can be used before a lease renewal is required.

Клиент с поддержкой DHCP при принятии предложения аренды получает:A DHCP-enabled client, upon accepting a lease offer, receives:

  • Допустимый IP-адрес для подсети, к которой подключается.A valid IP address for the subnet to which it is connecting.

  • Запрошенные параметры DHCP, которые являются дополнительными параметрами, настроенными DHCP-сервером для назначения клиентам.Requested DHCP options, which are additional parameters that a DHCP server is configured to assign to clients. Некоторые примеры параметров DHCP: маршрутизатор (шлюз по умолчанию), DNS-серверы и доменное имя DNS.Some examples of DHCP options are Router (default gateway), DNS Servers, and DNS Domain Name.

Преимущества DHCPBenefits of DHCP

DHCP предоставляет следующие преимущества.DHCP provides the following benefits.

  • Конфигурация надежных IP-адресов.Reliable IP address configuration. DHCP свертывает ошибки конфигурации, вызванные ручной конфигурацией IP-адресов, например типографскими ошибками, или конфликты адресов, вызванные назначением IP-адреса более чем одному компьютеру одновременно.DHCP minimizes configuration errors caused by manual IP address configuration, such as typographical errors, or address conflicts caused by the assignment of an IP address to more than one computer at the same time.

  • Сокращенное администрирование сети.Reduced network administration. Служба DHCP включает следующие функции для сокращения сетевого администрирования:DHCP includes the following features to reduce network administration:

    • Централизованная и автоматизированная конфигурация TCP/IP.Centralized and automated TCP/IP configuration.

    • Возможность определять конфигурации TCP/IP из центрального расположения.The ability to define TCP/IP configurations from a central location.

    • Возможность назначать полный диапазон дополнительных значений конфигурации TCP/IP с помощью параметров DHCP.The ability to assign a full range of additional TCP/IP configuration values by means of DHCP options.

    • Эффективная обработка изменений IP-адресов для клиентов, которые должны обновляться часто, например для портативных устройств, которые перемещаются в разные места в беспроводной сети.The efficient handling of IP address changes for clients that must be updated frequently, such as those for portable devices that move to different locations on a wireless network.

    • Пересылка начальных сообщений DHCP с помощью агента ретранслятора DHCP, что устраняет необходимость в DHCP-сервере для каждой подсети.The forwarding of initial DHCP messages by using a DHCP relay agent, which eliminates the need for a DHCP server on every subnet.

Основы DHCP (протокол динамического конфигурирования узлов)



  • Чтение занимает 9 мин

В этой статье

Протокол DHCP — это стандартный протокол, определяемый RFC 1541 (который заменяется RFC 2131), позволяющий серверу динамически распределять IP-адреса и сведения о конфигурации клиентам.Dynamic Host Configuration Protocol (DHCP) is a standard protocol defined by RFC 1541 (which is superseded by RFC 2131) that allows a server to dynamically distribute IP addressing and configuration information to clients. Как правило, DHCP-сервер предоставляет клиенту по крайней мере следующие основные сведения:Normally the DHCP server provides the client with at least this basic information:

  • IP-адресIP Address

  • Маска подсетиSubnet Mask

  • Также могут быть предоставлены сведения о Гатевайосер по умолчанию, такие как адреса серверов службы доменных имен (DNS) и адреса серверов WINS.Default GatewayOther information can be provided as well, such as Domain Name Service (DNS) server addresses and Windows Internet Name Service (WINS) server addresses. Системный администратор настраивает DHCP-сервер с параметрами, которые анализируются на клиенте.The system administrator configures the DHCP server with the options that are parsed out to the client.

Дополнительные сведенияMore Information

Функции DHCP-клиента предоставляются в следующих продуктах Майкрософт:The following Microsoft products provide DHCP client functionality:

  • Windows NT Server версии 3,5, 3,51 и 4,0Windows NT Server versions 3.5, 3.51, and 4.0

  • Windows NT Workstation версии 3,5, 3,51 и 4,0Windows NT Workstation versions 3.5, 3.51, and 4.0

  • Windows 95Windows 95

  • Microsoft Network Client версии 3,0 для MS-DOSMicrosoft Network Client version 3.0 for MS-DOS

  • Клиент Microsoft LAN Manager версии 2.2 c для MS-DOSMicrosoft LAN Manager Client version 2.2c for MS-DOS

  • Microsoft TCP/IP-32 для Windows для рабочих групп версии 3,11, 3.11 a и 3.11 bMicrosoft TCP/IP-32 for Windows for Workgroups versions 3.11, 3.11a, and 3.11b

Разные DHCP-клиенты поддерживают различные параметры, которые они могут получить от DHCP-сервера.Different DHCP clients support different options that they can receive from the DHCP server.

Следующие операционные системы Microsoft Server предоставляют функции DHCP-сервера:The following Microsoft server operating systems provide DHCP server functionality:

  • Windows NT Server версии 3,5Windows NT Server version 3.5

  • Windows NT Server версии 3,51Windows NT Server version 3.51

  • Windows NT Server версии 4,0Windows NT Server version 4.0

Когда клиент инициализируется в первый раз после настройки на получение данных DHCP, он инициирует диалог с сервером.When a client is initialized for the first time after it is configured to receive DHCP information, it initiates a conversation with the server.

Ниже приведена сводная таблица диалога между клиентом и сервером, за которой следует описание процесса на уровне пакета:Below is a summary table of the conversation between client and server, which is followed by a packet-level description of the process:

Source Dest Source Dest Packet
 MAC addr MAC addr IP addr IP addr Description
 -----------------------------------------------------------------
 Client Broadcast 0.0.0.0 255.255.255.255 DHCP Discover
 DHCPsrvr Broadcast DHCPsrvr 255.255.255.255 DHCP Offer
 Client Broadcast 0.0.0.0 255.255.255.255 DHCP Request
 DHCPsrvr Broadcast DHCPsrvr 255.255.255.255 DHCP ACK

Ниже приведен подробный диалог между клиентом DHCP и DHCP-сервером.The detailed conversation between DHCP client and DHCP server is as follows:

DHCPDISCOVERDHCPDISCOVER

Клиент отправляет пакет DHCPDISCOVER.The client sends a DHCPDISCOVER packet. Ниже приведен фрагмент записи сетевого монитора, в которой показаны IP-и DHCP-части пакета DHCPDISCOVER.The following is an excerpt from a network monitor capture showing the IP and DHCP portions of a DHCPDISCOVER packet. В разделе IP-адреса можно увидеть адрес назначения 255.255.255.255, а исходный адрес — 0.0.0.0.In the IP section, you can see the Destination address is 255.255.255.255 and the Source address is 0.0.0.0. Раздел DHCP идентифицирует пакет как пакет обнаружения и идентифицирует клиент в двух местах, используя физический адрес сетевой карты.The DHCP section identifies the packet as a Discover packet and identifies the client in two places using the physical address of the network card. Обратите внимание, что значения в полях ЧАДДР и DHCP: Client identifier идентичны.Note the values in the CHADDR field and the DHCP: Client Identifier field are identical.


IP: ID = 0x0; Proto = UDP; Len: 328
 IP: Version = 4 (0x4)
 IP: Header Length = 20 (0x14)
 IP: Service Type = 0 (0x0)
 IP: Precedence = Routine
 IP: ...0.... = Normal Delay
 IP: ....0... = Normal Throughput
 IP: .....0.. = Normal Reliability
 IP: Total Length = 328 (0x148)
 IP: Identification = 0 (0x0)
 IP: Flags Summary = 0 (0x0)
 IP: .......0 = Last fragment in datagram
 IP: ......0. = May fragment datagram if necessary
 IP: Fragment Offset = 0 (0x0) bytes
 IP: Time to Live = 128 (0x80)
 IP: Protocol = UDP - User Datagram
 IP: Checksum = 0x39A6
 IP: Source Address = 0.0.0.0
 IP: Destination Address = 255.255.255.255
 IP: Data: Number of data bytes remaining = 308 (0x0134)

DHCP: Discover (xid=21274A1D)
 DHCP: Op Code (op) = 1 (0x1)
 DHCP: Hardware Type (htype) = 1 (0x1) 10Mb Ethernet
 DHCP: Hardware Address Length (hlen) = 6 (0x6)
 DHCP: Hops (hops) = 0 (0x0)
 DHCP: Transaction ID (xid) = 556223005 (0x21274A1D)
 DHCP: Seconds (secs) = 0 (0x0)
 DHCP: Flags (flags) = 0 (0x0)
 DHCP: 0............... = No Broadcast
 DHCP: Client IP Address (ciaddr) = 0.0.0.0
 DHCP: Your IP Address (yiaddr) = 0.0.0.0
 DHCP: Server IP Address (siaddr) = 0.0.0.0
 DHCP: Relay IP Address (giaddr) = 0.0.0.0
 DHCP: Client Ethernet Address (chaddr) = 08002B2ED85E
 DHCP: Server Host Name (sname) = <Blank>
 DHCP: Boot File Name (file) = <Blank>
 DHCP: Magic Cookie = [OK]
 DHCP: Option Field (options)
 DHCP: DHCP Message Type = DHCP Discover
 DHCP: Client-identifier = (Type: 1) 08 00 2b 2e d8 5e
 DHCP: Host Name = JUMBO-WS
 DHCP: Parameter Request List = (Length: 7) 01 0f 03 2c 2e 2f 06
 DHCP: End of this option field

дхкпофферDHCPOFFER

DHCP-сервер отвечает, отправляя пакет ДХКПОФФЕР.The DHCP server responds by sending a DHCPOFFER packet. В разделе IP фрагмента записи ниже исходный адрес теперь является IP-адресом сервера DHCP, а адресом назначения является широковещательный адрес 255.255.255.255.In the IP section of the capture excerpt below, the Source address is now the DHCP server IP address, and the Destination address is the broadcast address 255.255.255.255. Раздел DHCP определяет пакет как предложение.The DHCP section identifies the packet as an Offer. Поле ИАДДР заполняется IP-адресом, который сервер предлагает клиенту.The YIADDR field is populated with the IP address the server is offering the client. Обратите внимание, что поле ЧАДДР по-прежнему содержит физический адрес запрашивающего клиента.Note the CHADDR field still contains the physical address of the requesting client. Кроме того, в разделе поля параметров DHCP можно найти различные параметры, отправляемые сервером вместе с IP-адресом.Also, we see in the DHCP Option Field section the various options being sent by the server along with the IP address. В этом случае сервер отправляет маску подсети, шлюз по умолчанию (маршрутизатор), время аренды, адрес WINS-сервера (служба имен NetBIOS) и тип узла NetBIOS.In this case the server is sending the Subnet Mask, Default Gateway (Router), Lease Time, WINS server address (NetBIOS Name Service), and the NetBIOS Node Type.


IP: ID = 0x3C30; Proto = UDP; Len: 328
 IP: Version = 4 (0x4)
 IP: Header Length = 20 (0x14)
 IP: Service Type = 0 (0x0)
 IP: Precedence = Routine
 IP: ...0.... = Normal Delay
 IP: ....0... = Normal Throughput
 IP: .....0.. = Normal Reliability
 IP: Total Length = 328 (0x148)
 IP: Identification = 15408 (0x3C30)
 IP: Flags Summary = 0 (0x0)
 IP: .......0 = Last fragment in datagram
 IP: ......0. = May fragment datagram if necessary
 IP: Fragment Offset = 0 (0x0) bytes
 IP: Time to Live = 128 (0x80)
 IP: Protocol = UDP - User Datagram
 IP: Checksum = 0x2FA8
 IP: Source Address = 157.54.48.151
 IP: Destination Address = 255.255.255.255
 IP: Data: Number of data bytes remaining = 308 (0x0134)

DHCP: Offer (xid=21274A1D)
 DHCP: Op Code (op) = 2 (0x2)
 DHCP: Hardware Type (htype) = 1 (0x1) 10Mb Ethernet
 DHCP: Hardware Address Length (hlen) = 6 (0x6)
 DHCP: Hops (hops) = 0 (0x0)
 DHCP: Transaction ID (xid) = 556223005 (0x21274A1D)
 DHCP: Seconds (secs) = 0 (0x0)
 DHCP: Flags (flags) = 0 (0x0)
 DHCP: 0............... = No Broadcast
 DHCP: Client IP Address (ciaddr) = 0.0.0.0
 DHCP: Your IP Address (yiaddr) = 157.54.50.5
 DHCP: Server IP Address (siaddr) = 0.0.0.0
 DHCP: Relay IP Address (giaddr) = 0.0.0.0
 DHCP: Client Ethernet Address (chaddr) = 08002B2ED85E
 DHCP: Server Host Name (sname) = <Blank>
 DHCP: Boot File Name (file) = <Blank>
 DHCP: Magic Cookie = [OK]
 DHCP: Option Field (options)
 DHCP: DHCP Message Type = DHCP Offer
 DHCP: Subnet Mask = 255.255.240.0
 DHCP: Renewal Time Value (T1) = 8 Days, 0:00:00
 DHCP: Rebinding Time Value (T2) = 14 Days, 0:00:00
 DHCP: IP Address Lease Time = 16 Days, 0:00:00
 DHCP: Server Identifier = 157.54.48.151
 DHCP: Router = 157.54.48.1
 DHCP: NetBIOS Name Service = 157.54.16.154
 DHCP: NetBIOS Node Type = (Length: 1) 04
 DHCP: End of this option field

DHCPREQUESTDHCPREQUEST

Клиент отвечает на ДХКПОФФЕР, отправляя DHCPREQUEST.The client responds to the DHCPOFFER by sending a DHCPREQUEST. В разделе IP-адресов записи ниже исходный адрес клиента по-прежнему равен 0.0.0.0, а место назначения пакета по-прежнему 255.255.255.255.In the IP section of the capture below, the Source address of the client is still 0.0.0.0 and the Destination for the packet is still 255.255.255.255. Клиент оставляет 0.0.0.0, так как клиент не получал проверку с сервера, что его можно использовать в предложенном адресе.The client retains 0.0.0.0 because the client hasn’t received verification from the server that it’s okay to start using the address offered. Назначением по-прежнему выполняется вещание, так как может быть получен ответ от нескольких DHCP-серверов и может храниться резервирование для предложения, сделанного клиентом.The Destination is still broadcast, because more than one DHCP server may have responded and may be holding a reservation for an Offer made to the client. Это позволяет другим DHCP-серверам понять, что они могут освободить свои предложенные адреса и вернуть их в доступные пулы.This lets those other DHCP servers know they can release their offered addresses and return them to their available pools. Раздел DHCP идентифицирует пакет как запрос и проверяет предложенный адрес с помощью поля DHCP: запрошенный адрес.The DHCP section identifies the packet as a Request and verifies the offered address using the DHCP: Requested Address field. В поле Идентификатор сервера DHCP: отображается IP-адрес DHCP-сервера, предоставляющего аренду.The DHCP: Server Identifier field shows the IP address of the DHCP server offering the lease.


IP: ID = 0x100; Proto = UDP; Len: 328
 IP: Version = 4 (0x4)
 IP: Header Length = 20 (0x14)
 IP: Service Type = 0 (0x0)
 IP: Precedence = Routine
 IP: ...0.... = Normal Delay
 IP: ....0... = Normal Throughput
 IP: .....0.. = Normal Reliability
 IP: Total Length = 328 (0x148)
 IP: Identification = 256 (0x100)
 IP: Flags Summary = 0 (0x0)
 IP: .......0 = Last fragment in datagram
 IP: ......0. = May fragment datagram if necessary
 IP: Fragment Offset = 0 (0x0) bytes
 IP: Time to Live = 128 (0x80)
 IP: Protocol = UDP - User Datagram
 IP: Checksum = 0x38A6
 IP: Source Address = 0.0.0.0
 IP: Destination Address = 255.255.255.255
 IP: Data: Number of data bytes remaining = 308 (0x0134)

DHCP: Request (xid=21274A1D)
 DHCP: Op Code (op) = 1 (0x1)
 DHCP: Hardware Type (htype) = 1 (0x1) 10Mb Ethernet
 DHCP: Hardware Address Length (hlen) = 6 (0x6)
 DHCP: Hops (hops) = 0 (0x0)
 DHCP: Transaction ID (xid) = 556223005 (0x21274A1D)
 DHCP: Seconds (secs) = 0 (0x0)
 DHCP: Flags (flags) = 0 (0x0)
 DHCP: 0............... = No Broadcast
 DHCP: Client IP Address (ciaddr) = 0.0.0.0
 DHCP: Your IP Address (yiaddr) = 0.0.0.0
 DHCP: Server IP Address (siaddr) = 0.0.0.0
 DHCP: Relay IP Address (giaddr) = 0.0.0.0
 DHCP: Client Ethernet Address (chaddr) = 08002B2ED85E
 DHCP: Server Host Name (sname) = <Blank>
 DHCP: Boot File Name (file) = <Blank>
 DHCP: Magic Cookie = [OK]
 DHCP: Option Field (options)
 DHCP: DHCP Message Type = DHCP Request
 DHCP: Client-identifier = (Type: 1) 08 00 2b 2e d8 5e
 DHCP: Requested Address = 157.54.50.5
 DHCP: Server Identifier = 157.54.48.151
 DHCP: Host Name = JUMBO-WS
 DHCP: Parameter Request List = (Length: 7) 01 0f 03 2c 2e 2f 06
 DHCP: End of this option field

ТРАНСЛИРУЕТDHCPACK

DHCP-сервер отвечает на DHCPREQUEST с помощью DHCPACK, тем самым завершая цикл инициализации.The DHCP server responds to the DHCPREQUEST with a DHCPACK, thus completing the initialization cycle. Исходный адрес — это IP-адрес сервера DHCP, а адрес назначения по-прежнему — 255.255.255.255.The Source address is the DHCP server IP address, and the Destination address is still 255.255.255.255. Поле ИАДДР содержит адрес клиента, а поля ЧАДДР и DHCP: Client identifier являются физическим адресом сетевой карты в запрашивающем клиенте.The YIADDR field contains the client’s address, and the CHADDR and DHCP: Client Identifier fields are the physical address of the network card in the requesting client. Раздел параметров DHCP определяет пакет как подтверждение.The DHCP Option section identifies the packet as an ACK.


IP: ID = 0x3D30; Proto = UDP; Len: 328
 IP: Version = 4 (0x4)
 IP: Header Length = 20 (0x14)
 IP: Service Type = 0 (0x0)
 IP: Precedence = Routine
 IP: ...0.... = Normal Delay
 IP: ....0... = Normal Throughput
 IP: .....0.. = Normal Reliability
 IP: Total Length = 328 (0x148)
 IP: Identification = 15664 (0x3D30)
 IP: Flags Summary = 0 (0x0)
 IP: .......0 = Last fragment in datagram
 IP: ......0. = May fragment datagram if necessary
 IP: Fragment Offset = 0 (0x0) bytes
 IP: Time to Live = 128 (0x80)
 IP: Protocol = UDP - User Datagram
 IP: Checksum = 0x2EA8
 IP: Source Address = 157.54.48.151
 IP: Destination Address = 255.255.255.255
 IP: Data: Number of data bytes remaining = 308 (0x0134)

DHCP: ACK (xid=21274A1D)
 DHCP: Op Code (op) = 2 (0x2)
 DHCP: Hardware Type (htype) = 1 (0x1) 10Mb Ethernet
 DHCP: Hardware Address Length (hlen) = 6 (0x6)
 DHCP: Hops (hops) = 0 (0x0)
 DHCP: Transaction ID (xid) = 556223005 (0x21274A1D)
 DHCP: Seconds (secs) = 0 (0x0)
 DHCP: Flags (flags) = 0 (0x0)
 DHCP: 0............... = No Broadcast
 DHCP: Client IP Address (ciaddr) = 0.0.0.0
 DHCP: Your IP Address (yiaddr) = 157.54.50.5
 DHCP: Server IP Address (siaddr) = 0.0.0.0
 DHCP: Relay IP Address (giaddr) = 0.0.0.0
 DHCP: Client Ethernet Address (chaddr) = 08002B2ED85E
 DHCP: Server Host Name (sname) = <Blank>
 DHCP: Boot File Name (file) = <Blank>
 DHCP: Magic Cookie = [OK]
 DHCP: Option Field (options)
 DHCP: DHCP Message Type = DHCP ACK
 DHCP: Renewal Time Value (T1) = 8 Days, 0:00:00
 DHCP: Rebinding Time Value (T2) = 14 Days, 0:00:00
 DHCP: IP Address Lease Time = 16 Days, 0:00:00
 DHCP: Server Identifier = 157.54.48.151
 DHCP: Subnet Mask = 255.255.240.0
 DHCP: Router = 157.54.48.1
 DHCP: NetBIOS Name Service = 157.54.16.154
 DHCP: NetBIOS Node Type = (Length: 1) 04
 DHCP: End of this option field

Если у клиента ранее был назначен IP-адрес DHCP и он перезапущен, клиент будет запрашивать ранее арендованный IP-адрес в специальном пакете DHCPREQUEST.If the client has previously had a DHCP assigned IP address and it is restarted, the client will specifically request the previously leased IP address in a special DHCPREQUEST packet. Адрес источника — 0.0.0.0, а местом назначения — широковещательный адрес 255.255.255.255.The Source address is 0.0.0.0 and the Destination is the broadcast address 255.255.255.255. Клиенты Майкрософт заполнят поле параметра DHCP DHCP: запрошенный адрес с ранее назначенным адресом.Microsoft clients will populate the DHCP Option Field DHCP: Requested Address with the previously assigned address. Строго совместимые с RFC клиенты заполняют поле ЦИАДДР с запрошенным адресом.Strictly RFC compliant clients will populate the CIADDR Field with the address requested. Сервер Microsoft DHCP будет принимать либо.The Microsoft DHCP server will accept either.


IP: ID = 0x0; Proto = UDP; Len: 328
 IP: Version = 4 (0x4)
 IP: Header Length = 20 (0x14)
 IP: Service Type = 0 (0x0)
 IP: Precedence = Routine
 IP: ...0.... = Normal Delay
 IP: ....0... = Normal Throughput
 IP: .....0.. = Normal Reliability
 IP: Total Length = 328 (0x148)
 IP: Identification = 0 (0x0)
 IP: Flags Summary = 0 (0x0)
 IP: .......0 = Last fragment in datagram
 IP: ......0. = May fragment datagram if necessary
 IP: Fragment Offset = 0 (0x0) bytes
 IP: Time to Live = 128 (0x80)
 IP: Protocol = UDP - User Datagram
 IP: Checksum = 0x39A6
 IP: Source Address = 0.0.0.0
 IP: Destination Address = 255.255.255.255
 IP: Data: Number of data bytes remaining = 308 (0x0134)

DHCP: Request (xid=2757554E)
 DHCP: Op Code (op) = 1 (0x1)
 DHCP: Hardware Type (htype) = 1 (0x1) 10Mb Ethernet
 DHCP: Hardware Address Length (hlen) = 6 (0x6)
 DHCP: Hops (hops) = 0 (0x0)
 DHCP: Transaction ID (xid) = 660034894 (0x2757554E)
 DHCP: Seconds (secs) = 0 (0x0)
 DHCP: Flags (flags) = 0 (0x0)
 DHCP: 0............... = No Broadcast
 DHCP: Client IP Address (ciaddr) = 0.0.0.0
 DHCP: Your IP Address (yiaddr) = 0.0.0.0
 DHCP: Server IP Address (siaddr) = 0.0.0.0
 DHCP: Relay IP Address (giaddr) = 0.0.0.0
 DHCP: Client Ethernet Address (chaddr) = 08002B2ED85E
 DHCP: Server Host Name (sname) = <Blank>
 DHCP: Boot File Name (file) = <Blank>
 DHCP: Magic Cookie = [OK]
 DHCP: Option Field (options)
 DHCP: DHCP Message Type = DHCP Request
 DHCP: Client-identifier = (Type: 1) 08 00 2b 2e d8 5e
 DHCP: Requested Address = 157.54.50.5
 DHCP: Host Name = JUMBO-WS
 DHCP: Parameter Request List = (Length: 7) 01 0f 03 2c 2e 2f 06
 DHCP: End of this option field

На этом этапе сервер может не отвечать на запросы.At this point, the server may or may not respond. Поведение DHCP-сервера Windows NT зависит от используемой версии операционной системы, а также от других факторов, таких как ограничение области.The behavior of the Windows NT DHCP server depends on the version of the operating system being used as well as other factors such as superscoping. Если сервер определяет, что клиент по-прежнему может использовать этот адрес, он будет либо в автоматическом режиме, либо на подтверждение DHCPREQUEST.If the server determines that the client can still use the address, it will either remain silent or ACK the DHCPREQUEST. Если сервер определяет, что у клиента не может быть адреса, он будет передавать НАКК.If the server determines that the client cannot have the address, it will send a NACK.


IP: ID = 0x3F1A; Proto = UDP; Len: 328
 IP: Version = 4 (0x4)
 IP: Header Length = 20 (0x14)
 IP: Service Type = 0 (0x0)
 IP: Precedence = Routine
 IP: ...0.... = Normal Delay
 IP: ....0... = Normal Throughput
 IP: .....0.. = Normal Reliability
 IP: Total Length = 328 (0x148)
 IP: Identification = 16154 (0x3F1A)
 IP: Flags Summary = 0 (0x0)
 IP: .......0 = Last fragment in datagram
 IP: ......0. = May fragment datagram if necessary
 IP: Fragment Offset = 0 (0x0) bytes
 IP: Time to Live = 128 (0x80)
 IP: Protocol = UDP - User Datagram
 IP: Checksum = 0x2CBE
 IP: Source Address = 157.54.48.151
 IP: Destination Address = 255.255.255.255
 IP: Data: Number of data bytes remaining = 308 (0x0134)

DHCP: NACK (xid=74A005CE)
 DHCP: Op Code (op) = 2 (0x2)
 DHCP: Hardware Type (htype) = 1 (0x1) 10Mb Ethernet
 DHCP: Hardware Address Length (hlen) = 6 (0x6)
 DHCP: Hops (hops) = 0 (0x0)
 DHCP: Transaction ID (xid) = 1956644302 (0x74A005CE)
 DHCP: Seconds (secs) = 0 (0x0)
 DHCP: Flags (flags) = 0 (0x0)
 DHCP: 0............... = No Broadcast
 DHCP: Client IP Address (ciaddr) = 0.0.0.0
 DHCP: Your IP Address (yiaddr) = 0.0.0.0
 DHCP: Server IP Address (siaddr) = 0.0.0.0
 DHCP: Relay IP Address (giaddr) = 0.0.0.0
 DHCP: Client Ethernet Address (chaddr) = 08002B2ED85E
 DHCP: Server Host Name (sname) = <Blank>
 DHCP: Boot File Name (file) = <Blank>
 DHCP: Magic Cookie = [OK]
 DHCP: Option Field (options)
 DHCP: DHCP Message Type = DHCP NACK
 DHCP: Server Identifier = 157.54.48.151
 DHCP: End of this option field

После этого клиент начнет процесс обнаружения, но пакет DHCPDISCOVER по-прежнему будет пытаться арендовать тот же адрес.The client will then begin the discover process, but the DHCPDISCOVER packet will still attempt to lease the same address. Во многих случаях клиент ТС получает один и тот же адрес, но не может.In many instances, tth client will get the same address but may not.


IP: ID = 0x100; Proto = UDP; Len: 328
 IP: Version = 4 (0x4)
 IP: Header Length = 20 (0x14)
 IP: Service Type = 0 (0x0)
 IP: Precedence = Routine
 IP: ...0.... = Normal Delay
 IP: ....0... = Normal Throughput
 IP: .....0.. = Normal Reliability
 IP: Total Length = 328 (0x148)
 IP: Identification = 256 (0x100)
 IP: Flags Summary = 0 (0x0)
 IP: .......0 = Last fragment in datagram
 IP: ......0. = May fragment datagram if necessary
 IP: Fragment Offset = 0 (0x0) bytes
 IP: Time to Live = 128 (0x80)
 IP: Protocol = UDP - User Datagram
 IP: Checksum = 0x38A6
 IP: Source Address = 0.0.0.0
 IP: Destination Address = 255.255.255.255
 IP: Data: Number of data bytes remaining = 308 (0x0134)

DHCP: Discover (xid=3ED14752)
 DHCP: Op Code (op) = 1 (0x1)
 DHCP: Hardware Type (htype) = 1 (0x1) 10Mb Ethernet
 DHCP: Hardware Address Length (hlen) = 6 (0x6)
 DHCP: Hops (hops) = 0 (0x0)
 DHCP: Transaction ID (xid) = 1053902674 (0x3ED14752)
 DHCP: Seconds (secs) = 0 (0x0)
 DHCP: Flags (flags) = 0 (0x0)
 DHCP: 0............... = No Broadcast
 DHCP: Client IP Address (ciaddr) = 0.0.0.0
 DHCP: Your IP Address (yiaddr) = 0.0.0.0
 DHCP: Server IP Address (siaddr) = 0.0.0.0
 DHCP: Relay IP Address (giaddr) = 0.0.0.0
 DHCP: Client Ethernet Address (chaddr) = 08002B2ED85E
 DHCP: Server Host Name (sname) = <Blank>
 DHCP: Boot File Name (file) = <Blank>
 DHCP: Magic Cookie = [OK]
 DHCP: Option Field (options)
 DHCP: DHCP Message Type = DHCP Discover
 DHCP: Client-identifier = (Type: 1) 08 00 2b 2e d8 5e
 DHCP: Requested Address = 157.54.51.5
 DHCP: Host Name = 

Назначение и возможности протокола DHCP? Какие бывают опции в протоколе DHCP (DHCP options) и зачем они нужны?

Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем изучать основы работы компьютерных сетей. В девятой части мы с вами будем разбираться с тем, как работает протокол DHCP (Dynamic Host Configuration Protocol) и зачем он вообще нужен? Эта запись как раз будет про назначение и возможности протокола DHCP, а также мы с вами рассмотрим DHCP опции и их назначение в протоколе. Как всегда, торопиться никуда не будем, сперва рассмотрим DHCP в общих чертах, а затем будем разбираться с частностями.

9.1.1 Введение

Содержание статьи:

В курсах ICND1 и ICND2 протокол DHCP рассматривается очень поверхностно, да и в целом Cisco размазала информацию об этом протоколе на треки разных направлений и по разным уровням. Мы же рассмотрим DHCP довольно подробно и, пожалуй, рассмотренной информации хватит не только для того, чтобы ответить на вопросы по DHCP, которые могут встретиться на экзамене CCNA R&S, но и на вопросы, которые могут быть на экзамене CCNP R&S.

9.1.2 Зачем нужен протокол DHCP и как он связан с протоколом IP?

В теме Протокол IPv4 мы говорили о статических и динамических IP-адресах, мы затронули самые основные моменты, касающиеся DHCP и его назначения, сейчас мы кратко вспомним то, что было рассмотрено ранее. Думаю, все прекрасно знают, что такой инструмент, как молоток, в основном используется для забивания гвоздей, то есть нам всем ясно зачем нужен молоток. Так давайте сперва выясним – зачем нам нужен протокол DHCP.

Протокол DHCP (Dynamic Host Configuration Protocol) или протокол динамического конфигурирования хостов нужен для автоматизации процесса настройки сетевых интерфейсов в компьютерной сети. Протокол DHCP с тем или иным успехом решает две глобальные задачи:

  1. Избавляет инженера от однотипной и монотонной работы по настройке IP-адресов, шлюзов, масок подсетей, адресов DNS-серверов и других необходимых параметров для работы устройства в компьютерной сети. При выполнении такой работы еще и легко ошибиться, ведь устройств может быть сотни, а то и тысячи.
  2. Протокол DHCP в какой-то мере, но не на 100%, защищает вашу сеть от такого неприятного явления как дублирование IP-адресов. При ручной настройке узлов компьютерной сети у вас может быть два подхода: либо вы ведете учет выданных IP-адресов и куда-нибудь записываете конфигурации ваших узлов, либо вы пускаете это дело на самотек и выдаете IP-адреса своим узлам, руководствуясь желанием своей левой пятки. В маленьких и очень маленьких сетях второй подход применим, а вот в больших сетях возникнут проблемы даже в том случае, когда вы будете вести строгий учет, проблемы возникнут именно с учетом, каждый новый IP-адрес в вашей учетной системе будет делать учет всё более сложным. Протокол DHCP позволяет избавиться от этого ручного учета, ведь DHCP-сервер будет запоминать те IP-адреса, которые он выдал, возможно, он будет запоминать даже кому он выдал тот или иной IP-адрес, чтобы затем выдать его вновь.

В этой теме мы будем разбираться с протоколом DHCP в связке с протоколом IPv4, хотя стоит заметить, что рассматривать DHCP без протокола IP вообще нет никакого смысла, просто дело всё в том, что DHCPv6 имеет несколько другие задачи, но это совсем другая история. Вообще, протокол DHCP, как и многие другие протоколы (например, NAT), возник из-за недостатков IPv4, дело в том, что в IPv4 нет механизма по автоматическому назначению IP-адресов на интерфейсы, а вот в IPv6 такой механизм уже имеется. То есть DHCP расширяет возможности IPv4 и делает жизнь сетевого инженера более простой и приятной, правда этому инженеру придется изучать как этот DHCP работает.

Также не стоит воспринимать DHCP, как протокол для выдачи IP настроек узлам сети, выдавать можно не только IP-адреса и маски, но еще и огромное множество параметров, параметры, которые DHCP-сервер может сообщать клиенту, называются опции, ниже мы о них поговорим, но сразу замечу, что мы разберемся только с механизмом работы опций, все опции перечислить я не смогу и более того, я их все не знаю, да и не очень хочется мне их знать, если честно.

Протокол DHCP был стандартизован в 1993 году и является наследником протокола BOOTP, это мы увидим, когда познакомимся со структурой сообщений в DHCP, кстати говоря, по схожему принципу с DHCP работает протокол RARP, но он нам совсем неинтересен. DHCP описан в спецификации RFC 2131.

9.1.3 Режимы работы DHCP сервера

Куда важнее понимать режимы работы DHCP-сервера, чтобы он работал так, как вам хочется, а не так, как получается. Эта тема для нас не нова, поэтому здесь я буду краток.

  1. Ручное назначение статических IP-адресов.
  2. Автоматическое назначение статических адресов.
  3. Автоматическое распределение динамических адресов.

Третий режим работы DHCP-сервера в списке самый популярный. Во всех трех режимах работы администратор должен сообщить серверу диапазоны или пулы IP-адресов, которые тот будет выдавать клиентскому оборудованию, каждый диапазон IP-адресов должен быть из одной подсети, то есть в одном диапазоне не может быть адресов из разных подсетей. Давайте дадим описание каждому из этих режимов.

Ручной режим работы DHCP-сервера. Этот режим работы не очень сильно отличается от статической настройки клиентских устройств. Разница лишь в том, что администратор не бегает по всей сети и все настройки производит на DHCP-сервере. В таком режиме серверу нужно задать жесткое соответствие между IP-адресами и MAC-адресами. Устройство с одним конкретным мак-адресом всегда будет получать один и тот же IP-адрес, если в базе данных DHCP-сервера нет мак-адреса или для мак-адреса не задан IP-адрес, то клиент настройки не получит.

Автоматическое назначение статических адресов. Главной особенностью работы этого режима является то, что сервер выдает IP-адрес клиенту не на определенное время (в DHCP это время называется временем аренды или lease time), а навсегда. DHCP-сервер выдает клиенту IP-адрес без вмешательства администратора, при первом обращение клиента сервер его запоминает и затем постоянно выдает этому клиенту один и тот же IP-адрес.

Режим автоматического распределения динамических адресов. Это то, что нас больше всего интересует, самый гибкий и самый универсальный режим. В таком режиме сервер выдает IP-адрес клиенту не навсегда, а на строго определенное время, которое называется временем аренды, это время назначается администратором, когда время аренды будет истекать, клиент, если захочет, может его продлить, чтобы не менять IP-адрес. Тут стоит заметить, что в этом режиме адреса для клиентов тоже можно зафиксировать за конкретным клиентом, например, при помощи опции 82, но об этом позже.

У третьего режима есть один очень существенный плюс, этот плюс заключается в повторном использование IP-адресов, вот не нужен клиенту уже IP-адрес, он и сообщает об этом серверу, сервер его освобождает, а затем он может выдать этот адрес другому клиенту.

9.1.4 Опции DHCP протокола и зачем они нужны? Список стандартных DHCP опций

Вы уже, наверное, поняли, что протокол DHCP относится к группе протоколов, работающих по архитектуре клиент-север, DHCP относится к прикладному уровню моделей OSI 7 и TCP/IP, а сообщения DHCP инкапсулируются в UDP дейтаграммы, но сейчас речь не об этом. Сейчас нам нужно понять, что клиент делает запрос к серверу на получение параметров, необходимы для того, чтобы клиент мог получить полноценный доступ к ресурсам компьютерной сети, эти параметры называются DHCP опции. Если говорить грубо, то клиент просто сообщает серверу – какие опции ему необходимы, а сервер на основе каких-то своих критериев может принять решение – какие опции и с какими значениями нужно выдать клиенту, а может их вообще этому клиенту выдавать не нужно.

При этом стоит заметить, что опции DHCP могут быть стандартными, а могут быть и не стандартными и тут первый камень преткновения. Не все реализации DHCP-серверов, как и не все программные реализации DHCP-клиентов, поддерживают весь список стандартных опций, некоторые реализации DHCP имеют свои нестандартные опции, которые не поддерживаются другими реализациями и это всё может внести хаос в упорядоченный мир DHCP. Дело в том, что клиент может получить опцию, а сервер, соответственно, ее выдать, только в том, случае, если и клиент, и сервер понимают эту опцию и умеют с ней работать, что, собственно, логично.

Очевидная проблема, которая у вас может возникнуть: для подключения клиентского устройства к компьютерной сети нужна опция, с которой это устройство работать не умеет, ну вот не добавили поддержку этой опции производители и всё тут. Список стандартных DHCP опций описан в RFC 2132. Более того, для каждой стандартной опции есть свой RFC, который описывает – зачем эта опция нужна и как она должна работать.

Если говорить о самых часто используемых опциях DHCP, то вот вам небольшой список сейчас и в конце будет еще:

  • IP-адрес шлюза по умолчанию;
  • маска подсети;
  • адреса DNS-серверов;
  • имя домена DNS.

Для передачи опций между клиентом и сервером в DHCP пакете есть специальное поле переменной длинны, которое так и называется – options. Это поле имеет переменную длину, но при этом все остальные поля DHCP сообщения фиксированные. Если учесть, что и DHCP-клиент, и DHCP-сервер должны уметь обработать пакет размером 576 байт (576 байт взято не с потолка, а из ограничений некоторых старых протоколов), а также знать размер других полей в пакете, то нетрудно будет посчитать, что поле options имеет минимальную длину 340 байт. При этом самое поле options начинается с фиксированной последовательности Magic Cookie, которая выглядит так: 0×63825363. Можно сказать и по-другому, Magic Cookie – это четыре байта со значениями 99, 130, 83, 99. Как это не назови, но по этой последовательности устройство понимает, что фиксированная часть пакета закончилась и начались DHCP опции.

Кстати говоря, в DHCP пакете есть еще два необязательных поля, то есть в пакете есть пространство, вместо которого можно передавать опции – это поля file (64 байта) и snmae (128 байт). Что еще можно добавить про опции DHCP? Каждая стандартная опция имеет уникальный номер от 0 до 255, вернее правильнее будет говорить код, а не номер. У каждой опции есть размер, при этом у некоторых опций определен не строго фиксированный размер, а какие-то границы, в которых опция может плавать. Более подробную информацию о DHCP опциях вам придется смотреть в специальных RFC, дело всё в том, что некоторые опции должны начинаться, например, с нуля, некоторые опции нельзя использовать вместе, есть еще ряд других особенностей, в которые углубляться нам смысла сейчас нет.

Осталось лишь сказать, что поле опций в DHCP пакете всегда должно заканчиваться опцией с кодом 255, по этой опции устройства понимают, что это конец, больше опций не будет, да и сам DHCP пакет на этом закончился.

9.1.6 Список самых часто используемых DHCP опции

Ниже вы найдете таблицу, в которой перечислены самые часто используемые опции в DHCP, вероятность с ними столкнуться очень велика и я бы рекомендовал ознакомится с ними подробнее в соответствующих RFC.

КодНазваниеДлинаОписание опции
1Subnet Mask4Маска подсети
3Routerx4Перечисление доступных маршрутизаторов. Или проще говоря, IP-адреса доступных шлюзов по умолчанию, в сети их может быть несколько.
6Name Serverx4Перечисление доступных DNS серверов
12Host Name1+Символьное имя узла
23Default IP TTL1Позволяет задать TTL, которое обязан будет использовать клиент при отправке пакетов в сеть. При помощи этой опции можно ограничить доступ пользователям в сеть Интернет.
26Interface MTU2Если вам нужно чтобы все узлы использовали одинаковый MTU, то вот опция.
33Static IP Routex8Вы же помните, что когда-то сети были классовыми, изначально это поле было для выдачи маршрутов узлам в классовых сетях, поэтому для маски здесь место не нашлось. Сейчас, в эпоху VLSM и CIDR, при помощи этой опции можно выдавать узлам статические маршруты к удаленным сетям с маской /32.
35ARP Cache Timeout4У протокола ARP есть кэш, каждая операционная система хранит ARP кэш разное время, чтобы упорядочить этот хаос есть 35 опция DHCP, которая заставляет все узлы хранит ARP-записи одинаковое количество времени.
50Requested IP Address4Эту опцию использует клиент для того, чтобы сообщить серверу о том, какой IP-адрес он хочет получить.
55Parameter Request List1+При помощи этой опции DHCP-клиент сообщает серверу список опций, которые ему хочется получить.
61Client Identifier2+DHCP-сервер ведет сопоставление IP и MAC-адресов, он запоминает какому мак-адресу какой IP был назначен. Но вместо мак-адресов можно использовать идентификатор клиента.
66TFTP Server Name1+Название опции говорит само за себя.
82Я не знаю, как эта опция называется, а в RFC смотреть лень. Все инженеры вокруг меня просто говорят восемьдесят вторая опция.С этой опцией мы будем знакомиться отдельно, кратким описанием тут не отделаешься.
121Classless Route5+Этой опцией можно выдавать маршруты по умолчанию в бесклассовых сетях.
150TFTP Server IP Address4Тут тоже всё ясно из названия.
255End0Если опции в пакете есть, то эта опция является обязательной, она означает, что других опций уже не будет и это конец DHCP пакета.

9.1.7 Выводы

Это было знакомство с протоколом DHCP и его основными особенностями, вы, наверное, заметили, что вся самая важная информация в DHCP передается в виде опций, поле опции является довольно гибким инструментом для динамической конфигурации хостов.

Протокол DHCP (FAQ для системного администратора)

Эта статья поможет вам узнать все, что должен знать системный администратор об этом протоколе.

Что такое DHCP? И почему рекомендуется использовать его? Представьте, что вы работаете администратором в крупной компании с 500 настольными компьютерами, и вам на каждом необходимо установить IP адрес, маску подсети, шлюз по умолчанию, DNS сервера и другие сетевые настройки. Как можно это выполнить?

Если вы попытаетесь выполнить эту задачу вручную, вы потратите немало времени, проведя за каждым ПК по 5-10 минут, кроме того, вы можете, например, случайно ввести неправильный IP адрес на нескольких ПК, или же вообще одинаковый адрес на разных ПК.

Для того, чтобы решить эти проблемы, вы можете задействовать в вашей сети протокол Dynamic Host Configuration Protocol (DHCP).

DHCP позволяет управлять сетями IP-адресов и другими настройками TCP / IP, такими как DNS, шлюз по умолчанию и т.д. из одного места, это центральное место и называется DHCP-сервер. Помимо управления, если есть какие-либо проблемы, вам не нужно бежать по ПК Ваших клиентов, нужно просто подключить к серверу и проверить настройки DHCP, скорее всего, если наблюдается некая проблема, она может быть локализована на DHCP сервере, покопавшись в его настройках и логах.

DHCP сервер может легко и полностью автоматически предоставлять IP-адреса клиентам, поэтому вам не нужно настраивать и устанавливать какие-либо параметры на стороне клиента, все, что вам нужно, это настроить сервер DHCP, настроить параметры области (scope) и некоторые другие параметры протокола TCP / IP. Вы можете предоставить своим клиентам IP-адреса из выбранного вами диапазона IP-адресов.

Примечание: DHCP, по моему, можно назвать следующим поколением протокола BOOTP, потому что BOOTP  начал применятся ранее, чем DHCP, и сегодня мы используем BOOTP для загрузки по сети при развертывания операционных систем. Кроме этого, DHCP был разработан для работы в крупных сетях — то, чем BOOTP явно не может похвастаться.

Как работает DHCP?

Не вдаваясь в техническую информацию (процесс DORA), скажу,   клиент DHCP запрашивает у сервера DHCP на некоторое время IP адрес, время, на  которое клиент DHCP получил динамический IP адрес, называется временем  аренды (lease): аренда означает, что клиент арендовал IP-адрес у сервера DHCP на определенное время, и если клиент хочет продолжить использовать конкретного IP-адреса, ему необходимо продлить (renew) аренду.

Разберем этот процесс более подробно. Служба DHCP работает с использованием процесса DORA (Discover, Offer, Request and Acknowledgment —  его можно отследить с помощью утилиты Network Monitor):

1)     DHCPDISCOVER — клиент шлет широковещательный пакет DHCPDISCOVER, пытаясь найти сервер DHCP в сети, в случаях, когда сервер DHCP не нашелся в той же подсети, что и  клиент, нужно настраивать на сетевых устройствах (маршрутизаторах) DHCP Relay Agent, в целях передачи пакета DHCPDISCOVER на сервер DHCP.

2)     DHCPOFFER — сервер DHCP шлет широковещательный пакет DHCPOFFER для клиента, который включает предложение использовать уникальный IP адрес.

3)     DHCPREQUEST — клиент шлет широковещательный пакет DHCPREQUEST на сервер DHCP с ответом, и «просит» у сервера выдать в аренду предложенный уникальный адрес.

4)     DHCPACK — сервер DHCP шлет клиенту широковещательный пакет DHCPACK, в этот пакете сервером утверждается запрос клиента на использование IP-адреса, а также сообщаются и другие детали, такие, как сервера DNS, шлюз по умолчанию, и т.д. Если сервер не может предоставить запрашиваемый адрес или по каким-то причинам адрес недействителен, сервер посылает пакет  DHCPNACK.

Примечание: Служба DHCP использует порт 67/UDP на сервере DHCP, и 68/UDP на клиентах DHCP.

Рекомендуется проверить, что ваш брандмауэр не блокирует эти порты, а также убедитесь, что ваши сетевые устройства поддерживают DHCP Relay, в случаях, если некоторые из ваших клиентов находятся в  различных физических подсетях.

В некоторых случаях можно обнаружить еще некоторые типы DHCP-сообщений:

1)     DHCPDECLINE — Если клиент определяет, что IP-адрес, который предлагает ему сервер DHCP, уже используется, клиент сгенерирует новый запрос на другой адрес (в шаге DHCPREQUEST).

2)     DHCPRELEASE — Это сообщение обычно используется, когда клиент освобождает IP- адрес.

3)     DHCPRENEW — Это пакет с просьба обновить и продолжить аренду выданного адреса.

4)     DHCPINFORM — DHCPINFORM это пакет, который клиент посылает на сервер DHCP для того, чтобы получить более подробную информацию с сервера, например DHCPINFORM можно отправить в целях установления местонахождения другого DHCP сервера в сети.

DHCPNACK

DHCPNACK или пакет отрицательного ответа, его посылает сервер, если IP-адрес уже используется  другим клиентом, или адреса больше не действует.

В случае получения DHCPNACK, клиенту необходимо перезапустить процесс получения в аренду адреса.

Области DHCP, исключения и резервации

Область (scope) DHCP – это целый диапазон IP адресов, которые вы настроили на сервере DHCP,  в качестве диапазона адресов, предназначены для выдачи среди клиентов.

Например, если вы создадите область с диапазоном выдаваемых адресов 10.0.0.100-10.0.0.200, Вы можете легко обеспечить выдачу только этих адресов на Ваши рабочие станции.

Вы также можете создавать более одной области  на одном DHCP-сервере, но в этом случае рекомендуется проверить, что ваши области не пересекаются и  не дублируют друг друга. В процессе создания таких областей вы можете индивидуально настроить на клиентах параметры TCP / IP, такие как маска подсети, времени аренды, маршрутизатор (шлюз по умолчанию), DNS-сервера и т.д, поэтому получая свой адрес из той или иной области, клиенты получают также и другие параметры области.

В некоторых случаях, Вам будет необходимо предотвратить получение клиентами некоторых адресов, например, если ваша область DHCP имеет диапазон  от 10.0.0.1 до 10.0.0.100, а IP-адреса Ваших серверов находятся в диапазоне 10.0.0.1-10.0.0.10, Вам понадобится возможность  исключить эти IP адреса из области, которая выдается DHC-сервером. Такая возможность называется исключением (exclude).

Резервация(reservation) – используется в случаях, когда Вы планируете представить конкретный динамический IP-адрес определенному  клиенту DHCP. Например, в своей  области DHCP, вы хотите выделить для конкретного клиента уникальный адрес, который будет закреплен за ним, для этого Вы  можете легко создать для него резервацию, используя уникальный идентификатор — MAC-адрес (Media Access Control — представляет собой уникальный шестнадцатеричный физический адрес  сетевого адаптера).

Active Directory и сервер DHCP

Для корректной работы вашего Microsoft Windows DHCP – сервера в среде Active Directory, Вам необходимо сначала авторизовать свой DHCP – сервер в AD.

В том случае, если неавторизованный  сервер попытается запустить службу DHCP для выдачи IP-адресов, этот запуск завершится неудачей и служба DHCP на локальном компьютере будет остановлена.

DHCP Relay Agent

DHCP Relay Agent – это тип хоста (обычно маршрутизатор или сервер), которые принимает широковещательные трансляции DHCP / BOOTP от клиентов в подсетях, не имеющих  локальных серверов DHCP.

DHCP Relay Agent пересылает пакеты от клиентов и серверов DHCP, которые находятся в  различных физических подсетях, позволяя им работать по протоколу DHCP, т.е. выполняет функции посредника

В заключение

DHCP является одной из основополагающих служб в сети, т.к. помогает Вам, как системному администратору, централизованно управлять   Вашими клиентами, выдавая, отслеживая и повторно присваивая им IP-адреса.

что это такое и настройка (простыми словами)

Всем привет! Начнем, пожалуй, с вопроса – а что же такое DHCP, и для чего он нужен? Давайте разберем на конкретном примере. Почти у каждого дома есть Wi-Fi роутер (маршрутизатор), к которому можно подключить компьютер, телефон, планшет, телевизор, сетевой принтер или даже камеру видеонаблюдения. Подключить можно как по Wi-Fi, так и по сетевому кабелю.

В общем любое устройство, на котором есть специальный сетевой порт или Wi-Fi адаптер. К примеру, у нас есть общага, где студенты подключили три устройства к роутеру:

  • Ноутбук ботаника, который готовится к ГОСам.
  • Компьютер бородатого студента переростка, от которого пахнет пельменями и потным свитером.
  • Телефон блондинки, которой нужно готовиться к экзаменам, но она вчера ходила в ночной клуб и после бодуна лежит без задних ног.

Роутер также выполняет роль шлюза – ведь он подключен одновременно к сети провайдера (интернету) и создает вашу домашнюю (локальную) сеть. Чтобы получить доступ к интернету, каждое из этих устройств должно отправить запрос на роутер. В ответ роутер также должен отправить ответ. Но сам ответ должен прийти нужному адресату – и вот для этих целей используются IP адреса. Все как на почте, нет адреса – некуда отправлять пакет с информацией.

DHCP сервер автоматически назначает адреса всем подключенным устройствам:

  • Ноутбук (192.168.1.10)
  • Компьютер (192.168.1.11)
  • Телефон (192.168.1.12)

Если говорить простыми словами, то DHCP – это специальный протокол, который используется в сетях, позволяющий автоматически назначать IP адреса подключенным устройствам. В данном примере мы рассмотрели IPv4 DHCP адресацию. Но есть также и IPv6 адресация, которая используется немного реже.  Чуть ниже я немного шире раскрою это понятие, а также расскажу, где находится DHCP клиент и сервер в домашней среде.

Ищущим знаний и мудрости советую почитать дополнительные статьи про:

Виды IP и DHCP

Чаще всего DHCP на роутере выдает адреса на какое-то время, то есть когда данное время пройдет, адрес обновится на другой. При этом IP становится динамическим (как настройка самого сервера). В более редких случаях адреса выдаются на постоянной основе и существуют всегда – тогда такие IP называются постоянными или статическими.

Также администратор может прописать адрес вручную на самом устройстве: компьютере, ноутбуке или телефоне. Или прописать статический IP в самом роутере. Так часто делают в крупных организациях, чтобы уменьшить риск потери пакетов из-за резкой смены IP адресов.

Принцип действия

  1. Изначально компьютер (если там стоят настройки, чтобы получать от DHCP сервера конфигурацию адреса) отправляет запрос на получение адреса.
  2. Комп принимает и устанавливает IP, отправляет обратно запрос на то, что адрес установлен.
  3. Сервер записывает данный адрес в таблицу маршрутизации и отправляет обратный ответ, что адрес теперь точно его.
  4. Комп принимает ответ и подтверждает настройки IP адреса.

IP адресация

В сетевой адресации есть также такое понятие как «SCOPE», когда с помощью IP адресации разделяются сегменты сети. Например, в крупной компании можно разделить сеть на подсети:

  • Бухгалтерия (192.168.1.xxx).
  • Отдел кадров (192.168.2.xxx).
  • Отдел продаж (192.168.3.xxx).
  • Юристы (192.168.4.xxx).

Как видите третья цифра обычно и разделяет сети на «области действия». Сделано это с точки зрения безопасности, чтобы сотрудники имели доступ только к своему локальному сегменту.

Проблемы с интернетом и сетью

Как правило DHCP клиент автоматом установлен на компьютере, а DHCP сервер уже запущен на роутере. Но бывают случаи, когда данные настройки DHCP неправильно настроены или вообще выключены. Тогда возникают трудности с интернетом. Мы также рассмотрим именно домашнюю сеть и обычный Wi-Fi маршрутизатор. Так что если у вас наблюдаются такие проблемы или вылезает ошибка «DHCP не включен на сетевом адаптере», то нужно проверить настройки.

Настроить на Windows

  1. Нажимаем на клавиши «Win» и английскую «R» и прописываем команду: «ncpa.cpl».
  1. У вас должно быть несколько адаптеров – нужно выбрать именно тот, через который вы подключены к роутеру (по Wi-Fi или по кабелю). Нажимаем правой кнопкой и заходим в «Свойства».
  1. Один раз нажимаем на строку с четвертым протоколом и заходим в «Свойства».

 

  1. Если данный способ не помог, то давайте ещё проверим, чтобы была включена служба DHCP – нажимаем на клавиши «WIN+R» и прописываем: «services.msc».
  1. Находим в списке «DHCP-клиент», заходим в свойства и ставим тип запуска в «Автоматический» режим. Также проверьте «Состояние» (чуть ниже) – если служба выключена, нажмите на кнопку «Запустить». В самом конце применяем параметры.

Если проблема останется, то значит сервер отключены или не работает на роутере. Его можно попробовать перезагрузить, но лучше проверить конфигурацию в Web-интерфейсе (админка).

На роутерах

Напомню, что тут мы настраиваем именно сервер, то есть место, откуда будут высылаться настройки на конечные устройства. В первую очередь нужно зайти в настройки роутера – для этого прописываем его IP адрес в адресную строку браузера. Чаще всего используются адреса: 192.168.1.1 или 192.168.0.1. Если у вас есть сложности с этим , то смотрим эту инструкцию.

Вы также можете встретить такое понятие как «DHCP-relay» – это функция, которая позволяет вашему роутеру подключаться к другому и принимать настройки DHCP от него. То есть после этого адреса будет раздавать не ваш основной маршрутизатор, а другой сервер. Функция полезна при организации больших сетей из нескольких сетевых аппаратов.

ASUS

«Локальная сеть» – «DHCP-сервер» – проверьте, чтобы в строке «Включить…» стояло значение «Да». Ниже вы можете указать диапазон адресов и время аренды. В самом низу можно вручную назначить адреса для подключенных устройств.

D-Link

Новая прошивка

«Расширенные настройки» – «LAN».

Старая прошивка

«Сеть» – «LAN».

Первый IP – это адрес самого роутера. Режим – для включения переводим в состояние «Разрешить». Ниже можно указать диапазон и установить статические адреса.

TP-Link

Новая прошивка

«Дополнительные настройки» – «Сеть» – «LAN» – ставим галочку «Включить».

Старая прошивка

Переходим в нужную нам вкладку. В настройках – вы можете включить сервер и изменить диапазон адресов и время. В списке вы увидите все подключенные аппараты. В разделе «Резервирование адресов» можно установить статические IP.

ZyXEL Keenetic

Старая прошивка

Нажимаем на значок двух монитором и переходим в «Сегменты» – тут вы увидите подсети, которые созданы по умолчанию. Домашняя находится в «Home» – откройте её.

Тут можно установить интерфейсы, но, самое главное, чтобы в строке «Сервер» стояла галочка «Включен».

Новая прошивка

Заходим в раздел «Мои сети и Wi-Fi», выбираем сегмент (Home) и заходим туда. Все аналогично, как и в старой прошивке.

Netis

«Сеть» – «LAN» – включаем функцию.

Как работает DHCP на примерах

В этом руководстве подробно объясняется, что такое DHCP и как он работает. Изучите основные функции DHCP, преимущества и недостатки DHCP, а также методы распределения адресов DHCP.

Для каждого устройства в IP-сети требуется действующая IP-конфигурация. Если размер сети небольшой, администратор может вручную указать IP-конфигурацию для каждого устройства. Но если размер сети большой, назначение и управление конфигурацией IP на каждом устройстве может оказаться сложной задачей.

Например, предположим, что вы работаете администратором сети в компании, в сети которой более 2000 устройств. Компания купила новое подключение к Интернету и попросила вас настроить все устройства для использования нового подключения к Интернету.

В зависимости от того, как вы ранее настроили IP-конфигурацию на всех устройствах, эта задача может оказаться для вас легкой или сложной. Если вы ранее настраивали IP-адреса на этих устройствах вручную, теперь вам нужно вручную изменить конфигурацию каждого устройства.

Однако, если вы использовали DHCP, вам нужно изменить конфигурацию только на DHCP-сервере. Когда клиенты перезагружаются или обновляют свою IP-конфигурацию, они автоматически получают новую IP-конфигурацию от DHCP-сервера.

Что такое DHCP?

DHCP — это служба. Это позволяет устройствам динамически получать свою IP-конфигурацию. Он определен в RFC 2131 и 2939. Он работает в модели сервер / клиенты. Сервер предлагает и предоставляет конфигурацию IP.Клиенты запрашивают и получают конфигурацию IP.

Когда хосту (клиенту DHCP) требуется конфигурация IP, он подключается к серверу DHCP и запрашивает конфигурацию IP. DHCP-сервер содержит несколько предварительно настроенных IP-конфигураций. Сервер DHCP, получив запрос от клиента DHCP, предлагает конфигурацию IP из всех доступных конфигураций IP.

Весь этот процесс проходит в четыре этапа: обнаружение, предложение, запрос и подтверждение. На следующем изображении показаны эти шаги.

Давайте разберемся с этими шагами подробнее.

Обнаружение DHCP

Когда вы запускаете устройство, оно проверяет, доступна ли на устройстве допустимая IP-конфигурация. Если действительная IP-конфигурация недоступна, устройство генерирует специальное сообщение, известное как DHCPDISCOVER , и транслирует это сообщение в сегменте локальной сети.

Для передачи сообщений DHCPDISCOVER устройство использует 0.0.0.0 и 255.255.255.255 как адрес источника и адрес назначения соответственно.

0.0.0.0 и 255.255.255.255 — два специальных адреса. Любое устройство, независимо от того, имеет ли оно действительную IP-конфигурацию или нет, может использовать эти адреса для отправки локальных широковещательных сообщений.

Из этих адресов 0.0.0.0 используется как исходный адрес. Если у устройства нет адреса источника, оно может использовать этот адрес для отправки широковещательных сообщений. 255.255.255.255 — это локальный широковещательный адрес. Любое сообщение, отправленное на этот адрес, принимается всеми узлами локальной сети.

Предложение DHCP

Поскольку клиент отправляет сообщение DHCPDISCOVER на локальный широковещательный адрес, если сервер DHCP настроен в локальной сети, он также получит сообщение. Если в локальной сети настроено несколько DHCP-серверов, все они получат сообщение DHCPDISCOVER .

Если доступно несколько серверов DHCP, в зависимости от их конфигурации, один или все они могут ответить на сообщение DHCPDISCOVER .В ответ на сообщение DHCPDISCOVER сервер DHCP отправляет клиенту сообщение DHCPOFFER .

Так как у клиента нет IP-адреса, DHCP-сервер не может отправить сообщение DHCPOFFER напрямую клиенту. Из-за этого сервер устанавливает адрес назначения 255.255.255.255. Другими словами, сервер также передает сообщение DHCPOFFER в локальную сеть.

Сообщение DHCPOFFER включает следующую важную информацию: IP-адрес клиента, маску подсети сегмента, IP-адрес шлюза по умолчанию, имя домена DNS, адрес или адреса DNS-сервера и адрес или адреса TFTP-сервера.

Помимо этого, сообщение DHCPOFFER также содержит другую информацию, зависящую от протокола, такую ​​как продолжительность аренды и идентификатор клиента. Эта информация требуется для основных функций DHCP.

DHCP-запрос

Все хосты в локальной сети получают сообщение DHCPOFFER . Хост, отправивший сообщение DHCPDISCOVER , принимает сообщение DHCPOFFER . За исключением исходного хоста, все остальные хосты игнорируют DHCPOFFER .

Как хост узнает, предназначено ли широковещательное сообщение DHCPOFFER для него или нет?

Сообщение DHCPDISCOVER содержит MAC-адрес хоста. Когда DHCP-сервер передает сообщение DHCPOFFER , он также включает MAC-адрес хоста в параметр, известный как идентификатор клиента. Когда хосты получают сообщение DHCPOFFER , они проверяют поле идентификатора клиента в сообщении. Если хост видит свой MAC-адрес в поле идентификатора клиента, он знает, что сообщение предназначено для него.Если хост видит MAC-адрес другого хоста в поле идентификатора клиента, он знает, что сообщение не предназначено для него.

В зависимости от количества DHCP-серверов хост может получать несколько сообщений DHCPOFFER . Если хост получает несколько сообщений DHCPOFFER , он принимает только одно сообщение и сообщает соответствующему серверу сообщением DHCPREQUEST , что он хочет использовать предложенную конфигурацию IP.

Если доступен только один DHCP-сервер и предоставленная IP-конфигурация конфликтует с конфигурацией клиента, клиент может ответить сообщением DHCPDECLINE .В этой ситуации DHCP-сервер предлагает другую конфигурацию IP.

Когда серверы DHCP получают сообщение DHCPREQUEST , кроме сервера, предложение которого было принято, все другие серверы отменяют любые предложения, которые они могли сделать клиенту, и возвращают предложенный адрес в пул доступных адресов.

Сообщение DHCPREQUEST содержит поле идентификатора транзакции. Точно так же, как хосты используют поле идентификатора клиента сообщения DHCPOFFER , чтобы узнать, предназначено ли сообщение для них или нет, серверы DHCP используют поле идентификатора транзакции сообщения DHCPREQUEST , чтобы узнать, было ли принято их предложение или нет.

Подтверждение DHCP

Когда DHCP-сервер получает сообщение DHCPREQUEST от клиента, процесс настройки переходит в завершающую стадию. На этом этапе сервер отправляет клиенту сообщение DHCPACK.

Сообщение DHCPACK является подтверждением для клиента, указывающим, что сервер DHCP получил сообщение DHCPREQUEST от клиента, и клиент может использовать предложенную конфигурацию IP.

В некоторых случаях сервер может также ответить сообщением DHCPNACK .Сообщение DHCPNACK сообщает клиенту, что предложение больше недействительно и клиенту необходимо снова запросить конфигурацию IP. Обычно это происходит, когда клиенту требуется слишком много времени, чтобы ответить сообщением DHCPREQUEST после получения сообщения DHCOFFER от сервера. В таком случае клиент может сделать новый запрос для другой конфигурации IP.

На следующем изображении показаны вышеуказанные шаги.

В следующей таблице перечислены сообщения, которые используются на каждом этапе.

Discover DHCP-клиент рассылает это сообщение, чтобы найти DHCP-сервер.
Предложение DHCP-сервер передает это сообщение, чтобы арендовать IP-конфигурацию для DHCP-клиента.
Запрос DHCP-клиент использует это сообщение, чтобы уведомить DHCP-сервер, принимает он предлагаемую конфигурацию IP или нет.
Подтверждение Сервер DHCP использует это сообщение, чтобы подтвердить клиенту DHCP, что он может использовать предложенную конфигурацию IP.

Самый простой способ запомнить эти сообщения в правильном порядке — вспомнить популярное детское шоу «Дора-исследователь» .

Каждая буква написания DORA соответствует первой букве каждого шага: D (обнаружение), O (предложение), R (запрос) и A (подтверждение). Подобно тому, как DORA обнаруживает что-то новое в своем шоу, DHCP-клиент обнаруживает в процессе новую конфигурацию IP.

Методы распределения адресов DHCP

Для обеспечения конфигурации IP DHCP-сервер может использовать три механизма. Эти механизмы следующие.

Статическое размещение

В этом методе администратор настраивает таблицу распределения на DHCP-сервере. В этой таблице администратор заполняет MAC-адреса всех клиентов и назначает IP-конфигурацию каждому клиенту.

Сервер DHCP использует таблицу распределения для предоставления конфигурации IP.Когда клиент запрашивает конфигурацию IP, DHCP-сервер проверяет таблицу и находит соответствие. Если DHCP-сервер находит совпадение, DHCP-сервер предлагает IP-конфигурацию, связанную с MAC-адресом клиента в совпадении.

Динамическое размещение

В этом методе администратор настраивает диапазон IP-адресов на DHCP-сервере. Сервер DHCP назначает IP-конфигурацию из настроенного диапазона каждому клиенту, который запрашивает IP-конфигурацию.

В этом методе DHCP предлагает конфигурацию IP только на определенное время.Это конкретное время известно как аренда. Конфигурация IP остается действительной до истечения срока аренды. По истечении срока аренды клиенту необходимо получить новую IP-конфигурацию с сервера.

Автоматическое присвоение

Аналогично динамическому методу, в этом методе администратор также настраивает диапазон IP-адресов на DHCP-сервере, а DHCP-сервер назначает IP-конфигурацию из настроенного диапазона каждому клиенту, который запрашивает IP-конфигурацию.

В отличие от динамического метода, в этом методе DHCP-сервер назначает IP-конфигурацию постоянно. Чтобы назначить IP-конфигурацию на постоянной основе, DHCP-сервер устанавливает неограниченный срок аренды. В результате, как только DHCP-сервер выбирает IP-конфигурацию из пула и назначает IP-конфигурацию клиенту, IP-конфигурация остается у того же клиента на неопределенный срок.

Вот и все для этого урока. В следующей части этого руководства мы подробно разберемся с настройками конфигурации DHCP-сервера.Если вам понравился этот урок, не забудьте поделиться им с друзьями.

.

Что такое DHCP и как работает DHCP? (Объяснение основ DHCP)

Компьютерные сети могут иметь любую форму, например LAN, WAN и т. Д. Если вы подключены к локальной LAN или Интернет-соединению, IP-адреса формируют основу для связи в компьютерных сетях. IP-адрес — это идентификатор хоста или компьютерного устройства, подключенного к любой сети.

В большинстве случаев, когда вы подключаете свой компьютер к локальной сети или Интернету, вы заметите, что IP-адрес и другая информация, такая как маска подсети и т. Д., Назначаются вашему компьютеру автоматически.Вы когда-нибудь задумывались, как это происходит? Что ж, в этой статье мы поймем концепцию DHCP, которая лежит в основе этой функциональности.

Что такое DHCP?

DHCP означает протокол динамической конфигурации хоста.

Как следует из названия, DHCP используется для управления сетевой конфигурацией хоста через удаленный сервер. Функциональность DHCP устанавливается по умолчанию в большинстве современных операционных систем. DHCP — отличная альтернатива трудоемкой ручной настройке сетевых параметров на хосте или сетевом устройстве.

DHCP работает по модели клиент-сервер. Будучи протоколом, он имеет собственный набор сообщений, которыми обмениваются клиент и сервер. Вот информация заголовка DHCP:

ПОЛЕ ОКТЕТОВ ОПИСАНИЕ
op 1 Тип сообщения
h тип 1 тип аппаратного адреса
хлен 1 длина аппаратного адреса
хмель 1 используется в случае агентов ретрансляции.Клиенты устанавливают их на 0.
xid 4 Идентификатор транзакции, используемый клиентом и сервером для сеанса.
секунд 2 Время (в секундах), прошедшее с момента запроса клиентом процесса
флаги 2 Флаги
ciaddr 4 IP-адрес клиента.
год 4 IP-адрес, назначенный сервером клиенту
siaddr 4 IP-адрес сервера.
giaddr 4 IP-адрес агента ретрансляции.
чадр 16 Аппаратный адрес клиента.
змея 64 Имя хоста сервера.
файл 128 Имя загрузочного файла.
варианты var Дополнительные опции

Понимание DHCP помогает в отладке многих сетевых проблем.Прочтите наши статьи о wirehark и «Путешествие пакета по сети», чтобы улучшить свое понимание сетевых и сетевых инструментов отладки.

В следующем разделе мы рассмотрим работу этого протокола.

Как работает DHCP?

Прежде чем изучать процесс, посредством которого DHCP достигает своей цели, мы сначала должны понять различные сообщения, которые используются в этом процессе.

1. DHCPDISCOVER

Это сообщение DHCP, которое отмечает начало взаимодействия DHCP между клиентом и сервером.Это сообщение отправляется клиентом (хостом или устройством, подключенным к сети), который подключен к локальной подсети. Это широковещательное сообщение, в котором в качестве IP-адреса назначения используется 255.255.255.255, а в качестве IP-адреса источника — 0.0.0.0

.

2. DHCPOFFER

Это сообщение DHCP, которое в ответ на DHCPDISCOVER отправляется сервером DHCP клиенту DHCP. Это сообщение содержит параметры конфигурации сети для клиента, отправившего сообщение DHCPDISCOVER.

3. DHCPREQUEST

Это сообщение DHCP отправляется в ответ на DHCPOFFER, указывая, что клиент принял конфигурацию сети, отправленную в сообщении DHCPOFFER от сервера.

4. DHCPACK

Это сообщение отправляется сервером DHCP в ответ на запрос DHCPREQUEST, полученный от клиента. Это сообщение отмечает конец процесса, начатого с DHCPDISCOVER. Сообщение DHCPACK является не чем иным, как подтверждением DHCP-сервером, который разрешает DHCP-клиенту начать использовать конфигурацию сети, полученную от DHCP-сервера ранее.

5. DHCPNAK

Это сообщение является полной противоположностью описанному выше DHCPACK. Это сообщение отправляется DHCP-сервером, когда он не может удовлетворить сообщение DHCPREQUEST от клиента.

6. DHCPDECLINE

Это сообщение отправляется от DHCP-клиента на сервер в случае, если клиент обнаруживает, что IP-адрес, назначенный DHCP-сервером, уже используется.

7. DHCPINFORM

Это сообщение отправляется DHCP-клиентом в случае, если IP-адрес статически настроен на клиенте и только другие сетевые параметры или конфигурации желательно получать динамически с DHCP-сервера.

8. DHCPRELEASE

Это сообщение отправляется DHCP-клиентом в случае, если он хочет прекратить аренду сетевого адреса, предоставленного DHCP-сервером.

Теперь, когда мы знаем о различных сообщениях DHCP, пришло время пройти весь процесс DHCP, чтобы лучше понять, как работает DHCP. Обратите внимание, что в приведенных ниже шагах предполагается, что функция DHCP включена по умолчанию на стороне клиента.

Вот шаги:

  • Шаг 1: Когда клиентский компьютер (или устройство) загружается или подключается к сети, от клиента на сервер отправляется сообщение DHCPDISCOVER. Поскольку на клиенте нет информации о конфигурации сети, сообщение отправляется с 0.0.0.0 в качестве адреса источника и 255.255.255.255 в качестве адреса назначения. Если DHCP-сервер находится в локальной подсети, он получает сообщение напрямую, а если он находится в другой подсети, то для передачи запроса на DHCP-сервер используется агент ретрансляции, подключенный к подсети клиента. Транспортный протокол, используемый для этого сообщения, — UDP, а номер используемого порта — 67. На этом этапе клиент переходит на этап инициализации.
  • Шаг 2: Когда сервер DHCP получает сообщение запроса DHCPDISCOVER, он отвечает сообщением DHCPOFFER.Как уже объяснялось, это сообщение содержит все параметры конфигурации сети, необходимые клиенту. Например, поле yaddr сообщения будет содержать IP-адрес, который будет назначен клиенту. Аналогичным образом маска подсети и информация о шлюзе заполняются в поле опций. Кроме того, сервер вводит MAC-адрес клиента в поле chaddr. Это сообщение отправляется как широковещательное (255.255.255.255) сообщение для клиента, чтобы получить его напрямую, или, если DHCP-сервер находится в другой подсети, это сообщение отправляется агенту ретрансляции, который заботится о том, должно ли сообщение быть передано как одноадресное. или транслировать.В этом случае также используется протокол UDP на транспортном уровне с портом назначения 68. Клиент переходит на этап выбора на этом этапе
  • Шаг 3: Клиент формирует сообщение DHCPREQUEST в ответ на сообщение DHCPOFFER и отправляет его на сервер, указывая, что он хочет принять конфигурацию сети, отправленную в сообщении DHCPOFFER. Если несколько DHCP-серверов получили DHCPDISCOVER, то клиент может получить несколько сообщений DHCPOFFER. Но клиент отвечает только на одно из сообщений, заполняя поле идентификации сервера IP-адресом конкретного DHCP-сервера.Все сообщения от других DHCP-серверов неявно отклоняются. Сообщение DHCPREQUEST по-прежнему будет содержать адрес источника как 0.0.0.0, поскольку клиенту по-прежнему не разрешено использовать IP-адрес, переданный ему через сообщение DHCPOFFER. На этом этапе клиент переходит на этап запроса.
  • Шаг 4: После получения сервером DHCPREQUEST от клиента он отправляет сообщение DHCPACK, указывающее, что теперь клиенту разрешено использовать назначенный ему IP-адрес. На этом этапе клиент переходит в связанное состояние.

Концепция аренды

Имея всю необходимую информацию о том, как работает DHCP, следует также знать, что IP-адрес, назначенный DHCP-сервером DHCP-клиенту, взят в аренду. По истечении срока аренды DHCP-сервер может назначить тот же IP-адрес любому другому хосту или устройству, запрашивающему его. Например, срок аренды 8–10 часов будет полезен в случае, если ПК отключаются в конце рабочего дня. Так что время от времени необходимо продлевать договор аренды. DHCP-клиент пытается продлить аренду по истечении половины срока аренды.Это делается путем обмена сообщениями DHCPREQUEST и DHCPACK. При этом клиент переходит на этап обновления.

Если вам понравилась эта статья, возможно, вам понравится ..

.

ISC DHCP 4.1 Страницы руководства

ИМЕНИ
ОПИСАНИЯ
ПРИМЕРОВ
пулов адресов
динамического адрес РАСПРЕДЕЛЕНИЕ
IP-ПРЕДОТВРАЩЕНИЕ АДРЕСА КОНФЛИКТ
DHCP FAILOVER
FAILOVER ЗАПУСК
НАСТРОЙКИ FAILOVER
КЛИЕНТА причислять
подклассов
НА-КЛАСС ОГРАНИЧЕНИЯ динамического адреса АССИГНОВАНИЯ
нерестовых КЛАССЫ
КОМБИНИРОВАНИЯ матча, матч ЕСЛИ И ИСПОЛЬЗУЕТСЯ С
ДИНАМИЧЕСКИМИ ОБНОВЛЕНИЯМИ DNS
СХЕМА ОБНОВЛЕНИЯ AD-HOC DNS
ВРЕМЕННАЯ СХЕМА ОБНОВЛЕНИЯ DNS
БЕЗОПАСНОСТЬ ДИНАМИЧЕСКОГО ОБНОВЛЕНИЯ DNS
ССЫЛКА: СОБЫТИЯ
ССЫЛКА: ЗАЯВЛЕНИЕ
И РАЗРЕШЕНИЕ НА
И РАЗРЕШЕНИЕ ДОПУСКА
И РАЗРЕШЕНИЕ НА
ОТКАЗАТЬ В ДЕКЛАРАЦИЯХ БАССЕЙНА
ССЫЛКА: ПАРАМЕТРЫ
НАСТРОЙКА ЗНАЧЕНИЙ ПАРАМЕТРА С ИСПОЛЬЗОВАНИЕМ ВЫРАЖЕНИЙ
ЗАБРОНИРОВАННАЯ АРЕНДА
ССЫЛКА: ОПЦИОНАЛЬНЫЕ ЗАЯВЛЕНИЯ
ССЫЛКА: ВЫРАЖЕНИЯ
СМОТРИ ТАКЖЕ
АВТОРА

НАЗВАНИЕ

dhcpd.conf —
файл конфигурации dhcpd

ОПИСАНИЕ

Файл dhcpd.conf
файл содержит информацию о конфигурации для dhcpd,
DHCP-сервер Консорциума Интернет-систем.

Файл dhcpd.conf
Файл представляет собой текстовый файл в формате ASCII произвольной формы. Он разбирается
Парсер рекурсивного спуска, встроенный в dhcpd. Файл может
содержат дополнительные вкладки и новые строки для форматирования.
Ключевые слова в файле нечувствительны к регистру. Комментарии могут быть
помещается в любом месте файла (кроме кавычек).Комментарии начинаются с символа # и заканчиваются в конце
линия.

Файл
по сути состоит из списка утверждений. Заявления
делятся на две большие категории — параметры и
декларации.

Параметр
утверждения либо говорят, как что-то делать (например, как долго
аренды для предложения), делать ли что-либо (например, следует ли dhcpd
предоставлять адреса неизвестным клиентам) или какие параметры
предоставить клиенту (например, использовать шлюз 220.177.244.7).

Объявления
используются для описания топологии сети, чтобы
описывать клиентов в сети, чтобы предоставить адреса, которые
могут быть назначены клиентам, или применить группу
параметры к группе объявлений.В любой группе
параметры и объявления, все параметры должны быть
указаны перед любыми декларациями, которые зависят от этих
параметры могут быть указаны.

Объявления
о топологии сети включают совместно используемую сеть и
объявления подсети . Если клиенты в подсети
для динамического присвоения адресов, диапазон
объявление должно появиться в подсети
декларация. Для клиентов со статически назначенными адресами,
или для установок, где будут использоваться только известные клиенты
обслуживается, у каждого такого клиента должен быть хост
декларация.Если параметры должны применяться к группе
объявления, которые не связаны строго по подсети
может использоваться декларация группа .

За каждые
подсеть, которая будет обслуживаться, и для каждой подсети, к которой
сервер dhcp подключен, должен быть один
декларация подсети , которая сообщает dhcpd, как
распознают, что адрес находится в этой подсети. Подсеть
декларация требуется для каждой подсети, даже если нет адресов
будет динамически размещаться в этой подсети.

Некоторые
установки имеют физические сети, в которых более одного
Подсеть IP работает. Например, если на сайте
требование использования 8-битных масок подсети, но
отдел с единой физической сетью Ethernet расширяется
до точки, где у него более 254 узлов, это может быть
необходимо для запуска двух 8-битных подсетей в одной сети Ethernet
до тех пор, пока не будет добавлена ​​новая физическая сеть. В
в этом случае объявления подсети для этих двух
сети должны быть заключены в общую сеть
декларация.

Обратите внимание, что даже
когда отсутствует объявление общей сети ,
пустой создается сервером, чтобы содержать
подсеть (и любые заданные параметры, включенные в
подсеть ). Для практических целей это означает, что
DHCP-клиенты без сохранения состояния, которые не привязаны к
адреса (и, следовательно, подсети) получат одинаковые
конфигурация с сохранением состояния.

Некоторые сайты могут
иметь отделы, у которых есть клиенты в более чем одной подсети,
но может быть желательно предложить этим клиентам единый набор
параметров, которые отличаются от предлагаемых
клиентам из других отделов той же подсети.За
клиенты, которые будут явно объявлены с хостом
объявления, эти объявления могут быть заключены в
группа декларация вместе с параметрами, которые
общий для этого отдела. Для клиентов, адреса которых будут
назначаться динамически, объявления классов и условные
объявления могут использоваться для группировки назначений параметров
на основе информации, которую отправляет клиент.

Когда клиент
должен быть загружен, его параметры загрузки определяются
консультации с декларацией хоста этого клиента (если
любой), а затем обращайтесь к любым объявлениям класса
соответствие клиента, за которым следует пул ,
подсеть и объявления общей сети для
IP-адрес, присвоенный клиенту.Каждый из них
сами объявления появляются в лексической области видимости, и все
объявления в менее конкретных лексических областях также
консультировались по вопросам объявления опций клиента. Объемы никогда не бывают
считается дважды, и если параметры объявлены в более
чем одна область, параметр, объявленный в наиболее конкретном
scope — это тот, который используется.

Когда dhcpd
пытается найти объявление host для клиента, он
сначала ищет объявление host , которое имеет
фиксированный адрес декларация, в которой указан IP-адрес
это действительно для подсети или общей сети, в которой
клиент загружается.Если такой записи нет,
он пытается найти запись, у которой нет фиксированного адреса
декларация.

ПРИМЕРЫ

А типичный
Файл dhcpd.conf будет выглядеть примерно так:

по всему миру
параметры …

подсеть
204.254.239.0 сетевая маска 255.255.255.224 {
параметры подсети …

диапазон 204.254.239.10 204.254.239.30;
}

подсеть
204.254.239.32 netmask 255.255.255.224 {
параметры подсети…

диапазон 204.254.239.42 204.254.239.62;
}

подсеть
204.254.239.64 сетевая маска 255.255.255.224 {
параметры подсети …

диапазон 204.254.239.74 204.254.239.94;
}

Группа

{
параметры группы …

параметры хоста zappo.test.isc.org {
параметры конкретного хоста …

}
хост beppo.test.isc.org {
специфичный хост параметры …

}
host harpo.test.isc.org {
параметры хоста …

}
}

Рисунок
1

Обратите внимание, что на
начало файла, есть место для глобальных
параметры. Это могут быть такие вещи, как
доменное имя организации, адреса имени
серверы (если они общие для всей организации) и
скоро. Так, например:

вариант доменного имени «isc.org»;

вариант серверы доменных имен ns1.isc.org,
ns2.isc.org;

Рисунок
2

Как видно на
На рисунке 2 вы можете указать адреса хостов в параметрах, используя
их доменные имена, а не числовые IP-адреса.
Если данное имя хоста разрешается более чем на один IP-адрес
(например, если этот хост имеет два интерфейса Ethernet),
затем, где это возможно, оба адреса передаются в
клиент.

Самое очевидное
причина наличия специфичных для подсети параметров, как показано в
На рисунке 1 показано, что каждая подсеть по необходимости имеет свою собственную
роутер.Так, например, для первой подсети должно быть
быть примерно так:

дополнительные маршрутизаторы 204.254.239.1;

Обратите внимание, что
адрес здесь указывается численно. Это не обязательно
— если у вас разные доменные имена для каждого интерфейса на
ваш маршрутизатор, совершенно законно использовать
доменное имя для этого интерфейса вместо числового
адрес. Однако во многих случаях может быть только один домен
имя для всех IP-адресов маршрутизатора, и это
не уместно использовать здесь это имя.

на рисунке 1
есть также оператор группы , который обеспечивает
общие параметры для набора из трех хостов — zappo, beppo
и гарпо. Как видите, все эти хосты находятся в
test.isc.org, поэтому он может иметь смысл для
специфичный для группы параметр для переопределения доменного имени
поставлено на эти хосты:

вариант доменного имени
«test.isc.org»;

Также, учитывая
домена, в котором они находятся, вероятно, это тестовые машины.Если бы мы хотели протестировать механизм аренды DHCP, мы могли бы
установите время ожидания аренды несколько короче, чем значение по умолчанию:

max-lease-time 120;

время аренды по умолчанию 120;

У вас может быть
заметил, что хотя некоторые параметры начинаются с
опция ключевое слово, некоторые нет. Параметры, начинающиеся с
опция ключевое слово соответствует фактическим опциям DHCP,
а параметры, которые не начинаются с ключевого слова option
либо управлять поведением DHCP-сервера (например,г., как
долгую аренду dhcpd выдаст), либо указать клиента
параметры, которые не являются необязательными в протоколе DHCP (для
например, имя сервера и имя файла).

На Рисунке 1,
каждый хост имел специфичный для хоста параметр . Эти могли
включить такие вещи, как hostname option, name
файла для загрузки (параметр filename ) и
адрес сервера, с которого нужно загрузить файл (
параметр следующего сервера ). В общем, любой параметр может
появляются везде, где разрешены параметры, и будут
применяется в соответствии с областью, в которой параметр
появляется.

Представьте себе, что
у вас есть сайт с множеством X-терминалов NCD. Эти
терминалы бывают разных моделей, и вы хотите
укажите загрузочные файлы для каждой модели. Один из способов сделать это
будет иметь объявления хоста для каждого сервера и группы
их по модели:

группа {
имя файла «Xncd19r»;
ncd-booter следующего сервера;

host ncd1 {
аппаратный Ethernet 0: c0: c3: 49: 2b: 57; }
host ncd4 {аппаратный Ethernet 0: c0: c3: 80: fc: 32; }
хост ncd8 {аппаратный Ethernet 0: c0: c3: 22: 46: 81; }
}

группа {
имя файла «Xncd19c»;
ncd-booter следующего сервера;

host ncd2 {
аппаратный Ethernet 0: c0: c3: 88: 2d: 81; }
host ncd3 {аппаратный Ethernet 0: c0: c3: 00: 14: 11; }
}

группа {
имя файла «XncdHMX»;
ncd-booter следующего сервера;

host ncd1 {
аппаратный Ethernet 0: c0: c3: 11: 90: 23; }
host ncd4 {аппаратный Ethernet 0: c0: c3: 91: a7: 8; }
хост ncd8 {аппаратный Ethernet 0: c0: c3: cc: a: 8f; }
}

АДРЕСНЫЕ БАССЕЙНЫ

Бассейн
объявление может использоваться для указания пула адресов, которые
будет обрабатываться иначе, чем другой пул адресов,
даже в том же сегменте сети или подсети.Например, вы
может захотеть предоставить большой набор адресов, которые можно
назначается DHCP-клиентам, зарегистрированным в вашем DHCP
сервер, предоставляя меньший набор адресов, возможно
с короткими сроками аренды, которые доступны для неизвестных
клиентов. Если у вас есть брандмауэр, вы можете организовать
для адресов из одного пула разрешить доступ к
Интернет, а адреса в другом пуле — нет, поэтому
поощрение пользователей к регистрации своих DHCP-клиентов. Сделать
это, вы должны настроить пару объявлений пула:

подсеть 10.0,0.0
сетевая маска 255.255.255.0 {
дополнительных маршрутизаторов 10.0.0.254;

# Неизвестно
клиенты получают этот пул.
пул {
option domain-name-servers bogus.example.com;
max-lease-time 300;
диапазон 10.0.0.200 10.0.0.253;
разрешить неизвестных клиентов;
}

# Известные клиенты
получить этот бассейн.
пул {
option domain-name-servers ns1.example.com, ns2.example.com;

max-lease-time 28800;
диапазон 10.0.0.5 10.0.0.199;
отказать неизвестным клиентам;
}
}

Это также
можно настроить совершенно разные подсети для известных и
неизвестные клиенты — пулы адресов существуют на уровне общих
сетей, поэтому диапазоны адресов в объявлениях пула могут быть
в разных подсетях.

Как видите
в предыдущем примере пулы могут иметь списки разрешений, которые
контролировать, каким клиентам разрешен доступ к пулу и
которых нет. Каждая запись в списке разрешений пула
вводится с ключевым словом allow или deny .
Если у пула есть список разрешений, то только те клиенты, которые
совпадение определенных записей в списке разрешений будет иметь право
получить адреса из пула. Если у пула есть отказ
list, то только те клиенты, которые не соответствуют ни одной записи
в списке отказа будут иметь право.Если и разрешить, и отрицать
списки существуют для пула, тогда только клиенты, соответствующие
список разрешений и не соответствует списку запретов будет разрешено
доступ.

РАСПРЕДЕЛЕНИЕ ДИНАМИЧЕСКИХ АДРЕСОВ

Адрес
распределение фактически осуществляется только тогда, когда клиент находится в
Состояние INIT и отправлено сообщение DHCPDISCOVER. Если
клиент думает, что у него действующая аренда, и отправляет DHCPREQUEST
для инициирования или возобновления аренды у сервера есть только три
choices — он может игнорировать DHCPREQUEST, отправлять DHCPNAK на
сообщить клиенту, что он должен прекратить использовать адрес, или отправить
DHCPACK, говоря клиенту, чтобы он продолжал использовать адрес
какое-то время.

Если сервер
находит адрес, который запрашивает клиент, и этот адрес
доступен клиенту, сервер отправит DHCPACK.
Если адрес больше не доступен, или клиент
не разрешено иметь его, сервер отправит
DHCPNAK. Если сервер ничего не знает об адресе, он
будет хранить молчание, если адрес неверен для
сегмент сети, к которому подключен клиент, и
сервер является полномочным для этого сегмента сети, в
в этом случае сервер отправит DHCPNAK, даже если он
не знает адрес.

Может быть
объявление хоста, соответствующее идентификатору клиента.
Если это объявление хоста содержит фиксированный адрес
объявление, в котором указан IP-адрес, действительный для
сегмент сети, к которому подключен клиент, DHCP
сервер никогда не будет выполнять динамическое распределение адресов. В этом
случай, клиент требуется , чтобы взять адрес
указанный в объявлении хоста. Если клиент отправляет
DHCPREQUEST для другого адреса, сервер ответит
с DHCPNAK.

Когда DHCP
сервер выделяет новый адрес для клиента (помните, что это
происходит только в том случае, если клиент отправил DHCPDISCOVER),
сначала проверяет, есть ли у клиента действующий договор аренды
на IP-адресе, или если есть старый IP-адрес,
клиент был до этого еще не переназначен. В
в этом случае сервер возьмет этот адрес и проверит его на
посмотрите, разрешено ли еще клиенту его использовать. Если
клиенту больше не разрешено использовать его, аренда освобождена
если сервер думал, что он все еще используется — тот факт, что
клиент отправил DHCPDISCOVER доказывает серверу, что
клиент больше не использует аренду.

Если не существует
договор аренды найден, или если клиенту запрещено получать
существующей аренды, то сервер будет искать в списке
пулы адресов для сегмента сети, к которому подключен клиент
прилагается для аренды, которая не используется, и что клиент
разрешено иметь. Он просматривает каждое объявление пула
последовательно (все диапазон объявлений, которые появляются
объявления вне пула сгруппированы в один пул
без разрешительного списка). Если список разрешений для пула позволяет
клиенту будет назначен адрес из этого пула,
пул проверяется на наличие доступного адреса.Если
Итак, клиенту предварительно назначается этот адрес.
В противном случае тестируется следующий пул. Если нет адресов
найдено, что может быть назначено клиенту, ответа нет
отправлено клиенту.

Если адрес
обнаружено, что клиенту разрешено иметь, и это
никогда ранее не назначался ни одному клиенту, адрес
сразу выделяется клиенту. Если адрес
доступен для распределения, но ранее был назначен
другой клиент, сервер будет продолжать поиски в надежде
найти адрес, который никогда раньше не был назначен
клиент.

DHCP-сервер
генерирует список доступных IP-адресов из хеша
Таблица. Это означает, что адреса не сортируются ни в одном
конкретный порядок, и поэтому невозможно предсказать
порядок, в котором DHCP-сервер будет выделять IP-адреса.
Пользователи предыдущих версий DHCP-сервера ISC могут иметь
привыкнуть к DHCP-серверу, назначающему IP-адреса
в порядке возрастания, но это больше невозможно, и
нет возможности настроить это поведение с версией 3
DHCP-сервер ISC.

ПРЕДОТВРАЩЕНИЕ КОНФЛИКТОВ IP-АДРЕСОВ

DHCP-сервер
проверяет IP-адреса, чтобы узнать, использовались ли они раньше
распределяя их клиентам. Он делает это, отправляя ICMP
Сообщение эхо-запроса на назначаемый IP-адрес. Если
ответ ICMP Echo не получен в течение секунды, адрес
считается бесплатным. Это делается только для договоров аренды,
были указаны в операторах диапазона, и только когда
аренда рассматривается DHCP-сервером как бесплатная, т.е.
DHCP-сервер или его отказоустойчивый одноранговый узел не указали аренду как
в использовании.

Если ответ
получен на запрос ICMP Echo, DHCP-сервер предполагает
что есть ошибка конфигурации — IP-адрес находится в
использование каким-либо хостом в сети, который не является клиентом DHCP.
Он помечает адрес как заброшенный и не назначает его
клиентов. + Договор аренды будет аннулирован минимум на
время отказа от аренды в секундах.

Если DHCP
клиент пытается получить IP-адрес, но он недоступен,
но есть заброшенные IP-адреса, то DHCP-сервер
попытается вернуть заброшенный IP-адрес.Это отмечает
один IP-адрес как свободный, а затем выполняет то же ICMP Echo
запрос проверки описан ранее. Если нет ответа на
запрос ICMP Echo, адрес назначается
клиент.

DHCP-сервер
не перебирает заброшенные IP-адреса, если первый
IP-адрес, который он пытается вернуть, является бесплатным. Скорее, когда
следующий DHCPDISCOVER приходит от клиента, он попытается
новое распределение с использованием того же метода, описанного здесь, и
обычно пробует новый IP-адрес.

ОТКАЗ DHCP

Эта версия
DHCP-сервер ISC поддерживает протокол аварийного переключения DHCP как
задокументировано в draft-ietf-dhc-failover-12.текст. Это не
итоговый протокольный документ, и мы не сделали
тестирование совместимости с другими поставщиками
реализации этого протокола, поэтому вы не должны предполагать
что эта реализация соответствует стандарту. если ты
хотите использовать протокол аварийного переключения, убедитесь, что оба
одноранговые узлы аварийного переключения используют одну и ту же версию ISC DHCP
сервер.

аварийное переключение
протокол позволяет двум DHCP-серверам (и не более чем двум) к
разделяют общий пул адресов. На каждом сервере будет около
половина доступных IP-адресов в пуле в любой момент
время для распределения.Если один сервер выходит из строя, другой сервер
продолжит продлевать аренду вне пула и будет
выделять новые адреса из примерно половины доступных
адреса, которые он имел при общении с другим
сервер были потеряны.

Возможно
во время длительного отказа сообщить оставшемуся серверу, что
другой сервер не работает, и в этом случае оставшийся сервер
(со временем) вернет все адреса другому серверу
были доступны для распределения, и начать их повторно использовать. Эта
называется перевод сервера в ПАРТНЕР-ВНИЗ
государство.

Можно поставить
сервер в состояние PARTNER-DOWN либо с помощью
omshell (1) или остановив сервер,
редактирование последнего объявления состояния аварийного переключения в аренде
файл и перезапуск сервера. Если вы используете это последнее
метод, измените строку «мое состояние» на:

аварийное переключение
партнер
имя состояние {
мой государственный партнер отключен;
одноранговое состояние
состояние at date ;
}

Это только
требуется изменить «мое состояние», как показано выше.

Когда другой
сервер возвращается в сеть, он должен автоматически определять
что он был в автономном режиме и запросить полное обновление у
сервер, который работал в состоянии PARTNER-DOWN, и
тогда оба сервера возобновят совместную обработку.

Возможно
попасть в опасную ситуацию: если поставить один сервер
в состояние PARTNER-DOWN, а затем * этот * сервер переходит
отключается, и другой сервер снова включается, другой сервер
не будет знать, что первый сервер был в PARTNER-DOWN
штата и может выдавать адреса, ранее выданные
другой сервер другим клиентам, в результате чего IP-адрес
конфликты.Перед переводом сервера в состояние PARTNER-DOWN,
поэтому убедитесь, что , что другой сервер не будет
перезапускается автоматически.

аварийное переключение
протокол определяет роль первичного сервера и вторичного
роль сервера. Есть некоторые различия в том, как праймериз и
второстепенные действия, но большинство различий просто должны
сделать с предоставлением возможности каждому партнеру вести себя в
в противоположную сторону от другого. Итак, один сервер должен быть
настроен как основной, а другой должен быть настроен как
второстепенный, и неважно, какой из них
который.

НЕИСПРАВНОСТЬ ЗАПУСКА

Когда сервер
начинается, что ранее не сообщалось со своим
узел аварийного переключения, он должен установить связь со своим
одноранговый узел отработки отказа и синхронизация с ним, прежде чем он сможет обслуживать
клиентов. Это может произойти либо потому, что у вас только что
настроил ваши DHCP-серверы на выполнение аварийного переключения для
первый раз или потому что на одном из ваших отказоустойчивых серверов
катастрофически отказал и потерял свою базу данных.

Начальный
процесс восстановления разработан таким образом, чтобы
отказоустойчивый одноранговый узел теряет свою базу данных, а затем повторно синхронизируется,
любые договоры аренды, выданные отказавшим сервером до отказа
будет удостоен чести.Когда отказавший сервер запускается, он
замечает, что у него нет сохраненного состояния аварийного переключения, и пытается
связаться со своим коллегой.

Когда есть
установленный контакт, он запрашивает у партнера полную копию
база данных аренды своего партнера. Затем партнер отправляет свое
полную базу данных и отправляет сообщение, указывающее, что это
сделанный. Затем отказавший сервер ждет, пока не пройдет MCLT,
и после прохождения MCLT оба сервера переходят
вернуться в нормальный режим работы. Этот период ожидания гарантирует, что
любые аренды, которые отказавший сервер мог выдать, когда
контакт со своим партнером истечет.

В то время как
отказавший сервер восстанавливается, его партнер остается в
состояние партнера не работает, что означает, что он обслуживает все
клиентов. Неисправный сервер вообще не обслуживает
Клиенты DHCP, пока он не перейдет в нормальный режим
операция.

В футляре
где оба сервера обнаруживают, что никогда раньше
общались со своим партнером, они оба подошли к этому
состояние восстановления и следуйте процедуре, которую мы только что
описано. В этом случае DHCP не будет обслуживать
клиентов до истечения срока действия MCLT.

ОТКАЗ КОНФИГУРАЦИИ

Для того, чтобы
настроить аварийное переключение, нужно написать одноранговое объявление
который настраивает протокол аварийного переключения, и вам нужно написать
одноранговые ссылки в каждом объявлении пула, для которого вы хотите
выполнить аварийное переключение. Необязательно выполнять аварийное переключение для всех пулов
в данном сегменте сети. Вы не должны сообщать одному серверу
он выполняет аварийное переключение на определенный пул адресов и
скажи другому, что это не так. У вас не должно быть общего
пулы адресов, на которых вы не выполняете аварийное переключение.Бассейн
объявление, которое использует аварийное переключение, будет выглядеть так:

бассейн {

одноранговый узел аварийного переключения «foo»;

специфические параметры пула

};

Сервер
в настоящее время очень мало проверяет работоспособность, поэтому, если вы
настроить его неправильно, он просто выйдет из строя по странным причинам. я бы
Поэтому рекомендуется либо выполнить аварийное переключение, либо
не выполняйте аварийное переключение, но и не выполняйте смешанные пулы.Кроме того, используйте один и тот же главный файл конфигурации для обоих
серверы и имеют отдельный файл, содержащий одноранговый
декларацию и включает мастер-файл. Это поможет тебе
чтобы избежать несоответствий в конфигурации. Как наша реализация
развивается, это станет меньшей проблемой. Базовый образец
Файл dhcpd.conf для основного сервера может выглядеть так:
это:

отказоустойчивый одноранговый узел
«foo» {
первичный;
адрес anthrax.rc.example.com;
порт 519;
одноранговый адрес trantor.rc.example.com;
одноранговый порт 520;
максимальная задержка ответа 60;
max-unacked-updates 10;
мкТ 3600;
сплит 128;
баланс нагрузки макс. Секунды 3;
}

включать
«/ etc / dhcpd.мастер »;

Заявления
в одноранговом объявлении следующие:

первичный и вторичный ведомости

[
первичный | вторичный ] ;

Это определяет
является ли сервер основным или дополнительным, как описано
ранее под ОТКАЗОМ DHCP.

адрес выписка

адрес
адрес ;

адрес заявление объявляет IP-адрес или DNS-имя
на котором сервер должен прослушивать соединения со своего
одноранговый узел отработки отказа, а также значение, используемое для DHCP
Идентификатор сервера протокола аварийного переключения.Поскольку это значение
используется в качестве идентификатора, его нельзя опускать.

Узел
адрес
выписка

пир
адрес
адрес ;

Узел
адрес
объявляет IP-адрес или DNS-имя для
к которому сервер должен подключиться

.

Как работают сети: что такое коммутатор, маршрутизатор, DNS, DHCP, NAT, VPN и еще десяток полезных вещей

Тема нетворкинга, к сожалению, для большинства наших коллег скучна. Все используемые технологии, протоколы и лучшие практики довольно старые, они уже давно окружают нас и обеспечивают связь между миллионами устройств вокруг нас. Даже программисты чаще всего принимают сети как должное и не думают о том, как они работают.

У нас такое часто бывает: мы каждый день используем такие слова, как IP и DNS, но не понимаем, как все это работает и как это примерить.Такое отношение не только неверно, но и неверно для карьеры любого уважающего себя ИТ-инженера. Неважно, сколько фреймворков вы изучили, без сетевых знаний вас не воспримут всерьез.
Никакая часть инфраструктуры не должна оставаться черным ящиком ни для разработчиков, ни для администраторов, ни, конечно, для вас, будущего инженера DevOps.

Цель этой статьи — не дать исчерпывающее руководство по сетям. Внутри статьи и в конце я дам много ссылок на источники, которые помогут вам углубить полученные знания.Не поленитесь, переходите по всем ссылкам и все прочтите.

Но в этом тексте мы сосредоточимся на сетевой структуре, ее основных компонентах и ​​посмотрим, как они используются на практике с помощью виртуальных машин и libvirt / KVM в частности, с которыми мы познакомились в предыдущей статье.

OSI модель

Прежде всего, нам нужно познакомиться с моделью OSI. Эта модель стандартизирует обмен данными между сетевыми протоколами.

OSI делит обмен данными на 7 уровней, каждый из которых имеет свои протоколы.Вы часто будете слышать такие вещи, как «это происходит на 3-м слое». Вот эти слои:

  1. Физический уровень
  2. Уровень канала передачи данных
  3. Сетевой уровень
  4. Транспортный уровень
  5. Сессионный уровень
  6. Уровень представления
  7. Уровень приложения
Физический уровень

Протоколы этого уровня отвечают за аппаратную связь на самом нижнем уровне. Сама передача данных по проводам (или беспроводным) описывается на этом уровне.Примеры протоколов: Wi-Fi, Bluetooth, DSL.

Уровень канала передачи данных

Уровень канала данных отвечает за передачу данных между двумя устройствами в одной сети. Данные передаются кадрами, кадр содержит физический адрес отправителя и получателя. Этот адрес называется MAC-адресом.

Итак, кто отправитель и получатель?

Прежде всего, каждое устройство (включая ваш ноутбук) имеет NIC — контроллер сетевого интерфейса. Это часть оборудования (или виртуального оборудования), которое отвечает за отправку и получение кадров.Сетевая карта имеет MAC-адрес — уникальный адрес, обычно встроенный в оборудование или генерируемый системой виртуализации.

Конечно, на машине может быть несколько сетевых адаптеров. Посмотрим на интерфейсы с помощью команды ip :

  [root @ localhost ~] Показать ссылку $ ip
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
    ссылка / петля 00: 00: 00: 00: 00: 00 brd 00: 00: 00: 00: 00: 00
2: eth0:  mtu 1500 qdisc pfifo_fast состояние UP mode DEFAULT qlen 1000
    ссылка / эфир 52: 54: 00: 05: 36: e6 brd ff: ff: ff: ff: ff: ff
  

В этом случае интерфейс, используемый для связи с миром через сеть, — это eth0, который имеет MAC-адрес 52: ​​54: 00: 05: 36: e6 .Но что такое lo ?

lo — это устройство обратной связи, особый виртуальный интерфейс, который система использует для связи с собой. Благодаря lo локальные приложения могут связываться друг с другом даже без сетевого подключения.

Вы уже заметили, что у вашего компьютера миллиарды кабелей, подключенных напрямую ко всем компьютерам в мире. Сеть нуждается в дополнительных устройствах для своей организации.

Например, переключатель .

Коммутатор — это устройство, которое создает сеть и к которому все наши машины подключены через порты. Задача коммутатора L2 (есть и более продвинутые, касающиеся L3 и даже L7) — пересылать кадры от отправителя MAC к получателю MAC. Многие устройства, подключенные к одному коммутатору, образуют локальную сеть (LAN).

Конечно, связка серверов, подключенных к одному коммутатору, — вполне очевидный способ создания сети. Но что, если мы хотим создать сеть серверов, физически расположенных в разных местах? Или, скажем, мы хотим логически разделить серверы, подключенные к одному коммутатору в одном месте, в разные сети?

Для таких случаев создается VLAN (виртуальная локальная сеть).Вы можете реализовать это, скажем, с помощью переключателя. Работает он довольно просто: к кадру добавляется дополнительный заголовок с VLAN-тегом, который определяет, к какой сети принадлежит кадр.

Еще одно устройство — мост. Мост L2 используется для соединения двух сетей, образованных с помощью коммутаторов, следующим образом:

И коммутаторы, и мосты (а также концентраторы, читайте сами) помогают объединить несколько устройств в одну сеть. Также есть роутеры, которые соединяют сети, они работают на L3.Например, ваш Wi-Fi роутер соединяет вашу локальную сеть (где есть ваш ноутбук, мобильный телефон и планшет) с Интернетом.

Помимо LAN, есть еще несколько типов сетей: например, WAN. Интернет можно считать WAN, за исключением того, что Интернет полностью стирает географические границы сети.

Как я уже упоминал, существуют также коммутаторы L3, которые могут не только пересылать кадры с одного устройства на другое, но также обладают некоторыми более продвинутыми функциями, такими как маршрутизация.Итак, в чем разница между маршрутизатором и коммутатором L3, спросите вы. Все это довольно сложно (и скучно), но если вам интересно, прочтите эту статью Коммутаторы уровня 3 в сравнении с маршрутизаторами

Сетевой уровень

На третьем, сетевом уровне, вместо MAC-адресов используются IP-адреса. Посмотрим на IP нашего устройства с помощью той же команды ip :

  [root @ localhost ~] $ ip addr show
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN
    ссылка / петля 00: 00: 00: 00: 00: 00 brd 00: 00: 00: 00: 00: 00
    инет 127.0.0.1 / 8 объем хоста lo
       valid_lft навсегда предпочтительный_lft навсегда
    inet6 :: 1/128 хост области
       valid_lft навсегда предпочтительный_lft навсегда
2: eth0:  mtu 1500 qdisc pfifo_fast состояние UP qlen 1000
    ссылка / эфир 52: 54: 00: 05: 36: e6 brd ff: ff: ff: ff: ff: ff
    inet 192.168.122.212/24 brd 192.168.122.255 область глобального динамического eth0
       valid_lft 2930sec предпочтительный_lft 2930sec
    inet6 fe80 :: 5054: ff: fe05: 36e6 / 64 ссылка области
       valid_lft навсегда предпочтительный_lft навсегда
  

Модель 192.168.122.212 / 24 Адрес назначается интерфейсу eth0 .

Но что такое /24 ? А почему в интерфейсе loopback /8 ? Вы, наверное, уже слышали, что существует 4 294 967 296 адресов IPv4. Интернет — это не одна большая сеть, а множество маленьких сетей. Более того, отдельные блоки IP-адресов зарезервированы для разных типов сетей (например, частных сетей, которые недоступны извне).

Адресов IPv6 намного больше.Но полного перехода на IPv6 еще не произошло 🙂

CIDR — это метод распределения IP-адресов для различных типов сетей. А CIDR-нотация — это способ записать этот блок в формате 192.168.122.212/24 , где число /24 , называемое маской, позволяет понять, сколько адресов в этом блоке.

IPv4 — это простое число длиной 32 бита, которое может быть представлено в двоичном коде. В двоичном коде IP-адреса идут от 00000000000000000000000000000000 до 111111111111111111111111111111 .Для удобства разделим это число на 4 части, каждая из которых состоит из 8 цифр: 11111111.11111111.11111111.11111111 . В привычной нам десятичной системе этот адрес выглядит так: 255.255.255.255 .

Маска /24 может быть представлена ​​как 255.255.255.0 или, в двоичной записи, 11111111.11111111.11111111.00000000 . Чтобы найти первый и последний адреса сети, мы можем использовать один из адресов и сетевую маску и применить побитовое И к их двоичной записи:

  11000000.8 градусов, или 256 адресов. Это означает, что последний адрес будет  192.168.122.255 . 

Не нужно все это считать вручную, можно воспользоваться калькулятором.

ARP

Мы уже знаем, что L2 использует MAC-адреса, а L3 - IP-адреса. Должен быть какой-то механизм, который связывает MAC-адрес с его IP-адресом. Этот механизм называется ARP (протокол разрешения адресов).

В Linux есть одноименная команда arp , которая позволяет нам просматривать таблицу MAC-адресов, известных устройству, и сопоставленных с ними IP-адресов.

  [root @ localhost] # arp -n
Адрес HWtype HWaddress Флаги Маска Iface
192.168.178.1 эфир 5c: 49: 79: 99: f3: 23 C wlp3s0
  

В данном случае 192.168.178.1 - это IP-адрес моего Wi-Fi роутера, к которому мой ноутбук подключен через интерфейс wlp3s0.

Команда arp считается устаревшей, и настоятельно рекомендуется использовать вместо нее ip neigh .

Один из видов кибератак связан с ARP и называется ARP-спуфингом.Цель такой атаки - заменить MAC-адрес, связанный с определенным IP-адресом, на адрес устройства хакера. Жизнь действительно страшная вещь.

DHCP

А как именно сетевому интерфейсу присваивается IP-адрес? Один из вариантов - вручную. Недостаток: ручная работа. Если руками не разбираешься, можно настроить дубликаты адресов и получить конфликт 🙂

Другой вариант: Протокол динамической конфигурации хоста (DHCP), протокол, используемый для автоматической настройки различных конфигураций, включая IP-адреса.

Дополнительные сведения о DHCP см. В документации RFC: https://www.ietf.org/rfc/rfc2131.txt

Для работы DHCP вам потребуется DHCP-сервер, который будет назначать IP-адреса, и DHCP-клиент на вашем устройстве, который будет запрашивать адрес. Дома DHCP-сервер обычно находится в роутере.

Чтобы понять, как именно работает DHCP, нужно ориентироваться на «широковещательную рассылку». Это процесс, в котором наш сервер передает сообщение всем серверам в сети, поскольку он не знает, где именно находится нужная ему информация.Такое широковещательное общение близко к радиовещанию.

В случае DHCP это происходит так:

  1. DHCP-клиент отправляет широковещательное сообщение с запросом «Мне нужен IP-адрес»
  2. DHCP-сервер перехватывает его и отправляет обратно широковещательное сообщение "У меня есть IP-адрес x.x.x.x, вы хотите его?"
  3. DHCP-клиент получает сообщение и отправляет другое: «Да, мне нужен адрес x.x.x.x»
  4. DHCP-сервер отвечает: «Хорошо, затем x.x.x.x принадлежит вам "

На этом видео весь процесс показан более четко: https://www.youtube.com/watch?v=RUZohsAxPxQ

А где хранятся настройки подключения?

Настройки подключения хранятся в / etc / sysconfig / network-scripts . Здесь вы можете редактировать такие вещи, как способ назначения IP-адреса (автоматический или статический), запускать ли соединение автоматически при загрузке системы или нет и т. Д. Например, так выглядит моя конфигурация Wi-Fi-соединения :

  [root @ localhost network-scripts] # ​​cat ifcfg-FRITZ-Box_7490
HWADDR = 4C: 34: 88: 54: C1: 2B
ESSID = "FRITZ! Box 7490"
MODE = управляемый
KEY_MGMT = WPA-PSK
ТИП = беспроводной
BOOTPROTO = dhcp
РАЗМОРАЖИВАТЬ = да
IPV4_FAILURE_FATAL = нет
IPV6INIT = да
IPV6_AUTOCONF = да
IPV6_DEFROUTE = да
IPV6_FAILURE_FATAL = нет
НАЗВАНИЕ = "FRITZ! Box 7490"
UUID = 55ba9218-1d2f-407d-af13-51502d542edb
ONBOOT = да
SECURITYMODE = открытый
PEERDNS = да
PEERROUTES = да
IPV6_PEERDNS = да
IPV6_PEERROUTES = да
  

Обратите внимание на BOOTPROTO = dhcp - эта опция означает, что мой компьютер будет использовать DHCP-сервер, в том числе и для получения IP-адреса.Для сравнения, конфигурация подключения для устройства обратной связи:

  [root @ localhost сетевые сценарии] # cat ifcfg-lo
DEVICE = lo
IPADDR = 127.0.0.1
NETMASK = 255.0.0.0
СЕТЬ = 127.0.0.0
# Если у вас проблемы с gated, делающим 127.0.0.0/8 марсиан,
# вы можете изменить это на что-нибудь другое (например, 255.255.255.255)
BROADCAST = 127.255.255.255
ONBOOT = да
NAME = loopback
  

Здесь указан статический адрес: IPADDR = 127.0.0.1 . Дома вы можете использовать инструмент nmcli или установить пакет Networkmanager-tui , который предоставит удобный текстовый интерфейс прямо в вашей консоли, вместо того, чтобы редактировать конфиги вручную.в полевых условиях, на серверах, лучше этого не делать и использовать систему конфигурации (Puppet, Chef, Salt).

Еще одна важная часть конфигурации: маршрутизация. Как понять, куда пойдет трафик? Все довольно просто: достаточно посмотреть локальную таблицу маршрутизации с помощью команды ip_r . На момент написания я сижу в кафе с ноутбуком, который использует мобильный телефон в качестве маршрутизатора. Вот что отображает ip_r :

  по умолчанию через 172.20.10.1 dev wlp3s0 proto static metric 600
172.20.10.0/28 dev wlp3s0 ссылка области видимости ядра src 172.20.10.3 метрика 600
192.168.100.0/24 dev virbr2 proto kernel scope link src 192.168.100.1
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1
  

Как видите, весь трафик по умолчанию идет на машину с адресом 172.20.10.1 . И если я запустил ip addr show , я увижу, что сетевой интерфейс на моем ноутбуке также имеет IP-адрес из этой сети:

  4: wlp3s0:  mtu 1500 qdisc mq state UP группа по умолчанию qlen 1000
    ссылка / эфир 4c: 34: 88: 54: c1: 2b brd ff: ff: ff: ff: ff: ff
    Инет 172.20.10.3 / 28 brd 172.20.10.15 область видимости глобальная динамическая wlp3s0
       valid_lft 83892sec предпочтительный_lft 83892sec
    inet6 fe80 :: 4e34: 88ff: fe54: ссылка области видимости c12b / 64
       valid_lft навсегда предпочтительный_lft навсегда
  

Вы можете добавить новые пути с помощью команды ip r add и удалить их с помощью команды ip r del .

DNS

Вы, наверное, уже слышали о DNS. Идея проста: запрашивать сервер не по его IP-адресу (это сложно запомнить людям), а по его обычному имени.

Самый старый и самый популярный DNS-сервер (тот, который хранит информацию об адресах и отвечает на запросы) - это BIND. Альтернатив много, но в первую очередь рекомендуется локально развернуть BIND.

Материал из Cisco DNS Best Practices, Network Protections и Attack Identification должен быть в вашем списке для чтения - там вы узнаете не только основы DNS, но и множество полезных рекомендаций по созданию безопасного и устойчивого DNS-сервера.

Возможно автоматическое обновление записей в DNS-сервере. Вы можете прочитать о nsupdate. Ниже вы найдете ссылку на отличное руководство по настройке, включая безопасное обновление записей. Одно из интересных применений - обнаружение служб. Посмотрите в интернете, что это такое, или дождитесь статьи об этом на mkdev 🙂

До DNS у нас был только файл / etc / hosts. Его часто используют даже сейчас.

Раздел "Вирусы для чайников"! Откройте файл / etc / hosts на компьютере друга и добавьте туда строку 52.28.20.212 facebook.com . Больше не сидишь в фейсбуке, лучше он занимается развитием!

Есть еще один интересный файл /etc/nsswitch.conf. Здесь определяется, в каком порядке и где искать различную информацию, в том числе где искать хосты. По умолчанию они ищутся в / etc / hosts, и только после этого отправляется запрос к DNS-серверу.

Сервер, используемый для разрешения DNS-имен, кстати, определен в /etc/resolv.conf.

Отлаживать проблемы DNS лучше с помощью команд dig и nslookup.Например, чтобы запросить информацию о mkdev.me с сервера имен 8.8.8.8, вам нужно всего лишь:

  # dig mkdev.me @ 8.8.8.8

; << >> DiG 9.10.3-P4-RedHat-9.10.3-12.P4.fc23 << >> mkdev.me @ 8.8.8.8
;; глобальные параметры: + cmd
;; Получил ответ:
;; - >> HEADER << - код операции: QUERY, статус: NOERROR, id: 3320
;; флаги: qr rd ra; ЗАПРОС: 1, ОТВЕТ: 1, АВТОРИТЕТ: 0, ДОПОЛНИТЕЛЬНО: 1

;; ОПТИЧЕСКАЯ ПСЕВДОЗЕКЦИЯ:
; EDNS: версия: 0, флаги :; UDP: 512
;; РАЗДЕЛ ВОПРОСА:
; mkdev.мне. В

;; РАЗДЕЛ ОТВЕТА:
mkdev.me. 299 IN A 52.28.20.212

;; Время запроса: 355 мсек.
;; СЕРВЕР: 8.8.8.8 # 53 (8.8.8.8)
;; КОГДА: Пт, 27 мая, 12:51:04 CEST 2016
;; РАЗМЕР MSG rcvd: 53

  
Виртуальные машины

До этого все примеры делались на локальной машине. Конечно, это полезно для вашего восприятия, но не так уж и интересно. Поэтому закрепим все прочитанное с помощью виртуальных машин и libvirt, а также познакомимся с парочкой терминов.

Прежде всего, создадим виртуальную машину с помощью virt-install:

  sudo virt-install --name mkdev-network-basics-1 \
--location ~ / Downloads / CentOS-7-x86_64-Minimal-1511.iso \
--initrd-inject /path/to/ks.cfg \
--extra-args ks = файл: /ks.cfg \
--memory = 1024 --vcpus = 1 - размер диска = 8
  

По умолчанию libvirt создает одну сеть:

  [root @ localhost] # список сетей virsh
 Имя Состояние Автозапуск Постоянный
-------------------------------------------------- --------
 по умолчанию активен да да
  

Блок 192.168.0.0/16 выделен для частных сетей. libvirt выделил для своей сети блок 192.168.122.212/24 , то есть все адреса из 192.168.122.0 к 192.168.122.255 .

Чтобы просмотреть подробную информацию о конкретной сети, вы можете использовать virsh net-info или virsh net-dumpxml . Вторая команда вернет гораздо больше деталей, поэтому воспользуемся ею:

  [root @ CentOS-72-64-minimal ~] # virsh net-dumpxml по умолчанию
<сетевые подключения = '1'>
   по умолчанию 
   f2ee9249-6bed-451f-a248-9cd223a80702 
  <режим вперед = 'нат'>
    
      <начало порта = '1024' end = '65535' />
    
  
  <имя моста = 'virbr0' stp = 'on' delay = '0' />
  
  
    
      <диапазон start = '192.168.122.2' end = '192.168.122.254' />
    
  

  

соединений показывает количество машин, подключенных к этой сети. Подробное описание всех возможных опций этого XML-файла вы можете прочитать в документации libvirt. Но сейчас нас интересуют два слова: мост и dhcp.

Мост

, или устройство virbr0, или виртуальный сетевой коммутатор - это специальное устройство, к которому подключены все виртуальные машины в этой сети.Все запросы от одной виртуальной машины к другой в одной сети проходят через этот виртуальный коммутатор. Libvirt создает по одному виртуальному коммутатору для каждой сети, и каждый коммутатор распознается как отдельное устройство на хост-машине:

  [root @ localhost] # отображение IP-ссылки
8: virbr1:  mtu 1500 qdisc noqueue state UP mode DEFAULT
    ссылка / эфир 52: 54: 00: a8: 02: f2 brd ff: ff: ff: ff: ff: ff
  

Создание сети в libvirt по умолчанию приравнивается к созданию виртуального коммутатора, к которому подключены все виртуальные машины, таким образом создается локальная сеть, LAN.

Коммутатор virbr0 реализован с использованием Linux Bridge - технологии, изначально предназначенной именно для создания виртуальных локальных сетей. Вы можете увидеть список всех коммутаторов, выполняющих команду brctl show на хост-машине.

Linux Bridge "немного" отличается от типичного аппаратного коммутатора L2. За годы существования в него было добавлено множество функций, таких как фильтрация трафика и межсетевой экран. Лучше всего называть это переключателем L3, но здесь ваш покорный слуга не совсем уверен.

Теперь обратим внимание на следующий раздел:

  
    
      <диапазон start = '192.168.122.2' end = '192.168.122.254' />
    
  
  

Здесь объявляется блок адресов, используемых виртуальными машинами в этой сети. 192.168.122.1 - это IP-адрес хост-машины в этой виртуальной сети.

Если мы запустим ip r в ВМ, мы увидим:

  [vagrant @ localhost ~] $ ip r
по умолчанию через 192.168.122.1 dev eth0 proto static metric 100
192.168.122.0/24 dev eth0 proto ссылка на область видимости ядра src 192.168.122.209 метрика 100
  

По умолчанию трафик от ВМ идет наружу через хост-машину. В качестве развлечения вы можете настроить конфигурацию трафика, направленного на одну виртуальную машину через другую.

Как мы уже знаем, за назначение IP-адресов отвечает служба DHCP. Libvirt использует dnsmaq для DHCP и DNS и запускает по одному экземпляру dnsmasq для каждой сети.

  `[root @ CentOS-72-64-minimal ~] # ps aux | grep dns
никто 10600 0,0 0,0 15548 856? С 01 апреля 0:02 / sbin / dnsmasq --conf-file = / var / lib / libvirt / dnsmasq / default.conf --leasefile-ro --dhcp-script = / usr / libexec / libvirt_leaseshelper
корень 10601 0,0 0,0 15520 312? С 01 апр 0:00 / sbin / dnsmasq --conf-file = / var / lib / libvirt / dnsmasq / default.conf --leasefile-ro --dhcp-script = / usr / libexec / libvirt_leaseshelper
  

Теперь мы можем взглянуть на таблицу DHCP, которая покажет нам назначенные адреса:

  [root @ loclahost] # virsh net-dhcp-leases по умолчанию
 Срок действия MAC-адрес Протокол IP-адрес Имя хоста Идентификатор клиента или DUID
-------------------------------------------------- -------------------------------------------------- ---------------
 2016-04-29 16:31:19 52: 54: 00: 05: 36: e6 ipv4 192.168.122.212 / 24 - -
  

Обратите внимание, что 52: ​​54: 00: 05: 36: e6 - это MAC-адрес нашей виртуальной машины интерфейса eth0.

NAT

Когда вы читали о CIDR, было кое-что, что могло привлечь ваше внимание: даже если мы разделим сеть на множество блоков, общее количество IP-адресов не увеличится. На самом деле всегда используется комбинация частного и публичного адресов. Обычно за одним публичным адресом скрывается множество машин, каждая из которых имеет свой частный адрес.

Это верно и для наших виртуальных машин. У каждого есть частный IP-адрес из блока 192.168.122.0/24 , и все они скрыты за публичным адресом хост-машины.

Хост-машина, если мы продолжим использовать наш личный ноутбук дома, будет скрыта за нашим маршрутизатором Wi-Fi и также не имеет публичного адреса.

На первый взгляд, наличие у виртуальных машин доступа в Интернет кажется очевидным. Но у виртуальной машины есть только частный адрес, который недоступен за пределами хост-машины.Запросы виртуальной машины общедоступного сервера куда-то должны переслать ответ, но она просто не сможет найти частный IP-адрес виртуальной машины (потому что он частный).

NAT (преобразование сетевых адресов) решит эту проблему. Это механизм разрешения IP-адресов в сетевых пакетах. Обычно в комплект входят IP-адреса отправителя и получателя. NAT позволяет динамически изменять эти адреса и сохранять таблицу измененных адресов.

Существует также SNAT (исходный NAT), который используется нашими виртуальными машинами для доступа в Интернет.При отправке пакета его исходный адрес заменяется адресом хост-машины. Когда ответ от целевого сервера возвращается, адрес изменяется с адреса хост-машины на адрес виртуальной машины. Это маршрутизатор меняет адрес.

DNAT (NAT назначения) делает почти то же самое, но наоборот: это когда вы запрашиваете какой-то публичный адрес, который скрывает частные локальные адреса.

NAT - это способ связи виртуальной машины с миром по умолчанию. Но libvirt - вещь гибкая.Например, вы можете подключить виртуальные машины напрямую к физическому интерфейсу хоста вместо виртуального коммутатора. На самом деле, существует множество способов создать сеть.

Libvirt использует iptables для NAT. Короче говоря, это инструмент, отвечающий за фильтрацию сетевых пакетов. iptables настраиваются с помощью специальных правил, которые объединяются в цепочки. Добавляя такие правила, libvirt предоставляет нашим виртуальным машинам доступ в Интернет через NAT. Мы вернемся к iptables, когда будем говорить о безопасности в целом.

Кроме того, в настройках ядра должна быть включена опция ip forward, чтобы перенаправление пакетов работало на хосте. Включить его очень просто: ʻecho 1> / proc / sys / net / ipv4 / ip forward`

tcpdump

Пожалуй, самый важный инструмент для решения сетевых проблем или, если быть более конкретным, трафика, проходящего через отладку нашей машины, - это tcpdump. Очень важно знать, как им пользоваться. Посмотрим, например, что происходит на нашем virbr0 при перезапуске ВМ.

Давайте откроем консоль на хост-машине и запустим tcpdump -i virbr0 .

Откройте отдельное окно и запустите virsh reboot # {number_of_VM} .

Посмотрите результат в первом окне и посмотрите, откуда пришли запросы.

  tcpdump: подробный вывод подавлен, используйте -v или -vv для полного декодирования протокола
прослушивание virbr0, тип канала EN10MB (Ethernet), размер захвата 262144 байта
12: 57: 31.339135 IP6 ::> ff02 :: 16: HBH ICMP6, отчет о приемнике многоадресной рассылки v2, 1 групповая запись (и), длина 28
12:57:31.397937 IP 0.0.0.0.bootpc> 255.255.255.255.bootps: BOOTP / DHCP, запрос от 52: 54: 00: e0: 06: 54 (oui Unknown), длина 300
12: 57: 31.398182 IP linux.fritz.box.bootps> 192.168.122.209.bootpc: BOOTP / DHCP, ответ, длина 301
12: 57: 31.5 ARP, запрос у кого есть linux.fritz.box, скажите 192.168.122.209, длина 28
12: 57: 31.5

ARP, ответ linux.fritz.box is-at 52: 54: 00: 7e: 33: 23 (oui Unknown), длина 28 12: 57: 31.5

IP 192.168.122.209.38438> linux.fritz.box.domain: 61342+ A? 0.centos.pool.ntp.org.(39) 12: 57: 31.5

IP 192.168.122.209.38438> linux.fritz.box.domain: 25671+ AAAA? 0.centos.pool.ntp.org. (39) 12: 57: 31.590618 IP linux.fritz.box.domain> 192.168.122.209.38438: 25671 0/0/0 (39) ### И так далее

Вот, например, широковещательная передача от ВМ: 12: 57: 31.397937 IP 0.0.0.0.bootpc> 255.255.255.255.bootps: BOOTP / DHCP, Запрос от 52: 54: 00: e0: 06: 54 ( oui Unknown), длина 300 .

Также посмотрим на таблицу ARP:

  Адрес HWtype HWaddress Флаги Маска Iface
#...
192.168.122.209 эфир 52: 54: 00: e0: 06: 54 C virbr0
# ...
  
VPN

Иногда (правда, очень часто) нужно сделать так, чтобы и клиент, и сервер находились в одной частной сети. Например, когда все сервисы компании находятся в частной сети, доступной только из офиса, но вам необходимо предоставить удаленный доступ сотрудникам компании. Или когда у компании есть несколько офисов или центров обработки данных, которые необходимо соединить друг с другом таким образом, чтобы вся сеть по-прежнему не была доступна для всего Интернета.

VPN сам по себе помещает один пакет tcp / ip в другой и шифрует содержимое. В результате внутри реальной сети работает виртуальная сеть. Виртуальные сетевые устройства (tun / tap) создаются для виртуальных сетей. У них есть виртуальные IP-адреса, которые доступны только в нашей виртуальной зашифрованной сети.

Я оставлю настройку VPN вне этой статьи. На совести читателя - попытаться сделать это самостоятельно, используя OpenVPN или strongSwan.

Мы вернемся к теме безопасности позже, но вы уже можете прочитать об IPsec - это протокол, используемый strongSwan.

Для самостоятельного обучения

Мы только что рассмотрели самые основы сетей, но, конечно же, есть почти десяток технологий, на которые стоит обратить внимание. Google VXLAN самостоятельно, изучите TCP и UDP (и выясните, какой из них использовать), посмотрите IMCP. Вы будете постоянно сталкиваться с новыми терминами, но, как всегда, самое главное - изучить основы.

Мы не достигли более высоких уровней OSI, не рассматривали различные протоколы, с которыми работают веб-приложения: HTTP (S), FTP, SSH, NTP и многие другие.

Не забудьте заглянуть в RFC. Это первая остановка при поиске информации в нужных вам сетях.

Думаю, мы вернемся к этим темам в следующих статьях. Что касается меня, самым сложным было понять, как именно все это работает на уровнях ниже уровня приложения. все эти сети, подсети, необъяснимые проблемы с доступом одного сервера к другому и т. д.

Я надеюсь, что теперь вы знаете немного больше об основных компонентах, участвующих в сетевом взаимодействии, и что в будущем вы сможете быстрее решать возникающие проблемы - потому что вы заранее знаете, что и где может пойти не так.

Что дальше?

Я знаю, что дорогой читатель не может дождаться, когда я начну рассказывать о Chef, Puppet, Ansible и многих других интересных вещах. Но еще рано. У меня есть как минимум еще одна статья на эту тему, в которой мы рассмотрим все возможные способы аутентификации и авторизации пользователей и серверов, и таким образом углубимся в тему безопасности в целом.

Дополнительная литература

Как я уже сказал, тема сетей сложна, глубока и затрагивает множество различных предметов.У тебя, должно быть, в голове какой-то беспорядок. Все нормально! Следующие ссылки помогут вам глубже узнать все, что вам нужно знать о сетях.

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *