Разное

Dhcp authoritative: Настройка DHCP сервера Linux, FreeBSD [АйТи бубен]

Содержание

Руководство по dhcpd.conf | ALeX BLOG!

Содержание

ЧТО ЭТО ?
ОПИСАНИЕ
ПРИМЕРЫ
ОБЪЯВЛЕНИЯ
ALLOW и DENY
ПАРАМЕТРЫ
 

ЧТО ЭТО ?

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

ОПИСАНИЕ

Файл dhcpd.conf содержит информацию о настройках
dhcpd, сервера DHCP разработанного в ISC

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

По существу файл состоит из секций-объявлений вида: имя_секции {…}.
В фигурных скобках могут быть заключены другие секции(подсекции) и параметры

Параметры используются для что бы определить поведение сервера:

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

Секции-объявления используются для:

  • описания топологии сети
  • описания клиентов сети
  • описания адресов которые должны предоставлены клиентам
  • присвоить группу параметров одновременно в нескольким секциям

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

Секции описывающие топологию сети включают следующие подсекции:

shared-network и  subnet.
Если клиентам в подсети адреса назначаются динамически, то
инструкция range должна быть использована в секции
subnet. Для клиентов со статически назначенными адресами, или для конфигураций
в которых обслуживаются только известные клиенты, для каждого из них должен быть
описан параметр host
Если необходимо присвоить значения параметрам, в нескольких подсекциях,
которые не сгруппированы на основе принадлежности к одной подсети, то их можно
сгруппировать, поместив в секцию group.

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

Иногда случается что в одном физическом сегменте сосуществуют несколько IP подсетей.
Например в организации существует требование использовать 8-битные маски подсетей,
но сеть разрослась до размеров превышающих 254 хоста, в этом случае необходимо использовать
две подсети с 8-битными масками до тех пор пока новый ethernet сегмент не будет добавлен.
В этом случае секции subnet описывающие две эти подсети могут быть заключены в
секцию shared-network.

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

Когда клиент загружается, начальные параметры определяются в соответствующем клиенту
объявлении host, затем проверяется секция group (если она существует)
которая содержит в себе host, далее проверяется секция subnet соответствующая
подсети в которой находится клиент, после этого проверяется указаны ли какие-нибудь параметры
в секции shared-network(если есть), содержащей нашу подсеть, ну и наконец
проверяются глобальные параметры, которые могут быть указаны перед всеми объявлениями.

Когда dhcpd ищет секцию host для соответствующего клиента, он следует
следующим правилам:
сперва ищется объявление host где указан параметр fixed-address
и секция subnet или shared network совпадает с подсетью в которой
находится клиент. Если нет соответствующих записей, dhcpd ищет объявление host
без параметра fixed-address. Если подходящих записей не найдено, то dhcpd считает
что нет записей для этого клиента, даже если они есть для этого клиента в другой подсети.

ПРИМЕРЫ

Типичный файл dhcpd.conf выглядит примерно так:

global parameters...

shared-network ISC-BIGGIE {
  shared-network-specific parameters...
  subnet 204.254.239.0 netmask 255.255.255.224 {
    subnet-specific parameters...
    range 204.254.239.10 204.254.239.30;
  }
  subnet 204.254.239.32 netmask 255.255.255.224 {
    subnet-specific parameters...
    range 204.254.239.42 204.254.239.62;
  }
}

subnet 204.254.239.64 netmask 255.255.255.224 {
  subnet-specific parameters...
  range 204.254.239.74 204.254.239.94;
}

group {
  group-specific parameters...
  host zappo.test.isc.org {
    host-specific parameters...
  }
  host beppo.test.isc.org {
    host-specific parameters...
  }
  host harpo.test.isc.org {
    host-specific parameters...
  }
}

Пример 1

Первая строка в примере — место для глобальных параметров. Это может быть
доменное имя организации, адреса DNS серверов (если они едины в пределах организации) и т.д.
Например

        option domain-name "isc.org";
        option domain-name-servers ns1.isc.org, ns2.isc.org;

Пример 2

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

В примере 1 видно, что как секция shared-network так и секция subnet
могут иметь собственные параметры. Например сеть ISC-BIGGIE
принадлежит целому подразделению, например отделу учета и если этот
отдел в имеет собственный DNS-домен, то среди параметров специфических
для секции shared-network нужно было бы указать:

        option domain-name "accounting.isc.org";

Ко всем подсетям объявленным в секции shared-network будет относиться
опция domain-name со значением «accounting.isc.org»
в отличие от «isc.org».

Наиболее очевидной причиной наличия
subnet-specific параметров является
наличие в каждой подсети собственного шлюза, к примеру в каждой секции
subnet должен быть указан параметр вида:

        option routers 204.254.239.1;

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

В примере
1 присутствует секция group, которая позволяет
задать параметры для трех хостов — zappo, beppo и harpo.
Как видите эти хосты находятся в домене test.isc.org. Используя объявление
group можно переопределить имя домена для указанных хостов:

        option domain-name "test.isc.org";

Так же, учитывая имя домена(test), проведем эксперимент и исследуем
механизм выделения адресов сервером DHCP — установим некоторые
значения значительно меньше чем по умолчанию:

        max-lease-time 120;
        default-lease-time 120;

Как вы наверное заметили одни параметры начинаются с ключевого слова
option,
а другие нет. Параметры начинающиеся с option
соответствуют реальным параметрам, которые передаются клиентам.
Те же параметры что не начинаются на option используются
для управления поведением сервера DHCP (например на какой срок выдаются
адреса) или для указания параметров которые не являются опциональными
в протоколе DHCP (например server-name и filename).

В примере 1, каждый хост имеет
host-specific параметры.
Это может быть опция hostname, задающая имя хоста,
имя файла для загрузки (filename параметр) и адрес сервера
с которого этот файл должен быть загружен (next-server параметр).
Любой параметр может быть указан в любом месте где он имеет смысл, и
область действия параметра определяется секцией в которой он появляется.

Представте себе что у вас куча NCD X-Terminals разных моделей и Вы желаете
указать загрузочные файлы для каждой модели. Один из путей сделать это —
создать секции host для каждого терминала и используя объявление
group сгруппировать их по моделям:

group {
  filename "Xncd19r";
  next-server ncd-booter;

  host ncd1 { hardware ethernet 0:c0:c3:49:2b:57; }
  host ncd4 { hardware ethernet 0:c0:c3:80:fc:32; }
  host ncd8 { hardware ethernet 0:c0:c3:22:46:81; }
}

group {
  filename "Xncd19c";
  next-server ncd-booter;

  host ncd2 { hardware ethernet 0:c0:c3:88:2d:81; }
  host ncd3 { hardware ethernet 0:c0:c3:00:14:11; }
}

group {
  filename "XncdHMX";
  next-server ncd-booter;

  host ncd1 { hardware ethernet 0:c0:c3:11:90:23; }
  host ncd4 { hardware ethernet 0:c0:c3:91:a7:8; }
  host ncd8 { hardware ethernet 0:c0:c3:cc:a:8f; }
}

ОБЪЯВЛЕНИЯ

Секция-объявление

shared-network

 shared-network имя {
   [ параметры ]
   [ объявления ]
 }

Секция shared-network сообщает серверу DHCP что несколько IP-подсетей
используют один физический сегмент. Каждая подсеть в такой сети объявляется
внутри секции shared-network. Параметры указанные для shared-network
используются при загрузке клиента если значения указанные в секциях
subnet или host не переопределяют их. Если для какой-либо подсети
указан диапазон динамически раздаваемых адресов, эти адреса собираются в
общий пул и назначаются клиентам по мере необходимости. Нет способа различать
к какой IP-подсети принадлежит клиент.

Параметр Имя
— должнен быть именем этой «общей» сети. Это имя используется в
информационных и отладочных сообщениях и желательно что бы оно достаточно
полно описывало сеть. Имя может имет синтаксис обычного доменного имени( однако
никогда не используется в качестве такового), или это может быть произвольное
имя, заключенное в кавычки.

Секция-объявление

subnet

 subnet subnet-number netmask netmask {
   [ параметры ]
   [ объявления ]
 }

Секция subnet используется для предоставления серверу DHCP дополнительной информации —
принадлежит ли данный IP адрес указанной подсети. Еще эта секция используется для предоставления
клиентам специфичных для подсети параметров и для указания диапазонов динамически распределяемых
адресов.

Параметр
subnet-number
должен быть IP адресом или доменным именем которое резолвится
в номер подсети которую он описывает.

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

Параметры subnet-number и
netmask однозначно определяют подсеть и принадлежность
IP адреса к этой подсети.

Затрудняюсь перевести следующий абзац 🙁

Although a netmask must be given with every subnet declaration, it is
recommended that if there is any variance in subnet masks at a site, a
subnet-mask option statement be used in each subnet declaration to set
the desired subnet mask, since any subnet-mask option statement will
override the subnet mask declared in the subnet statement.

Секция-объявление
range

 range [ dynamic-bootp ] начало_диапазона [ конец_диапазона];

Для любой подсети адреса которой присваиваются динамически, должен быть указан хотя бы один диапазон с
помощью секции range. В параметрах указывается начальный и конечный адреса диапазона. Все IP
адреса в диапазоне должны принадлежать той подсети к описанию которой относится секция range.
Параметр dynamic-bootp указывается в случае если предполагается назначать адреса из диапазона
клиентам по протоколу BOOTP. Если указан только один адрес, то параметр конец_диапазона может быть
опущен.

Секция-объявление
host

 host имя_хоста {
   [ параметры ]
   [ объявления ]
 }

Необходима хотя бы
одна секция host
для каждого BOOTP клиента, обслуживаемого сервером.
Так же host
может быть указана для DHCP клиентов, хотя это и не обязательно, если только
не требуется раздача адресов только определенным клиентам.

Если требуется обеспечить выдачу фиксированных адресов и конфигурацию клиентов по протоколам DHCP
или BOOTP
в более чем одной подсети, то можно указать несколько адресов с помощью параметра
fixed-address
или указать несколько секций host

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

имя_хоста
— имя идентифицирующее хост. Если в описании хоста опция hostname не указана, то
используется значение имя_хоста.

