Разное

Зачем нужен dhcp: что это такое и для чего нужен в сети. DHCP-сервер

30.05.2021

Содержание

что это такое и для чего нужен в сети. DHCP-сервер

Вы сталкивались в настройках сети с такими понятиями, как DHCP и DHCP-сервер и не знаете, что это значит? Рассмотрим это в данном посте.

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

 

Что такое DHCP и что он делает

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

Как распознать устройство в сети?

Какое устройство принадлежит к вашей домашней LAN, а какое – к Интернету?

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

  • Маска сети или маска подсети: Адресация сети или узла в пределах IP-адреса.
  • Шлюз: Компонент, который создает соединение между двумя системами.
  • Сервер системы доменных имен (DNS-сервер): Отвечает на запросы о разрешении имен в Интернете. Без этого вы должны, например, знать связанные IP-адреса наизусть вместо доменов.
  • Время (NTP): синхронизация времени.

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

 

Что такое DHCP-сервер

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

Ручное назначение: IP-адреса, указанные на DHCP-сервере, назначаются фиксированным MAC-адресам (аппаратный адрес отдельного сетевого адаптера – для уникальной идентификации устройства). Адреса назначаются на постоянной основе. Но существует недостаток, который заключающийся в том, что никакие дополнительные клиенты не могут быть включены в сеть, поскольку адреса назначаются только на постоянной основе. С точки зрения безопасности это может быть желательным.

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

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

Читайте также

Зачем DHCP-серверу нужен статический IP-адрес?

Я экспериментирую с различными сетевыми установками с использованием виртуальных машин. Когда я настраиваю роль DHCP на Windows Server, требуется статический IP-адрес. У меня проблемы с пониманием, почему это необходимо с технической точки зрения.

Я понимаю, что DHCP — это то, что клиент передает запрос DHCP Discovery в сети, и любое устройство в сети может ответить. Таким образом, DHCP-серверу нужен IP-адрес, но почему этот IP-адрес должен быть статическим? DHCP-сервер может получить свой адрес в другом месте и по-прежнему отвечать на широковещательную рассылку, пока у него есть IP-адрес.

Например

  • Сервер A , Сервер B и Клиент X все подключены к одному коммутатору.
  • Сервер A является 10.0.0.1 и обслуживает 10.0.0.X / 24.
  • Сервер A настроен на передачу IP на сервер B только через фильтрацию MAC
  • Сервер B получает свой IP от Сервера A , таким образом он живет на 10.0.0.X / 24
  • Сервер B обслуживает 10.0.1.X / 24
  • Клиент X подключается и получает IP с сервера B

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

Игнорировать точку зрения управления, почему я не могу иметь

  • Главный DHCP-сервер со статическим IP-адресом, он обслуживает только другие DHCP-серверы
  • Диапазон адресов для «вторичных» DHCP-серверов
  • Диапазон адресов для клиентов, полученный от «вторичных» DHCP-серверов

Есть ли техническая причина, по которой DHCP-серверы должны иметь статический IP-адрес?

[Конспект админа] Как подружиться с DHCP и не бояться APIPA / Блог компании Сервер Молл / Хабр

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

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

Немного теории и решения интересных и не очень практических задач — под катом.

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


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

Получение IP-адреса (Automatic Private IP Addressing или APIPA). Система сама назначает себе IP из сети 169.254.0.0/16 (кроме сеток /24 в начале и конце диапазона), основываясь на MAC-адресе и генераторе псевдослучайных чисел. Такая система позволяет избежать конфликтов, а адрес из этой сети называют link-local — в том числе и потому, что эти адреса не маршрутизируются.

Поиск по имени. Система анонсирует свое сетевое имя, и каждый компьютер работает с ним как с DNS, храня записи у себя в кэше. Apple использует технологию mDNS (Multicast DNS), а Microsoft — LLMNR (Link-local Multicast Name Resolution), упомянутую в статье «Домены, адреса и Windows: смешивать, но не взбалтывать».

Поиск сетевых сервисов. Например, принтеров. Пожалуй, самым известным протоколом является UPnP, который помимо прочего умеет сам открывать порты на роутерах. Протокол довольно сложен, в нем используется целый набор надстроек вроде использования http, в отличие от второго известного протокола — DNS-SD (DNS Service Discovery), который попросту использует SRV-записи, в том числе при работе mDNS.

При всех плюсах Zeroconf — без каких-либо сакральных знаний можно собрать рабочую сеть, просто соединив компьютеры на физическом уровне, — IT-специалистам он может даже мешать.

Немного раздражает, не так ли?

В системах Windows для отключения автонастройки на всех сетевых адаптерах необходимо создать параметр DWORD с именем IPAutoconfigurationEnabled в разделе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters и поставить ему значение 0.

Разумеется, Zeroconf подходит разве что для небольших изолированных сетей (например, встретились с приятелем с ноутбуками, соединили их по Wi-Fi и давай играть Diablo II, не тратя время на какие-то сервера), да и выводить локальную сеть в интернет тоже хочется. Чтоб не мучаться со статическими настройками каждого компьютера, были созданы специальные протоколы, включая героя дня — DHCP.


Одна из первых реализаций протокола для выдачи IP-адресов появилась более 30 лет назад и называлась RARP (Reverse Address Resolution Protocol). Если немного упростить принцип его работы, то выглядело это так: клиент делал запрос на широковещательный адрес сети, сервер его принимал, находил в своей базе данных привязку MAC-адреса клиента и IP — и отправлял в ответ IP.

Схема работы RARP протокола.

И все вроде работало. Но у протокола были минусы: нужно было настраивать сервер в каждом сегменте локальной сети, регистрировать MAC-адреса на этом сервере, а передавать дополнительную информацию клиенту вообще не было возможности. Поэтому на смену ему был создан протокол BOOTP (Bootstrap Protocol).

Изначально он использовался для бездисковых рабочих станций, которым нужно было не только выдать IP-адрес, но и передать клиенту дополнительную информацию, такую, как адрес сервера TFTP и имя файла загрузки. В отличие от RARP, протокол уже поддерживал relay — небольшие сервисы, которые пересылали запросы «главному» серверу. Это сделало возможным использование одного сервера на несколько сетей одновременно.

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

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


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

Схема общения клиента с сервером пересылки и сервером.

Подробнее про схему взаимодействия сервера и клиента и про структуру запросов и ответов можно почитать, например, в материале «Структура, формат и назначение DHCP пакетов».


На нескольких собеседованиях меня спрашивали: «А какой транспорт и порт использует DHCP?» На всякий случай отвечаем: «Сервер UDP:67, клиент UDP:68».

С разными реализациями DHCP-сервера сталкивались многие, даже при настройке домашней сети. Действительно, сейчас сервер есть:


  • На практически любом маршрутизаторе, особенно SOHO.
  • На системах Windows Server. О сервере и его настройке можно почитать в официальной документации.
  • На системах *nix. Пожалуй, самое популярное ПО — ISC DHCP Server (dhcpd) и «комбайн» Dnsmasq.

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

В первую очередь это касается дополнительных настроек, помимо классического «IP-адрес, маска, шлюз, сервер DNS». А как раз эти дополнительные опции и вызывают наибольший интерес в работе протокола. С полным списком можно ознакомиться в соответствующем RFC, я же разберу несколько интересных примеров.


В этом разделе я рассмотрю практическое применение опций DHCP на оборудовании MikroTik. Сразу обращу внимание на то, что не все опции задаются очевидно, формат параметров описан в wiki. Следует отметить также то, что опции клиент применяет, только когда сам их попросит. В некоторых серверах можно принудительно отправить настройки: например, в ISC DHCP Server за это отвечает директива

dhcp-parameter-request-list, а в Dnsmasq —* *—dhcp-option-force. MikroTik и Windows такого не умеют.

