📑 основные понятия dhcp

Связь DHCP и клиента в разных подсетях

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

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

Вспомним, что первое сообщение, которое отправляет клиент, чтобы найти сервер («DHCPDISCOVER»), – широковещательное. Следовательно, клиент и сервер из разных подсетей не смогут просто так взаимодействовать. 

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

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

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

Если то для чего нужен DHCP, понять довольно просто, то с принципом его работы нужно немного разобраться. Присвоение IP посредством DHCP выполняется в 4 действия:

  • Discover (Поиск сервера). Клиент, которому нужно получить сетевой адрес, отправляет сообщение на все компьютеры в сети с запросом на присвоение ему IP. Для своей временной идентификации клиенту присваивается адрес 0.0.0.0;
  • Offer (Предложение сервера). Сервер получает запрос от клиента, анализирует его и, исходя из своих настроек, подбирает конфигурацию и отправляет её клиенту;
  • Request (Запрос). Получив предлагаемые настройки, клиент отправляет на адрес ответившего ему сервера запрос о предоставлении ему этих настроек;
  • Acknowledge (Подтверждение). Сервер получает запрос на уже конкретные настройки, предложенные ранее, создаёт привязку для клиента и отправляет ему их.

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

Список клиентов

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

ID — означает порядковый номер.

Имя клиента — это имя устройства, если оно ему присвоено.

МАС-адрес — соответственно МАС-адрес данного устройства.

Назначенный IP — адрес, который был присвоен устройству сервером DHCP.

Срок действия — соответственно, оставшееся время, в течение которого данный адрес будет действителен.

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

Создать загрузочный диск или диск новой ОС Mint

Перед установкой свежей Cinnamon Mint лучше всего создать загрузочную копию. Самым последним выпуском на данный момент является 19.2 под кодовым названием «Tina».

Запишите DVD (32-разрядный или 64-разрядный в зависимости от используемого оборудования) или создайте загрузочный флэш-накопитель USB. Если вы не уверены, какое издание выбрать, наиболее популярным является «Cinnamon 64-bit edition». Вы можете получить ссылку для загрузки Cinnamon Mint на официальная страница,

Обратитесь к Linux Mint Руководство по установке чтобы помочь вам создать загрузочный носитель, загрузить нужный ISO-образ и установить Linux Mint на свой компьютер. Руководство доступно на нескольких языках и в разных форматах, таких как PDF, ePub и HTML.

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

Некоторые дополнительные параметры

option domain-name string;

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

option netbios-name-servers ip-address [, ip-address…];

Задает список серверов имен NetBIOS (NBNS), соответствующих RFC 1001/1002 Сервера должны быть перечислены в порядке предпочтительности. Сервера имен NetBIOS так же известны как сервера WINS.

option netbios-dd-server ip-address [, ip-address…];

Опция сервера распределения данных NetBIOS (NBDD) указывает список серверов RFC 1001/1002 NBDD. Серверы должны быть перечислены в порядке предпочтения.

option netbios-node-type INT;

Параметр позволяет сконфигурировать тип узла, т.е. способ разрешения имен клиентами NetBIOS поверх TCP/IP.

Возможные значения параметра:

1

B-node (Broadcast): Разрешение имен с помощью широковещательных запросов, WINS не используется.

2

P-node (Peer): Используется только WINS.

4

M-node (Mixed): Смешанный тип, сначала используется широковещательный запрос, затем в случае неудачи — WINS

8

H-node (Hybrid): Смешанный наоборот. WINS, а затем broadcast.

option netbios-scope string;

Опция области NetBIOS указывает параметр NetBIOS через TCP/IP для клиента, как указано в RFC 1001/1002. См. RFC1001, RFC1002 и RFC1035 для ограничения набора символов.

Простая настройка сети

Разберем пример настройки 3-х сетевых интерфейсов. Два из них будут с IP-адресами назначенными вручную (static IP), один — по DHCP.

Приводим файл к следующему виду:

