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
- Запрос на аренду: Клиент передает запрос на сервер DHCP с адресом источника 0.0.0.0 и адресом назначения 255.255.255.255. Запрос включает MAC-адрес, который используется для направления ответа от сервера.
- Предложение аренды IP-адреса: сервер DHCP отвечает с IP-адресом, маской подсети, сетевым шлюзом, именем домена, серверами имен, продолжительностью аренды и IP-адресом сервера DHCP.
- Выбор аренды: Когда клиент получил предложение – он передаёт всем серверам в сети, что он настроен, и больше настройки ему не нужны.
- Затем сервер DHCP отправляет клиенту подтверждение. Клиент настроен на использование TCP/IP.
- Продление срока аренды: Когда остаётся половина срока аренды, клиент запрашивает у 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.1 — IP адрес маршрутизатора;
8.8.8.8 — DNS сервер.
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
- Запрос на аренду: Клиент передает запрос на сервер DHCP с адресом источника 0.0.0.0 и адресом назначения 255.255.255.255. Запрос включает MAC-адрес, который используется для ответа от сервера.
- Предложение аренды IP-адреса: сервер DHCP отвечает с IP-адресом, маской подсети, сетевым шлюзом, именем домена, серверами имен, продолжительностью аренды и IP-адресом сервера DHCP.
- Выбор аренды: Когда клиент получил предложение — он передаёт всем серверам в сети, что он настроен, и больше настройки ему не нужны.
- Затем сервер DHCP отправляет клиенту подтверждение. Клиент настроен на использование TCP / IP.
- Продление срока аренды: Когда остаётся половина аренды, клиент запрашивает у 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 сервер работает !!!
.