Option 6 и Option 15. Начнем с простого. Настройка под номером 6 — это серверы DNS, назначаемые клиентам, 15 — суффикс DNS. Назначение суффикса DNS может быть полезным при работе с доменными ресурсами в недоменной сети, как я описывал в статье «Как мы сокращали персонал через Wi-Fi». Настройка MikroTik под спойлером.


Настройка MikroTik, option 15
#Добавляем опцию 15. содержимое — сконвертированный в HEX суффикс.

/ip dhcp-server option

add code=15 name=dns-suffix value=0x57687920616c6c207468697320736869743f

#создаем набор опций

/ip dhcp-server option sets

add name=dns option=dns-suffix

#Добавляем опцию к DHCP-серверу для клиентов.

/ip dhcp-server network

set [find comment="wi-fi client dhcp"] dhcp-option-set=dns

Знание, что сервер DNS — это тоже опция, недавно пригодилось мне, когда разным клиентам нужно было выдать разные серверы DNS. Решение вида «выдать один сервер и сделать разные правила dst-nat на 53 порт» не подходило по ряду причин. Часть конфигурации снова под спойлером.


Настройка MikroTik, option 6
#настройка опций, обратите внимание, что ip экранирован одинарными кавычками

/ip dhcp-server option

add code=6 name=google value="'8. 8.8.8'"

add code=6 name=cloudflare value="'1.1.1.1'"

#настройка клиентов

/ip dhcp-server lease

add address=10.0.0.2 dhcp-option=google mac-address=11:11:11:11:11:11 server=dhcp

add address=10.0.0.3 dhcp-option=cloudflare mac-address=22:22:22:22:22:22 server=dhcp

Option 66 и Option 67. Эти настройки пришли еще с BOOTP и позволяют указать TFTP-сервер и образ для сетевой загрузки. Для небольшого филиала довольно удобно установить туда микротик и бездисковые рабочие станции и закинуть на маршрутизатор подготовленный образ какого-нибудь ThinStation. Пример настройки DHCP:

/ip dhcp-server option

add name="option66" code=66 value="s'192.168.88.1'"

add name="option67" code=67 value="'pxelinux.0'"

/ip dhcp-server option sets

add name="set-pxe" options=option66,option67

Option 121 и Option 249. Используются для передачи клиенту дополнительных маршрутов, что может быть в ряде случаев удобнее, чем прописывать маршруты на шлюзе по умолчанию. Настройки практически идентичные, разве что клиенты Windows предпочитают вторую. Для настройки параметра маршруты надо перевести в шестнадцатеричный вид, собрав в одну строку маску сети назначения, адрес сети и шлюз. Также, по RFC, необходимо добавить и маршрут по умолчанию. Вариант настройки — под спойлером.


Настройка маршрутов

Предположим, нам нужно добавить клиентам маршрут вида dst-address=10.0.0.0/24 gateway=192.168.88.2, а основным шлюзом будет 192.168.88.1. Приведем это все в HEX:


Соберем все это счастье в одну строку и получим настройку:

/ip dhcp-server option

add code=121 name=classless value=0x0A0000c0a8580200c0a85801

Подробнее можно прочитать в статье «Mikrotik, DHCP Classless Route».

Option 252. Автоматическая настройка прокси-сервера. Если по каким-то причинам в организации используется непрозрачный прокси, то удобно будет настроить его у клиентов через специальный файл wpad (pac). Пример настройки такого файла разобран в материале «Proxy Auto Configuration (PAC)». К сожалению, в MiroTik нет встроенного веб-сервера для размещения этого файла. Можно использовать для этого пакет hotspot или возможности metarouter, но лучше разместить файл где-либо еще.

Option 82. Одна из полезнейших опций — только не для клиента, а для DHCP-релея. Позволяет передать серверу информацию о порте коммутатора, к которому подключен клиент, и id самого коммутатора. Сервер на основе этой информации в свою очередь может выдать уже клиенту какой-то определенный набор настроек или просто занести в лог — чтобы в случае необходимости найти порт подключения клиента, не приходилось заходить на все свитчи подряд (особенно, если они не в стеке).

После настройки DHCP-Relay на маршрутизаторе в информации о клиентах появятся поля Agent Circuit ID и Agent Remote ID, где первое — идентификатор порта коммутатора, а второе — идентификатор самого коммутатора.

Выдача адресов с option 82.

Информация выдается в шестнадцатиричном формате. Для удобства восприятия при анализе журнала DHCP можно использовать скрипты. Например, решение для решения от Microsoft опубликовано в галерее скриптов Technet под названием «Декорирование DHCP опции 82».

Также опция Option 82 активно используется в системе биллинга провайдеров и при защите сети от посторонних вмешательств. Об этом чуть подробнее.


Ввиду простоты протокола и присутствия широковещательных запросов есть эффективные атаки на инфраструктуру — в основном типа MITM («человек посередине»). Атаки производятся посредством поднятия своего DHCP-сервера или релея: ведь если контролировать выдачу сетевых настроек, можно запросто перенаправить трафик на скомпрометированный шлюз. Для облегчения атаки используется DHCP starvation (представляясь клиентом или релеем, злоумышленник заставляет «родной» DHCP-сервер исчерпать свои IP-адреса). Подробнее про реализацию атаки можно почитать в статье «Атакуем DHCP», методом же защиты является DHCP Snooping.

Это функция коммутатора, которая позволяет «привязать» DHCP-сервер к определенному порту. Ответы DHCP на других портах будут заблокированы. В некоторых коммутаторах можно настроить и работу с Option 82 при ее обнаружении в пакете (что говорит о присутствии релея): отбросить, заменить, оставить без изменения.

В коммутаторах MikroTik включение DHCP Snooping производится в настройках бриджа:

#Включаем dhcp-snooping и option 82

/interface bridge

add name=bridge

set [find where name="bridge"] dhcp-snooping=yes add-dhcp-option82=yes

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

/interface bridge port

add bridge=bridge interface=ether1

add bridge=bridge interface=ether2 trusted=yes

Настройка в других коммутаторах происходит аналогичным образом.


Стоит отметить, что не все модели MikroTik имеют полную аппаратную поддержку DHCP Snooping — она есть только у CRS3xx.

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

Красивая коммутационная — залог здоровья.

К другим методам защиты можно отнести Port Security («привязка» определенного MAC-адреса к порту маршрутизатора, при обнаружении трафика с других адресов порт будет блокироваться), Анализ трафика на количество DHCP-запросов и ответов или ограничение их количества, ну и, конечно, различные системы IPS\IDS.

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

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

Разберем более практичные варианты.

В системах Windows Server начиная с 2012 система резервирования DHCP работает «из коробки», в режиме балансировки нагрузки (active-active) или в режиме отказоустойчивости (active-passive). С подробным описанием технологии и настройками можно ознакомиться в официальной документации. Отмечу, что отказоустойчивость настраивается на уровне зоны, поэтому разные зоны могут работать в разном режиме.

Настройка отказоустойчивости DHCP-сервера в Windows.

В ISC DHCP Server для настройки отказоустойчивости используется директива failover peer, синхронизацию данных предлагается делать самостоятельно — например, при помощи rsync. Подробнее можно почитать в материале «Два DHCP сервера на Centos7…»

Если же делать отказоустойчивое решение на базе MikroTik, то без хитростей не обойтись. Один из вариантов решения задачи был озвучен на MUM RU 18, а затем и опубликован в блоге автора. Если вкратце: настраиваются два сервера, но с разным параметром Delay Threshold (задержка ответа). Тогда выдавать адрес будет сервер с меньшей задержкой, а с большей задержкой — только при выходе из строя первого. Синхронизацию информации опять же приходится делать скриптами.

Лично я в свое время изрядно потрепал себе нервов, когда в сети «случайно» появился роутер, подключенный в локальную сеть и WAN, и LAN интерфейсами.

Расскажите, а вам приходилось сталкиваться с проказами DHCP?

Что такое DHCP — энциклопедия lanmarket.

ua

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

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

Что такое DHCP? 

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

Зачем вам нужно использовать DНСР? Благодаря динамической адресации компьютер может иметь другой IP-адрес при каждом подключении к сети, к которой он принадлежит, без вмешательства администратора UNIX. Благодаря этой функции DHCP каждому новому компьютеру, добавленному в сеть, автоматически назначается уникальный IP-адрес. 

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

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

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


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

В зависимости от конфигурации DHCP-сервер может работать тремя способами: 

Динамическое распределение 

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

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

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

Статическое распределение 

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

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

Функции клиента DHCP 

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

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

Два дополнительных типа сообщений в определении DHCP предназначены для использования клиентом: сообщение DHCPINFORM и опция DHCPRELEASE. 

DHCP Inform 

Сообщение DHCPOFFER состоит из нескольких полей параметров в его структуре пакетов. Тем не менее, сервер редко использует все эти и не дает значений для каких-либо. Конкретной клиентской программе может потребоваться определенная информация для правильной настройки своего устройства в сети. Если эта важная информация отсутствует в сообщении предложения DHCP, она может отправить сообщение «Информер» с просьбой отправить детали. Если эта информация доступна, она будет отправлена сервером в виде другого сообщения «Предложение» с заполненными полями необходимых параметров. Примером использования DHCP Inform является то, что браузер часто использует это сообщение как способ получить веб-прокси с помощью процедур автоматического обнаружения веб-прокси. 

DHCP Release 

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

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

Другие узлы DHCP 

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

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

Связь ретранслятора с DHCP-сервером рассматривает оба устройства с использованием UDP-порта 67. 

Недостатки безопасности DHCP 

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

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

Использование DHCP-сервера. Домашние и офисные сети под Vista и XP

Использование DHCP-сервера

DHCP-сервер (Dynamic Host Configuration Protocol – протокол динамического конфигурирования IP-адреса компьютера) – механизм, контролирующий регистрацию компьютера в сети с последующей выдачей ему IP-адреса.

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

Область адресов распределяется между следующими группами (рис. 14.11):

Рис. 14.11. Структура групп в DHCP-сервере

• Пул адресов – пул адресов составляют адреса, получающиеся путем вычитания из общей области адресов, адресов, входящих в области исключения;

• Арендованные адреса – в данную группу попадают адреса, в данный момент арендованные подключенными к сети компьютерами или компьютерами, которые недавно подключились к сети;

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

Рассмотрим, как настраиваются описанные группы адресов.

Область адресов

При установке домена DHCP-сервер устанавливается автоматически. При этом по умолчанию создается одна область адресов в диапазоне 192.168.0.0-192.168.0.254, что позволяет подключить к сети 254 компьютера, среди которых в том числе и управляющие серверы. DNS-сервер автоматически привязывается к IP-адресу домена сети, на котором установлен DNS-сервер, то есть 192.168.0.1. По причине того что в сети могут существовать и другие служебные серверы, область адресов, доступная для свободного использования, уменьшается на 10 единиц. Поэтому реально область адресов состоит из адресов с диапазона 192.168.0.10– 192.168.0.254.

В этом легко убедиться, если вызвать свойства области, щелкнув правой кнопкой мыши на позиции Область и выбрав в появившемся меню пункт Свойства, – откроется окно свойств области (рис. 14.12). Обратите внимание на поле Начальный IP-адрес: адрес действительно начинается с 192.168.0.10.

Рис. 14.12. Окно свойств области

Как бы там ни было, в данном окне можно внести свои изменения. Так, если не нравится выделенный диапазон адресов области, то можно заменить его более узким. Здесь же можно указать срок резервирования адреса. По умолчанию он установлен равным 10 дням и 3 часам. Если того требует ситуация, то измените его или вообще отключите ограничения, установив переключатель в положение Без ограничений. Обычно параметры по умолчанию позволяют функционировать сети в нормальном режиме и их можно не трогать.

На вкладке Служба DNS данного окна можно настроить режим обновления списка соответствий имен и адресов DNS.

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

На вкладке Дополнительно (рис. 4.13) можно указать, как назначать динамические адреса разным клиентам.

Рис. 14.13. Настраиваем способ выделения динамических адресов

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

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

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

Пул адресов

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

Рис. 14.14. Внешний вид пула адресов

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

Чтобы добавить нужный адрес или диапазон адресов в список исключений, достаточно щелкнуть правой кнопкой мыши в правой части окна и в появившемся меню выбрать пункт Диапазон исключения. Откроется окно, в котором нужно ввести начальный и конечный адреса диапазона адресов, которые будут исключены из области аренды (рис. 14.15), и нажать кнопку Добавить.

Рис. 14.15. Добавляем исключение

Арендованные адреса

В группе Арендованные адреса (рис. 14.16) отображаются все адреса, на текущий момент выданные в аренду клиентам.

Рис. 14.16. Список арендованных адресов

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

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

Резервирование

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

Резервирование гарантирует выдачу указанного IP-адреса устройству, у которого логическое имя и МАС-адрес совпадают с указанными при вводе данными.

Чтобы зарезервировать адрес, выполните в главном меню команду Действие ? Добавить резервирование (см. рис. 14.16) – откроется окно Создать резервирование (рис. 14.17), в котором следует ввести имя компьютера, требуемый IP-адрес, МАС-адрес сетевого адаптера, описание и тип используемого для идентификации протокола. После нажатия кнопки Добавить система проанализирует введенный МАС-адрес, и если он указан неверно, то выдаст предупреждение.

Рис. 14.17. Ввод данных для резервирования адреса

Параметры области

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

Чтобы добавить параметр, следует щелкнуть правой кнопкой мыши на позиции Параметры области (см. рис. 14.16) и в появившемся меню выбрать пункт Настроить параметры – откроется окно (рис. 4.18), содержащее список параметров области.

Рис. 14.18. Настраиваем параметры области

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

Чтобы изменить параметры некоторых уже установленных параметров области, следует перейти на вкладку Дополнительно данного окна, найти в списке нужный параметр, отметить его флажком и указать новые параметры.

Параметры сервера

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

Данный текст является ознакомительным фрагментом.

Продолжение на ЛитРес

Для чего нужны маршрутизаторы | Помощь

Конструкция маршрутизатора

Поскольку маршрутизаторы являются пограничными сетевыми устройствами, то есть устанавливаются на границе между двумя сетями или между локальной сетью и Интернетом, выполняя роль сетевого шлюза, то они должны иметь как минимум два порта (см. рисунок). К одному из этих портов подключается локальная сеть, и этот порт называется внутренним LAN-портом. Ко второму порту подключается внешняя сеть (Интернет), и этот порт называется внешним WAN-портом. Как правило, маршрутизаторы класса SOHO имеют один WAN-порт и несколько (от одного до четырех) внутренних LAN-портов, которые объединяются в коммутатор. В большинстве случаев WAN-порт коммутатора имеет интерфейс 10/100Base-TX, и к нему может подключаться xDSL-модем с соответствующим интерфейсом либо сетевой Ethernet-кабель.

Учитывая широкое распространение беспроводных сетей, создан целый класс так называемых беспроводных маршрутизаторов. Эти устройства, кроме классического маршрутизатора с WAN- и LAN-портами, содержат интегрированную точку беспроводного доступа, поддерживающую протокол IEEE 802. 11a/b/g. Беспроводной сегмент сети, которую позволяет организовать точка доступа, относится к внутренней сети с точки зрения маршрутизатора, и в этом смысле компьютеры, подключаемые к маршрутизатору беспроводным образом, ничем не отличаются от компьютеров сети, подключенных к LAN-порту.