network:
    version: 2
    renderer: networkd
    ethernets:
        ens3:
            dhcp4: true
        ens7:
            dhcp4: no
            addresses: [192.168.122.195/24]
            gateway4: 192.168.122.1
            mtu: 1500
            nameservers:
                addresses:
                search:
        ens9:
            dhcp4: no
            addresses: [192.168.1.10/24, 192.168.1.20/24]
            nameservers:
                addresses:
                    — 8.8.8.8
                    — 77.88.8.8
                search:

* где:

version — версия YAML. На момент обновления статьи, была 2.
renderer — менеджер сети (networkd или NetworkManager).
ethernets — настройка сетевых адаптеров ethernet.
ens3, ens7, ens9 — настройки для соответствующих сетевых адаптеров. В данном примере мы настраиваем 3 сетевых адаптера.
dhcp4 — будет ли получать сетевой адаптер IP-адрес автоматически. Возможны варианты yes/true — получать адрес автоматически; no/false — адрес должен быть назначен вручную.
addresses — задает IP-адреса через запятую.
gateway4 — шлюз по умолчанию. В данном примере указывается только для интерфейса ens7.
mtu  — при желании, можно задать значение MTU.
nameservers — настройка серверов имен (DNS).
nameservers addresses — указываем серверы DNS

Обратите внимание на разный формат записи для ens7 и ens9. Приемлемы оба варианта.
nameservers search — дописывает окончание домена, если мы обращаемся к узлу сети только по его имени

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

Резервирование IP-адреса

После создания сервера потребуется настойка зарезервированного адреса. Чтобы настроить его, нужно нажать на зарезервированный адрес-вкладку, ввести числа начала и конца диапазона , а затем нажать кнопку «Добавить». Чтобы удалить диапазон IP, выбрать число IP, который нужно удалить, и нажать «Удалить», далее выполнить настройку привязки IP-MAC. Если IP-адрес dhcp сервера привязан к MAC-адресу вручную, IP-адрес будет назначен только на указанный MAC-адрес.

Чтобы настроить привязку IP-MAC, нужно перейти на вкладку «Связывание IP-MAC» и ввести IP-адрес и MAC-адрес в IP-адрес и поле MAC соответственно, а затем нажмите «Добавить», а после повторите описанные выше шаги и добавьте несколько записей. Чтобы удалить привязку IP-MAC, выбирают запись из списка и нажимают «Удалить».

Протокол DHCP

Протокол DHCP (Dynamic Host Configuration Protocol — протокол динамического конфигурирования хостов) является протоколом клиент-серверной модели. То есть, есть сервер DHCP (демон dhcpd) отвечающий на запросы клиентов и есть клиент DHCP (dhclient) посылающий запросы и принимающий ответы от сервера. Передача данных производится при помощи протокола UDP, при этом сервер принимает сообщения от клиентов на порт 67 и отправляет сообщения клиентам на порт 68.

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

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

1. Обнаружение DHCP (DHCPDISCOVER)

На первом этапе, клиент выполняет широковещательный запрос по всей физической сети с целью обнаружить доступные DHCP-серверы. Он отправляет сообщение типа DHCPDISCOVER, при этом в качестве IP-адреса источника указывается 0.0.0.0 (так как компьютер ещё не имеет собственного IP-адреса), а в качестве адреса назначения — широковещательный адрес 255.255.255.255. Кроме IP источника и назначения, клиент в данном сообщении  посылает: уникальный идентификатор запроса, свой MAC, и, возможно, прошлый присвоенный IP.

2. Ответ DHCP — сервера (DHCPOFFER)

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

3. Запрос DHCP-сервера (DHCPREQUEST)

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

4. Подтверждение от DHCP-сервера (DHCPACK)

Наконец, сервер подтверждает запрос и направляет это подтверждение (DHCPACK) клиенту. После этого клиент должен настроить свой сетевой интерфейс, используя предоставленные опции.

При этом, кроме указанных сообщений, возможны и другие (на схеме указаны пунктиром):

Отказ от настроек, предоставленных DHCP-сервером (DHCPDECLINE)

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

Отмена от DHCP-сервера (DHCPNAK)

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

Освобождение адреса DHCP (DHCPRELEASE)

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