Объявления Host сопоставляются с реальными DHCP или BOOTP клиентами путем сравнения опции
dhcp-client-identifier указанной в секции host со значением предоставленным клиентом, или
если клиент не предоставляет dhcp-client-identifier, то путем сравнения опции hardware
и
аппаратного (mac) адреса клиента. Клиенты BOOTP нормально не предоставляют dhcp-client-identifier,
так что при работе по протоколу BOOTP необходимо использовать mac-адреса.

Секция-объявление
group

 group {
   [ параметры ]
   [ объявления ]
 }

Секция group используется для присвоения одного или нескольких параметров группе
объявлений. Параметры могут быть одновременно присвоены группе секций hosts, shared networks,
subnets, или даже groups.

ALLOW and DENY

Параметры allow
и deny
используются для контроля над поведением демона dhcp в отношении
различных видов запросов.

Ключевое слово
unknown-clients

 allow unknown-clients;

deny unknown-clients;

Параметр unknown-clients используется что бы сообщить серверу как поступать с
неизвестными клиентами. По умолчанию выдача адресов неизвестным клиентам разрешена.

Ключевое слово
bootp

 allow bootp;

deny bootp;

Параметр bootp сообщает серверу dhcp обрабатывать или нет bootp-запросы.
По умолчанию bootp-запросы разрешены.

Ключевое слово
booting

 allow booting;

deny booting;

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

ПАРАМЕТРЫ

Параметр

default-lease-time

 default-lease-time время;

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

Параметр

max-lease-time

 max-lease-time время;

Время
— максимальный промежуток времени в секундах, на который выделяется адрес клиенту.

Параметр

hardware

 hardware тип_железа аппаратный_адрес;

Для того что бы BOOTP клиент был опознан сервером, его mac-адрес должен быть объявлен с помощью
параметра hardware в секции host

Параметр тип_железа
— тип физического интерфейса. В настоящее время используются только

ethernet
и token-ring
и возможно скоро будет реализованы другие типы, особенно
fddi
.

аппаратный_адрес
— записывается как набор шестнадцатеричных значений ( от 0 до ff ) разделенных
двоеточиями.

should be a set of hexadecimal octets (numbers from 0 through ff)
seperated by colons. Параметр hardware можно использовать и для DHCP клиентов.

Параметр

filename

 filename «имя_файла«;

Параметр filename указывает имя файла, используемого для начальной загрузки клиента.
имя_файла

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

Параметр

server-name

 server-name «имя_сервера«;

Параметр server-name используется, что бы сообщить клиенту имя сервера который его обслуживает.
Имя_сервера — имя сервера, сообщаемое клиенту.

Параметр

next-server

 next-server имя_сервера;

Параметр next-server используется для указания клиенту адреса сервера с которого должен быть
получен загрузочный файл (тот самый файл что указан в параметре filename). Имя_сервера
может быть IP адресом или доменным именем. Если этот параметр не указан, то используется адрес DHCP
сервера.

Параметр

fixed-address

 fixed-address адрес [, адрес … ];

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

Параметр

dynamic-bootp-lease-cutoff

 dynamic-bootp-lease-cutoff дата;

Параметр dynamic-bootp-lease-cutoff устанавливает момент времени в который все адреса назначенные
клиентам BOOTP должны быть освобождены. Так как клиенты BOOTP не имеют возможности продлить
срок использования полученных адресов и не могут определить что срок аренды истек, то по умолчанию
клиентам BOOTP адреса выделяются на неограниченный срок. Однако в некоторых случаях оказывается
полезным установить параметр dynamic-bootp-lease-cutoff, например в учебном заведении
при окончании семестра или в ночное время когда предприятие не работает а все компьютеры выключены.

дата
— срок окончания действия всех адресов выделенных BOOTP клиентам. Дата указывается
в следующем формате:

W ГГГГ/ММ/ДД ЧЧ:ММ:СС 

W — день недели в виде числа от 0 (воскресенье) до 6 (суббота).

ГГГГ — год

ММ — месяц 1..12

ДД — день месяца 1..31

ЧЧ — часы 0..23

ММ — минуты 0..59

СС — секунды 0..59

Время указывается в GMT, а не местное.

Параметр

dynamic-bootp-lease-length

 dynamic-bootp-lease-length время_в_секундах;

Параметр dynamic-bootp-lease-length используется для указания срока на
который выделяется адрес BOOTP клиенту. В некоторых организациях возможна ситуация
что по прошествии определенного времени можно быть уверенным что выделенный адрес
уже не используется. Период задается числом секунд. Если клиент перезагружается
в момент когда срок указанный в этом параметре еще не истек, то период аренды
адреса заново устанавливается в указанное значение. Таким образом часто перезагружаемые
BOOTP клиенты могут постоянное удерживать свой адрес. Необходимо заметить
что при настройке параметра, следует быть осторожным.

Параметр

get-lease-hostnames

 get-lease-hostnames on/off;

Параметр get-lease-hostnames сообщает серверу dhcp следует ли выполнять преобразование
IP адресов в соответствующие им имена и использовать полученные имена в качестве значения параметра
hostname. Если значение параметра — истина, тогда преобразование выполняется для каждого адреса в
диапазоне. По умолчанию или если значение — ложь, преобразование не выполняется.

Параметр

use-host-decl-names

 use-host-decl-names on/off;

Если параметр use-host-decl-names имеет значение — on (включено), то для каждого объявления
хоста, находящегося в зоне действия параметра, значение использованное в объявлении host{} предоставляется
клиенту в качестве его имени.

Например конструкция:

    group {
      use-host-decl-names on;

      host joe {
        hardware ethernet 08:00:2b:4c:29:32;
        fixed-address joe.fugue.com;
      }
    }

эквивалентна следующей:

      host joe {
        hardware ethernet 08:00:2b:4c:29:32;
        fixed-address joe.fugue.com;
        option host-name "joe";
      }

Дополнительный параметр option host-name указанный в объявлении host{} имеет больший приоритет
по сравнению с use-host-decl-names что позволяет переопределить имя хоста при включенном
use-host-decl-names

Параметр

authoritative

 authoritative;

 not authoritative;

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

Если до конфигурации DHCP сервера каким-то образом допустили кого-нибудь кто не является сетевым администратором и
даже не претендует на это звание, то в соответствующей секции нужно указать параметр
«not authoritative»

Обычно, бывает достаточно написать not authoritative; в начале файла конфигурации. Однако, если сервер
поддерживает несколько различных сегментов, то лучше объявлять авторитетность сервера в пределах
обслуживаемых им подсетей.

Параметр
use-lease-addr-for-default-route

 use-lease-addr-for-default-route on/off;

Если параметр use-lease-addr-for-default-route установлен в «on» для соответствующего сегмента сети, то
вместо посылки клиенту значения указанного в дополнительном параметре option routers ( или не посылки ничего
если адреса маршрутизаторов не заданы ), клиенту посылаются IP адреса уже назначенные сервером. На клиенте это
вызывает запросы ARP по всем этим адресам, что может быть очень полезным если ваш маршрутизатор сконфигурирован
как proxy ARP.

Параметр
always-reply-rfc1048

 always-reply-rfc1048 on/off;

Некоторые BOOTP клиенты ожидают ответа от сервера в стиле RFC1048, но сами не следуют RFC1048 при посылке
запросов. Если в вашей сети имеется такой проблемный клиент, который не воспринимает параметры передаваемые
ему сервером и если в логах появляется сообщение «(non-rfc1048)» , то можно воспользоваться
этим параметром.

Если у вас все клиенты требуют работы в стиле RFC1048, то можно использовать параметр always-reply-rfc1048
.
Параметр может быть указан в любом объявлении в этом случае воздействует только на тех клиентов, которые
соответствуют указанной зоне действия.

Параметр
server-identifier

 server-identifier имя_хоста;

Параметр
server-identifier отсылается клиенту и должен являться IP адресом
DHCP сервера, правильными для той подсети в которой находится клиент и достижимым
для всех клиентов этой подсети.

Использование
server-identifier не рекомендовано, единственная причина использования —
переопределить значение по умолчанию если оно по какой-нибудь причине не верно. Значением
по умолчанию является первый IP адрес из присвоенных физическому интерфейсу на который пришел
клиентский запрос.

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

Задание значения для параметра dhcp-server-identifier эквивалентно использованию
параметра server-identifier.

Настройка DHCP-сервера в Linux — ИТ Проффи

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

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

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

  • После загрузки подключенный к сети клиент (на котором настроено использование DHCP) отправляет DHCP-серверу пакет DHCPDISCOVER.
  • Получив пакет запроса DHCPDISCOVER, DHCP-сервер отвечает пакетом DHCPOFFER.
  • Клиент принимает пакет DHCPOFFER и отправляет серверу пакет DHCPREQUEST, подтверждая готовность принять сетевую конфигурацию, предоставленную в пакете.
  • Получив от клиента пакет DHCPREQUEST, сервер отправляет пакет DHCPACK, который разрешает клиенту использование выделенного IP-адреса.

В данном руководстве мы рассмотрим настройку DHCP-сервера в Ubuntu/Debian Linux, но большенство настроек будет работать и в других дистрибутивах. Для получения административных привилегий все команды будут выполняться через sudo.

Шаг 1: Установка DHCP-сервера

1. Для установки пакета DCHP-сервера, ранее известного как dhcp3-server, нужно выполнить следующую команду:

$ sudo apt install isc-dhcp-server

2. После завершения установки отредактируйте файл /etc/default/isc-dhcp-server для определения интерфейсов, которые будет использовать DHCPD для обработки DHCP-запросов, при помощи опции INTERFACES.

Например, если вам нужно, чтобы демон DHCPD прослушивал eth0, задайте следующее значение:

INTERFACES="eth0"

Для этого сетевого интерфейса нужно настроить статический IP-адрес.

Шаг 2: Настройка DHCP-сервера

3. Основной файл конфигурации DHCP — /etc/dhcp/dhcpd.conf, в него нужно внести всю информацию, отправляемую клиентам.
В файле конфигурации DHCP есть два типа данных:

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

4. Для определения настроек DHCP-сервера откроем и отредактируем файл конфигурации:

$ sudo vi /etc/dhcp/dhcpd.conf

Установите в начале файла следующие глобальные параметры, они будут действовать для всех указанных ниже деклараций (измените их в соответствии с вашими задачами). Это имя домена domain-name, имена DNS-серверов domain-name-servers, время аренды по умолчанию в секундах default-lease-time (если клиент не запросил его сам), максимальное время аренды в секундах max-lease-time и параметр authoritative, означающий «авторитетность» сервера в сегменте сети. Данный параметр нужен на тот случай, если клиент запросит неправильный IP-адрес — в этом случае сервер ответит ему отказом и предложит получить новый адрес.

option domain-name "itproffi.lan";
option domain-name-servers ns1.itproffi.lan, ns2.itproffi.lan;
default-lease-time 3600; 
max-lease-time 7200;
authoritative;

Обратите внимание, что перед некоторыми параметрами указано слово option, а перед некоторыми — нет. Это слово задает параметры, которые передаются клиенту в сетевой конфигурации.

5. Теперь нужно указать подсеть, в нашем примере мы будем использовать DHCP в локальной сети 192.168.10.0/24.

subnet 192.168.10.0 netmask 255.255.255.0 {
          option routers 192.168.10.1;
          option subnet-mask 255.255.255.0;
          option domain-search "itproffi.lan";
          option domain-name-servers 192.168.10.1;
          range 192.168.10.10 192.168.10.100;
          range 192.168.10.110 192.168.10.200;
}

Здесь мы использовали следующие параметры:

routers — IP-адрес маршрутизатора по умолчанию
subnet-mask — маска подсети
domain-search — имя домена
domain-name-servers — имена DNS-серверов
range — диапазон IP-адресов, выделяемый клиентам (можно указывать несколько диапазонов, но обязательно указать хотя бы один)

Шаг 3: Настройка статических IP-адресов для машин клиентов

6. Для выделения конкретным клиентам фиксированного (статического) IP-адреса нужно добавить в файл конфигурации секции следующего вида, где явно указаны MAC-адрес и статически выделяемый IP-адрес:

host centos-node {
      hardware ethernet 00:f0:m4:6y:89:0g;
      fixed-address 192.168.10.105;
}

host fedora-node {
       hardware ethernet 00:4g:8h:13:8h:3a;
       fixed-address 192.168.10.106;
}

7. Запустим службу DHCP и установим ее автоматический запуск при загрузке:

———— SystemD ————

$ sudo systemctl start isc-dhcp-server.service
$ sudo systemctl enable isc-dhcp-server.service

———— SysVinit ————

$ sudo service isc-dhcp-server.service start
$ sudo service isc-dhcp-server.service enable

8. Далее нужно создать правило для службы DHCP в брандмауэре (Демон DHCPD прослушивает UDP-порт 67):

$ sudo ufw allow 67/udp
$ sudo ufw reload
$ sudo ufw show

Шаг 4: Настройка машин клиентов

9. Теперь можно настроить клиентские компьютеры в сети для автоматического получения IP-адресов от DHCP-сервера.

Отредактируйте файл конфигурации интерфейса Ethernet на клиентской машине (обратите внимание на имя/номер интерфейса):

$ sudo vi /etc/network/interfaces

Укажите следующие опции:

auto eth0
iface eth0 inet dhcp

Сохраните и закройте файл, а затем перезапустите сетевые службы или перезагрузите систему:

———— SystemD ————

$ sudo systemctl restart networking

———— SysVinit ————

$ sudo service networking restart

Если все настроено правильно, клиентская машина должна автоматически получать IP-адреса от DHCP-сервера.

Настройка DHCP-сервера завершена. Более подробную информацию о dhcpd и dhcpd.conf с описанием всех возможных опций можно получить в соответствующих man-страницах:

$ man dhcpd
$ man dhcpd.conf

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Установка и настройка DHCP | Linux and Windows

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


 

Установка

sudo apt-get install isc-dhcp-server

Обратите внимание, что сообщения dhcpd будут посылаться в syslog. Смотрите его для диагностики.

Предварительная настройка

И так мы хотим настроить свой интернет шлюз с DNS и DHCP, DNS мы с Вами настроили в этой статье и так!

Исходные данные

  • имя компьютера: ub

  • имя домена: domain.tld

  •           IP локальный dns:192.168.1.1

Настройка

Редактируем конфиг

nano /etc/dhcp/dhcpd.conf

 

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

authoritative;

log-facility local7;

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.150 192.168.1.200;
option domain-name-servers 192.168.1.1;
option domain-name «domain.tld»;
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
default-lease-time 600;
max-lease-time 7200;
}

ddns-update-style interim;
update-static-leases on;
key DHCP_UPDATER {
algorithm hmac-md5;
secret «lqrfes/uv041jCmoqDu3BA==»;       //ключ, который мы получили настраивая dns
}

zone domain.tld. {
primary 127.0.0.1;
key DHCP_UPDATER;
}

zone 1.168.192.in-addr.arpa. {
primary 127.0.0.1;
key DHCP_UPDATER;
}

Далее привяжем сетевой интерфейс (Например eth2, если вы настраиваете интернет шлюз на ubuntu). Об этом не много позднее в следующей статье.

nano nano /etc/default/isc-dhcp-server

INTERFACES=»eth2″

Перезапустим dhcp

sudo /etc/init.d/isc-dhcp-server restart

Настройка DHCP сервера на Ubuntu Linux

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

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

Назначение DHCP

  1. Запрос на аренду: Клиент передает запрос на сервер DHCP с адресом источника 0.0.0.0 и адресом назначения 255.255.255.255. Запрос включает MAC-адрес, который используется для направления ответа от сервера.
  2. Предложение аренды IP-адреса: сервер DHCP отвечает с IP-адресом, маской подсети, сетевым шлюзом, именем домена, серверами имен, продолжительностью аренды и IP-адресом сервера DHCP.
  3. Выбор аренды: Когда клиент получил предложение – он передаёт всем серверам в сети, что он настроен, и больше настройки ему не нужны.
  4. Затем сервер DHCP отправляет клиенту подтверждение. Клиент настроен на использование TCP/IP.
  5. Продление срока аренды: Когда остаётся половина срока аренды, клиент запрашивает у DHCP сервера продление аренды IP-адреса.

Установка

Мы ставим DHCP сервер на:
Система – Ubuntu 18.04 LTS 64 bit
IP адрес – 192.168.188.0/24
Хост – mstream.lan

Откройте терминал и выполните следующую команду для установки сервера:

sudo apt-get install isc-dhcp-server



sudo apt-get install isc-dhcp-server

DHCP сервер установлен. Теперь давайте настроем его под наши нужды.

Настройка

Файл первичной конфигурации находится по адресу /etc/default/isc-dhcp-server. В нём нужно указать лишь наш сетевой интерфейс.

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

Так как у меня на сервере только одна сетевая карта, под именем “ens33” – то я пропишу в конфигурационный файл именно её.
Давайте отредактируем конфиг /etc/default/isc-dhcp-server:

sudo nano /etc/default/isc-dhcp-server



sudo nano /etc/default/isc-dhcp-server

Определим сетевой интерфейс

[…]

INTERFACESv4=»ens33″

[…]



[…]

INTERFACESv4=»ens33″

 

[…]

Если вы хотите использовать больше одного сетевого интерфейса – просто напишите их через пробел: “eth0 eth2”.

Сохраните и закройте файл.

Теперь нам нужно отредактировать dhcpd.conf:

sudo nano /etc/dhcp/dhcpd.conf



sudo nano /etc/dhcp/dhcpd.conf

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

[…]

# option definitions common to all supported networks…
option domain-name «mstream.lan»;
option domain-name-servers ubserver.mstream.lan;

[…]



[…]

# option definitions common to all supported networks…

option domain-name «mstream.lan»;

option domain-name-servers ubserver.mstream.lan;

 

[…]

Чтобы клиенты в нашей сети смогли получать ip адреса от нашего сервера, нужно расскоментировать следующую строку:

[…]

authoritative;

[…]



[…]

authoritative;

 

[…]

Немного прокрутите вниз, и определите маску сети, диапазон IP адресов, домен и NS сервера:

[…]

# A slightly different configuration for an internal subnet.
subnet 192.168.188.0 netmask 255.255.255.0 {
range 192.168.188.10 192.168.188.20;
option domain-name-servers ubserver.mstream.lan;
option domain-name «mstream.lan»;
option routers 192.168.188.1;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.188.255;
default-lease-time 600;
max-lease-time 7200;
}

[…]



[…]

# A slightly different configuration for an internal subnet.

subnet 192.168.188.0 netmask 255.255.255.0 {

range 192.168.188.10 192.168.188.20;

option domain-name-servers ubserver.mstream.lan;

option domain-name «mstream.lan»;

option routers 192.168.188.1;

option subnet-mask 255.255.255.0;

option broadcast-address 192.168.188.255;

default-lease-time 600;

max-lease-time 7200;

}

 

[…]

Как вы видите выше, я выбрал диапазон IP адресов с 192.168.188.10 по 192.168.188.20, клиенты dhcp получат адреса именно с из этого диапазона.
А что, если мы хотим предоставить клиенту определённый ip? В принципе сделать это не так трудно. Вы можете предоставить определённый IP клиенту по его MAC адресу. Давайте разберём это далее в статье.

Предоставление определённого IP адреса клиенту dhcp сервера.

Для примера, давайте присвоим IP адрес 192.168.188.16 клиенту с MAC-адресом 00:0c:29:93:f0:59. Для определение MAC адреса используйте команду ifconfig

Вывод будет примерно следующим:

Обратите внимание на подчёркнутые слова – это IP адрес и MAC адрес.

Теперь присвоим нужный нам IP клиенту с MAC адресом, который мы узнали выше.

[…]

host ub-local-client {
hardware ethernet 00:0c:29:93:f0:59;
fixed-address 192.168.188.16;
}

[…]



[…]

host ub-local-client {

hardware ethernet 00:0c:29:93:f0:59;

fixed-address 192.168.188.16;

}

 

[…]

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

Запускаем DHCP сервер с новыми настройками

Теперь нам нужно перезапустить сервер:

sudo systemctl restart isc-dhcp-server



sudo systemctl restart isc-dhcp-server

Посмотрите не оставили-ли вы ненужных записей в конфигурационном файле dhcpd.conf. Если, всё таки, вы оставили какие-то записи – просто закамментируйте их, в противном случае DHCP сервер не загрузится.

Чтобы проверить, работает наш DHCP сервер или нет, используйте команду:

sudo systemctl status isc-dhcp-server



sudo systemctl status isc-dhcp-server

Если сервер настроен верно, то статус сервера будет “active”.

Чтобы запустить, или остановить DHCP сервер, используйте следующие команды:

sudo systemctl start isc-dhcp-server



sudo systemctl start isc-dhcp-server

sudo systemctl stop isc-dhcp-server



sudo systemctl stop isc-dhcp-server

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

Настройка DHCP клиента

Для этой статьи на клиентской стороне я буду использовать Ubuntu Desktop 18.04 (64-bit).
Клиент:

  • Система – Ubuntu Desktop 18.04
  • IP адрес – DHCP включен

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

переходим на вкладку настроек IPv4, и выбираем метод “Автоматический (DHCP)“. Нажимаем Сохранить.

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

Если всё настроено верно – то клиент получил выделенный ему IP адрес. Задача решена.

Поздравляю! Наш DHCP сервер работает!!!

Настройка DHCP-сервера на базе ISC DHCP Server

В этой статье мы расссмотрим, как просто развернуть DHCP сервер на FreeBSD.

Получаем доступные версии DHCP-сервера:

pkg search "isc-dhcp.*-server"

Устанавливаем пакет:

pkg install isc-dhcp41-server

Установка ISC DHCP Server из коллекции портов

Если необходимо, DHCP-сервер можно собрать из портов.

Обновляем коллекцию портов:

portsnap fetch update

Если коллекция портов используется впервые, получаем ее актуальную версию:

portsnap fetch extract

Получаем доступные версии DHCP-сервера:

echo /usr/ports/net/isc-dhcp*-server

Устанавливаем:

cd /usr/ports/net/isc-dhcp41-server
make install

Настройка ISC DHCP Server

Редактируем файл конфигурации:

ee /usr/local/etc/dhcpd.conf

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

# DNS серверы
option domain-name-servers 192.168.0.1, 192.168.0.2;

# Время в секундах, по истечению которого клиент должен запросить продление аренды
default-lease-time 600;

# Время аренды IP адреса в секундах
# Клиент должен освободить IP-адрес, если в течение заданного времени аренду продлить не удалось
# Если аренда не продлена, сервер может выдать этот адрес другому клиенту
max-lease-time 7200;

# Выдавать клиенту новый адрес, если запрошенный клиентом адрес не входит в пул сервера

authoritative;


# Источник, который будет указан при отправке сообщений в Syslog
log-facility local7;

# Декларация подсети

subnet 192.168.0.0 netmask 255.255.255.0 {

  # Пул динамических адресов

range 192.168.0.129 192.168.0.189;

  # Шлюз

option routers 192.168.0.1

;
}

# Задать фиксированный IP-адрес для хоста
#host Name {
#  hardware ethernet 00:26:5e:66:6c:08;
#  fixed-address 192.168.0.190;
#}

Настройка логов ISC DHCP Server

Редактируем syslog.conf:

ee /etc/syslog.conf

Сохраняем сообщения о присвоении адресов в dhcpd.log, предупреждения и ошибки дублируем в messages.

Добавляем следующие строки:

!dhcpd
*.info                                          -/var/log/dhcpd.log
!*

Задаем параметры ротации.

Проверяем, поддерживается ли вашей системой newsyslog.conf.d

ls /etc/newsyslog.conf.d && echo ok

Если в вашей системе отсутствует папка newsyslog.conf.d, редактируем newsyslog.conf:

ee /etc/newsyslog.conf

Если папка newsyslog.conf.d имеется, создаем папку с тем же именем в /usr/local/etc:

mkdir /usr/local/etc/newsyslog.conf.d

Создаем файл c правилами ротации логов:

ee /usr/local/etc/newsyslog.conf.d/isc-dhcp-server

Ежедневная ротация в полночь с сохранением логов за неделю:

/var/log/dhcpd.log                      600  7     *    @T00  JC

Создаем лог-файл:

touch /var/log/dhcpd.log

Перезагружаем конфигурацию syslogd:

service syslogd reload

Запуск ISC DHCP Server

Редактируем rc.conf:

ee /etc/rc.conf

Включаем запуск ISC DHCP Server, и задаем сетевые интерфейсы, обслуживаемые нашим сервером:

dhcpd_enable="YES"
dhcpd_ifaces="fxp0"

Запускаем dhcpd:

service isc-dhcpd start

В случае успешного запуска видим следующий текст:

Internet Systems Consortium DHCP Server 4.1-ESV-R3
Copyright 2004-2011 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Wrote 1 leases to leases file.
Listening on BPF/fxp0/08:00:27:a9:a8:7d/192.168.0.0/24
Sending on   BPF/fxp0/08:00:27:a9:a8:7d/192.168.0.0/24
Sending on   Socket/fallback/fallback-net

Если ошибок при запуске не возникло, проверяем, раздаются ли IP-адреса.

Для принудительного обновления IP-адреса в Windows, в командной строке используем команды:

ipconfig /release
ipconfig /renew

Проверяем лог-файл:

cat /var/log/dhcpd.log

В случае проблем, анализируем DHCP трафик:

tcpdump -vni

fxp0

 udp port 67

Источник

BlackDiver.Net | Настройка VyOS

VyOS это програмный маршрутизатор с открытым исходным кодом и множеством возможностей.
Установка VyOS описывается в статье Установка VyOS.

В этой статье описывается базовая настройка VyOS.

Для настройки будем считать что:
eth0 — внешний интерфейс.
eth2 — внутренний интерфейс.
1.1.1.2 — внешний IP адрес;
255.255.255.0 (/24) — маска внешней сети;
1.1.1.1IP адрес маршрутизатора;
8.8.8.8DNS сервер.
192.168.123.1 — внутренний IP адрес;
255.255.255.0 (/24) — маска внутренней сети.

Переходим в режим конфигурации:

configure

Базовые настройки

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

Установим имя хоста:

set system host-name Имя_хоста

Установим временную зону:

set system time-zone Europe/Moscow

Установим NTP сервер:

set system ntp server 0.pool.ntp.org

Включим доступ через SSH:

set service ssh port 22

Настройка сети

Настроим внешний интерфейс (eth0):

set interfaces ethernet eth0 address 1.1.1.2/24
set interfaces ethernet eth0 description OUTSIDE

Описание команд:

set interfaces ethernet eth0 address 1.1.1.2/24

Указываем IP адрес и маску сети.

set interfaces ethernet eth0 description OUTSIDE

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

Аналогично, настроим внутренний IP адрес:

set interfaces ethernet eth2 address 192.168.123.1/24
set interfaces ethernet eth2 description INSIDE

Установим адрес шлюза (Gateway):

set system gateway-address 1.1.1.1

но если планируется использовать несколько шлюзов и несколько провайдеров, то лучше прописать маршруты, а не устанавливать system gateway:

set protocols static route 0.0.0.0/0 next-hop 1.1.1.1 distance 1

Установим DNS сервер для маршрутизатора.

set system name-server 8.8.8.8

Настройка NAT для внутренней сети

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

set nat source rule 100 outbound-interface eth0
set nat source rule 100 source address 192.168.123.0/24
set nat source rule 100 translation address masquerade

Описание команд:

set nat source rule 100 outbound-interface eth0

Создаем правило NAT для внешнего интерфейса eth0.

set nat source rule 100 source address 192.168.123.0/24

Правило для адресов из подсети 192.168.123.0/24.

set nat source rule 100 translation address masquerade

Использовать NAT трансляцию, чтобы хосты могли общаться с внешним миром.

Проброс портов (он же PAT, он же Port Forwarding) 1-к-1 (внутренний и внешний порты равны).
Проброс производится на внутренний адрес 192.168.123.100 с порта 80 на порт 80:

set nat destination rule 10 description 'Port Forward: HTTP to 192.168.123.100 (port 80->80)'
set nat destination rule 10 destination port 80
set nat destination rule 10 inbound-interface eth0
set nat destination rule 10 protocol tcp
set nat destination rule 10 translation address 192.168.123.100

Описание команд:

set nat destination rule 10 description 'Port Forward: HTTP to 192.168.123.100 (port 80->80)'

Создаем правило NAT номер 10 с комментарием: Port Forward: HTTP to 192.168.123.100 (port 80->80).

set nat destination rule 10 destination port 80

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

set nat destination rule 10 inbound-interface eth0

Указываем , что пробрасываемый порт должен быть на внешнем интерфейсе eth0.

set nat destination rule 10 protocol tcp

Перенаправляться будет только TCP трафик.

set nat destination rule 10 translation address 192.168.123.100

Трафик будет перенаправляться на внутренний адрес 192.168.123.100.

Если требуется пробросить на другой порт (22 внутренний порт пробрасываем на внешний 20022 порт):

set nat destination rule 20 description 'Port Forward: SSH to 192.168.123.100 (port 22->20022)'
set nat destination rule 20 destination port 20022
set nat destination rule 20 inbound-interface eth0
set nat destination rule 20 protocol tcp_udp
set nat destination rule 20 translation address 192.168.123.100
set nat destination rule 20 translation port 22

Описание команд:

Описание аналогично предыдущему, за исключением того, что пробрасывается TCP и UDP трафик (protocol tcp_udp), а так же появляется дополнительная команда:

set nat destination rule 20 translation port 22

Указываем на какой порт будет перенаправляться трафик (22-й), приходящий на порт 20022.

DHCP сервер

Теперь создадим DHCP сервер для внутренней сети:

set service dhcp-server shared-network-name LAN authoritative enable
set service dhcp-server shared-network-name LAN subnet 192.168.123.0/24 start 192.168.123.128 stop 192.168.123.254
set service dhcp-server shared-network-name LAN subnet 192.168.123.0/24 default-router '192.168.123.1'
set service dhcp-server shared-network-name LAN subnet 192.168.123.0/24 dns-server 192.168.123.1
set service dhcp-server shared-network-name LAN subnet 192.168.123.0/24 domain-name internal.blackdiver.net
set service dhcp-server shared-network-name LAN subnet 192.168.123.0/24 lease 3600

Описание команд:

set service dhcp-server shared-network-name LAN authoritative enable

Создаем DHCP сервер для внутренней сети (LAN — просто название. Может быть любым).

set service dhcp-server shared-network-name LAN subnet 192.168.123.0/24 start 192.168.123.128 stop 192.168.123.254

Указываем подсеть, для которой будет работать DHCP сервер (192.168.123.0/24), а так же диапазон адресов, который будет выдавать DHCP сервер (192.168.123.128-254).

Далее указываем параметры, которые DHCP сервер будет передавать клиентам:

set service dhcp-server shared-network-name LAN subnet 192.168.123.0/24 default-router '192.168.123.1'

Маршрутизатор по умолчанию (192.168.123.1).

set service dhcp-server shared-network-name LAN subnet 192.168.123.0/24 dns-server 192.168.123.1

DNS сервер (192.168.123.1).

set service dhcp-server shared-network-name LAN subnet 192.168.123.0/24 domain-name internal.blackdiver.net

Имя локального домена(internal.blackdiver.net).

set service dhcp-server shared-network-name LAN subnet 192.168.123.0/24 lease 3600

Время аренды адреса (3600 секунд).

Статическое назначение IP адресов для DHCP сервера

Для статического назначения IP адресов в DHCP используется стандартный алгоритм привязки MAC адреса к IP адресу. В примере мы сервер (SERVER-NAME — имя сервера. Может быть любым) с MAC адресом ab:cd:ef:01:23:45 статически привяжем к IP адресу 192.168.123.100:

set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 static-mapping SERVER-NAME ip-address 192.168.123.100
set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 static-mapping SERVER-NAME mac-address ab:cd:ef:01:23:45

DNS forwarder

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

Настройка DNS forwarding:

set service dns forwarding name-server 8.8.8.8
set service dns forwarding name-server 8.8.4.4
set service dns forwarding cache-size 0
set service dns forwarding listen-on eth2

Описание команд:

set service dns forwarding name-server 8.8.8.8

Указываем адреса DNS серверов, у которых VyOS будет запрашивать информацию (8.8.8.8 и 8.8.4.4) или можно использовать системные DNS сервера, тогда вместо ручного перечисления серверов указываем:

set service dns forwarding system

Теперь будут использоваться DNS сервера указанные в разделе Настройка сети.

set service dns forwarding cache-size 0

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

set service dns forwarding listen-on eth2

Указываем интерфейс, на котором будет работать DNS forwarding (eth2).

Статические DNS записи

Для создания статических записей используется команда:

set system static-host-mapping host-name blackdiver.net inet 192.168.123.100

В ней мы указываем, что для DNS записи blackdiver.net всегда отвечать адресом 192.168.123.100. Для таких записей не запрашивается информация у других DNS серверов, а сразу отдается заранее определенный ответ.

Настройка L2TP/IPsec сервера

Теперь перейдем к настройке L2TP/IPsec сервера, чтобы пользователи могли подключаться к нашей сети по VPN.

Для начала настроим IPsec:

set vpn ipsec ipsec-interfaces interface eth0
set vpn ipsec nat-traversal enable
set vpn ipsec nat-networks allowed-network 0.0.0.0/0

Описание команд:

set vpn ipsec ipsec-interfaces interface eth0

Указываем на каком интерфейсе будет работать IPsec (eth0).

set vpn ipsec nat-traversal enable

Включаем NAT Traversal, чтобы корректно работать с клиентами у которых NAT.

set vpn ipsec nat-networks allowed-network 0.0.0.0/0

Указываем откуда могут подключаться клиенты (0.0.0.0/0 — без ограничений).

Теперь переходим к настройке L2TP:

set vpn l2tp remote-access outside-address 1.1.1.2
set vpn l2tp remote-access client-ip-pool start 192.168.124.1
set vpn l2tp remote-access client-ip-pool stop 192.168.124.255
set vpn l2tp remote-access ipsec-settings authentication mode pre-shared-secret
set vpn l2tp remote-access ipsec-settings authentication pre-shared-secret MySecretKey
set vpn l2tp remote-access authentication mode local
set vpn l2tp remote-access authentication local-users username user1 password MySecretPassword
set vpn l2tp remote-access dns-servers server-1 192.168.123.1

Описание команд:

set vpn l2tp remote-access outside-address 1.1.1.2

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

set vpn l2tp remote-access client-ip-pool start 192.168.124.1
set vpn l2tp remote-access client-ip-pool stop 192.168.124.255

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

set vpn l2tp remote-access ipsec-settings authentication mode pre-shared-secret

Для подключения будет использоваться PSK ключ.

set vpn l2tp remote-access ipsec-settings authentication pre-shared-secret MySecretKey

Задаем PSK ключ (MySecretKey).

set vpn l2tp remote-access dns-servers server-1 192.168.123.1

Указываем DNS сервер, который будет передаваться подключившимся пользователям (в примере используется ранее настроенный DNS forwarder в VyOS), но лучше использовать внешний сервер (почему внешний лучше — рассказвается в конце статьи).

set vpn l2tp remote-access authentication mode local

Для аутентификации пользователей будет использоваться собственная база.

set vpn l2tp remote-access authentication local-users username user1 password MySecretPassword

Создаем пользователя с именем user1 и паролем MySecretPassword.

Если пользователю требуется дать статический адрес при подключении через VPN, то для этого используем команду:

set vpn l2tp remote-access authentication local-users username user1 static-ip 192.168.124.1

Теперь пользователи могут подключаться по L2TP к маршрутизатору, а так же имеют доступ к внутренней сети 192.168.123.0/24.

Для того, чтобы пользователи могли выходить через VPN соединение в интернет — нужно добавить правила NAT для адресов 192.168.124.1-255:

set nat source rule 110 outbound-interface eth0
set nat source rule 110 source address 192.168.124.0/24
set nat source rule 110 translation address masquerade

Создание правил NAT для L2TP полностью аналогично настройке NAT для внутренней сети.

Если для VPN клиентов используется DNS forwarder, то нужно для каждого соединения L2TP опубликовать сервис DNS forwarder’а. Почему-то его нельзя опубликовать сразу для всех интерфейсов l2tp, и более того, нельзя его опубликовать на несуществующие интерфейсы. Поэтому нужно подключить одновлеременно множество пользователей и после этого добавлять интерфейсы в DNS forwarding.

set service dns forwarding listen-on l2tp0
set service dns forwarding listen-on l2tp1
set service dns forwarding listen-on l2tp2

Когда много клиентов это не очень удобно. Поэтому рекомендую использовать внешний DNS сервер для VPN клиентов.

Базовая настройка VyOS на этом завершна. Остается только применить настройки и сохранить конфигурацию:

commit
save

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

Заказать создание и поддержку безопасной IT-инфраструктуры любой сложности

Быть уверенным в своей IT-инфраструктуре — это быть уверенным в завтрашнем дне.

Для того, чтобы сделать заказ:

Настройка связки DNS + DHCP + NAT

И так в этой статье мы с вами научимся настраивать связку из DNS + DHCP + NAT на Ubuntu Server 16.04. Для чего это нам нужно? Да все очень просто. Наш сервер будет выступать шлюзом для всех остальных машин в нашей сети, т. е. он будет раздавать интернет, назначать IP адреса всем компьютерам в сети, а также отвечать на DNS запросы.

И так приступим к конфигурированию DNS + DHCP + NAT.

Сервер DHCP

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

Установка DHCP сервера

Для установке isc-dhcp-server набираем в терминале следующую команду:

sudo apt install isc-dhcp-server

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

Настройка DHCP сервера

И так приступим к настройке dhcp на Ubuntu Server 16.04 | 17.04 | 18.04

для этого нам потребуется отредактировать два файла.

Откроем в редакторе файл isc-dhcp-server.

sudo nano /etc/default/isc-dhcp-server

и добавим в поле INTERFACES="" интерфейс карты, которая смотрит в локальную сеть (в моем случае это br0 объединяющая два интерфейса wlp1s0 и enp0s8).

Как настроить сетевой мост в Ubuntu Server 18.04 смотрим в этой статье

Сохраняем(Ctrl+O) и закрываем (Ctrl+X).

Файл настройки dhcp

Далее открываем файл настройки dhcp сервера:

sudo nano /etc/dhcp/dhcpd.conf

Снимем комментарий и внесем изменения в необходимые нам параметры.
Так как наш сервер DHCP единственный в сети, то в первую очередь снимаем знак # перед словом authoritative

authoritative;

Также закомментируйте параметры

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

мы их укажем чуть ниже

Далее вносим параметры для нашей сети:

subnet 192.168.0.0 netmask 255.255.255.0 {
 range 192.168.0.100 192.168.0.120;
 option routers 192.168.0.1;
 option broadcast-address 192.168.0.255;
 option domain-name-servers 192.168.0.1;
 option domain-name "lan";
 option subnet-mask 255.255.255.0;
 default-lease-time 604800;
 max-lease-time 604800;
  • subnet — Параметр отвечает за подсеть (в нашем случае 192.168.0.0 с маской 255.255.255.0)
  • range — Диапазон выдаваемых адресов от 100 до 120
  • routers — Шлюз по умолчанию 192.168.0.1 (можно указывать как IP адреса так и URL адреса)
  • broadcast-address — Широковещательный адрес 192.168.0.255
  • domain-name-servers —  IP адрес DNS сервера 192.168.0.1 (в нашем случае указываем наш сервер — IP адрес сетевой карты enp0s8)
  • domain-name — Доменное имя «lan»
  • subnet-mask — Маска сети 255.255.255.0″
  • lease-time — Срок аренды адреса 604800 в секундах

также в настройках можно указать за какой машиной зафиксировать определенный IP адрес, за это отвечает параметр host

host home-asus {
 hardware ethernet AC:22:0B:4D:B2:1D;
 fixed-address 192.168.0.50;
 }
  • home-asus — имя машины в сети (можно написать все что угодно)
  • hardware — MAC адрес сетевой карты за которым закрепляем IP адрес
  • fixed-address — Здесь указываем какой IP адрес назначить данной машине

У нас IP адрес 192.168.0.50 будет зафиксирован за компьютером с именем home-asus ( у него MAC адрес сетевой карты AC:22:0B:4D:B2:1D)

Сохраняем (Ctrl+O) и закрываем (Ctrl+X), после этого перезапускаем службу DHCP

sudo /etc/init.d/isc-dhcp-server restart

Проверка статуса службы

sudo /etc/init.d/isc-dhcp-server status

Если появиться сообщение об ошибке, проверяйте что сделали не так.

Важное: если вы используете постоянные статические ip адреса в настройке dhcp сервера, то помните, что данные адреса ни в коем случае не должны попадать в пул динамических адресов.

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

DNS сервер

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

Установка DNS сервера

Самый известный dns сервер в Linux системах без лишней скромности считается пакет bind9.
Для установки пакета bind9 в Ubuntu Server набираем в терминале:

sudo apt install bind9 -y

Настройка DNS сервера bind9

Открываем файл конфигурации DNS сервера

sudo nano /etc/bind/named.conf.options

Добавим в него следующий код:

options {
 directory "/var/cache/bind";
 listen-on {
 192.168.0.0/24;
 127.0.0.1;
 };
 forwarders {
 8.8.8.8;
 8.8.4.4;
 };
dnssec-validation auto;
 auth-nxdomain no;
 listen-on-v6 { all; };
 version "DNS server v1.0";
 };
  • forwarders – вышестоящий dns сервер (у меня в примере это сервера google), используется если URL запроса не найден в нашей базе.
  • listen-on – с каких сетей или IP адресов будут обслуживаться запросы нашим DNS сервером.
  • version — параметр задает версию DNS сервера (меняем для безопасности)

Перезапустим bind9

sudo service bind9 restart

На этом все наш DNS сервер должен принимать и обрабатывать запросы от других машин в сети.

Для настройки собственной зоны DNS смотрите эту статью.

Для проверки bind9, воспользуемся командой nslookup

nslookup ya.ru

В ответ должны получить

Server: 192.168.0.1
Address: 192.168.0.1#53
Non-authoritative answer:
Name: ya.ru
Address: 87.250.250.242

В выводе на наш запрос, ответ дал нам наш DNS сервер. Если вы видите вместо своего DNS другой, то смотрим что настроили не так.

Одной из причин может стать назначение не того ip адреса или отсутствие записи dns-nameservers вообще в файле /etc/network/interfaces

Настройка NAT

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

Первое: смотрим какие у нас есть интерфейсы командой

ifconfig -a

У меня на Ubuntu Server 16.04 в локальную сеть смотрит интерфейс с названием br0 объединяющий в себе два интерфейса enp0s8 и wlp1s0, а в интернет enp0s3. Для изменения настроек сетевых интерфейсов откройте файл

sudo nano /etc/network/interfaces

Отредактируем его в соответствии с вашими настройками. У меня он выглядит так:

# The loopback network interface
 auto lo
 iface lo inet loopback
# The primary network interface
 auto enp0s3
 iface enp0s3 inet dhcp
# The primary local interface
 auto br0
 iface br0 inet static
 address 192.168.0.1
 netmask 255.255.255.0
 network 192.168.0.0
 broadcast 192.168.0.255
 bridge_ports enp0s8 wlp1s0
 dns-search lan
 dns-nameservers 192.168.0.1
auto wlp1s0
 iface wlp1s0 inet manual
post-up /etc/nat # Запись для запуска NAT

Второе: создадим правило iptables и включим перенаправление пакетов. Для этого в директории /etc создадим файл с именем nat

sudo touch /etc/nat

Откроем его для редактирования

sudo nano /etc/nat

добавим в него следующий листинг

#!/bin/sh
 # Включаем форвардинг (перенаправление) пакетов
 echo 1 > /proc/sys/net/ipv4/ip_forward
 # Включаем NAT
 iptables -t nat -A POSTROUTING -o enp0s3 -s 192.168.0.0/24 -j MASQUERADE

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

#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
iptables -t nat -A POSTROUTING -o enp0s3 -s 192.168.0.0/24 -j MASQUERADE

После этого сохраняем файл.

Выставим права на запуск.

sudo chmod 755 /etc/nat

Запустим наш скрипт

sudo /etc/nat

Настройка связки DNS + DHCP + NAT на этом закончена. После наших манипуляций, сервер должен начать раздавать ip адреса всем участникам сети, отвечать на DNS запросы из локальной сети, а также раздавать интернет.

Если есть вопросы, то пишем в комментариях.

Также можете помочь проекту, заранее всем СПАСИБО!!!

.

RSS

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Руководство по dhcpd.conf | БЛОГ ALeX!

Содержание

ЧТО ЭТО?
ОПИСАНИЕ
ПРИМЕРЫ
ОБЪЯВЛЕНИЯ
РАЗРЕШИТЬ и ОТКАЗАТЬ
ПАРАМЕТРЫ

ЧТО ЭТО?

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

ОПИСАНИЕ

Файл dhcpd.conf содержит информацию о настройках
dhcpd, сервера DHCP, разработанного в ISC

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

По существу состоит из секций-объявлений вида: имя_секции {…}.
В фигурных скобках могут быть заключены другие секции (подсекции) и параметры

Параметры используются для что бы определить поведение сервера:

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

Секции-объявления используются для:

  • Описание топологии сети
  • описание клиентов сети
  • описания, которые предоставлены клиентам
  • назначить группу одновременно в нескольким секциям

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

Секции описывающие топологию сети включают следующие подсекции:

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

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

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

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

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

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

ПРИМЕРЫ

Типичный файл dhcpd.conf выглядит примерно так:

  глобальные параметры ... 

общая сеть ISC-BIGGIE {
    Параметры, специфичные для совместно используемой сети ... 
  подсеть 204.254.239.0 маска сети 255.255.255.224 {
      Параметры подсети ... 
    диапазон 204.254.239.10 204.254.239.30;
  }
  подсеть 204.254.239.32 netmask 255.255.255.224 {
      Параметры подсети ... 
    диапазон 204.254.239.42 204.254.239.62;
  }
}

подсеть 204.254.239.64 маска сети 255.255.255.224 {
    Параметры подсети ... 
  диапазон 204.254.239.74 204.254.239.94;
}

group {
    групповые параметры ... 
  host zappo.test.isc.org {
      Параметры хоста ... 
  }
  host beppo.test.isc.org {
      Параметры хоста ... 
  }
  host harpo.test.isc.org {
      Параметры хоста ... 
  }
} 

Пример 1

Первая строка в примере — место для глобальных параметров. Это может быть
доменное имя, адреса серверов DNS (если они едины в пределах организации) и т.д.
Например

 вариант доменного имени "isc.org";
        option domain-name-servers ns1.isc.org, ns2.isc.org; 

Пример 2

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

В примере 1 видно, что как секция совместно используемой сети так и секция подсети
могут иметь собственные параметры.Например, сеть ISC-BIGGIE
принадлежит целому подразделению, например, отделу учета и если этот
имеет собственный DNS-домен, то есть среди параметров специфических
для разделяемой сети нужно было бы указать:

 вариант доменного имени "account.isc.org"; 

Ко всем подсетямленным в секции совместно используемой сети будет относиться
опция доменное имя со значением «account.isc.org»
в отличие от «isc.org».

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

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

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

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

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

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

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

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

Пример 1, каждый хост имеет
, зависящие от хоста параметры.
Это может быть опция hostname , задающая имя хоста,
имя файла загрузки (параметр filename ) и адрес сервера
, с которым этот файл должен быть загружен (параметр next-server ).
Любой параметр может быть указан в любом месте, где он имеет смысл, и
область действия определяется секцией в которой он появляется.

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

 group {
  имя файла "Xncd19r";
  следующий сервер ncd-booter;

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

group {
  имя файла "Xncd19c";
  следующий сервер ncd-booter;

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

group {
  имя файла "XncdHMX";
  следующий сервер ncd-booter;

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

ОБЪЯВЛЕНИЯ

Секция-объявление

совместно используемая сеть

  совместно используемая сеть   имя   {
   [ параметры ]
   [ объявления ]
  }  

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

Параметр Имя
— должнен быть именем этой «общей» сети. Это имя используется в
информационных и отладочных сообщениях и желательно что бы оно достаточно
полно описывало сеть. Имя может имет синтаксис обычного доменного имени (однако
никогда не используется в качестве такового), или это может быть произвольное
имя, заключенное в кавычки.

Секция-объявление

подсеть

  подсеть   номер подсети   сетевая маска   сетевая маска   {
   [ параметры ]
   [ объявления ]
  }  

Секция подсеть используется для предоставления серверу DHCP дополнительной информации —
принадлежит ли данный IP адрес подсети.Еще эта секция используется для предоставления
специфичных для подсчета параметров и диапазонов динамически распределяемых
адресов.

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

Параметр netmask
должен быть IP-адресом или доменным именем резолвится в соответствующем
маске описываемой подсети.

Параметры номер подсети и
маска сети однозначно определяет подсеть и принадлежность
IP-адреса к этой подсети.

Затрудняюсь перевести следующий абзац 🙁

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

Секция-объявление
ассортимент

  диапазон  [ dynamic-bootp ]  начало_диапазона  [ конец_диапазона ] ;  

Для любого подсети эти адреса устанавливаются динамически, должен быть указан хотя бы один диапазон с
секции range . В параметрах указывается начальный и конечный адрес диапазона. Все адреса IP
должны принадлежать той подсети к описанию, которая относится к диапазону .
Параметр dynamic-bootp указывается в случае, если постановить протокол из диапазона
клиентов по протоколу BOOTP. Если указан только один адрес, то параметр конец_диапазона может быть
опущен.

Секция-объявление
хост

  хост   имя_хоста  {
   [ параметры ]
   [ объявления ]
  }  

Необходима хотя бы
одна секция host
для каждого BOOTP клиента, обслуживаемого сервером.
Так же хост
может быть указан для клиентов DHCP, хотя это и не обязательно, если только
не требуется раздача адресов только определенным клиентам.

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

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

имя_хоста
— имя идентифицирующее хост. Если в описании хоста опция имя хоста не указана, то
используется значение имя_хоста .

Объявления Host сопоставляются с реальными DHCP или BOOTP-клиентами путем сравнения опции
dhcp-client-identifier выполняет в секции host со своим предоставленным клиентом или
, если клиент предоставляет dhcp-client-identifier , то есть путем сравнение опций оборудования
и
аппаратного (mac) адреса клиента.Клиенты BOOTP нормально не использовать dhcp-client-identifier ,
так что при работе по протоколу BOOTP необходимо использовать mac-адрес.

Секция-объявление
группа

  группа  {
   [ параметры ]
   [ объявления ]
  }  

Секция группа используется для присвоения или одного нескольких параметров группы
объявлений. Параметры могут быть присвоены группе секций хосты, общие сети,
подсети или группы.

РАЗРЕШИТЬ и ОТКАЗАТЬ

Параметры позволяют
и отрицать
используются для контроля над поведением демона dhcp в
различных видов запросов.

Ключевое слово
неизвестные клиенты

разрешить неизвестных клиентов;

отказать неизвестным клиентам;

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

Ключевое слово
bootp

разрешить bootp;

deny bootp;

Параметр bootp сообщает серверу dhcp обрабатывать или нет bootp-запросы.
По умолчанию bootp-запросы разрешены.

Ключевое слово
загрузка

разрешить загрузку;

запретить загрузку;

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

ПАРАМЕТРЫ

Параметр

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

default-lease-time время ;

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

Параметр

макс. Срок аренды

max-lease-time время ;

Время
— максимальный промежуток времени в секундах, на который выделяется адрес клиенту.

Параметр

крепеж

аппаратные тип_железа аппаратный_адрес ;

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

Параметр тип_железа
— тип физического интерфейса.В настоящее время используются только

Ethernet
и Token-Ring
и, возможно, скоро будут реализованы другие типы, особенно
fddi
.

аппаратный_адрес
— записывается как набор шестнадцатеричных значений (от 0 до ff) разделенных
двоеточиями.

должен быть набором шестнадцатеричных октетов (числа от 0 до ff)
, разделенных двоеточиями. Параметр hardware можно использовать и для DHCP клиентов.

Параметр

имя файла

имя_файла « имя_файла «;

Параметр filename указывает имя файла, используемого для начальной загрузки клиента.
имя_файла

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

Параметр

имя сервера

имя-сервера « имя_сервера «;

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

Параметр

следующий сервер

next-server имя_сервера ;

Параметр next-server используется для указания клиента сервера с которого должен быть
получен загрузочный файл (тот самый файл, указанный в параметрах filename ). Имя_сервера
может быть IP-адресом или доменным именем.Если этот параметр не указан, то используется адрес DHCP
сервера.

Параметр

фиксированный адрес

фиксированный адрес адрес [, адрес …] ;

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

Параметр

динамический-bootp-lease-cutoff

dynamic-bootp-lease-cutoff дата ;

Параметр dynamic-bootp-lease-cutoff устанавливает момент времени в который все адреса назначены
клиентам BOOTP должны быть освобождены.Так как клиенты BOOTP не имеют возможности продлить
срок использования полученных адресов и не могут определить срок аренды, по умолчанию
клиентов BOOTP адреса выделяются на неограниченный срок. В некоторых случаях оказывается
установить параметр dynamic-bootp-lease-cutoff , например, в учебном заведении
при окончании семестра или в ночное время когда предприятие не работает а все компьютеры выключены.

дата
— срок окончания действия адресов всех выделенных BOOTP клиентов.Дата указывается
в следующем формате:

Вт ГГГГ / ММ / ДД ЧЧ: ММ: СС

W — день недели в виде числа от 0 (воскресенье) до 6 (суббота).

ГГГГ — год

ММ — месяц 1..12

ДД — день месяца 1..31

ЧЧ — часы 0..23

ММ — минуты 0..59

СС — секунды 0..59

Время указывается в GMT, а не местное.

Параметр

динамическая загрузка-длина аренды

dynamic-bootp-lease-length время_в_секундах ;

Параметр dynamic-bootp-lease-length используется для указания на
который выделяется адрес BOOTP-клиенту.В некоторых организациях возможна ситуация
, что по прошествии определенного времени можно быть уверенным, что выделенный адрес
уже используется не используется. Период задается число секунд. Если перезагружается
в момент, когда установлен новый срок в этом параметре еще не истек, то период
заново устанавливается в этом параметре. Таким образом часто перезагружаемые
BOOTP клиенты могут постоянное удерживать свой адрес. Необходимо заметить
что настройку при настройке, следует быть осторожным.

Параметр

get-lease-hostnames

get-lease-hostnames вкл / выкл ;

Параметр get-lease-hostnames сообщает серверу dhcp следует ли выполнять преобразование
IP-адресов в соответствующих им именах и использовать имена в качестве значения параметра
hostname . Если значение параметра — истина, тогда преобразование выполняется для каждого адреса в
диапазоне.По умолчанию или если значение — ложь, преобразование не выполняется.

Параметр

использовать имена хостов

use-host-decl-names вкл / выкл ;

Если параметр use-host-decl-names имеет значение — включено (включено), то для каждого объявления
хоста, находящегося в зоне действия, используется в объявленном хосте {} предоставляется
клиенту в его качестве имени.

Например конструкция:

 group {
      использовать-host-decl-names на;

      host joe {
        аппаратный Ethernet 08: 00: 2b: 4c: 29: 32;
        фиксированный адрес joe.fugue.com;
      }
    }

эквивалентна следующая:

      host joe {
        аппаратный Ethernet 08: 00: 2b: 4c: 29: 32;
        фиксированный адрес joe.fugue.com;
        опция host-name "joe";
      } 

Дополнительный параметр option host-name в объявлении host {} имеет больший приоритет
по сравнению с use-host-decl-names , что позволяет переопределить имя хоста при включенном
use-host-decl-names

Параметр

авторитетный

авторитетный;

не авторитетный;

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

Если до конфигурации DHCP сервера каким-то образом допустили кого-нибудь, кто не является претендентом на это звание,
даже не является заявленным параметром
«не авторитетный»

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

Параметр
use-lease-addr-for-default-route

use-lease-addr-for-default-route вкл / выкл ;

Если параметр use-lease-addr-for-default-route установлен в «on» для сегмента сети, то
вместо посылки клиенту значения в дополнительном параметре option router (или не посылки ничего
если адреса маршрутизаторов не заданы), клиенту посылаются IP-адреса уже назначенные сервером.На клиенте это вызывает
запросов ARP по этому адресу, что может быть очень полезным, если ваш маршрутизатор сконфигурирован для
как прокси ARP.

Параметр
always-reply-rfc1048

всегда-ответ-rfc1048 вкл / выкл ;

Некоторые клиенты BOOTP ожидают ответа от сервера в стиле RFC1048, но сами не следуют RFC1048 при посылке
запросов. Если в вашей сети имеется такой проблемный клиент, который воспринимает передаваемые параметры
сервером и если в регистрации появляется сообщение «(non-rfc1048)», то можно воспользоваться
этим параметром.

Если у вас все клиенты требуют работы в стиле RFC1048, можно использовать параметр always-reply-rfc1048
.
Параметр может быть указан в любом объявлении в этом случае действует только на тех клиентов, которые
соответствуют зоне действия.

Параметр
идентификатор сервера

идентификатор сервера имя_хоста ;

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

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

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

Задание значения для параметра идентификатор-сервера dhcp эквивалент использования
параметра идентификатор-сервера .

.

Установка и настройка DHCP | Linux и Windows

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


Установка

  sudo apt-get install isc-dhcp-server  

Обратите внимание, что сообщения dhcpd будут посылаться в syslog.Смотрите его для диагностики.

Предварительная настройка

И так мы хотим настроить свой интернет-шлюз с DNS и DHCP, DNS мы с Вами настроили в этой статье и так!

Исходные данные

  • имя компьютера: ub

  • имя домена: domain.tld

  • IP локальный dns: 192.168.1.1

Настройка

Редактируем конфиг

  нано / и т.д. / dhcp / dhcpd.conf  

время аренды по умолчанию 600;
max-lease-time 7200;

авторитетных;

лог-объект локальный7;

подсеть 192.168.1.0 сетевая маска 255.255.255.0 {
диапазон 192.168.1.150 192.168.1.200;
вариант доменных имен-серверов 192.168.1.1;
опция доменного имени «domain.tld»; Маршрутизаторы опции
192.168.1.1;
вариант широковещательного адреса 192.168.1.255;
время аренды по умолчанию 600;
max-lease-time 7200;
}

ddns-update-style промежуточный;
update-static-leases on;
ключ DHCP_UPDATER {
алгоритм hmac-md5;
секрет «lqrfes / uv041jCmoqDu3BA ==»; // ключ, который мы получили настраивая dns
}

зона домена.tld. {
первичный 127.0.0.1;
ключ DHCP_UPDATER;
}

зона 1.168.192.in-addr.arpa. {
первичный 127.0.0.1;
ключ DHCP_UPDATER;
}

Далее привяжем сетевой интерфейс (Например, eth2, если вы настраиваете интернет-шлюз на ubuntu). Об этом не много позднее в следующей статье.

нано нано / etc / default / isc-dhcp-server

ИНТЕРФЕЙСЫ = »eth2 ″

Перезапустить dhcp

  sudo / etc / init.d / isc-dhcp-server restart  

.

Настройка DHCP-сервера в Linux — ИТ Проффи

Протокол динамической конфигурации узлов ( D ynamic H ost C onfiguration P rotocol, DHCP) — это сетевой протокол, используемый для автоматического получения узлами IP-адресов и сетевой конфигурации с сервера.

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

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

  • После загрузки подключенного к сети клиента (на котором настроено использование DHCP) отправляет DHCP-серверу пакет DHCPDISCOVER.
  • Получив пакет запроса DHCPDISCOVER, DHCP-сервер отвечает за пакет DHCPOFFER.
  • Клиент принимает пакет DHCPOFFER и отправляет серверу пакет DHCPREQUEST, подтверждая готовность принять сетевую конфигурацию, предоставленную в пакете.
  • Получив от клиента пакет DHCPREQUEST, сервер отправляет пакет DHCPACK, который разрешает клиенту использование выделенного IP-адреса.

В данном случае мы рассмотрим настройку DHCP-сервера в Ubuntu / Debian Linux, но большее количество настроек будет работать и в других дистрибутивах. Получение административных функций через sudo.

Шаг 1: Установка DHCP-сервера

1. Для установки пакета DCHP-сервера, ранее известного как dhcp3-server, нужно выполнить следующую команду:

 $ sudo apt установить isc-dhcp-server 

2. После завершения установки отредактируйте файл / etc / default / isc-dhcp-server для определения интерфейсов, которые будут использовать DHCPD для обработки DHCP-запросов, при помощи опции INTERFACES.

Например, если вам нужно, чтобы демон DHCPD прослушивал eth0, задает следующее значение:

 ИНТЕРФЕЙСЫ = "eth0" 

Для этого сетевого интерфейса нужно настроить статический IP-адрес.

Шаг 2: Настройка DHCP-сервера

3. Основной файл конфигурации DHCP — /etc/dhcp/dhcpd.conf, ему нужно внести всю информацию, отправляемую клиентам.
В файле конфигурации DHCP есть два типа данных:

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

4. Для настройки DHCP-сервера откроем и отредактируем файл конфигурации:

 $ Судо vi /etc/dhcp/dhcpd.conf 

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

 вариант доменного имени "itproffi.lan";
option domain-name-servers ns1.itproffi.lan, ns2.itproffi.lan;
время аренды по умолчанию 3600;
max-lease-time 7200;
авторитетный; 

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

5. Теперь нужно указать подсеть, в нашем примере мы будем использовать DHCP в локальной сети 192.168.10.0/24.

Подсеть

 192.168.10.0 маска подсети 255.255.255.0 {
          вариант роутеров 192.168.10.1;
          опция маска подсети 255.255.255.0;
          опция доменного поиска "itproffi.lan";
          вариант доменных имён-серверов 192.168.10.1;
          диапазон 192.168.10.10 192.168.10.100;
          диапазон 192.168.10.110 192.168.10.200;
} 

Здесь мы использовали следующие параметры:

роутеры — IP-адреса маршрутизатора по умолчанию
маска подсети — маска подсети
domain-search — имя домена
domain-name-servers — имена DNS-серверов
диапазон — диапазон IP- Вы должны указывать несколько диапазонов, но обязательно указать хотя бы один)

Шаг 3: Настройка статических IP-адресов для машин клиентов

6.Для выделения конкретного фиксированного (статического) IP-адреса явно указаны MAC-адрес и статически выделяемый IP-адрес:

 host centos-node {
      аппаратный Ethernet 00: f0: m4: 6y: 89: 0g;
      фиксированный адрес 192.168.10.105;
}

host fedora-node {
       аппаратный Ethernet 00: 4g: 8h: 13: 8h: 3a;
       фиксированный адрес 192.168.10.106;
} 

7. Запустим службу DHCP и установим ее автоматический запуск при загрузке:

———— SystemD ————

 $ sudo systemctl start isc-dhcp-server.служба
$ sudo systemctl включить isc-dhcp-server.service 

———— SysVinit ————

 $ sudo service isc-dhcp-server.service start
$ sudo service isc-dhcp-server.service включить 

8. Далее нужно создать правило для службы DHCP в брандмауэре (Демон DHCPD прослушивает UDP-порт 67):

 $ sudo ufw разрешить 67 / udp
$ sudo ufw перезагрузить
$ sudo ufw показать 

Шаг 4: Настройка машин клиентов

9. Теперь можно настроить клиентские компьютеры в сети для автоматического получения IP-адресов от DHCP-сервера.

Отредактируйте файл конфигурации интерфейса Ethernet на клиентской машине (обратите внимание на имя / номер интерфейса):

 $ sudo vi / и т.д. / сети / интерфейсы 

Укажите следующие опции:

 авто eth0
iface eth0 inet dhcp 

Сохраните и закройте файл, затем перезапустите сетевые службы или перезагрузите систему:

———— SystemD ————

 $ sudo systemctl перезапуск сети 

———— SysVinit ————

 $ перезапуск сети службы sudo 

Если все настроено правильно, клиентская машина должна автоматически получать IP-адреса от DHCP-сервера.

Настройка DHCP-сервера завершена. Более подробная информация о dhcpd и dhcpd.conf с описанием всех преступников опций можно получить в соответствующих man-страницах:

 $ человек dhcpd
$ man dhcpd.conf 

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl + Enter .

.

Настройка DHCP сервера на Ubuntu Linux

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

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

Назначение DHCP

  1. Запрос на аренду: Клиент передает запрос на сервер DHCP с адресом источника 0.0.0.0 и адресом назначения 255.255.255.255. Запрос включает MAC-адрес, который используется для ответа от сервера.
  2. Предложение аренды IP-адреса: сервер DHCP отвечает с IP-адресом, маской подсети, сетевым шлюзом, именем домена, серверами имен, продолжительностью аренды и IP-адресом сервера DHCP.
  3. Выбор аренды: Когда клиент получил предложение — он передаёт всем серверам в сети, что он настроен, и больше настройки ему не нужны.
  4. Затем сервер DHCP отправляет клиенту подтверждение. Клиент настроен на использование TCP / IP.
  5. Продление срока аренды: Когда остаётся половина аренды, клиент запрашивает у DHCP сервера продление IP-адреса.

Установка

Мы ставим DHCP сервер на:
Система — Ubuntu 18.04 LTS 64 бит
IP-адрес — 192.168.188.0/24
Хост — mstream.lan

Откройте терминал и выполните следующую команду для установки сервера:

.

sudo apt-get install isc-dhcp-server

sudo apt-get install isc-dhcp-server

DHCP-сервер установлен.Теперь давайте настроем его под наши нужды.

Настройка

Файл первичной конфигурации находится по адресу / etc / default / isc-dhcp-server . В нём нужно указать лишь наш сетевой интерфейс.

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

Так как у меня на сервере только одна сетевая карта, под именем «ens33» — то я пропишу в конфигурационный файл именно её.
Давайте отредактируем конфиг / etc / default / isc-dhcp-server :

Судо нано / и т. д. / по умолчанию / isc-dhcp-server

судо нано / и т. Д. / По умолчанию / isc-dhcp-сервер

Определим сетевой интерфейс

[…]

INTERFACESv4 = «ens33»

[…]

[…]

INTERFACESv4 = «ens33»

[…]

Если вы хотите использовать больше одного сетевого интерфейса — просто напишите их через пробел: «eth0 eth2».

Сохраните и закройте файл.

Теперь нам нужно отредактировать dhcpd.conf :

Судо нано /etc/dhcp/dhcpd.conf

судо нано / и т.д. / dhcp / dhcpd.конф

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

[…]

# определения опций, общие для всех поддерживаемых сетей …
опция доменного имени «mstream.lan»;
option domain-name-servers ubserver.mstream.lan;

[…]

[…]

# определения опций, общие для всех поддерживаемых сетей …

вариант доменного имени «mstream.lan»;

option domain-name-servers ubserver.mstream.lan;

[…]

Чтобы клиенты в нашей сети смогли получить IP-адреса от нашего сервера, нужно расскоментировать строку:

.

[…]

авторитетный;

[…]

[…]

авторитетный;

[…]

Немного прокрутите вниз, и определите маску сети, диапазон адресов, домен и NS сервера:

[…]

# Немного другая конфигурация для внутренней подсети.
подсеть 192.168.188.0 сетевая маска 255.255.255.0 {
диапазон 192.168.188.10 192.168.188.20;
option domain-name-servers ubserver.mstream.lan;
вариант доменного имени «mstream.lan «;
вариант маршрутизаторов 192.168.188.1;
опция маска подсети 255.255.255.0;
опция широковещательного адреса 192.168.188.255;
время аренды по умолчанию 600;
max-lease-time 7200;
}

[…]

[…]

# Немного другая конфигурация для внутренней подсети.

подсеть 192.168.188.0 сетевая маска 255.255.255.0 {

диапазон 192.168.188.10 192.168.188.20;

опция domain-name-servers ubserver.mstream.lan;

вариант доменного имени «mstream.lan»;

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

опция маска подсети 255.255.255.0;

вариант широковещательного адреса 192.168.188.255;

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

max-lease-time 7200;

}

[…]

Как вы видите выше, я выбрал диапазон IP-адресов с 192.168.188.10 по 192.168.188.20, клиенты dhcp адреса получат именно из этого диапазона.
А что, если мы хотим предоставить клиенту установленный ip? В принципе сделать это не так трудно. Вы можете установить установленный IP-клиент по его MAC адресу. Давайте разберём это далее в статье.

Предоставление установленного IP-адреса клиенту dhcp сервера.

Для примера, давайте присвоим IP-адрес 192.168.188.16 клиенту с MAC-адресом 00: 0c: 29: 93: f0: 59 . Для определения MAC-адреса используйте команду ifconfig

Вывод будет примерно следующим:

Обратите внимание на подчёркнутые слова — это IP-адрес и MAC-адрес.

Теперь присвоим нужный нам IP-клиент с MAC-адресом, который мы узнали выше.

[…]

host ub-local-client {
аппаратный Ethernet 00: 0c: 29: 93: f0: 59;
фиксированный адрес 192.168.188.16;
}

[…]

[…]

хост ub-local-client {

аппаратный Ethernet 00: 0c: 29: 93: f0: 59;

фиксированный адрес 192.168.188.16;

}

[…]

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

Запускаем DHCP-сервер с новыми настройками

Теперь нам нужно перезапустить сервер:

sudo systemctl перезапуск isc-dhcp-server

sudo systemctl перезапуск isc-dhcp-server

Посмотрите не оставили-ли вы ненужных записей в конфигурационном файле dhcpd.конф. Если, всё таки, вы отказываетесь какие-то записи — просто закамментируйте их, в противном случае DHCP сервер не загрузится.

Чтобы проверить, работает наш DHCP-сервер или нет, используйте команду:

sudo systemctl статус isc-dhcp-server

sudo systemctl статус isc-dhcp-server

Если сервер настроен верно, то статус сервера будет «активный» .

Чтобы запустить, остановить или DHCP сервер, викорите следующие команды:

sudo systemctl start isc-dhcp-server

sudo systemctl start isc-dhcp-server

sudo systemctl остановить isc-dhcp-server

sudo systemctl stop isc-dhcp-server

Теперь у нас полностью рабочий DHCP сервер.Далее нам предстоит выполнить настройку клиента нашего сервера.

Настройка DHCP клиента

Для этой клиентской стороны я буду использовать Ubuntu Desktop 18.04 (64-разрядная версия).
Клиент:

  • Система — Рабочий стол Ubuntu 18.04
  • IP-адрес — DHCP включен

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

переходим на вкладку настроек IPv4 , и выбираем метод « Автоматический (DHCP) ».Нажимаем Сохранить .

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

Если всё настроено верно — то клиент получил выделенный ему IP-адрес. Задача решена.

Поздравляю! Наш DHCP сервер работает !!!

.

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

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