Любой маршрутизатор, как устройство сетевого уровня, имеет свой IP-адрес. Кроме того, IP-адрес есть и у его WAN-порта. К примеру, маршрутизатор может иметь следующий IP-адрес:

  • IP-адрес: 192.168.1.254;
  • маска подсети: 255.255.255.0.

При этом у его WAN-порта может быть такой адрес:

  • IP-адрес: 10.0.0.254;
  • маска подсети: 255.255.255.0.

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

  • IP-адрес: 192.168.1.10;
  • маска подсети: 255.255.255.0;
  • шлюз по умолчанию: 192.168.1.254.

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

  • IP-адрес: 10.0.0.10;
  • маска подсети: 255.255.255.0.

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

Протокол NAT

Большинство современных маршрутизаторов поддерживают протокол NAT (Network Address Translation), базирующийся на сеансовом уровне и по сути представляющий собой протокол трансляции сетевых адресов. NAT позволяет реализовать множественный доступ компьютеров локальной (частной) сети (каждый из которых имеет собственный внутренний IP-адрес) в Интернет, используя всего один внешний IP-адрес WAN-порта маршрутизатора. При этом все компьютеры во внутренней локальной сети становятся невидимыми извне, но для каждого из них внешняя сеть является доступной. Протокол NAT пропускает в сеть только те данные из Интернета, которые поступили в результате запроса от компьютера из локальной сети.

Протокол NAT решает две главные задачи:

  • помогает справиться с дефицитом IP-адресов, который становится все более острым по мере роста количества компьютеров;
  • обеспечивает безопасность внутренней сети — компьютеры локальной сети, защищенные маршрутизатором с активированным NAT-протоколом (устройством NAT), становятся недоступными из внешней сети.

Хотя протокол NAT не заменяет брандмауэр, он все же является важным элементом безопасности.

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

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

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

Устройство NAT принимает эти пакеты от сервера и анализирует их содержимое на основе своей таблицы сопоставления портов. Если в таблице будет найдено сопоставление порта, для которого IP-адрес источника, порт источника, порт назначения и сетевой протокол из входящего пакета совпадают с IP-адресом удаленного узла, удаленным портом и сетевым протоколом, указанным в сопоставлении портов, то NAT выполнит обратное преобразование: заменит внешний IP-адрес и внешний порт в полях назначения пакета на IP-адрес и внутренний порт клиента внутренней сети. Однако если в таблице сопоставления портов не находится соответствия, то входящий пакет отвергается и соединение разрывается.

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

Перенаправление портов (Port mapping)

Для того чтобы сделать доступными из внешней сети определенные приложения, запускаемые на сервере во внутренней сети (например, Web-сервер или ftp-сервер), в маршрутизаторе необходимо задать соответствие между портами, используемыми определенными приложениями, и IP-адресами тех виртуальных серверов внутренней сети, на которых эти приложения работают. В этом случае говорят о перенаправлении портов (Port mapping). В результате любой запрос из внешней сети на IP-адрес WAN-порта маршрутизатора (но не виртуального сервера) по указанному порту будет автоматически перенаправлен на указанный виртуальный сервер.

Существует несколько способов конфигурирования виртуального сервера. В простейшем случае задается статическое перенаправление портов, то есть IP-адрес виртуального сервера, разрешенный порт приложения на этом виртуальном сервере (Private Port) и порт запроса (Public Port). Если, к примеру, открыт доступ к Web-серверу (порт 80), расположенному во внутренней сети с IP-адресом 192.168.1.10, то при обращении из внешней сети по адресу 10.0.0.254 (адрес WAN-порта) по 80-му порту этот пакет будет перенаправлен маршрутизатором на Web-сервер. Если же происходит обращение по тому же адресу, но по 21-му порту, то такой пакет будет отвергнут маршрутизатором.

Маршрутизаторы позволяют создавать несколько статических перенаправлений портов. Так, на одном виртуальном сервере можно открыть сразу несколько портов или создать несколько виртуальных серверов с различными IP-адресами. Однако при статическом перенаправлении портов нельзя перенаправлять один порт на несколько IP-адресов, то есть порт может соответствовать только одному IP-адресу. Таким образом, невозможно, например, сконфигурировать несколько Web-серверов с разными IP-адресами — для этого придется менять порт Web-сервера по умолчанию и при обращении по 80-му порту в настройке маршрутизатора в качестве Private Port указывать измененный порт Web-сервера.

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

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

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

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

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

DMZ-зона

Демилитаризованная зона (DMZ-зона) — это еще один способ перенаправления портов. Данную возможность предоставляет большинство современных маршрутизаторов. При размещении в зоне DMZ компьютера внутренней локальной сети он становится прозрачным для протокола NAT. Фактически это означает, что компьютер внутренней сети виртуально располагается до брандмауэра. Для ПК, находящегося в DMZ-зоне, осуществляется перенаправление всех портов на один внутренний IP-адрес, что позволяет организовать передачу данных из внешней сети во внутреннюю.

Если, к примеру, сервер с IP-адресом 192.168.1.10, находящийся во внутренней локальной сети, размещен в DMZ-зоне, а сама локальная сеть защищена NAT-устройством, то поступивший из внешней сети по адресу WAN-порта маршрутизатора запрос будет переадресован по любому порту на IP-адрес 192.168.1.10, то есть на адрес виртуального сервера в DMZ-зоне.

DHCP-сервер

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

Виртуальные сети VPN

Большинство маршрутизаторов в той или иной степени поддерживают возможность создания виртуальных частных сетей (Virtual Private Networking, VPN), что позволяет организовывать защищенное соединение с локальной (внутренней) сетью извне.

Для создания VPN-сетей, как правило, используются три протокола: сквозной туннельный протокол (Point-to-Point Tunneling Protocol, PPTP), протокол IPsec и туннельный протокол второго уровня (Layer 2 Tunneling Protocol, L2TP).

PPTP

Сквозной туннельный протокол, созданный корпорацией Microsoft, никак не меняет протокол PPP, но предоставляет для него новое транспортное средство.

PPTP определяет протокол управления вызовами, который позволяет серверу управлять удаленным коммутируемым доступом через телефонные сети общего пользования (PSTN) или цифровые каналы (ISDN) либо инициализировать исходящие коммутируемые соединения. PPTP использует механизм общей маршрутной инкапсуляции (GRE) для передачи пакетов PPP, обеспечивая при этом контроль потоков и сетевых заторов. Безопасность данных в PPTP может обеспечиваться при помощи протокола IPsec.

L2TP

Туннельный протокол второго уровня — это своего рода объединение протокола PPTP и протокола эстафетной передачи на втором уровне (Layer 2 Forwarding, L2F), разработанного компанией Cisco. Протокол L2F обеспечивает туннелирование протоколов канального уровня с использованием протоколов более высокого уровня, например IP.

Протоколы L2F и PPTP имеют сходную функциональность, поэтому компании Cisco и Microsoft решили совместно разработать единый стандартный протокол, который и получил название туннельного протокола второго уровня.

IPsec

IPsec — это протокол защиты сетевого трафика путем использования алгоритмов шифрования на IP-уровне. Данный протокол предусматривает два режима функционирования: транспортный и туннельный. В транспортном режиме протокол IPsec применяется к содержимому IP-пакетов, при этом их исходные заголовки остаются видимыми. Туннельный режим инкапсулирует исходные IP-пакеты в IPsec-пакеты с новыми заголовками IP и позволяет эффективно скрывать исходные IP-пакеты. Режимы функционирования VPN

Существует два режима функционирования VPN: сквозной (Pass Through) и активный. В первом случае маршрутизатор без вмешательства передает входящий и исходящий VPN-трафики, пропуская через себя инкапсулированные пакеты данных без просмотра их содержимого. Если маршрутизатор поддерживает режим VPN Pass Through, то необходимо только настроить соединение на VPN-клиентах (компьютеры во внутренней сети) таким образом, чтобы клиенты из внутренней сети могли свободно подключаться к серверу VPN снаружи. Однако при совместном использовании NAT- и VPN-туннелей могут возникать проблемы.

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

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

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

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

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

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

Сетевая модель OSI

В первую очередь нам нужно познакомиться с сетевой моделью OSI. Эта модель стандартизирует взаимодействие сетевых протоколов.

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

  1. Физический уровень (physical layer)
  2. Канальный уровень (data link layer)
  3. Сетевой уровень (network layer)
  4. Транспортный уровень (transport layer)
  5. Сеансовый уровень (session layer)
  6. Представительский уровень или уровень представления (presentation layer)
  7. Прикладной уровень (application layer)
Физический уровень (physical layer)

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

Канальный уровень (data link layer)

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

Кто же выступает в роли отправителя и получателя?

Во-первых, у каждой машины (включая твой ноут) есть NIC — Network Interface Controller. Это железка (или виртуальная железка), которая отвечает за передачу и приём кадров. У NIC есть MAC-адрес — уникальный адрес, который обычно прошит в железке, или же генерируется системой виртуализации.

Само собой, у машины может быть несколько NIC. Посмотрим интерфейсы при помощи команды ip:

[root@localhost ~]$ ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 52:54:00:05:36:e6 brd ff:ff:ff:ff:ff:ff

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

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

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

Например, свитч (switch).

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

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

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

Другое устройство — мост (bridge). Мост L2 используют чтобы объединить две сети, сформированные при помощи свитчей, примерно таким образом:

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

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

Как я уже упомянул, есть ещё свитчи L3, которые могут не просто перенаправлять кадры от одного устройства к другому, но и обладают более продвинутыми фишками, типа маршрутизации. Чем же отличается роутер от свитча L3, спросишь ты? Тут всё сложно (и скучно), но если тебе интересно, то прочитай статью Layer 3 Switches compared to Routers

Сетевой уровень (network layer)

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

[root@localhost ~]$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:05:36:e6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.212/24 brd 192.168.122.255 scope global dynamic eth0
       valid_lft 2930sec preferred_lft 2930sec
    inet6 fe80::5054:ff:fe05:36e6/64 scope link
       valid_lft forever preferred_lft forever

Интерфейсу eth0 присвоен адрес 192.168.122.212/24.

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

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

CIDR — это метод выделения блоков адресов отдельным сетям. 8 степени, или 256 адресов. Значит, последний адрес сети будет равен 192.168.122.255.

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

ARP

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

В Линуксе есть одноимённая команда arp, которая позволит посмотреть табличку известных машине MAC-адресов и соответствующих им IP адресов:

[root@localhost]# arp -n
Address HWtype HWaddress Flags Mask Iface
192.168.178.1 ether 5c:49:79:99:f3:23 C wlp3s0

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

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

Один из видов кибер-атак связан с ARP и называется ARP spoofing. Цель такой атаки — подменить MAC-адрес, ассоциированный с определённым IP, на адрес машины хакера. Как страшно жить, да?

DHCP

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

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

За детальным изучением DHCP обратись к документации в RFC: https://www.ietf.org/rfc/rfc2131.txt

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

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

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

  1. DHCP-клиент отправляет broadcast сообщение с вопросом «Хочу IP адрес»
  2. DHCP-сервер его ловит и в ответ отправляет так же broadcast сообщение «У меня есть адрес 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=Managed
KEY_MGMT=WPA-PSK
TYPE=Wireless
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME="FRITZ!Box 7490"
UUID=55ba9218-1d2f-407d-af13-51502d542edb
ONBOOT=yes
SECURITYMODE=open
PEERDNS=yes
PEERROUTES=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes

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

[root@localhost network-scripts]# cat ifcfg-lo
DEVICE=lo
IPADDR=127.0.0.1
NETMASK=255.0.0.0
NETWORK=127.0.0.0
# If you're having problems with gated making 127.0.0.0/8 a martian,
# you can change this to something else (255. 255.255.255, for example)
BROADCAST=127.255.255.255
ONBOOT=yes
NAME=loopback

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

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

default via 172.20.10.1 dev wlp3s0 proto static metric 600
172.20.10.0/28 dev wlp3s0 proto kernel scope link src 172.20.10.3 metric 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: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 4c:34:88:54:c1:2b brd ff:ff:ff:ff:ff:ff
    inet 172.20.10.3/28 brd 172.20.10.15 scope global dynamic wlp3s0
       valid_lft 83892sec preferred_lft 83892sec
    inet6 fe80::4e34:88ff:fe54:c12b/64 scope link
       valid_lft forever preferred_lft forever

Командой ip r add можно добавлять новые пути, а командой ip r del — удалять.

DNS

Про DNS ты наверняка слышишь не в первый раз. Простая идея: обращаться к серверу не по IP адресу (тяжело запомнить для людей), а по нормальному имени.

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

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

Есть возможность обновлять записи в DNS-сервере динамически. Для этого почитай про nsupdate. Ниже найдёшь ссылку на отличное руководство по настройке, включая безопасное обновление записей. Одно из интересных применений — service discovery. Поищи в Интернете, о чём это, или дождись соответствующей статьи на mkdev 😉

До появления DNS всё, что у нас было — это файлик /etc/hosts. Он и сейчас часто используется.

Рубрика «Вирусы для чайников»! Открываем /etc/hosts на компьютера друга и добавляем туда строчку 52.28.20.212 vk.com. Хватит другу сидеть вконтакте, пусть учится разработке!

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

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

Дебажить DNS проблемы удобнее всего командой dig и nslookup. Например, чтобы запросить информацию о mkdev.me у nameserver 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
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3320
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;mkdev.me. IN A

;; ANSWER SECTION:
mkdev. me. 299 IN A 52.28.20.212

;; Query time: 355 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Fri May 27 12:51:04 CEST 2016
;; MSG SIZE rcvd: 53

Виртуалки

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

В первую очередь, создадим виртуалку при помощи virt-install:

sudo virt-install --name mkdev-networking-basics-1 \
--location ~/Downloads/CentOS-7-x86_64-Minimal-1511.iso \
--initrd-inject /path/to/ks.cfg \
--extra-args ks=file:/ks.cfg \
--memory=1024 --vcpus=1 --disk size=8

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

[root@localhost]# virsh net-list
 Name State Autostart Persistent
----------------------------------------------------------
 default active yes yes

Блок 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 default
<network connections='1'>
  <name>default</name>
  <uuid>f2ee9249-6bed-451f-a248-9cd223a80702</uuid>
  <forward mode='nat'>
    <nat>
      <port start='1024' end='65535'/>
    </nat>
  </forward>
  <bridge name='virbr0' stp='on' delay='0'/>
  <mac address='52:54:00:83:b4:74'/>
  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254'/>
    </dhcp>
  </ip>
</network>

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

bridge, или устройство virbr0, или virtual network switch — это специальное устройство, в которое подсоединяются все виртуалки этой сети. Все запросы от одной виртуалки к другой в пределах одной сети идут через этот виртуальный свитч. Для каждой сети libvirt создаёт по одному виртуальному свитчу и каждый свитч распознаётся как отдельное устройство на хост машине:

[root@localhost]# ip link show
8: virbr1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT
    link/ether 52:54:00:a8:02:f2 brd ff:ff:ff:ff:ff:ff

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

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

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

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

  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254'/>
    </dhcp>
  </ip>

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

Выполнив ip r в виртуалке увидим:

[vagrant@localhost ~]$ ip r
default via 192.168.122.1 dev eth0 proto static metric 100
192. 168.122.0/24 dev eth0 proto kernel scope link src 192.168.122.209 metric 100

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

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

`[root@CentOS-72-64-minimal ~]# ps aux | grep dns
nobody 10600 0.0 0.0 15548 856 ? S Apr01 0:02 /sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper
root 10601 0.0 0.0 15520 312 ? S Apr01 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 default
 Expiry Time MAC address Protocol IP address Hostname Client ID or 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 (Network Address Translation) — механизм преобразования IP адресов в сетевых пакетах. Обычно в пакете указан IP, откуда пакет отправлен и IP, куда пакет идёт. NAT позволяет динамически менять эти адреса и сохранять таблицу подменённых адресов.

Существует SNAT (source NAT), который и используется для наших виртуалок для доступа в Интернет. Когда пакет отправляется, то его исходящий адрес заменяется на адрес хост машины. Когда ответ от сервера назначения идёт назад, то адрес меняется с адреса хост машины на адрес виртуалки. Меняет адрес роутер.

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

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

Для NAT libvirt использует iptables. Если кратко, то это инструмент, отвечающий за фильтрацию сетевых пакетов. iptables настраиваются через специальные правила (rules), которые комбинируются в цепочки (chains). Вот путём добавления таких правил libvirt и добавляет нашим виртуалкам доступ в Интернет, используя NAT. Мы вернёмся к iptables когда будем говорить о безопасности в целом.

Ещё для того чтобы на хосте работало перенаправление пакетов в настройках ядра должна быть включена опция ipforward. Включается она просто: `echo 1 > /proc/sys/net/ipv4/ipforward`

tcpdump

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

Открываем консоль на хост-машине и делаем tcpdump -i virbr0.

Открываем отдельное окошко и делаем virsh reboot #{номер_виртуалки}.

Смотрим результат в первом окошке и видимо откуда какие запросы пришли:

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on virbr0, link-type EN10MB (Ethernet), capture size 262144 bytes
12:57:31.339135 IP6 :: > ff02::16: HBH ICMP6, multicast listener report v2, 1 group record(s), length 28
12:57:31.397937 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 52:54:00:e0:06:54 (oui Unknown), length 300
12:57:31.398182 IP linux.fritz.box.bootps > 192.168.122.209.bootpc: BOOTP/DHCP, Reply, length 301
12:57:31.590332 ARP, Request who-has linux.fritz.box tell 192.168.122.209, length 28
12:57:31.590373 ARP, Reply linux.fritz.box is-at 52:54:00:7e:33:23 (oui Unknown), length 28
12:57:31.590409 IP 192.168.122.209.38438 > linux.fritz.box.domain: 61342+ A? 0.centos.pool.ntp.org. (39)
12:57:31.590458 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)
### И так далее

Вот, например, broadcast от виртуалки: 12:57:31.397937 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 52:54:00:e0:06:54 (oui Unknown), length 300.

Ну и заодно глянем ARP табличку:

Address HWtype HWaddress Flags Mask Iface
# ...
192.168.122.209 ether 52:54:00:e0:06:54 C virbr0
# ...
VPN

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

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

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

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

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

Мы только что пробежались по самым основам сетей, но, конечно же, есть ещё с десяток технологий, которые стоит посмотреть. Погугли самостоятельно VXLAN, изучи TCP и UDP (и разберись когда какой использовать), глянь что такое ICMP. Ты постоянно будешь сталкиваться с новыми терминами, но, как и всегда, главное — усвоить основы.

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

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

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

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

Что дальше?

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

Дополнительное чтение

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

Что такое DHCP и почему он важен?

Протокол динамической конфигурации хоста (DHCP) — это протокол управления сетью, используемый для автоматизации процесса настройки устройств в IP-сетях, что позволяет им использовать сетевые службы, такие как DNS, NTP, и любой протокол связи, основанный на UDP или TCP. DHCP-сервер динамически назначает IP-адрес и другие параметры конфигурации сети каждому устройству в сети, чтобы они могли взаимодействовать с другими IP-сетями. DHCP является усовершенствованием старого протокола BOOTP.DHCP — важная часть решения DDI (DNS-DHCP-IPAM).

Смотрите и учитесь у Сюзанны: основы DHCP за 20 минут

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

Данные конфигурации, отправляемые DHCP-сервером, и ключевые значения

Основной поток состоит в том, что DHCP-сервер передает данные конфигурации запрашивающему клиенту на основе политики администратора.Запрошенные общие параметры сети (иногда называемые «параметрами DHCP») включают маску подсети, маршрутизатор, сервер доменного имени, имя хоста и имя домена.

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

Служба DHCP обеспечивает три ключевых значения: 1) Уменьшение рабочих задач: сетевому администратору больше не нужно вручную настраивать каждого клиента, прежде чем он сможет использовать сеть 2) План IP-адресации оптимизирован: адреса, которые больше не используются, освобождаются запущен и предоставлен новым подключающимся клиентам 3) Мобильность пользователей легко управляется: администратору не нужно вручную перенастраивать клиента при изменении его точки доступа к сети.

Управление сроком аренды DHCP

Информация об IP-адресе, назначенная DHCP, действительна только в течение ограниченного периода времени и известна как аренда DHCP.Срок действия называется временем аренды DHCP. По истечении срока аренды клиент больше не может использовать IP-адрес и должен прекратить всякую связь с IP-сетью, если только он не попросит продлить «аренду» аренды через цикл продления аренды DHCP. Чтобы избежать влияния того, что DHCP-сервер недоступен в конце срока аренды, клиенты обычно начинают продлевать аренду в середине срока аренды. Этот процесс обновления обеспечивает надежное распределение IP-адресов для устройств. Любое устройство, запрашивающее новый IP-адрес версии 4 по прибытии в сеть и не получившее ответа, будет использовать автоматическую адресацию частного интернет-протокола (APIPA) для выбора адреса.Эти адреса находятся в сетевом диапазоне 169.254.0.0/16.

Сценарии использования

Существует четыре основных сценария использования DHCP: 1. Первоначальное подключение клиента: клиент запрашивает у DHCP-сервера IP-адрес и другие значения параметров для доступа к сетевым службам. 2. Расширение использования IP: клиент связывается с DHCP-сервером. для расширения использования своего текущего IP-адреса 3. Подключение клиента после перезагрузки: клиент связывается с DHCP-сервером для подтверждения того, что он может использовать тот же IP-адрес, который использовался до перезагрузки 4.Отключение клиента: клиент запрашивает у DHCP-сервера освобождение его IP-адреса.

Параметры DHCP

Параметры

DHCP могут использоваться для автоматического предоставления клиентам информации о сетевых службах, которые он может использовать. Это очень эффективный способ передачи IP-адреса сервера времени, почтового сервера, DNS-сервера и сервера печати. Это также можно использовать для предоставления имени файла и файлового сервера, который будет использоваться клиентом для запуска определенного процесса загрузки — в основном используется для IP-телефонов и точек доступа Wi-Fi, но также может использоваться для автоматической установки клиентов. и серверы с PXE (Preboot eXecution Environment).

Реализация службы DHCP

Первоначальная и наиболее полная реализация службы DHCP предлагается Internet Systems Consortium (ISC). Поддерживая IPv4 и IPv6, ISC DHCP предлагает полное решение с открытым исходным кодом для реализации DHCP-серверов, агентов ретрансляции и клиентов. Другие продукты DHCP-сервера включают DHCP-сервер Microsoft.

Служба DHCP может быть расширена за счет аварийного переключения DHCP для обеспечения высокой доступности и балансировки нагрузки трафика.Отказоустойчивость ISC DHCP зависит от наличия пары взаимодействующих серверов — первичного (главного) сервера и вторичного (резервного) сервера. Затем между двумя серверами необходимо настроить канал связи на основе TCP, называемый каналом переключения при отказе.

Узнать больше

Решение Smart DDI

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

Сообщение в блоге

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

Что такое DHCP-сервер?

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

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

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

Что такое DHCP?

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

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

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

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

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

При использовании модели клиент-сервер DHCP-сервер становится хостом, а устройство, подключенное к сети, — клиентом. Как только клиент делает запрос в сеть для получения IP-адреса, хост назначает IP-адрес, взятый из списка доступных ему опций. Затем это позволяет установить связь между устройством и сетью.

Основные преимущества DHCP

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

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

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

Другие преимущества включают:

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

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

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

Нужен ли мне DHCP?

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

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

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

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

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

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

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

Что нужно знать о DHCP

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

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

Рекомендуемые ресурсы

Отчет о безопасности удаленного персонала

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

Загрузить сейчас

Локальное хранилище по сравнению с общедоступным облачным хранилищем

Экономические преимущества локального хранилища объектов по сравнению с общедоступным облако для корпоративного хранилища данных

Загрузить сейчас

Будущее CIAM

Четыре тенденции, формирующие управление идентификацией и доступом

Загрузить сейчас

Реализация преимуществ автоматизированного машинного обучения

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

Загрузить сейчас

Определен DHCP и как это работает

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

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

Определение DHCP

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

Помимо IP-адреса, DHCP также назначает маску подсети, адрес шлюза по умолчанию, адрес сервера доменных имен (DNS) и другие соответствующие параметры конфигурации. Запрос на комментарии (RFC) 2131 и 2132 определяет DHCP как стандарт, определенный группой инженеров Интернета (IETF), основанный на протоколе BOOTP.

DHCP упрощает управление IP-адресами

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

Компоненты DHCP

При работе с DHCP важно понимать все компоненты. Ниже приведен их список и их назначение:

  • DHCP-сервер: сетевое устройство, на котором запущена служба DCHP, которая хранит IP-адреса и соответствующую информацию о конфигурации.Чаще всего это сервер или маршрутизатор, но может быть что угодно, выступающее в роли хоста, например, устройство SD-WAN.
  • DHCP-клиент: конечная точка, которая получает информацию о конфигурации от DHCP-сервера. Это может быть компьютер, мобильное устройство, конечная точка Интернета вещей или что-либо еще, для чего требуется подключение к сети. Большинство из них по умолчанию настроено на получение информации DHCP.
  • Пул IP-адресов: диапазон адресов, доступных DHCP-клиентам. Адреса обычно распределяются последовательно от низшего к высшему.
  • Подсеть: IP-сети можно разделить на сегменты, известные как подсети. Подсети помогают поддерживать управляемость сетей.
  • Аренда: период времени, в течение которого DHCP-клиент хранит информацию об IP-адресе. Когда срок аренды истекает, клиент должен его продлить.
  • DHCP-ретранслятор: маршрутизатор или хост, который прослушивает широковещательные сообщения клиентов в этой сети, а затем пересылает их настроенному серверу. Затем сервер отправляет ответы обратно агенту ретрансляции, который передает их клиенту.Это можно использовать для централизации DHCP-серверов вместо того, чтобы иметь сервер в каждой подсети.

Преимущества DHCP-серверов

Помимо упрощенного управления, использование DHCP-сервера дает и другие преимущества. К ним относятся:

  • Точная конфигурация IP: параметры конфигурации IP-адреса должны быть точными, и при работе с такими входами, как «192.168.159.3», легко ошибиться. Типографические ошибки обычно очень трудно устранить, и использование DHCP-сервера сводит к минимуму этот риск.
  • Уменьшение количества конфликтов IP-адресов: каждое подключенное устройство должно иметь IP-адрес. Однако каждый адрес можно использовать только один раз, и дублирующийся адрес приведет к конфликту, когда одно или оба устройства не могут быть подключены. Это может произойти, когда адреса назначаются вручную, особенно когда имеется большое количество конечных точек, которые подключаются только периодически, например, мобильные устройства. Использование DHCP гарантирует, что каждый адрес используется только один раз.
  • Автоматизация администрирования IP-адресов: без DHCP сетевым администраторам пришлось бы назначать и отзывать адреса вручную.Отслеживание того, какое устройство имеет какой адрес, может оказаться бесполезным занятием, поскольку практически невозможно понять, когда устройствам требуется доступ к сети, а когда они уходят. DHCP позволяет автоматизировать и централизовать это, так что сетевые специалисты могут управлять всеми местоположениями из одного места.
  • Эффективное управление изменениями: использование DHCP упрощает изменение адресов, областей действия или конечных точек. Например, организация может захотеть изменить свою схему IP-адресации с одного диапазона на другой.Сервер DHCP настроен с использованием новой информации, и информация будет распространена на новые конечные точки. Точно так же, если сетевое устройство обновляется и заменяется, настройка сети не требуется.

DHCP представляет собой угрозу безопасности

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

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

Спецификация DHCP решает некоторые из этих проблем. Существует опция информации агента ретрансляции, которая позволяет инженерам маркировать сообщения DHCP по мере их поступления в сеть. Этот тег можно использовать для управления доступом к сети. Также существует возможность аутентификации сообщений DHCP, но управление ключами может быть сложным и сдерживает принятие. Использование аутентификации 802.1x, также известной как контроль доступа к сети (NAC), может использоваться для защиты DHCP. Большинство ведущих поставщиков сетей поддерживают NAC, и его развертывание стало значительно проще.

Присоединяйтесь к сообществам Network World на Facebook и LinkedIn, чтобы комментировать самые важные темы.

Авторские права © IDG Communications, Inc., 2018

Протокол динамической конфигурации хоста (DHCP)

  • 2 минуты на чтение

В этой статье

Применимо к: Windows Server (полугодовой канал), Windows Server 2016

Вы можете использовать этот раздел для краткого обзора DHCP в Windows Server 2016.

Примечание

Помимо этого раздела доступна следующая документация по DHCP.

Протокол динамической конфигурации хоста (DHCP) — это протокол клиент / сервер, который автоматически предоставляет хосту Интернет-протокола (IP) его IP-адрес и другую связанную информацию о конфигурации, такую ​​как маска подсети и шлюз по умолчанию. RFC 2131 и 2132 определяют DHCP как стандарт инженерной группы Интернета (IETF), основанный на протоколе начальной загрузки (BOOTP), протоколе, с которым DHCP разделяет многие детали реализации.DHCP позволяет хостам получать необходимую информацию о конфигурации TCP / IP от DHCP-сервера.

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

Зачем нужен DHCP?

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

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

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

  • Допустимые параметры конфигурации TCP / IP для всех клиентов в сети.

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

  • Зарезервированные IP-адреса, связанные с конкретными DHCP-клиентами. Это позволяет согласованно назначать один IP-адрес одному DHCP-клиенту.

  • Продолжительность аренды или период времени, в течение которого IP-адрес может использоваться до того, как потребуется продление аренды.

Клиент с поддержкой DHCP при принятии предложения аренды получает:

  • Действительный IP-адрес подсети, к которой он подключается.

  • Запрошенные параметры DHCP, которые представляют собой дополнительные параметры, которые DHCP-сервер настроен для назначения клиентам.Некоторые примеры параметров DHCP: маршрутизатор (шлюз по умолчанию), DNS-серверы и DNS-имя домена.

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

DHCP обеспечивает следующие преимущества.

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

  • Ограниченное сетевое администрирование .DHCP включает следующие функции для упрощения администрирования сети:

    • Централизованная и автоматическая настройка TCP / IP.

    • Возможность определять конфигурации TCP / IP из центра.

    • Возможность назначать полный диапазон дополнительных значений конфигурации TCP / IP с помощью опций DHCP.

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

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

Действительно ли отключение DHCP на маршрутизаторе помогает вашей безопасности?

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

Что такое DHCP и что такое статический IP-адрес?

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

Короче говоря,

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

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

Причина отключения DHCP

Многие люди считают DHCP довольно рискованным для вашей сети, особенно если у вас есть открытое соединение Wi-Fi (т. Е. Вам не требуется «пароль» для подключения к маршрутизатору через Wi-Fi).Это связано с тем, что каждое устройство, запрашивающее соединение, будет допущено к сети и независимо от него будет назначен IP-адрес. Идея состоит в том, что большинство устройств не ожидают необходимости в статическом IP-адресе и пытаются запросить IP-адрес у маршрутизатора. Если на маршрутизаторе не включен DHCP, он проигнорирует этот запрос, и устройство не подключится.

Недостатки в помещении

Что делать, если у вас есть соединение Wi-Fi с защитой WPA2? А вам еще нужно отключить DHCP?

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

Это не единственная проблема всей концепции. Средний маршрутизатор использует в качестве IP-адреса 192.168.0.x или 10.0.0.x. Для настройки статического IP-адреса для других компьютеров в вашей сети необходимо, чтобы вы находились в той же подсети, что и маршрутизатор, поэтому вы зависите от любого диапазона IP-адресов, который использует ваш маршрутизатор, что ограничивает ваш выбор. Конечно, вы всегда можете изменить внутренний IP-адрес маршрутизатора и все.Однако большинство людей, которые выступают за отключение DHCP, не включают изменение IP-адреса маршрутизатора (на что-то неясное, например, 167.12.35.2 или что-то в этом роде) в процессе.

Урок

Если вы действительно хотите повысить безопасность, установите пароль WEP / WPA / WPA2 для антенны Wi-Fi маршрутизатора. Я настоятельно рекомендую использовать последние два (WPA / WPA2), поскольку в WEP есть огромные дыры, которые может преодолеть практически любой посредственный хакер.

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

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

Мигель Лейва-Гомес

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

Эта статья полезна? да Нет

Что такое DHCP и как он работает?

Что такое DHCP и как он работает?

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

DHCP

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

Компоненты DHCP
  1. DHCP-сервер: Обычно это сервер или маршрутизатор, который хранит информацию о конфигурации сети.
  2. DHCP-клиент: Это конечная точка, которая получает информацию о конфигурации с сервера, как любой компьютер или мобильный телефон.
  3. Агент DHCP-ретрансляции: Если у вас есть только один DHCP-сервер для нескольких LAN, то агент DHCP-ретрансляции, присутствующий в каждой сети, пересылает DHCP-запрос на серверы.Это связано с тем, что пакеты DHCP не могут проходить через маршрутизатор. Следовательно, агент ретрансляции необходим, чтобы серверы DHCP могли обрабатывать запросы из всех сетей.
  4. Пул IP-адресов: Он содержит список IP-адресов, доступных для назначения клиенту.
  5. Маска подсети: Сообщает хосту, в какой сети он находится в настоящее время.
  6. Время аренды: Это время, в течение которого IP-адрес доступен клиенту.По истечении этого времени клиент должен обновить IP-адрес.
  7. Адрес шлюза: Адрес шлюза позволяет узлу узнать, где шлюз должен подключаться к Интернету.
Как работает DHCP?

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

  • Обнаружение DHCP: Клиент DHCP передает широковещательные сообщения для обнаружения серверов DHCP.Клиентский компьютер отправляет пакет с назначением широковещательной передачи по умолчанию 255.255.255.255 или конкретным широковещательным адресом подсети, если он настроен. 255.255.255.255 — это специальный широковещательный адрес , что означает « эта сеть »: он позволяет отправлять широковещательный пакет в сеть, к которой вы подключены.
  • Предложение DHCP: Когда сервер DHCP получает сообщение DHCP Discover, он предлагает или предлагает IP-адрес (из пула IP-адресов) клиенту, отправляя клиенту сообщение с предложением DHCP.Это сообщение с предложением DHCP содержит предлагаемый IP-адрес для DHCP-клиента, IP-адрес сервера, MAC-адрес клиента, маску подсети, шлюз по умолчанию, DNS-адрес и информацию об аренде.
  1. предлагаемый IP-адрес для DHCP-клиента (здесь 192.168.1.11)
  2. Маска подсети для идентификации сети (здесь 255.255.255.0)
  3. IP-адрес шлюза по умолчанию для подсети (здесь 192.168.1.1)
  4. IP-адрес DNS сервер для преобразования имен (здесь 8.8.8.8)
  • Запрос DHCP: В большинстве случаев клиент может получить несколько предложений DHCP , потому что в сети много серверов DHCP (поскольку они обеспечивают отказоустойчивость).Если IP-адресация одного сервера не работает, другие серверы могут предоставить резервную копию. Но клиент примет только одно предложение DHCP. В ответ на предложение клиент отправляет DHCP-запрос , запрашивая предложенный адрес от одного из DHCP-серверов. Все остальные IP-адреса, предлагаемые оставшимися DHCP-серверами, удаляются и возвращаются в пул доступных IP-адресов.
  • Подтверждение DHCP: Затем сервер отправляет подтверждение клиенту, подтверждая аренду DHCP клиенту.Сервер может отправить любую другую конфигурацию, которую мог запросить клиент. На этом этапе настройка IP завершена, и клиент может использовать новые настройки IP.
Преимущества DHCP
  1. Это легко реализовать, а автоматическое назначение IP-адреса означает точный IP-адрес.
  2. Ручная настройка IP-адреса не требуется. Следовательно, это экономит время и рабочую нагрузку для сетевых администраторов.
  3. Отсутствуют повторяющиеся или недействительные IP-адреса, что означает отсутствие конфликта IP-адресов.
  4. Это большое преимущество для мобильных пользователей, поскольку новые допустимые конфигурации автоматически получаются при смене сети.
Недостатки DHCP
  1. Поскольку серверы DHCP не имеют безопасного механизма для аутентификации клиента, любой новый клиент может присоединиться к сети. Это создает риски безопасности, такие как получение неавторизованными клиентами IP-адреса и истощение IP-адреса от неавторизованных клиентов.
  2. DHCP-сервер может быть единственной точкой отказа, если в сети есть только один DHCP-сервер.

Это все о DHCP и его работе. Надеюсь, вы узнали что-то новое сегодня.

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

Продолжайте учиться 🙂

Команда AfterAcademy !!

Что такое DHCP — Обзор назначения IP-адресов

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

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

Назначение DHCP

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

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

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

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

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

DHCP — это, по сути, автоматизированный «plug-and-play» для вашей сети. Это позволяет каждому устройству автоматически настраиваться для бесперебойного подключения. Чтобы уточнить, как устройства подключаются, в конечном итоге назначаются IP-адреса и соответствующие параметры конфигурации. И когда они покидают сеть и срок их аренды истекает, их информация обычно возвращается в локальную базу данных DHCP-сервера, а затем переназначается другим устройствам.

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

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

Когда сервер протокола динамической конфигурации хоста получает сообщение от клиента, он также передает сообщение с предложением DHCP по сети Ethernet, информируя клиента о его доступности.

Преимущества протокола динамической конфигурации хоста

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

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

Важные концепции DHCP

DHCP-сервер

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

DHCP-клиент

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

Статический против динамического IP

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

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

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

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

Аренда

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

Примеры серверов протокола динамической конфигурации хоста

Протокол DHCP через ISP

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

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

Протокол DHCP через маршрутизатор

На вкладке General Setup или LAN Setup в большинстве маршрутизаторов есть параметр настройки для протокола динамической конфигурации хоста.Эта опция может контролировать количество назначенных IP-адресов, а также включать / отключать серверную часть маршрутизатора. Если опция сервера отключена, каждому компьютеру необходимо будет статически назначить IP-адрес.

Это касается проводных и беспроводных сетей. Любое соединение в сети должно иметь IP-адрес.

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

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

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