Информация DHCP (DHCPINFORM)

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

Клиент DHCP (dhclient) Linux

Для работы Linux в качестве DHCP-клиента необходимо установить пакет dhclient (в RedHat, возможно — dhcpcd). Данный клиент запрашивает у сервера параметры и применяет их к локальному хосту. dhclient использует конфигурационный файл /etc/dhclient.conf (иногда /etc/dhcp/dhclient.conf или /etc/dhcp3/dhclient.conf). А так же, хранит информацию об арендованных параметрах в файле /var/lib/dhcp/dhclient.leases. В общем случае, клиент DHCP устанавливается вместе с дистрибутивом ОС и создает файл конфигурации по умолчанию, который вполне работоспособен и не требует вмешательств. Для работы dhclient, необходимо в конфигурационных файлах сетевых интерфейсов вашего дистрибутива (на которых необходимо получение сетевых параметров по DHCP), указать параметр BOOTPROTO=dhcp (для RedHat) и iface eth_№_ dhcp (для Deb).

Время аренды по-умолчанию и максимальное время аренды в DHCP

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

default-lease-time — это значение в секундах, в котором срок действия арендованного IP-адреса будет установлен в том случае, если DHCP-клиент не запрашивает другого конкретного срока действия арендыmax-lease-time — это значение в секундах, которое определяет максимальное время истечения срока действия для IP-адреса, арендуемого DHCP-сервером

Пример:

default-lease-time 600;
max-lease-time 7200;

subnet 10.1.1.0 netmask 255.255.255.0 {
range 10.1.1.3 10.1.1.254;
}

subnet 192.168.0.0 netmask 255.255.0.0 {
}

Для чего нужен DHCP сервер на роутере?

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

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

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

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

Иногда случается, что на Windows вылезает ошибка о том, что DHCP не работает. О том, как ее исправить, у нас есть отдельная инструкция.

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

Установка роли сервера DHCP в Windows Server 2012 R2

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

Шаг 1

Открываем «Диспетчер серверов» в принципе он открывается при старте системы, но в случае если он закрыт, или Вы настроили сервер таким образом, чтобы диспетчер серверов при входе в систему не запускался, то нажимаем Пуск->Диспетчер серверов

Нажимаем «Добавить роль сервера», можно непосредственно через быстрый запуск, а можно через меню «Управление»

Далее нас встретит так сказать страница приветствия, мы жмем «Далее»

Далее уже по умолчанию выбран необходимый пункт, т.е. «Установка ролей или компонентов», жмем «Далее»

Шаг 5

Затем необходимо выбрать на какой сервер иди виртуальный жесткий диск, мы будем устанавливать DHCP сервер, в моем случае локально, т.е. этот же самый сервер, также хочу заметить, что ip адрес у моего тестового сервера 10.10.0.5 соответственно для примера я буду создавать область в этой же подсети, жмем «Далее»

Шаг 6

Далее необходимо выбрать какую роль мы собираемся устанавливать, мы соответственно выбираем DHCP сервер

После нажатия, откроется окно, в котором нам сразу предложат выбрать для установки средства администрирования DHCP сервера, мы соглашаемся, иначе, далее нам все равно придется это выбирать, если конечно мы хотим администрировать DHCP с этого компьютера, жмем «Добавить компоненты»

И снова жмем «Далее»

Шаг 7

Здесь нам предложат выбрать необходимые компоненты, если на прошлом шаге Вы выбрали «Добавить компоненты» то необходимые компоненты уже будут выбраны, если поискать в этих компонентах то мы это увидим, жмем «Далее»

Шаг 8

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

Шаг 9

Затем мы должны будем подтвердить установку, и в случае необходимости поставить галочку «Автоматический перезапуск конечного сервера», но в данном случае это делать не обязательно, поэтому жмем «Установить»

И начнется установка, и продлится она буквально пару минут

Шаг 10

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

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

Затем нам сообщают, что группы созданы, и то, что необходимо перезапустить службы DHCP, жмем «Закрыть»

Как указать DNS сервер

Остался последний из основных сетевых параметров — dns сервер. С ним в debian и ubuntu есть определенная путаница. Традиционно в linux для установки dns серверов используется файл /etc/resolv.conf. Но в какой-то момент в этих дистрибутивах появилась программа resolvconf, которая стала управлять настройками dns в системе. В итоге, файл resolv.conf постоянно перезаписывается этой программой. Нужна она в первую очередь для систем, где dns сервера постоянно меняются

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

Если я не ошибаюсь, то в минимальной конфигурации debian программа resolvconf не устанавливается, а вот в ubuntu она стоит. Проверить наличие программы очень просто:

Если в выводе пусто, значит ее нет. Тогда все очень просто. Для того, чтобы указать dns сервер, достаточно его записать в файл /etc/resolv.conf в следующем виде:

192.168.1.1 локальный dns сервер
77.88.8.1 публичный сервер Яндекса
8.8.8.8 публичный сервер Гугла
1.1.1.1 публичный сервер cloudflare

Я на всякий случай указал локальный сервер и 3 внешних. Если у вас стоит resolvconf, то в случае ненадобности, удалите его командой:

После этого сервер надо перезагрузить и удалить сломавшуюся символьную ссылку /etc/resolv.conf, а вместо нее создать файл с нужным содержанием, которое я привел выше.

Если же вам по какой-то причине необходима указанная выше программа, она у вас стоит и вы не хотите ее удалять, то адрес dns сервера необходимо указать в файле /etc/network/interfaces, добавив к параметрам интерфейса еще один:

Этот параметр нужно установить сразу после указания шлюза gateway. Несколько адресов разделяются пробелом.

Определение DNS-сервера

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

default-lease-time 600;
max-lease-time 7200;

subnet 10.1.1.0 netmask 255.255.255.0 {
range 10.1.1.3 10.1.1.254;
option domain-name-servers 10.1.1.1, 8.8.8.8;
}

subnet 192.168.0.0 netmask 255.255.0.0 {
}

subnet 10.1.1.0 netmask 255.255.255.0 {
range 10.1.1.3 10.1.1.254;
option routers 10.1.1.1;
}

Установка шлюза по-умолчанию (default gateway)

Теперь разберемся со шлюзом по-умолчанию. В предыдущих примерах со статическим ip адресом и настройками по dhcp у нас не было необходимости указывать отдельно default gateway. Мы его устанавливали вместе с остальными настройками. Чтобы посмотреть установленный по-умолчанию шлюз в debian, можно воспользоваться следующей командой в консоли:

Это шлюз по-умолчанию (default gateway). Можно воспользоваться другими, более популярными и привычными командами:

Если получите ошибки:

Значит у вас не установлен пакет net-tools. Установить его можно следующей командой.

Сетевые инструменты из пакета net-tools объявлены устаревшими и не включены в состав базовой системы. Я ими продолжаю пользоваться, потому что мне нравится их вывод больше, чем у команды ip. Netstat мне видится более информативным, хотя по сути, они все показывают одно и то же. Отказ в пользу утилиты ip идет по той причине, что она объединяет в себе все основные сетевые инструменты. Удобнее пользоваться только ей одной для настройки сети, нежели разными утилитами для разных целей.

Если нам нужно сменить default gateway, то сначала надо удалить текущий шлюз, а потом назначить новый.

То же самое, только с помощью ip:

Проверяем, что получилось:

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

Другие квоты

Иногда, необходимо установить квоту в рамках определенной программы или каталога.

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

Квота на директорию

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

Квоты в samba

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

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

  …
  vfs objects = default_quota
  default_quota:uid = 1022
  default_quota:uid nolimit = no
  …

* в данном примере мы задаем квоту на каталог share. Данная квота должна быть такой же, как у системного пользователя с uid 1022. Таким образом, системные квоты должны быть настроены.

Для samba есть также параметр max disk size, который не является ограничением, а просто показывает для других программ максимальный объем доступного пространства.

Квоты в vsftpd

Настраивая vsftpd, мы также должны позаботиться о том, чтобы каталоги с FTP были на разделах с установленными квотами. Другими словами — вопрос также решается с применением пакета quota.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: