Linux server dhcp server: How to Install a DHCP Server in Ubuntu and Debian

Содержание

Установка DHCP-сервера на Ubuntu Server 18.04 LTS. Категория: ОС Linux • Разное

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

Создаем виртуальные машины

Чтобы установить и настроить DHCP-сервер, нужно хотя бы два компютера, объединенные в сеть. Но в этом нам поможет VirtualBox. Создаем три виртуальные машины dhcp-server, pc-1 и pc-2. У виртуальной машины dhcp-server будут два сетевых интерфейса. Один будет смотреть в домашнюю сеть и получать настройки от роутера Keenetic Air (сетевой мост). А второй нужен для связи с двумя другими виртуальными машинами (виртуальный адаптер хоста).

Тут надо сказать несколько слов о настройке сети в VirtualBox. Существует несколько способов, рассмотрим два из них:

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

Как нетрудно догадаться, у виртуальных машин pc-1 и pc-2 будет по одному интерфейсу (виртуальный адаптер хоста). А второй адаптер (сетевой мост) для виртуальной машины dhcp-server

нужен для выхода в интернет — чтобы установить пакет isc-dhcp-server.

Настройки виртуального адаптера хоста: DHCP-сервер отключен (мы установим свой сервер), хост-система тоже есть в сети и доступна по ip-адресу 192.168.53.1. Виртуальной машине dhcp-server мы назначим статический ip-адрес 192.168.53.2, а виртуальные машины pc-1 и pc-2 получат адреса из диапазона 192.168.53.3 … 192.168.53.7.

Настройка сети для dhcp-server

Сначала нужно посмотреть, как называются сетевые интерфейсы в системе:

$ ls /sys/class/net
enp0s3  enp0s8  lo

Открываем на редактирование файл

/etc/netplan/01-netcfg.yaml

$ sudo nano /etc/netplan/01-netcfg.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3: # этот интерфейс получает настройки от домашнего роутера
      optional: true
      dhcp4: yes
    enp0s8: # для этого интерфейса назначаем статический ip-адрес
      optional: true
      dhcp4: no
      addresses: [192. 168.53.2/24]
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]

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

$ sudo netplan apply # применить настройки из YAML-файла к работающей системе
$ sudo netplan generate # сохранить текущие настройки в файл конфигурации networkd
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:60:16:de brd ff:ff:ff:ff:ff:ff
    inet 192.168.110.5/24 brd 192.168.110.255 scope global dynamic enp0s3
       valid_lft 25155sec preferred_lft 25155sec
    inet6 fe80::a00:27ff:fe60:16de/64 scope link 
       valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:52:7c:bd brd ff:ff:ff:ff:ff:ff
    inet 192.
168.53.2/24 brd 192.168.53.255 scope global enp0s8 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe52:7cbd/64 scope link valid_lft forever preferred_lft forever

Первый сетевой интерфейс enp0s3 получил ip-адрес 192.168.110.5 от роутера Keenetic Air. Второму сетевому интерфейсу enp0s8 мы назначили ip-адрес 192.168.53.2.

Установка и настройка сервера

Итак, устанавливаем сервер:

$ sudo apt install isc-dhcp-server

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

$ sudo nano /etc/default/isc-dhcp-server
INTERFACESv4="enp0s8"
INTERFACESv6=""

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

/etc/dhcp/dhcpd.conf:

$ sudo nano /etc/dhcp/dhcpd.conf
# адреса DNS-серверов
option domain-name-servers 8. 8.8.8, 8.8.4.4;
# время аренды по умолчанию
default-lease-time 3600;
# максимальное время аренды
max-lease-time 7200;

# Локальная сеть: адрес и маска
subnet 192.168.53.0 netmask 255.255.255.0 {
  # пул ip-адресов
  range 192.168.53.3 192.168.53.7;
  # маска подсети
  option subnet-mask 255.255.255.0;
  # ip-адрес шлюза
  option routers 192.168.53.2;
}

Перезагружаем dhcp-сервер:

$ sudo systemctl restart isc-dhcp-server.service

Настройка сети pc-1 и pc-2

Сначала для виртуальной машины pc-1. Смотрим, как называются сетевые интерфейсы в системе:

$ ls /sys/class/net
enp0s3  lo

Открываем на редактирование файл

/etc/netplan/01-netcfg.yaml

$ sudo nano /etc/netplan/01-netcfg.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3: # этот интерфейс получает настройки от dhcp-сервера
      optional: true
      dhcp4: yes

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

$ sudo netplan apply # применить настройки из YAML-файла к работающей системе
$ sudo netplan generate # сохранить текущие настройки в файл конфигурации networkd
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127. 0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:24:12:8b brd ff:ff:ff:ff:ff:ff
    inet 192.168.53.3/24 brd 192.168.53.255 scope global dynamic enp0s3
       valid_lft 2776sec preferred_lft 2776sec
    inet6 fe80::a00:27ff:fe24:128b/64 scope link 
       valid_lft forever preferred_lft forever

Для pc-2 все будет аналогично, так что не буду описывать подробно:

$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:28:cd:2a brd ff:ff:ff:ff:ff:ff
    inet 192.
168.53.4/24 brd 192.168.53.255 scope global dynamic enp0s3 valid_lft 3246sec preferred_lft 3246sec inet6 fe80::a00:27ff:fe28:cd2a/64 scope link valid_lft forever preferred_lft forever

Какие адреса арендованы

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

$ dhcp-lease-list
Reading leases from /var/lib/dhcp/dhcpd.leases
Processing: 50% complete
Processing: 100% complete
MAC                IP              hostname       valid until          manufacturer
===================================================================================
08:00:27:24:12:8b  192.168.53.3    pc-1           2020-01-18 10:51:07  -NA-        
08:00:27:28:cd:2a  192.168.53.4    pc-2           2020-01-18 11:00:43  -NA-        

Хотя в файле конфигурации DHCP-сервера указан ip-адрес шлюза 192.168.53.2, интернета на виртуальных машинах pc-1 и pc-2 не будет. Для этого нужно виртуальную машину dhcp-server сделать маршрутизатором, чтобы она перенаправляла пакеты с одного интерфейса на другой.

Поиск: CLI • Linux • Ubuntu • Виртуальная машина • Конфигурация • Локальная сеть • Настройка • Сервер • DHCP • VirtualBox • Интерфейс • Установка

Отказоустойчивый DHCP сервер на базе Kea / Хабр

Статья-инструкция по установке и базовой настройке отказоустойчивого сервера Kea DHCP


Kea DHCP – это open-source DHCP сервер, разрабатываемый Internet Systems Consortium(ISC) с поддержкой DHCPv4 и DHCPv6.

ISC – это те же ребята, которые разрабатывают наши любимые bind и dhcpd. Kea – разработана на базе BIND 10.

Kea позволяет запустить dhcp-сервер как для небольших систем, так и для больших телеком/корпоративных компаний. Из нововведений – использование API для управления сервисом, возможность хранения базы lease в СУБД и использование hooks для дополнительных функций.
На момент написания статьи(июнь 2019) – последняя стабильная версия 1.5.0.

Вдаваться в детальную работу протокола DHCP не буду, тогда статья будет раза в два-три больше. Есть хорошая статья на Хабре.

Протокол DHCP работает по протоколу UDP(порты 67-68), используется для динамического выделения ip-адресов. Использует четыре шага для получения/выдачи ip-адресов –

discover-offer-request-acknowledge(DORA). Также DHCP использует понятие lease – аренда адреса, срок аренды адреса устройством – lease-time.

Почему Kea


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

Этот продукт будет использоваться нашим телеком-оператором, который планирует выдавать около 2 млн. адресов, с 2000 запросами в секунду. Он был выбран из-за скорости работы и возможности создания кластера из двух серверов.

Поддерживаемые ОС


• CentOS Linux — 7.1804 (aka 7.5)
• Fedora — 28, 29
• Ubuntu — 16.04, 18.04
• Debian GNU/Linux — 7, 8, 9
• FreeBSD — 11.0
• macOS — 10.13, 10.14

Планов запуска Kea для Windows нет.

Хранение базы lease


Kea DHCP – поддерживает хранение базы выданных адресов в локальном CSV-файле(memfile) или в одной из трёх СУБД – MySQL, PostgreSQL и Cassandra.

Отличия – в скорости работы и возможностях хранения. Memfile – в 10 раз быстрее, но хранение базы в СУБД позволяет хранить дополнительные поля и опции DHCP. Сравнение скорости работы:

Очень большой анализ использования различных баз данных и локального хранения тут.

В нашем проекте решили начать с базы в memfile, так как количество запросов в секунду будет больше 2000.

Установка


В качестве примера Kea будет разворачиваться на базе CentOS 7(minimal edition):
[[email protected] ~]# cat /etc/centos-release
CentOS Linux release 7. 6.1810 (Core)

Перед установкой самого сервиса, необходимо установить все необходимые зависимости:
  1. Библиотеки Boost C++ (http://www.boost.org/). # run-time среда с++ для запуска самого Kea
  2. Криптобиблиотеку Botan (вер. 1.9) или OpenSSL (вер. 1.0.1). Советую openssl, так как botan не будет поддерживаться с версии Kea 1.6.0
  3. log4cplus (вер. 1.0.3) development # нужен для создания логов
  4. Компилятор C++
  5. Библиотеки automake, libtool, pkg-config # для сборки и установки самого Kea
  6. Если будете использовать СУБД – то тогда установить MySQL, PostgreSQL или Cassandra.

Опционально если нужны RADIUS или NETCONF/YANG(на англ.)
  • FreeRADIUS client library when —with-freeradius configuration flag used.
  • Sysrepo (version 0.7.6 or later) and libyang (version 0.16-r2 or later) when —with-sysrepo configuration flag used.
  • googletest (version 1.8 or later), when using the —with-gtest configuration option to build the unit tests.
  • The documentation generation tools elinks, docbook-xsl, libxslt and Doxygen, if using the —enable-generate-docs configuration option to create the documentation.


Шаг 1. Устанавливаем нужные зависимости
# wget нужен для скачивания файлов 
sudo yum install wget
# репозиторий community программ
sudo yum install epel-release
# нужен для создания логов
sudo yum install log4cplus-devel
# run-time среда с++ для запуска самого Kea
sudo yum install boost-devel
# для генериации ssl сертификатов, нужен именно *-devel, иначе не поставиться
sudo yum install openssl-devel
# для сборки и установки Kead
sudo yum install automake libtool
# компилятор gcс, поставил Development Tools, т.к. другие варианты установки выдавали ошибку при установке 
sudo yum groupinstall Development\ Tools

Шаг 2. Если все зависимости встали нормально, переходим к установке самого Kea
# скачиваем исходники Kea (или скачиваем с сайта https://ftp. isc.org/isc/kea/1.5.0/ и передаем на сервер)
wget -nd https://ftp.isc.org/isc/kea/1.5.0/kea-1.5.0.tar.gz
# распаковываем архив
tar zxvf kea-1.5.0.tar.gz
# переходим в папку из архива
cd kea-1.5.0
# проверяем нужные библиотеки и готовимся к установке
#./configure [нужные опции здесь] я устанавливал без дополнительных опций
./configure 

*Тут нужно упомянуть про нужные опции – если вы планируете использовать СУБД, нужно отметить эту опцию. Все опции при сборке:—prefix
Define the installation location (the default is /usr/local).
—with-boost-include
Define the path to find the Boost headers.
—with-botan-config
Specify the path to the botan-config script to build with Botan for cryptographic functions.
—with-mysql
Build Kea with code to allow it to store leases and host reservations in a MySQL database.
—with-pgsql
Build Kea with code to allow it to store leases and host reservations in a PostgreSQL database.
—with-cql
Build Kea with code to allow it to store leases and host reservations in a Cassandra (CQL) database.
—with-gtest, —with-gtest-source
Enable the building of the C++ Unit Tests using the Google Test framework. This option specifies the path to the gtest source. (If the framework is not installed on your system, it can be downloaded from github.com/google/googletest.) from github.com/google/googletest.)
—with-benchmark, —with-benchmark-source
Enable the building of the database backend benchmarks using the Google Benchmark framework. This option specifies the path to the gtest source. (If the framework is not installed on your system, it can be downloaded from github.com/google/benchmark.)
—with-log4cplus
Define the path to find the Log4cplus headers and libraries.
—with-openssl
Replace Botan by the OpenSSL the cryptographic library. By default configure searches for a valid Botan installation: if one is not found, it searches for OpenSSL.
Собирается относительно долго, при сборке может выдавать ошибки если не установили какую-то зависимость. В конце вы увидите итог сборки:

Шаг 3. Устанавливаем
make
sudo make install

Операция make проходит очень долго(час или около того). Make install около минуты.

Запуск и настройка


Запускается из установленной директории:
keactrl start

Еще есть опции stop, reload(перезагрузка конфигурации) и status

При старте запускает три процесса – kea-dhcp4, kea-dhcp6 kea-ctrl-agent – агент для управления и управляющих коммуникации сервера

Если вам не нужен dhcp6, то можно запустить только dhcp4, не забываем запустить агента:

keactrl start -s dhcp4, ctrl_agent

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


Основной конфигурационный файл dhcp4 — /usr/local/etc/kea/kea-dhcp4.conf

Файл хорошо описан, очень много комментариев и примеров настроек, не запутаетесь, напишу только главные настройки:
Указываем интерфейс или адрес через который будет работать dhcp4:

"interfaces-config": {
         // interface name (e. g. "eth0" or specific IPv4 address on that
        // interface name (e.g. "eth0/192.0.2.1").
        "interfaces": [ ]
}

Указываем где хранить базу lease
"lease-database": {
        // Memfile is the simplest and easiest backend to use. It's a in-memory
        // C++ database that stores its state in CSV file.
        "type": "memfile",
        "lfc-interval": 3600
    },

Какие DNS сервера будут презентованы клиентам
"option-data": [
       {
            "name": "domain-name-servers",
            "data": "192.0.2.1, 192.0.2.2"
        },

Доменное имя вашей организации

{
            "name": "domain-search",
            "data": "mydomain.example.com, example.com"
        },

И главная настройка — подсети, пулы и default gateway:
"subnet4": [
{ //subnet обязательный параметр, указывает Kea из какой подсети выдавать адреса
"subnet": "192.0.2.0/24",

            //пул адресов, который будут использоваться для выдачи клиентам
            "pools": [ { "pool": "192. 0.2.1 - 192.0.2.200" } ],

"option-data": [
                {
                  // указываем default gateway для этой подсети
                    "name": "routers",
                    "data": "192.0.2.1"
                }
            ],

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

"reservations": [
                {
                    "hw-address": "1a:1b:1c:1d:1e:1f",
                    "ip-address": "192.0.2.201"
                }
]

Вот пожалуй основные настройки, после изменения конфигурации нужно перезапустить сервис –
keacrtl stop
keactrl start -s dhcp4,ctrl_agent

CSV-база


Локальная база хранится тут — /usr/local/var/kea/kea-leases4.csv

Логи


Логи по умолчанию хранятся — /usr/local/var/log/

Тут у каждого из компонентов отдельный файл:

  • kea-dhcp4. log
  • kea-dhcp6.log
  • kea-ctrl-agent.log

В отдельной статье опишу как запустить кластер из двух серверов и настройку синхронизации базы выдачи lease.

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

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

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

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

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

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

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

Homepage:WWW: isc-dhcp-server

Дополнительная информация в man

> man dhcp-options
# описаны выражения допустимые в конфигурационном файле
> man dhcp-eval
> uname -a
FreeBSD ns.com.ua 7.2-RELEASE-p2 FreeBSD 7.2-RELEASE-p2 #0: Wed Jun 24 00:57:44 UTC 2009
[email protected]:/usr/obj/usr/src/sys/GENERIC  i386
> cd /usr/ports/net/isc-dhcp31-server
> make install clean
> cp /usr/local/etc/dhcpd.conf.sample /usr/local/etc/dhcpd.conf
> ee dhcpd. conf
# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
#

# Общие опции для всех поддерживаемых сетей...
option domain-name "example.org"; # домен по умолчанию

# (см. Бесплатные Быстрые Публичные DNS Сервера (обновлено 08.12.2020))

option domain-name-servers 4.2.2.2, 208.67.222.222; #сервера DNS

default-lease-time 1200; # время аренды (по умолчанию 600)
max-lease-time 7200; # максимальное время аренды

# Use this to enble / disable dynamic dns updates globally.
#ddns-update-style none;

# Параметр authoritative

# Является ли сервер авторитативным - ответственным DHCP сервером.
authoritative;

# ad-hoc DNS update scheme - set to "none" to disable dynamic DNS updates.
# Способ динамического обновления DNS. Выключаем если используется статический DNS - в большинстве
# сетей так и есть. Иначе нужно конфигурировать сервер DNS (например bind)
ddns-update-style none;

Для работы параметра log-facility нужно настроить syslog.conf и ротацию лога в newsyslog. conf.

# Источник сообщений для записи логов через syslogd
log-facility local7;

# No service will be given on this subnet, but declaring it helps the
# DHCP server to understand the network topology.

subnet 10.152.187.0 netmask 255.255.255.0 {
}

# This is a very basic subnet declaration.

subnet 10.26.95.0 netmask 255.255.255.0 { # подсеть из которой будут выдаваться адреса
  range 10.26.95.1 10.26.95.240; # интервалы ip адресов на выдачу клиентам
  option domain-name-servers 10.26.95.253;
  option routers 10.26.95.253; # gateway (шлюз по умолчанию) для клиента
#option netbios-name-servers 192.168.1.51; # адрес сервера WINS (если есть)
#option domain-name-servers 192.168.1.51; # адрес DNS сервера AD
#option domain-name "office.mydomen.ru"; # полное имя домена AD
}

# Fixed IP addresses can also be specified for hosts.   These addresses
# should not also be listed as being available for dynamic assignment.
# Hosts for which fixed IP addresses have been specified can boot using
# BOOTP or DHCP.    Hosts for which no fixed address is specified can only
# be booted with DHCP, unless there is an address range on the subnet
# to which a BOOTP client is connected which has the dynamic-bootp flag
# set.

#привязка постоянных IP к MAC адресу сетевой карты хоста
host darkfire {
  hardware ethernet 00:15:f2:4b:ad:5c; # MAC адрес сетевой карты хоста
  fixed-address 10.26.95.251;# ip адрес, который нужно присвоить этому хосту
}

host user1 {
  hardware ethernet 00:00:1c:d3:9e:40;
  fixed-address 10.26.95.10;
}

host user2 {
  hardware ethernet 00:14:2a:1c:16:31;
  fixed-address 10.26.95.11;
}

Прописываем в rc.conf строки

dhcpd_enable="YES"
dhcpd_flags="-q" # отключаем вывод копирайта и прочего при старте dhcpd
dhcpd_ifaces="rl0 vr0" # сетевой интерфейс на котором будет работать dhcpd. Несколько интерфейсов указываются через пробел.

Запускаем и пользуемся

> /usr/local/etc/rc.d/isc-dhcpd start

dhcpd скомпонован статически и расположен в каталоге /usr/local/sbin. Страницы справочной системы dhcpd(8), устанавливаемые портом, содержат более полную информацию о dhcpd.

dhcpd требует наличия конфигурационного файла, /usr/local/etc/dhcpd.conf, до того, как он будет запущен и начнёт предоставлять сервис клиентам. Необходимо, чтобы этот файл содержал все данные, которая будет выдаваться обслуживаемым клиентам, а также информацию о работе сервера. Этот конфигурационный файл описывается на страницах справочной системы dhcpd.conf(5), которые устанавливаются портом.

Сервер DHCP ведёт базу данных выданной информации в этом файле, который записывается в виде протокола. Страницы справочной системы dhcpd.leases(5), устанавливаемые портом, дают гораздо более подробное описание. В dhcpd.leases заносится информация только динамически выданных IP адресах, если IP статистический (привязан к МАС) — такая информация в dhcpd.leases заноситься не будет. Полный сбор статистики можно осуществлять через dhcpd-snmp: http://www.net-track.ch/opensource/dhcpd-snmp/

dhcrelay используется в сложных ситуациях, когда сервер DHCP пересылает запросы от клиента другому серверу DHCP в отдельной сети. Если вам нужна такая функциональность, то установите порт net/isc-dhcp3-server. На страницах справочной системы dhcrelay(8), которые устанавливаются портом, даётся более полное описание.

ALLOW and DENY

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

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

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

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

Ручной запуск (в примере ниже — вывод команды говорит о неудачном запуске DHCP -клиента):

# dhclient rl0
DHCPDISCOVER on rl0 to 255. 255.255.255 port 67 interval 7
DHCPDISCOVER on rl0 to 255.255.255.255 port 67 interval 11
DHCPDISCOVER on rl0 to 255.255.255.255 port 67 interval 12
DHCPDISCOVER on rl0 to 255.255.255.255 port 67 interval 9
DHCPDISCOVER on rl0 to 255.255.255.255 port 67 interval 10
DHCPDISCOVER on rl0 to 255.255.255.255 port 67 interval 12
No DHCPOFFERS received.
No working leases in persistent database - sleeping.

По умолчанию dhclient.conf в FreeBSD пустой (в нем ссылка только на man 5 dhclient.conf). В обычном случае и при таком конфиге все работает. Но если возникают стоит изменить настройки по умолчанию.

Читаем man, копируем приведенный пример в наш dhclient.conf

# cp /etc/dhclient.conf /etc/dhclient.conf.orig
# man 5 dhclient.conf
...
DHCLIENT.CONF(5)          FreeBSD File Formats Manual         DHCLIENT.CONF(5)

NAME
     dhclient.conf -- DHCP client configuration file

DESCRIPTION
     The dhclient.conf file contains configuration information for
     dhclient(8), the Internet Software Consortium DHCP Client. 
...
EXAMPLES
     The following configuration file is used on a laptop which has an IP
     alias of 192.5.5.213, and has one interface, ep0 (a 3Com 3C589C).  Boot-
     ing intervals have been shortened somewhat from the default, because the
     client is known to spend most of its time on networks with little DHCP
     activity.  The laptop does roam to multiple networks.

           timeout 60;
           retry 60;
           reboot 10;
           select-timeout 5;
           initial-interval 2;
           reject 192.33.137.209;

           interface "ep0" {
               send host-name "andare.fugue.com";
               send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
               send dhcp-lease-time 3600;
               supersede domain-name "fugue.com rc.vix.com home.vix.com";
               prepend domain-name-servers 127.0.0.1;
               request subnet-mask, broadcast-address, time-offset, routers,
                       domain-name, domain-name-servers, host-name;
               require subnet-mask, domain-name-servers;
               script "/etc/dhclient-script";
               media "media 10baseT/UTP", "media 10base2/BNC";
           }

           alias {
             interface "ep0";
             fixed-address 192. 5.5.213;
             option subnet-mask 255.255.255.255;
           }

     This is a very complicated dhclient.conf file - in general, yours should
     be much simpler.  In many cases, it is sufficient to just create an empty
     dhclient.conf file - the defaults are usually fine.

SEE ALSO
     dhclient.leases(5), dhcpd.conf(5), dhcp-options(5), dhclient(8), dhcpd(8)
...

Используем tcpdump Linux примеры использования для проверки DHCP (порты 67, 68).

Передача данных производится при помощи протокола UDP, при этом сервер принимает сообщения от клиентов на порт 67 и отправляет сообщения клиентам на порт 68.

 # tcpdump -i rl0 -n
> ee /etc/dhclient.conf

Ошибка возникает если на одном интерфейсе (в данном случае vr0) прописаны алиасами несколько сетей. Для устранения ошибки нужно указать опцию shared-network {}, например так

.... 
shared-network sharedname { 
subnet 192.168.175.32 netmask 255.255.255.248 { 
  range 192. 168.175.33 192.168.175.38; 
  option routers 192.168.175.33; 
} 
subnet 192.168.175.48 netmask 255.255.255.240 { 
  range 192.168.175.50 192.168.175.62; 
  option routers 192.168.175.49; 
} 
}

Окружение: Debian GNU/Linux wheezy/sid. isc-dhcp-server Версия: 4.1.1-P1-17

# aptitude install isc-dhcp-server

Этот сервер может работать с несколькими сетевыми интерфейсами одновременно. Укажем явно сетевой интерфейс на котором будет слушать DHCP сервер, в этом случае для eth0:0, который является алиасом на eth0.

# nano /etc/default/isc-dhcp-server
...
# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
#       Separate multiple interfaces with spaces, e.g. "eth0 eth2".
INTERFACES="eth0:0"

По умолчанию демон Настройка DHCP сервера Linux, FreeBSD пишет логи в /var/log/messages и на /dev/console. Нужно вынести логи в отдельный файл и заблокировать вывод логов в messages.

# nano /etc/dhcp/dhcpd.conf
log-facility local7;
# touch /var/log/dhcpd. log

В конец файла rsyslog.conf добавим строку

# nano /etc/rsyslog.conf
...
!dhcpd
*.*     -/var/log/dhcpd.log

Для блокировки в messages и на console добавим local7.none

...
*.=info;*.=notice;*.=warn;\
        auth,authpriv.none;\
        cron,daemon.none;\
        mail,news.none;local7.none      -/var/log/messages
...
daemon.*;mail.*;\
        news.err;\
        *.=debug;*.=info;\
        *.=notice;*.=warn;local7.none   |/dev/xconsole

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

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

DHCP сервер для UNIX

Есть несколько DHCP серверов для U*X-подобных операционных систем, как коммерческих, так и бесплатных. Один из наиболее популярных DHCP серверов — Paul Vixie/ISC DHCPd. На данный момент его последняя версия 2.0 (предлагаемая большинству пользователей), а версия 3.0 в стадии бэта-тестирования. Вы можете их получить с

ftp://ftp.isc.org/isc/dhcp/

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

После того как вы скачали пакет, распакуйте его. Затем войдите в каталог дистрибутива и наберите: ./configure

Для настройки потребуется немного времени. После этого наберите: make и make install

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

После установки наберите ifconfig -a. Вы должны увидеть нечто подобное:

eth0 Link encap:10Mbps Ethernet HWaddr 00:C0:4F:D3:C4:62
inet addr:183.217.19.43 Bcast:183.217.19.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2875542 errors:0 dropped:0 overruns:0
TX packets:218647 errors:0 dropped:0 overruns:0
Interrupt:11 Base address:0x210

Если вы не увидите MULTICAST, вам следует переконфигурировать ядро для добавления multicast поддержки. На большинстве систем вам это не потребуется.

Следующий шаг добавить маршрут для 255.255.255.255. Цитата из DHCPd README:

Для корректной работы dhcpd с picky DHCP клиентами (например, Windows 95), нужно иметь возможность посылать пакеты с IP адресом назначения 255.255. 255.255. К несчастью, Linux настаивает на замене 255.255.255.255 на локальный широковещательный адрес подсети (здесь 192.5.5.223). Это приводит к нарушению DHCP протокола, и в то время как многие DHCP клиенты не замечают этой проблемы, некоторые (такие как все Microsoft DHCP клиенты) замечают. Клиенты с этой проблемой как будто не видят DHCPOFFER сообщений с сервера.

Наберите: route add -host 255.255.255.255 dev eth0

Если вы получаете сообщение 255.255.255.255: Unknown host, вам следует попробовать добавить следующий элемент в ваш файл /etc/hosts:

255.255.255.255 all-ones

Затем, попробуйте:

route add -host all-ones dev eth0

или

route add 255.255.255.0 dev eth0

eth0 — нужно заменить именем используемого вами сетевого интерфейса.

Опции DHCPd

Теперь вам нужно настроить DHCPd. Для этого вам необходимо создать и отредактировать файл /etc/dhcpd.conf. Для настройки dhcpd есть графическая утилита для KDE ( http://www.kde.org/ ) называемая kcmdhcpd, которая очень подобна DHCP конфигуратору в Windows NT. После выхода KDE 2.0 она должны идти в стандартной поставке, или вы можете загрузить ее прямо с:

ftp://ftp.us.kde.org/pub/kde/unstable/apps/network/

Если вы хотите настраивать вручную — читайте нижеприведенные инструкции.

Скорее всего, вы захотите назначать IP адреса случайным образом. Это можно сделать такими настройками:

# Простой /etc/dhcpd.conf
# (добавьте тут свои комментарии)
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.1, 192.168.1.2;
option domain-name "mydomain.org";

subnet 192.168.1.0 netmask 255. 255.255.0 {
range 192.168.1.10 192.168.1.100;
range 192.168.1.150 192.168.1.200;
}

DHCP сервер будет выдавать клиентам IP адреса в диапазоне 192.168.1.10-192.168.1.100 или 192.168.1.150-192.168.1.200. Если клиент не запрашивает указанный временной диапазон, выделяемый адрес арендуется на 600 секунд. Иначе максимально-допустимое время аренды будет 7200 секунд. Также сервер советует клиенту использовать маску подсети 255.255.255.0, широковещательный адрес 192.168.1.255, адрес шлюза 192.168.1.254 и DNS сервера 192.168.1.1 и 192.168.1.2.

Если вы хотите указать WINS сервер для ваших Windows клиентов, вам следует включить опцию netbios-name-servers, например

option netbios-name-servers 192.168.1.1;

Также вы можете назначать клиентам определенные IP адреса в зависимости от их ethernet адреса, например

host haagen {
hardware ethernet 08:00:2b:4c:59:23;
fixed-address 192. 168.1.222;
}

Клиенту с ethernet адресом 08:00:2b:4c:59:23 будет назначен IP адрес 192.168.1.222.

Вы можете пользоваться смешанной схемой назначения адресов, некоторым клиентам давать статические IP адреса (например, серверам), а другим распределять динамические IP (например, мобильным пользователям с ноутбуками). Также есть большое количество прочих опций, например адрес nis сервера, адрес сервера времени и т.д., если вам требуется какая-либо из этих опций — прочтите dhcpd.confman страницу.

Запуск сервера

Пред запуском сервера нужно сделать одну вещь. В большинстве случаев установка DHCP не создает файл dhcpd.leases. Этот файл используется DHCPd для размещения информации о текущих арендованных адресах. Его формат — обычный текст, так что вы сможете его просматривать в процессе работы DHCPd. Для создания dhcpd.leases наберите:

touch /var/state/dhcp/dhcpd. leases

Будет создан пустой файл (размер файла = 0). Некоторые старые версии dhcpd 2.0 помещают файл в /etc/dhcpd.leases. Вам не требуется делать никаких изменений в арендном файле, он будет контролироваться dhcpd. Если вы получите сообщение о том, что файл уже существует, просто проигнорируете его и переходите к следующему шагу.

Теперь вы можете запустить DHCP сервер. Просто наберите (или включите в загрузочные скрипты)

/usr/sbin/dhcpd

Это приведет к запуску dhcpd на устройстве eth0. Если вы хотите запускать его на другом устройстве, просто укажите его в командной строке, например

/usr/sbin/dhcpd eth2

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

/usr/sbin/dhcpd -d -f

Затем загрузите один из ваших клиентов и проверьте консоль вашего сервера. Вы увидите некоторое количество отладочных сообщений. Если все работает нормально — вы закончили. Выйдите из dhcpd и запустите его без ключа -d -f и аргументов. Если вы желаете загружать dhcpd в процессе загрузки, включите dhcpd например в

/etc/rc.d/rc.local

Другие интересные документы

В Апрельском выпуске Linux Magazine была очень хорошая статься под названием Network Nirvana: Как сделать настройку сети простой как DHCP, в которой обсуждается установка DHCP.

DNS+DHCP сервер на Ubuntu | Блог Элмора…

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

Права суперпользователя действуют до следующей перезагрузки.

1. Начальные настройки сети.

Диапазон: 192.168.0.1/255.255.255.0
Диапазон DHCP: 192.168.0.101 — 192.168.0.199
Основной шлюз: 192.168.0.1
Внешние DNS-сервера: 8. 8.8.8, 8.8.4.4, 204.194.232.200, 204.194.234.200
Имя нашего сервера: ns1
Статический IP-адрес сервера: 192.168.0.2
Имя домена: team.local

2. Установка bind9 и dhcp3-server

Команды для установки:

apt-get install bind9 apt-get install dhcp3-server

 

apt-get install bind9

apt-get install dhcp3-server

 

 

3. Создание секретного ключа

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

dnssec-keygen -a HMAC-MD5 -b 128 -r /dev/urandom -n USER DHCP_UPDATER

 

dnssec-keygen -a HMAC-MD5 -b 128 -r /dev/urandom -n USER DHCP_UPDATER

 

 

После завершения команды в текущем каталоге появятся два файла один с расширением . key , другой .private .
В тексте этих файлов содержится секретный ключ вида:

mdgG4pTKI9sqqXUCAicNcA==

 

mdgG4pTKI9sqqXUCAicNcA==

 

 

Он нам и понадобиться в дальнейшем.

4. Настройка сетевого соединения со статическим IP

Внесите изменения в файл /etc/network/interfaces. Статический, жестко прописанный адрес, необходим хотя бы для того, чтобы сервис dhcp стартовал при перезапуске сервера. Иначе, не увидев поднятых интерфейсов во время перезапуска, dhcp не запустится.

auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.0.2 #hwaddress ether 00:01:2e:2c:d6:70 netmask 255.255.255.0 network 192.168.0.0 broadcast 192. 168.0.255 gateway 192.168.0.1 dns-nameservers 192.168.0.2 # The secondary network interface #auto wlan1 #iface wlan1 inet static # address 192.168.0.12 # #hwaddress ether 00:25:d3:f0:c2:92 # netmask 255.255.255.0 # gateway 192.168.0.1

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

 

auto lo

iface lo inet loopback

 

auto eth0

iface eth0 inet static

        address 192.168.0.2

        #hwaddress ether 00:01:2e:2c:d6:70

        netmask 255.255.255.0

        network 192.168.0.0

        broadcast 192.168.0.255

        gateway 192.168.0.1

        dns-nameservers 192.168.0.2

 

# The secondary network interface

#auto wlan1

#iface wlan1 inet static

#        address 192. 168.0.12

#        #hwaddress ether 00:25:d3:f0:c2:92

#        netmask 255.255.255.0

#        gateway 192.168.0.1

 

 

Адрес DNS сервера можно задать в файле /etc/network/interfaces , но вообще управление адресами DNS серверов в Ubuntu осуществляется через файл /etc/resolv.conf. Важно не забыть его поправить. Он должен иметь вид:

domain team.local search team.local nameserver 127.0.0.1

 

        domain team.local

        search team.local

        nameserver 127.0.0.1

 

 

Перезапускаем службу networking

/etc/init.d/networking restart

 

/etc/init. d/networking restart

 

 

5. Настраиваем BIND9

Файлы конфигурации лежат в каталоге: /etc/bind
Нам нужно отредактировать два файла: named.conf.options и named.conf.local
Правим named.conf.options:

forwarders { 8.8.8.8; 8.8.4.4; 204.194.232.200; 204.194.234.200; }; listen-on { 127.0.0.1; 192.168.0.2; };

 

        forwarders {

                8.8.8.8;

                8.8.4.4;

                204.194.232.200;

                204.194.234.200;

        };

        listen-on {

                127.0.0.1;

                192. 168.0.2;

        };

 

 

Этим мы указываем серверу куда передавать неизвестные нам имена «на опознание» и по каким адресам «слушать» DNS-запросы клиентов нашей сети.
Файл named.conf.local правится далее по тексту.

6. Создание прямой и обратной зоны для сети

Создаём файлы прямой и обратной зоны для нашей локальной сети.
Файлы наших локальных зон должны лежать в директории: /var/lib/bind.
Если поместить эти файлы в папку /etc/bind, где уже лежат файлы описания корневых зон,то обновление записей для локальных зон производиться не будет, так-как локальная группа [bind] по умолчанию не имеет права на запись в эту директорию.
Итак, в папке /var/lib/bind создаём файл для прямой зоны, назовём его например: forward.bind. Файл используется DNS-сервером для преобразования имени компьютеров локальной сети в ip-адрес.
forward.bind

$TTL 86400 ; 1 day team.local. IN SOA ns1.team.local. admin.team.local. ( 20110103 ; Serial 10800 ; Refresh 3600 ; Retry 604800 ; Expire 86400 ; Minimum TTL ) ; DNS Servers IN NS ns1.team.local. ; MX Records IN A 192.168.0.2 ; Machine Names localhost IN A 127.0.0.1 ns1 IN A 192.168.0.2 gw IN A 192.168.0.1 ; Различные клиенты сети eagle IN A 192.168.0.12 storage IN A 192.168.0.13 media IN A 192. 168.0.14 crow IN A 192.168.0.200 HP IN A 192.168.0.211 ; Aliases www IN CNAME @

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

 

$TTL 86400      ;       1 day

team.local.    IN      SOA      ns1.team.local. admin.team.local. (

                                20110103        ; Serial

                                10800           ; Refresh

                                3600            ; Retry

                                604800          ; Expire

                                86400           ; Minimum TTL

                        )

 

; DNS Servers

                IN      NS      ns1. team.local.

 

; MX Records

                IN      A       192.168.0.2

 

; Machine Names

localhost       IN      A       127.0.0.1

ns1             IN      A       192.168.0.2

gw              IN      A       192.168.0.1

 

; Различные клиенты сети

eagle           IN      A       192.168.0.12

storage         IN      A       192.168.0.13

media           IN      A       192.168.0.14

crow            IN      A       192.168.0.200

HP              IN      A       192.168.0.211

 

; Aliases

www             IN      CNAME   @

 

 

В последних строчках содержаться записи о серверах и устройствах нашей локальной сети, имеющих статические адреса, но впрочем обязательно нужно прописать только DNS-сервер. Заранее скажу, что аккуратно оформлять все не обязательно т.к. сервис DHCP все равно все перестроит.
Создаём файл для обратной зоны, назовём его : reverse. bind. Файл используется DNS-сервером для преобразования ip-адреса компьютеров локальной сети в доменное имя.
reverse.bind

$TTL 86400 ; 1 day 0.168.192.in-addr.arpa. IN SOA ns1.team.local. admin.team.local. ( 20110104 ; Serial 10800 ; Refresh 3600 ; Retry 604800 ; Expire 3600 ) ; Minimum IN NS ns1.team.local. 1 IN PTR gw.team.local. 2 IN PTR team.local. 2 IN PTR ns1.team.local. ; Различные клиенты сети 12 IN PTR eagle.team.local. 13 IN PTR storage.team.local. 14 IN PTR media.team.local. 200 IN PTR crow.team.local. 211 IN PTR HP.team. local.

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

 

$TTL 86400      ;       1 day

0.168.192.in-addr.arpa. IN SOA ns1.team.local. admin.team.local. (

                        20110104        ; Serial

                        10800           ; Refresh

                        3600            ; Retry

                        604800          ; Expire

                        3600 )          ; Minimum

 

        IN      NS      ns1.team.local.

 

1       IN      PTR     gw.team.local.

2       IN      PTR     team.local.

2       IN      PTR     ns1.team.local.

 

; Различные клиенты сети

12      IN      PTR     eagle.team.local.

13      IN      PTR     storage. team.local.

14      IN      PTR     media.team.local.

200     IN      PTR     crow.team.local.

211     IN      PTR     HP.team.local.

 

 

Последние строки, так-же содержат данные о серверах и устройствах нашей локальной сети, для которых выделены статические адреса.

7. Правка name.conf.local

Возвращаемся в директорию /etc/bind и правим файл name.conf.local
name.conf.local

key DHCP_UPDATER { algorithm HMAC-MD5.SIG-ALG.REG.INT; secret mdgG4pTKI9sqqXUCAicNcA== ; }; zone «team.local» IN { type master; file «/var/lib/bind/forward.bind»; allow-update { key DHCP_UPDATER; }; }; zone «0.168.192.in-addr.arpa» IN { type master; file «/var/lib/bind/reverse.bind»; allow-update { key DHCP_UPDATER; }; };

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

 

key DHCP_UPDATER {

        algorithm HMAC-MD5. SIG-ALG.REG.INT;

        secret mdgG4pTKI9sqqXUCAicNcA== ;

};

 

zone «team.local» IN {

        type master;

        file «/var/lib/bind/forward.bind»;

        allow-update { key DHCP_UPDATER; };

};

 

zone «0.168.192.in-addr.arpa» IN {

        type master;

        file «/var/lib/bind/reverse.bind»;

        allow-update { key DHCP_UPDATER; };

};

 

 

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

/etc/init.d/bind9 restart

 

/etc/init.d/bind9 restart

 

 

Если при перезагрузки bind9 не ругается — проверяем работу нашего DNS-сервера:

В ответ получаем:

; <<>> DiG 9. 7.1-P2 <<>> ns1 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 34684 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0 ;; QUESTION SECTION: ;ns1. IN A ;; AUTHORITY SECTION: . 1121 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2011022001 1800 900 604800 86400 ;; Query time: 96 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Mon Feb 21 13:57:30 2011 ;; MSG SIZE rcvd: 96

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

 

; <<>> DiG 9.7.1-P2 <<>> ns1

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 34684

;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

 

;; QUESTION SECTION:

;ns1.    IN   A

 

;; AUTHORITY SECTION:

.   1121  IN  SOA  a.root-servers.net. nstld.verisign-grs.com. 2011022001 1800 900 604800 86400

 

;; Query time: 96 msec

;; SERVER: 127.0.0.1#53(127.0.0.1)

;; WHEN: Mon Feb 21 13:57:30 2011

;; MSG SIZE  rcvd: 96

 

 

Далее проверим как наш сервер преобразует своё локальное имя:

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

ns1.team.local has address 192.168.0.2

 

ns1.team.local has address 192.168.0.2

 

 

Если что-то не так проверяем фаил forward.bind Проверим обратное преобразование:

В ответ получаем нечто такое:

2.0.168.192.in-addr.arpa domain name pointer ns1.team.local. 2.0.168.192.in-addr.arpa domain name pointer team.local.

 

2.0.168.192.in-addr.arpa domain name pointer ns1.team.local.

2.0.168.192.in-addr.arpa domain name pointer team.local.

 

 

Соответственно если доменное имя сервера не определилось, проверяем файл reverse.bind. Ну и все проблемы будут отражены в логе системы /var/log/syslog.

8. Настройки DHCP сервера

Теперь dhcp3-server именуется в ubuntu isc-dhcp-server, поэтому обратите внимание на название папок и файлов.

Приступаем к настройке. Нам нужен фаил: dhcpd.conf который лежит в /etc/dhcp
На самом деле все из него можно удалить и заменить примерно таким содержимым:

ddns-update-style interim; authoritative; log-facility local7; key DHCP_UPDATER { algorithm hmac-md5; secret «mBSiYpTKI9sqqXUCAicNcA==»; } zone team. local. { primary 127.0.0.1; key DHCP_UPDATER; } zone 0.168.192.in-addr.arpa. { primary 127.0.0.1; key DHCP_UPDATER; } subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.101 192.168.0.199; option domain-name «team.local»; option domain-name-servers 192.168.0.2; option routers 192.168.0.1; option broadcast-address 192.168.0.255; default-lease-time 43200; max-lease-time 86400; }

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

 

ddns-update-style interim;

authoritative;

log-facility local7;

 

key DHCP_UPDATER {

algorithm hmac-md5;

secret «mBSiYpTKI9sqqXUCAicNcA==»;

}

 

zone team. local. {

primary 127.0.0.1;

key DHCP_UPDATER;

}

 

zone 0.168.192.in-addr.arpa. {

primary 127.0.0.1;

key DHCP_UPDATER;

}

 

subnet 192.168.0.0 netmask 255.255.255.0 {

range 192.168.0.101 192.168.0.199;

option domain-name «team.local»;

option domain-name-servers 192.168.0.2;

option routers 192.168.0.1;

option broadcast-address 192.168.0.255;

default-lease-time 43200;

max-lease-time 86400;

}

 

 

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

Если в локальной сети есть сетевой принтер или сетевое многофункциональное устройство, по опыту работы их желательно сажать на статические адреса или сервер DHCP может выдавать им постоянные ip-адрес зарезервированный под них из выделенного диапазона. Для этого необходимо знать их сетевые имена и MAC-адрес.
Добавляем в файл dhcpd.conf строку к примеру для компьютера crow:

host crow { hardware ethernet 00:17:31:8f:98:2a; fixed-address 192.168.0.200; }

 

host crow {

hardware ethernet 00:17:31:8f:98:2a;

fixed-address 192.168.0.200;

}

 

 

Эти имена также необходимо прописывать в файлы forward.bind и reverse.bind, как и для статических адресов.

9. Настройка IP адреса DHCP сервера

Не забудьте указать сетевую карту сервера, с которой он будет раздавать клиентам ip-адреса. Файл где прописывается интерфейс DHCP-сервера в Ubuntu/Debian лежит в: /etc/default/isc-dhcp-server
Там нужно указать сетевой интерфейс, в нашем случае: eth0

10. Перезапускаем, проверяем.

Перезапускаем наш DHCP-сервер.

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

 

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

 

 

Если при перезагрузке никто не ругается, то можно включать клиентские компьютеры.
При правильной работе в директории /var/lib/bind должны появиться файлы:
forward.bind.jnl и reverse.bind.jnl а в файлах forward.bind и reverse.bind появиться строчка с ip-адресом и именем клиентского.
В директории /var/lib/dhcp появиться файл: dhcpd.leases с параметрами ip клиента. Для проверки с Windows-клиента можно дать команду из командной строки:

В ответ должна пойти трассировка до ns1.team.local[192.168.0.2]
Также, обратите внимание, что если прописать в Windows «Основной DNS-суффикс этого компьютера» (Это по кнопке «Дополнительно» в окне «Изменение имени компьютера» — в нашем случае «team. local»), то прямая зона обновляться не будет, ругаясь на ошибку авторизации. Обратная будет обновляться. Как это побороть — не знаю. Проще не прописывать суффикс.
Ну вот и вся настройка. При редактировании файлов конфигурации будьте внимательны, из-за одного пропущенного или лишнего символа, можно потерять пол дня.

11. Итог

После настройки всего будут изменены файлы:
/etc/network/interfaces
/etc/bind/named.conf.local
/etc/bind/named.conf.options
/etc/resolv.conf
/var/lib/bind/forward.bind
/var/lib/bind/reverse.bind
/etc/dhcp/dhcpd.conf
/etc/default/isc-dhcp-server

Неправленый мной оригинал статьи: http://fgh251.blog.ru/97522339.html

Установка и настройка DHCP сервера и клиента на CentOS/RHEL

Протокол DHCP (Dynamic Host Configuration Protocol) широко используется в TCP/IP сетях для автоматического назначения IP адресов и других сетевых параметров устройствам в сети. В этой статье мы покажем, как настроить DHCP сервер на CentOS 8, и как настроить DHCP клиента в этой ОС для автоматического получения настроек сети от сервера.

Установка и базовая настройка DHCP

В CentOS/RHEL можно установить DHCP-сервер с помощью менеджера пакетов из базового репозитория:

# dnf install dhcp-server -y – установка DHCP сервера для CentOS/RHEL 8

# yum install dhcp -y – установка DHCP сервера для CentOS/RHEL 7

Конфигурационный файл DHCP сервиса — /etc/dhcp/dhcpd.conf. Откройте в него и добавьте описание DHCP зоны (IP подсети) с настройками, которые ваш DHCP сервер должен выдавать клиентам.

# nano /etc/dhcp/dhcpd.conf

subnet 15.10.0.0 netmask 255.255.255.0 {
  range 15.10.0.100 15.10.0.200;
  option domain-name-servers 77.88.8.8, 8.8.8.8;
  option domain-name "winitpro.ru";
  option routers 15.10.0.1;
  option broadcast-address 15.10.0.255;
  default-lease-time 3600;
  max-lease-time 7200;
}

Краткое описание настраиваемых параметров DHCP зоны:

  • subnet – адресное пространство (IP сеть), которое обслуживает данный DHCP сервер;
  • range – диапазон IP адресов, из которого будут назначаться адреса устройствам;
  • option domain-name-servers – адреса DNS серверов, которые будут использоваться клиентом;
  • option domain-name — параметр задает доменное имя, которое клиенты используют при запросах к DNS;
  • option routers — IP адрес шлюза, который будет использоваться DHCP клиентом
  • option broadcast-address — широковещательный (бродкаст) адрес IP сети;
  • default-lease-time, max-lease-time – время и максимальное время (в сек) на которое выдается IP адрес клиенту. После истечения этого времени IP клиент должен продлить срок аренды.

Некоторые опции DHCP можно задать на уровне глобальных параметров DCHP сервера (в начале файла dhcpd.conf). Например:

option domain-name "winitpro.ru";
option domain-name-servers 77.88.8.8, 8.8.8.8;
default-lease-time 3600;
max-lease-time 7200;
authoritative;
log-facility local7;

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

# dhcpd -t -cf /etc/dhcp/dhcpd.conf

На скриншоте с цифрой 1 показан пример проверки при корректной настройке конфигурационного файла DHCP. В сегменте с цифрой 2 показано, что при наличии ошибок в конфигурации утилита dhcpd указывает на них.

Добавьте сервис dhcpd в автозагрузку и запустите:

# systemctl enable dhcpd
# systemctl start dhcpd

У меня сразу сервис не запустился. Служба dhcpd вернула ошибку:

Not configured to listen on any interfaces!

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

Откройте файл:

# nano /etc/sysconfig/dhcpd

Добавьте в него следующую строку:

DHCPDARGS=ens5

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

Затем создайте файл конфигурации сетевого интерфейса (если он не создан):

# nano /etc/sysconfig/network-scripts/ifcfg-ens5

TYPE="Ethernet"
DEVICE="ens5"
ONBOOT="yes"
BOOTPROTO="static"
IPADDR="15.10.0.5"
NETMASK="255.255.255.0"
DNS1=77.88.8.8

Выполните рестарт сети:

# service network restart – для CentOS/RHEL 7
# systemctl restart NetworkManager – для CentOS/RHEL 8

Когда настройки сети будут выполнены и применены, можно запустить сам сервис dhcpd:

# systemctl start dhcpd.service

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

# firewall-cmd --permanent --add-service=dhcp
# firewall-cmd --reload

Если вы используете другой файерволл, откройте 67 UDP порт на нем.

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

DHCP сервер выдает динамические IP адреса. Это значит, что IP адрес, назначаемый конкретному клиенту может иногда меняться. В конфигурационном файле DHCP сервера вы можете зарезервировать (зафиксировать) для любого клиента конкретный статический IP адрес. Просто добавьте в файл /etc/dhcp/dhcpd.conf следующие строки:

host host1 {
  hardware ethernet 52:54:00:b6:89:82; fixed-address 15.10.0.101;
}

Как вы видите, нужно указать MAC-адрес устройства и зафиксированный за ним IP адрес из зоны DHCP, которую обслуживает сервер.

Не обязательно располагать отдельный DHCP сервер в каждом сегменте сети. Один DCHP сервер может обслуживать любое количество IP-подсетей. В этом случае на уровне маршрутизатора IP сегмента нужно настроить пересылку DHCP запросов на ваш сервер (функция DHCP-relay или ip helper-address в терминологии Cisco).

В конфигурационном файле dhcpd можно добаить несколько зон DHCP. Просто добавьте еще один блок:

subnet xxx.xxx.xxx.xxx netmask 255.xxx.xxx.xxx {...} 

# nano /etc/dhcp/dhcpd.conf

Чтобы не загромождать основной конфиг dhcpd, вы можете с помощью функции include подключать дополнительные файлы конфигурации:

include "/etc/dhcp/conf.d/subnets.conf";

В файле subnets.conf можно описать все DCHP зоны, которые обслуживаются вашим сервером.

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

# cat /var/lib/dhcpd/dhcpd.leases

Все логи DHCP по умолчанию пишутся в файл /var/log/messages. Для фильтрации событий dhcp можно использовать команду:

# cat /var/log/messages | grep dhcp

Или перенастроить сохранение журнала в отдельный файл, через rsyslog. В файл /etc/rsyslog.conf добавьте строку:

local6.* /var/log/dhcp.log

А в файл /etc/dhcp/dhcpd.conf строку:

log-facility local6;

Перезапустите оба сервиса:

# systemctl restart rsyslog
# systemctl restart dhcpd

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

# cat /var/log/dhcp.log

Oct 28 00:28:02 server2 dhcpd[2981]: Internet Systems Consortium DHCP Server 4.3.6
Oct 28 00:28:02 server2 dhcpd[2981]: Copyright 2004-2017 Internet Systems Consortium.
Oct 28 00:28:02 server2 dhcpd[2981]: All rights reserved.
Oct 28 00:28:02 server2 dhcpd[2981]: For info, please visit https://www.isc.org/software/dhcp/
Oct 28 00:28:02 server2 dhcpd[2981]: Source compiled to use binary-leases
Oct 28 00:28:02 server2 dhcpd[2981]: Wrote 0 deleted host decls to leases file.
Oct 28 00:28:02 server2 dhcpd[2981]: Wrote 0 new dynamic host decls to leases file. 
Oct 28 00:28:02 server2 dhcpd[2981]: Wrote 0 leases to leases file.
Oct 28 00:28:02 server2 dhcpd[2981]: Listening on LPF/ens5/52:54:00:80:be:db/15.10.0.0/24
Oct 28 00:28:02 server2 dhcpd[2981]: Sending on LPF/ens5/52:54:00:80:be:db/15.10.0.0/24
Oct 28 00:28:02 server2 dhcpd[2981]: Sending on Socket/fallback/fallback-net
Oct 28 00:28:02 server2 dhcpd[2981]: Server starting service.

На этом настройка и отладка DHCP-сервера окончена.

Получение сетевых настроек DCHP клиентом

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

# nano /etc/sysconfig/network-scripts/ifcfg-ens5

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

DEVICE=ens5
BOOTPROTO=dhcp
TYPE=Ethernet
ONBOOT=yes

Сохраните файл и перезапустите сетевой сервис:

# systemctl restart NetworkManager

В моем случае IP адрес на интерфейсе появился только после перезагрузки сервера:

3: ens5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 52:54:00:b6:89:82 brd ff:ff:ff:ff:ff:ff
inet 15. 10.0.101/8 brd 15.255.255.255 scope global noprefixroute ens5

Несколько полезных команд для DHCP-клиента:

# dhclient -r ens5 – освободить текущий IP адрес
# dhclient -v ens5 – получить новый IP адрес у DHCP сервера
# dhclient -v ens5 -H testserver – указать имя клиента

Имя клиента вы можете прописать на сервере(dhcp-клиенте) в файле /etc/dhcp/dhclient.conf, Добавьте строку:

send host-name "testserver";

Перезапустите DHCP-клиент:

# dhclient -r ens5
# dhclient -v ens5

Пример настройки DHCP в Debian (Lenny)

DHCP реализован в Debian в виде двух частей: серверной (dhcp3-server) и клиентской (dhcp3-client). Серверная часть отвечает за назначение и отзыв IP-адресов клиентам, при входе и выходе из сети. Клиентская часть запускается на стороне клиента и отвечает за получение IP-адреса по этому протоколу.

Проверить какие пакеты DHCP установлены можно с помощью команды dpkg:

$ dpkgl ‘*dhcp*’ или dpkgl | grepdhcp

Как видим из примера, у нас установлены два пакета dhcp3-client и dhcp3-common. Устанавливаем пакет dhcp3-server:

# aptitudeinstalldhcp3-server

Во время установки появится предупреждение о том, что сервер не является официальным и нужно сделать его таковым, изменив параметр authoritative. Настраивается сервер с помощью конфигурационного файла /etc/dhcp3/dhcpd.conf. При запуске DHCP – сервера происходит выделение IP – адресов согласно содержащемся установкам в данном файле. Выделенные адреса регистрируются в /var/lib/dhcp3/dhcpd.leases. После внесения изменений в файл конфигурации, требуется перезапустить dhcp3-server. Делается это следующим образом:

# /etc/init.d/dhcp3-server restart. Можно дать две команды: сначала

# /etc/init.d/dhcp3-server stop, а затем

# /etc/init.d/dhcp3-server start.

В файле dhcpd.confможет присутствовать несколько конструкций subnet. Если сервер обслуживает несколько сетей и содержит несколько сетевых карт, для каждой из карт должна быть указана подобная конструкция. То же самое необходимо сделать, если на компьютере установлена всего одна сетевая карта, которая связана с несколькими логическими подсетями. Длительность аренды по умолчанию defaultleasetimeсоставляет 259200 секунд, или трое суток. Если клиент запросит более длительную аренду, сервер будет исходить из параметра maxleasetime. В данном случае оно равно 518400 секунд, или шести суткам. Можно увеличивать или уменьшать приведённые здесь значения в зависимости от собственных потребностей. Малая длительность аренды снижает работоспособность сети при выходе сервера DHCP из строя и увеличивает нагрузку на сеть за счёт различных DHCP запросов. Слишком большая длительность аренды опасна тем, что имеющиеся в наличии IP – адреса будут исчерпаны. Такая ситуация возможна, если компьютеры будут включаться на короткое время при этом DHCP – сервер будет хранить информацию об аренде адресов, которые на самом деле на используются. Чтобы связать MAC – адрес с IP – адресом, используется следующая конструкция:

host knop {

hardware ethernet 00:00:86:5E:D0:73;

fixed-address 192.168.123.22;

}

Эта конструкция начинается с ключевого слова host, затем следует дополнительная опция knop – имя компьютера (клиента), для которого создаётся резервирование. Многострочные директивы в файле dhcpd.conf заключаются в фигурные скобки. В фигурных скобках указаны два параметра. Первый из них (hardware) задаёт тип сетевого интерфейса и MAC – адрес. В нашем примере содержится запись для Ethernet – карты, а при работе в сети другого типа, задаётся другой тип сетевого устройства. Например, для сети Token Ring следует указать ключевое слово token-ring. Второй параметр (fixedaddress) определяет IP – адрес, выделяемый клиенту. Этот адрес должен принадлежать сети, которую обслуживает DHCP сервер, и должен лежать за пределами диапазона, определённого с помощью параметра range. Эти строки вставляются в ту конструкцию подсети subnet, которой принадлежит назначаемый IP – адрес. Для корректной работы с клиентами под управлением Windows следует включить поддержку WINS. Следует добавить к глобальным опциям следующие строки:

option netbios-name-servers 192.168.123.2;

option netbios-dd-server 192.168.123.2;

optionnetbiosnodetype 8;

Параметр netbiosnodetype сообщает клиенту, должен ли тот реализовывать широковещательный принцип преобразования адресов или обращаться к серверу WINS. Число 8 означает, что клиент в первую очередь должен обратиться к серверу WINS, а лишь затем (в случае неудачи) использовать широковещательное преобразование. В большинстве сетей содержащих сервер WINS указывается значение 8, поскольку при этом снижается трафик сети и обеспечивается достаточная надёжность. Некоторые дополнительные параметры:

Параметр optionipforwarding включает IP – форвардинг. Можно добавить глобальный параметр server identifier, который идентифицирует наш сервер. Следующая строка сообщает об отключении поддержки DDNS. В нашем случае она не нужна: ddns-update-style none;.

Параметр журнала сообщений: log-facility local7;. По умолчанию, сообщения DHCP – сервера находятся в системном журнале /var/log/syslog. Эти сообщения можно перенаправить в отдельный журнал. Делается это следующим образом: создаём отдельный файл журнала

# touch /var/log/dhcpd. log, а затем в файл /etc/syslog.conf добавляем строку local7.* /var/log/dhcpd.conf и сохраняем его.

Ниже приведён листинг нашего конфигурационного файла dhcpd.conf

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

#

# Указывает, что сервер является официальным. Он сможет отправлять сообщение # DHCPNACK. Например, если компьютер перемещён из другой подсети.

authoritative;

# Установка домена по умолчанию, если таковой используется

option domain-name «aitishnik.local»;

# Адреса DNS серверов (через запятую)

option domain-name-servers 213.177.97.1, 213.177.97.201;

# Время аренды IP – адреса по умолчанию (в секундах)

default-lease-time 259200;

# Максимальное время аренды IP – адреса по умолчанию (в секундах)

max-lease-time 518400;

# Адрес NetBIOS сервера

option netbios-name-servers 192. 168.123.2;

# Адрес сервера NBDD

option netbios-dd-server 192.168.123.2;

# Тип преобразования адресов

option netbios-node-type 8;

# Включение IP — форвардинга

option ip-forwarding on;

# Идентификатор сервера

Server-identifier debian.aitishnik.local;

# Поддержка DDNS

ddns-update-style none;

# Журнал сообщений

log-facility local7;

#

# Настройки для нашей сети

#

# Указываем сетевой адрес и маску подсети.

subnet 192.168.123.0 netmask 255.255.255.0 {

# Шлюз по умолчанию

option routers 192.168.123.1;

# Широковещательный адрес

option broadcast-address 192.168.123.255;

# Резервирование для компьютера knop

host knop {

hardware ethernet 00:00:86:5E:D0:73;

fixed-address 192.168.123.22;

}

# Диапазон из которого будут назначаться IP – адреса клиентов

range 192.168.123.10 192.168.123.20;

# Если DHCP сервер обслуживает несколько подсетей и для каждой требуется свои

# настройки как то: время аренды, имя домена, сервер DNS, то их можно указать

# в секции для своей подсети.

# option domain-name-servers 213.177.96.1,213.177.97.1;

# option domain-name «aitishnik.local»;

# default-lease-time 600;

# max-lease-time 7200;

Об авторе:

Меня зовут Андрей Золкин. Из более, чем пятнадцати лет работы в сфере информационных технологий, десять лет работаю с системами, базирующимися на открытом исходном коде. На страницах сайта Aitishnik.Ru веду блоги по CMC Joomla и Debian GNU/Linux.

 

Ещё статьи о Debian

    • Установка Debian

      Эта статья об установке операционной системы Debian GNU/Linux. Тема статьи достаточно обширна и это скорее тема для книги, нежели для статьи. Мне бы хотелось сделать статью «на вырост», т. е. со временем дополняя её ссылками на другие…

    • Изменяем приветствие в SSH Debian

      Все, кто совершал вход в систему Debian через консоль или посредством SSH, видели следующее сообщение: The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described. ..

    • Система помощи в Debian Linux

      Изучать операционную систему и применять полученные знания на практике, не заглядывая в документацию, невозможно. Операционные системы Linux/Unix отлично документированы. Можно найти ответ на любой вопрос; нужно только знать где искать:…

    • Настройка SSH в Debian

      Довольно часто, администрирование сервера на базе Linux происходит посредством удалённого доступа. А основным способом удалённого администрирования является администрирование с помощью SSH. Об этом и пойдёт речь в этой статье. Данная…

    • Как обновить Debian 6 Squeeze до Debian 7 Wheezy

      Прошло более двух месяцев с момента выхода новой стабильной версии операционной системы Debian GNU/Linux – Debian 7 (Wheezy). За это время были исправлены ошибки и даже вышла новая версия – 7.1. А это значит, что теперь можно и…

    • Интерактивный режим aptitude

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

Что такое DHCP и как настроить DHCP-сервер в Linux

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

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

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

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

  • IP-адреса и маски сети
  • Серверы доменных имен (DNS)
  • Шлюзы по умолчанию
  • Серверы WINS
  • Хосты системного журнала
  • Прокси-серверы
  • Серверы NTP
  • Серверы шрифтов X
  • Хосты системного журнала

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

DHCP-сервер ведет учет всех арендованных IP-адресов и сохраняет их в файле с именем dhcpd.leases в каталоге / var / lib / dhcp (расположение этого файла может отличаться в зависимости от используемой системы Linux).Наличие такого файла позволяет DHCP-серверу отслеживать все аренды IP-адресов даже после перезагрузки или сбоя питания.

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

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

    Стандартная реализация DHCP-сервера, доступная в различных дистрибутивах Linux, является версией с открытым исходным кодом, поддерживаемой ISC (Internet System Consortium).

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

    Debian и Ubuntu:

     # apt-get install isc-dhcp-server
     

    Redhat и Fedora:

     # yum install dhcp
     

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

     Запуск DHCP-сервера ISC: dhcpdcheck syslog для диагностики. ... не удалось!
     

    Изучив файлы журнала, такие как / var / log / syslog, можно получить дополнительные сведения:

     Нет объявления подсети для eth0 (некоторый IP-адрес).
     

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

    ПРИМЕЧАНИЕ. , если ваш сервер имеет доступ к более чем одной подсети, DHCP требует, чтобы были определены все подсети, даже если нет немедленного намерения включить службу DHCP в этой подсети.

    Ниже приведен простейший пример файла конфигурации DHCP:

     подсеть 10.1.1.0 netmask 255.255.255.0 {
      диапазон 10.1.1.3 10.1.1.254;
    }
    
    подсеть 192.168.0.0 маска сети 255.255.0.0 {
    }
     

    Этот файл конфигурации указывает DHCP-серверу прослушивать запросы DHCP-клиента в подсети 10.1.1.0 с сетевой маской 255.255.255.0. Кроме того, он будет назначать IP-адреса в диапазоне 10.1.1.3 — 10.1.1.254. Он также определяет пустое определение для подсети с идентификатором сети 192.168.0.0.

    Измените приведенный выше код для своей подсети и вставьте его в /etc/dhcp/dhcpd.conf. Когда все будет готово, перезапустите DHCP-сервер с помощью (команда перезапуска может отличаться):

     # service isc-dhcp-server restart
     

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

    • default-lease-time — это значение в секундах, в котором истечет срок действия арендованного IP-адреса, если DHCP-клиент не запрашивает другое конкретное время истечения срока аренды
    • max-lease-time — это значение в секундах, которое определяет максимальное время истечения срока действия IP-адреса, арендуемого DHCP-сервером
     default-lease-time 600;
    max-lease-time 7200;
    
    подсеть 10.1.1.0 netmask 255.255.255.0 {
      диапазон 10.1.1.3 10.1.1.254;
    }
    
    подсеть 192.168.0.0 сетевая маска 255.255.0.0 {
    }
     

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

     время аренды по умолчанию 600;
    max-lease-time 7200;
    
    подсеть 10.1.1.0 netmask 255.255.255.0 {
      диапазон 10.1.1.3 10.1.1.254;
      вариант серверы доменных имен 10.1.1.1, 8.8.8.8;
    }
    
    подсеть 192.168.0.0 маска сети 255.255.0.0 {
    }
    
    подсеть 10.1.1.0 netmask 255.255.255.0 {
      диапазон 10.1.1.3 10.1.1.254;
      вариант роутеров 10.1.1.1;
    }
     

    DHCP также позволяет настраивать шлюз клиента. Чтобы настроить любой клиент в локальной сети на использование шлюза по умолчанию 10.1.1.1, добавьте строку «option Routers 10.1.1.1» в файл dhcpd.conf, как показано ниже:

     default-lease- раз 600;
    max-lease-time 7200;
    
    подсеть 10.1.1.0 маска сети 255.255.255.0 {
      диапазон 10.1.1.3 10.1.1.254;
      option domain-name-servers 10.1.1.1, 8.8.8.8;
      вариант роутеров 10.1.1.1;
    }
    
    подсеть 192.168.0.0 маска сети 255.255.0.0 {
    }
    
    подсеть 10.1.1.0 netmask 255.255.255.0 {
      диапазон 10.1.1.3 10.1.1.254;
      вариант роутеров 10.1.1.1;
    }
     

    DHCP теперь установит DHCP-клиент со шлюзом 10.1.1.1.

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

     время аренды по умолчанию 600;
    max-lease-time 7200;
    
    подсеть 10.1.1.0 netmask 255.255.255.0 {
      диапазон 10.1.1.3 10.1.1.254;
      option domain-name-servers 10.1.1.1, 8.8.8.8;
      вариант роутеров 10.1.1.1;
    }
    
    подсеть 192.168.0.0 маска сети 255.255.0.0 {
    }
    
    главный принтер {
      аппаратный Ethernet 00: 16: d3: b7: 8f: 86;
      фиксированный адрес 10.1.1.100;
    }
    
    хост веб-сервер {
      аппаратный Ethernet 00: 17: a4: c2: 44: 22;
      фиксированный адрес 10.1.1.200;
    }
     

    Приведенный выше файл конфигурации DHCP будет постоянно назначать IP-адрес 10.1.1.100 хосту «принтер» с MAC-адресом 00: 16: d3: b7: 8f: 86 и IP-адресом 10.1.1.200 хосту «веб-сервер». с MAC-адресом 00: 17: a4: c2: 44: 22.

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

    Чтобы настроить ваш клиент для использования DHCP в сетевом интерфейсе eth0 в системах Ubuntu или Debian linux, введите следующие строки в файл / etc / network / interfaces:

     auto eth0
    iface eth0 inet dhcp
     

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

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

     # apt-get install isc-dhcp-relay
     

    Затем создайте файл конфигурации / etc / default / isc-dhcp-relay с двумя строками:

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

    Приведенный выше файл конфигурации проинструктирует агент ретрансляции DHCP прослушивать на интерфейсе eth0 запросы клиента DHCP и перенаправлять их на сервер DHCP по IP-адресу 192.168.5.5.

    Поддержка BOOTP

    ISC DHCP-сервер обратно совместим с BOOTP. Ниже приведено объявление клиента BOOTP, которое должно быть определено в файле dhcpd.conf основной конфигурации DHCP:

     host bootp {
                  аппаратный Ethernet 00: 00: 2e: 55: 12: 09;
                  фиксированный адрес 123.123.1.3;
                  имя файла "/path/to/tftpboot/bootp.boot";
                }
     

    16.2. Настройка сервера DHCPv4 Red Hat Enterprise Linux 6

    Пакет dhcp содержит DHCP-сервер Консорциума Интернет-систем (ISC).Сначала установите пакет как суперпользователь:

    При установке пакета dhcp создается файл /etc/dhcp/dhcpd.conf , который представляет собой просто пустой файл конфигурации:

    Пример файла конфигурации можно найти по адресу / usr / share / doc / dhcp- < version > /dhcpd.conf.sample . Вы должны использовать этот файл, чтобы помочь вам настроить /etc/dhcp/dhcpd.conf , что подробно объясняется ниже.

    16.2.1. Файл конфигурации

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

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

    В файле конфигурации есть два типа операторов:

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

    • Объявления — Опишите топологию сети, опишите клиентов, укажите адреса для клиентов или примените группу параметров к группе объявлений.

    Параметры, которые начинаются с ключевого слова option, обозначаются как options . Эти параметры управляют параметрами DHCP; в то время как параметры настраивают значения, которые не являются дополнительными, или управляют поведением DHCP-сервера.

    Параметры (включая параметры), объявленные перед разделом, заключенным в фигурные скобки ({}), считаются глобальными параметрами.Глобальные параметры применяются ко всем разделам ниже.

    Если файл конфигурации изменен, изменения не вступят в силу до тех пор, пока демон DHCP не будет перезапущен командой service dhcpd restart .

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

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

    В этом примере есть глобальные параметры для каждого DHCP-клиента в подсети и объявлен диапазон . Клиентам назначается IP-адрес в диапазоне .

    Пример 16.1. Декларация подсети

    подсеть 192.168.1.0 сетевая маска 255.255.255.0 {
            вариант роутеров 192.168.1.254;
            опция маска подсети 255.255.255.0;
            вариант поиска домена "example.com";
            серверы доменных имен 192.168.1.1;
            опция time-offset -18000; # Восточное стандартное время
    диапазон 192.168.1.10 192.168.1.100;
    }
     
    Чтобы настроить DHCP-сервер, который предоставляет в аренду динамический IP-адрес системе в подсети, измените пример 16.2, «Параметр диапазона» своими значениями. Он объявляет время аренды по умолчанию, максимальное время аренды и значения конфигурации сети для клиентов. В этом примере клиентским системам назначаются IP-адреса в диапазоне , , 192.168.1.10 и 192.168.1.100.

    Пример 16.2. Параметр диапазона

    время аренды по умолчанию 600;
    max-lease-time 7200;
    опция маска подсети 255.255.255.0;
    опция широковещательного адреса 192.168.1.255;
    вариант роутеров 192.168.1.254;
    вариант доменных имён-серверов 192.168.1.1, 192.168.1.2;
    вариант поиска домена "example.com";
    подсеть 192.168.1.0 сетевая маска 255.255.255.0 {
       диапазон 192.168.1.10 192.168.1.100;
    }
     
    Чтобы назначить IP-адрес клиенту на основе MAC-адреса сетевой карты, используйте параметр hardware ethernet в объявлении host .Как показано в примере 16.3, «Статический IP-адрес с использованием DHCP», объявление host apex указывает, что карта сетевого интерфейса с MAC-адресом 00: A0: 78: 8E: 9E: AA всегда получает IP-адрес 192.168.1.4.

    Обратите внимание, что вы также можете использовать необязательный параметр host-name , чтобы назначить имя хоста клиенту.

    Пример 16.3. Статический IP-адрес с использованием DHCP

    host apex {
       опция host-name "apex.example.com";
       аппаратный Ethernet 00: A0: 78: 8E: 9E: AA;
       фиксированный адрес 192.168.1.4;
    }
     
    Все подсети, которые совместно используют одну и ту же физическую сеть, должны быть объявлены в объявлении shared-network , как показано в Примере 16.4, «Объявление совместно используемой сети». Параметры в общей сети , но за пределами закрытых деклараций подсети , считаются глобальными параметрами. Имя общей сети должно быть описательным заголовком для сети, например с использованием заголовка «test-lab» для описания всех подсетей в среде тестовой лаборатории.

    Пример 16.4. Декларация общей сети

    общее имя сети {
        вариант поиска домена "test.redhat.com";
        вариант доменных имен-серверов ns1.redhat.com, ns2.redhat.com;
        вариант роутеров 192.168.0.254;
        # дополнительные параметры для ПРИМЕР общей сети
        подсеть 192.168.1.0 netmask 255.255.252.0 {
            # параметры для подсети
            диапазон 192.168.1.1 192.168.1.254;
        }
        подсеть 192.168.2.0 netmask 255.255.252.0 {
            # параметры для подсети
            диапазон 192.168.2.1 192.168.2.254;
        }
    } 
    Как показано в Примере 16.5, «Объявление группы», объявление group используется для применения глобальных параметров к группе объявлений. Например, общие сети, подсети и хосты могут быть сгруппированы.

    Пример 16.5. Групповая декларация

    группа {
       вариант роутеров 192.168.1.254;
       опция маска подсети 255.255.255.0;
       вариант поиска домена "example.com";
       серверы доменных имен 192.168.1.1;
       опция time-offset -18000; # Восточное стандартное время
       host apex {
          опция host-name "apex.example.com";
          аппаратный Ethernet 00: A0: 78: 8E: 9E: AA;
          фиксированный адрес 192.168.1.4;
       }
       host raleigh {
          опция host-name "raleigh.example.com";
          аппаратный Ethernet 00: A1: DD: 74: C3: F2;
          фиксированный адрес 192.168.1.6;
       }
    }
     

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

     ~] #  cp / usr / share / doc / dhcp-  <номер_версии>  / dhcpd.conf.sample /etc/dhcp/dhcpd.conf  

    … где — номер версии DHCP.

    Полный список операторов option и их функций можно найти на странице руководства dhcp-options .

    14.2. Настройка DHCP-сервера Red Hat Enterprise Linux 7

    Если машина имеет сложную конфигурацию, например, два интерфейса InfiniBand и интерфейсы P_Key на каждом физическом интерфейсе, а также соединение Ethernet, для обслуживания этой конфигурации может использоваться следующая статическая конструкция IP :
    Хост вершина.0 {
        опция host-name «apex.example.com»;
        аппаратный Ethernet 00: A0: 78: 8E: 9E: AA;
        option dhcp-client-identifier = ff: 00: 00: 00: 00: 00: 02: 00: 00: 02: c9: 00: 00: 02: c9: 03: 00: 31: 7b: 11;
        фиксированный адрес 172.31.0.50, 172.31.2.50, 172.31.1.50, 172.31.3.50;
    }
    
    host apex.1 {
        опция host-name «apex.example.com»;
        аппаратный Ethernet 00: A0: 78: 8E: 9E: AB;
        option dhcp-client-identifier = ff: 00: 00: 00: 00: 00: 02: 00: 00: 02: c9: 00: 00: 02: c9: 03: 00: 31: 7b: 12;
        фиксированный адрес 172.31.0.50, 172.31.2.50, 172.31.1.50, 172.31.3,50;
    } 
    Чтобы найти правильный dhcp-client-identifier для вашего устройства, вы обычно можете использовать префикс ff: 00: 00: 00: 00: 00: 02: 00: 00: 02: c9: 00 , а затем добавьте последние 8 байтов интерфейса IPoIB (который также является 8-байтовым идентификатором GUID порта InfiniBand, на котором находится интерфейс IPoIB). На некоторых старых контроллерах этот префикс неверен. В этом случае мы рекомендуем использовать tcpdump на сервере DHCP для захвата входящего запроса IPoIB DHCP и сбора правильного dhcp-client-identifier из этого захвата.Например:
    ] $  tcpdump -vv -i mlx4_ib0 
    tcpdump: прослушивание mlx4_ib0, линк-тип LINUX_SLL (готовый для Linux), размер захвата 65535 байт
    23: 42: 44.131447 IP (tos 0x10, ttl 128, id 0, смещение 0, flags [none], протокол UDP (17), длина 328)
        0.0.0.0.bootpc> 255.255.255.255.bootps: [udp sum ok] BOOTP / DHCP, запрос, длина 300, htype 32, hlen 0, xid 0x975cb024, флаги [Broadcast] (0x8000)
              Vendor-rfc1048 Расширения
                Волшебное печенье 0x63825363
                Параметр сообщения DHCP 53, длина 1: обнаружение
                Вариант имени хоста 12, длина 10: "rdma-qe-03"
                Параметр-опция 55, длина 18:
                  Маска подсети, BR, часовой пояс, бесклассовый статический маршрут
                  Имя домена, Сервер доменного имени, Имя хоста, YD
                  YS, NTP, MTU, опция 119
                  Шлюз по умолчанию, Бесклассовый статический маршрут, Бесклассовый статический маршрут Microsoft, Статический маршрут
                  Вариант 252, НТП
                Client-ID Option 61, длина 20: тип оборудования 255, 00: 00: 00: 00: 00: 02: 00: 00: 02: c9: 00: 00: 02: c9: 02: 00: 21: ac: c1 
    Приведенный выше дамп показывает поле Client-ID.Тип оборудования 255 соответствует начальному значению ff: идентификатора, остальная часть идентификатора затем цитируется точно так, как оно должно отображаться в файле конфигурации DHCP .

    Как настроить DHCP-сервер в Ubuntu 18.04

    Шаги в этом посте покажут вам, как настроить DHCP-сервер при чистой установке Ubuntu Server 18.04, чтобы у вас был больший контроль над назначением IP-адресов в вашей сети. .

    Введение

    Настроить сервер DCHP с Linux очень просто, и в этом посте я расскажу вам об этом.

    Совет

    Вы используете Windows или macOS и хотите попробовать это руководство? Виртуализация — лучший способ запустить Linux вместе с вашей текущей операционной системой. Ознакомьтесь с этими руководствами, чтобы узнать, как:

    Сеть

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

      Сеть: 10.1.1.0
    IP-адрес: 10.1.1.243
    Подсеть: 255.255.255.0
    DCHP Диапазон: 10.1.1.101 - 10.1.1.200
      

    Войдите на сервер Ubuntu через SSH, и тогда мы начнем.

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

    Первое, что нам нужно сделать, это установить сервер dhcpd , выполнив следующую команду:

      sudo apt install isc-dhcp-server -y
      

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

    Откройте файл dhcpd.conf в своем любимом текстовом редакторе.

      sudo vim /etc/dhcp/dhcpd.conf
      

    Измените параметры доменного имени и серверов имен.

      option domain-name "example.lab";
    вариант доменных имен-серверов 10.1.1.2;
      

    Раскомментировать авторитетный; , потому что это будет единственный DHCP-сервер в сети.

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

    Добавьте следующую конфигурацию подсети в конец файла.

      подсеть 10.1.1.0 маска сети 255.255.255.0 {
      диапазон 10.1.1.101 10.1.1.200;
      опция роутеров 10.1.1.2;
    }
      

    Примените изменения, выполнив команду:

      sudo systemctl restart isc-dhcp-server.service
      

    Объявление

    Шаг 3. Тестирование клиента

    Проверьте, может ли клиент в той же сети с адаптером, настроенным на DHCP, получить IP-адрес. Как видно на снимке экрана ниже, виртуальной машине Windows 10 в той же сети назначен IP-адрес 10.1.1.135 .

    Выполнение команды dhcp-lease-list также подтверждает это.

      ubuntu @ ubuntu: ~ $ dhcp-lease-list
    Чтобы получить названия производителей, загрузите http://standards.ieee.org/regauth/oui/oui.txt по адресу /usr/local/etc/oui.txt.
    Чтение договоров аренды из /var/lib/dhcp/dhcpd.leases
    MAC-адрес IP-хоста действителен до производителя
    ================================================== =============================================
    00: 0c: 29: 45: ba: 4d 10.1.1.135 DESKTOP-8UK989 2019-12-12 13:22:00 -NA-
      

    Объявление

    Создание фиксированных IP-адресов

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

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

      host esxi02 {
      аппаратный Ethernet 00: 0c: 29: c0: a0: 19;
      фиксированный адрес 10.1.1.12;
    }
      

    В приведенном выше примере я назначаю имя хоста esxi02 и IP-адрес 10.1.1.12 серверу с сетевой картой с MAC-адресом 00: 0c: 29: c0: а0: 19 .

    Вот и все

    Теперь в вашей сети должен быть компьютер с Ubuntu Server 18.04, который будет назначать IP-адреса клиентам.Мы также рассмотрели, как создать фиксированный IP-адрес, чтобы вам не приходилось вручную настраивать статические адреса на каждом сервере.

    Советы:

    • Если у вас есть какие-либо проблемы с клиентами, которые не могут получить адрес из пула DHCP, проверьте файл syslog , расположенный по адресу / var / log / syslog , на наличие каких-либо подсказок.
    • Вы также можете запустить команду dhcp-lease-list , чтобы просмотреть список клиентов с арендованными адресами из пула DHCP.
    • Фиксированные IP-адреса не будут отображаться в списке аренды DHCP.

    Настройка базового DHCP-клиента и сервера в Linux | Сахитья Марувада | The Startup

    Все, что у меня было, это теоретические знания о том, как работает DHCP, как часть моей учебной программы. Я знал, что активность моего веб-браузера полностью зависит от DHCP-клиента, работающего на моем ноутбуке, но я никогда раньше не настраивал DHCP-сервер. Недавно я попытался настроить DHCP-сервер в ОС Debian с пакетом isc-dhcp-server , и это сработало.Вот мой взгляд на процесс с кратким введением в протокол

    Краткое введение в DHCP:

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

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

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

    Пакет isc-dhcp-server можно установить, выполнив приведенную ниже команду в терминале

     apt install -y isc-dhcp-server 

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

    Копия информации об аренде для каждого клиента хранится на DHCP-сервере в файле dhcp-leases.Перед тем, как клиенту предоставляется аренда, информация об аренде записывается в файл. Это сопоставление назначенного IP-адреса и MAC-адреса клиента. Команда dhcp-lease-list отображает информацию об аренде всех клиентов, подключенных к серверу.

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

     #config 
    , подсеть 192.168.10.0 сетевая маска 255.255.255.0 {
    дополнительных маршрутизаторов 192.168.10.1;
    вариант доменных имен-серверов 192.168.10.1;
    диапазон 192.168.10.10 192.168.10.150;
    диапазон 192.168.10.160 192.168.10.220
    время аренды по умолчанию 600;
    max-lease-time 7200;
    # мы хотим, чтобы этот сервер был единственным DHCP-сервером в этой сети
    авторитетный;
    }

    Файл dhcpd.conf — это список операторов, который включает объявление и параметры. Объявления включают описание сети, список IP-адресов, которые могут быть назначены клиенту, или параметры, которые могут быть предоставлены клиенту.Параметры описывают, как что-то делать или делать ли вообще что-либо (пример: Авторитетная настройка)

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

     host test_dhcp_client {
    аппаратный Ethernet ;
    с фиксированным адресом 192.168.10.11;
    }

    Конфигурация тестового сервера:

    После того, как конфигурация настроена, dhcp-сервер можно запустить как службу systemd или с аргументами командной строки.Существует также возможность указать собственный путь к файлу конфигурации с опцией -cf вместо обновления dhcpd.conf по умолчанию (находится в /etc/dhcpd/dhcp.conf). Параметр -f в параметрах командной строки используется для предотвращения того, чтобы демон запускал процесс в фоновом режиме, что является режимом по умолчанию для запуска dhcpd. Параметр -d предназначен для настройки dhcpd для ведения журнала в stderr вместо Syslog. Запуск в режиме командной строки пригодится при тестировании пользовательской конфигурации.

     / usr / sbin / dhcpd -4 -f -d -cf ./  eth0 

    Интерфейс eth0 должен быть настроен со статическим IP-адресом, который является указанным IP-адресом маршрутизатора в dhcpd.conf. Назначьте статический IP-адрес интерфейсу eth0, добавив конфигурацию в / etc / network / interfaces. IP-адрес интерфейса должен иметь действующий шлюз. IP 192.168.10.1 в данном случае является IP-адресом сервера, подключенного к Интернету, который служит маршрутизатором.

     # Назначьте статический IP-адрес этому DHCP-серверу на eth0: 
    auto eth0
    iface eth0 inet static
    address 192.168.10.1
    сетевая маска 255.255.255.0
    широковещательная передача 192.168.10.255

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

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

    Запустите tcpdump на сервере или клиенте, чтобы узнать, может ли сервер получить сообщение DHCPDiscover от клиента.

    Запустите dhcp-lease-list , чтобы проверить, не подключен ли к серверу какой-либо клиент. Если есть что-то, что подразумевает, что конфигурация сервера работает

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

    Запуск dhclient на интересующем интерфейсе — это все, что необходимо для настройки DHCP-клиента. Еще один способ настройки DHCP-клиента на интерфейсе — настроить его на использование DHCP в файле / etc / network / interfaces

     # Интерфейс запускается во время загрузки с параметром «auto».
    auto eth0
    iface eth0 inet DHCP

    Эта настройка в файле интерфейсов запустит dhclient в службе eth0

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

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

     / sbin / dhclient -4 -v -i -d --no-pid \ -cf./dhcp.conf -lf /var/lib/dhcp/dhclient.eth0.leases \ -I eth0 

    Ниже приведен пример настраиваемого сценария конфигурации. По умолчанию находится в /etc/dhclient/dhclient.conf. По умолчанию интервал повторных попыток составляет 10 минут, теперь он сокращен до минуты, чтобы обеспечить более быстрые попытки.

     option rfc3442-classless-static-routes code 121 = массив целых чисел без знака 8; отправить host-name = ; запросить маску подсети, широковещательный адрес, маршрутизаторы, rfc3442-classless-static-routes ; #retry intervalretry 60; 

    Общие ловушки:

    • Убедитесь, что IP-адрес, который настроен как маршрутизаторы в конфигурации DHCP-сервера, добавлен на интерфейс, на котором запущен DHCP-сервер.
    • IP-адрес, настроенный как маршрутизатор, должен иметь действующий маршрут для подключения к Интернету.Все клиенты DHCP зависят от этого маршрута для доступа в Интернет.
    • Убедитесь, что в конце каждого параметра конфигурации на стороне сервера стоит конечная точка с запятой (;), чтобы избежать синтаксических ошибок
    • Для DHCP-сервера с сетью 192.168.10.0 / 24, если IP-адрес шлюза — это не первый IP-адрес в подсети (192.168.10.1), а что-то вроде 192.168.10.24, тогда параметр range в DHCP-сервере (параметр, который определяет диапазон IP-адресов, которые могут быть переданы на клиенты) не должны включать шлюз и, следовательно, быть разделенными на две части
     #global configs 
    default-lease-time 86400;
    max-lease-time 86400; Подсеть
    192.168.1.0 маска сети 255.255.255.0 {
    дополнительных маршрутизаторов 192.168.1.24;
    option domain-name-servers 192.168.1.24;
    диапазон 192.168.1.5 192.168.10.22;
    диапазон 192.168.1.23 192.168.1.200;
    время аренды по умолчанию 600;
    max-lease-time 7200;
    }

    Как настроить DHCP-сервер с сервером Ubuntu 18.04

    Если вы хотите контролировать выдачу адресов DHCP, вы можете сделать это с помощью Ubuntu Server.

    Изображение: Джек Уоллен

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

    Я собираюсь пройти через процесс настройки DHCP на Ubuntu Server 18.04. Процесс довольно простой, поэтому он не займет много времени (около пяти минут).

    SEE: Контрольный список развертывания / миграции сервера (Tech Pro Research)

    Что вам нужно

    Единственное, что вам нужно для этого, — это работающий экземпляр Ubuntu Server 18.04 и учетная запись пользователя с привилегиями sudo. Вот и все. Давайте работать.

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

    Первое, что нужно сделать, это установить сервер dhcpd. Войдите в свой сервер Ubuntu и введите следующую команду:

     sudo apt-get install isc-dhcp-server -y 

    Приведенная выше команда выберет все необходимые зависимости и завершит установку без ошибок.

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

    Затем необходимо настроить DHCP-сервер. Введите команду:

     sudo nano /etc/dhcp/dhcpd.conf 

    В этом файле вам нужно изменить (в соответствии с вашими сетевыми потребностями) несколько строк.

    Укажите доменное имя в следующей строке:

     option domain-name "example.com"; 

    Укажите имя хоста или IP-адрес сервера имен в следующей строке:

     option domain-name-servers 192.168.1.10, 192.168.1.11; 

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

     default-lease-time 3600;
    max-lease-time 7200; 

    Раскомментируйте (удалите символ #) следующую строку:

     #authoritative; 

    Затем прокрутите до конца файла и добавьте следующее (обязательно измените его в соответствии с вашими сетевыми потребностями):

     # Укажите сетевой адрес и маску подсети
      подсеть 192.168.1.0 сетевая маска 255.255.255.255.0 {
      # Укажите адрес шлюза по умолчанию
      вариант роутеров 192.168.1.254;
      # Укажите маску подсети
      опция маска подсети 255.255.255.0;
      # Указать диапазон арендованных IP-адресов
      диапазон 192.168.1.100 192.168.1.200;
    } 

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

    Перезапустите DHCP-сервер с помощью команды:

     sudo systemctl restart isc-dhcp-server.service 

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

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

    Если вы хотите узнать, какие IP-адреса были выданы сервером, введите команду:

     dhcp-lease-list 

    Приведенная выше команда выведет список всех адресов, которые были розданы ( Рисунок A ).

    Рисунок A: После перезапуска DHCP-сервера был выдан только один адрес.

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

    Еженедельный бюллетень с открытым исходным кодом

    Вы не хотите пропустить наши советы, руководства и комментарии по ОС Linux и приложениям с открытым исходным кодом.Доставка по вторникам

    Зарегистрироваться Сегодня

    Также см.

    Как настроить DHCP-сервер в Ubuntu

    DHCP ( D ynamic H ost C ontrol P rotocol), поскольку вы все знаете, это сетевой протокол, который автоматически назначает IP-адреса для клиентские машины в сети.Это устраняет утомительную работу по назначению IP-адреса вручную каждой машине в большой сети. Кроме того, он устраняет конфликт, возникающий из-за ошибочного назначения одного и того же IP-адреса нескольким машинам. Мы можем определить диапазоны IP-адресов в конфигурации DHCP-сервера. Наряду с IP-адресом мы также можем определить другую информацию, такую ​​как маска подсети, шлюз по умолчанию, информация о DNS-сервере и т. Д., И эта информация затем распространяется на клиентские машины по сети.

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

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

    Перед тем, как приступить к установке DHCP-сервера, сначала обновите пакеты, выполнив следующую команду в Терминале:

     $ sudo apt get update 

    Затем запустите следующую команду в Терминале для установки сервера DCHP:

     $ sudo apt-get install isc-dhcp-server -y 

    Подождите, пока установка не будет завершена.

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

    После завершения установки DHCP-сервера мы перейдем к его настройке. IP-адрес нашего DHCP-сервера 192.168.110.1. Чтобы узнать IP-адрес вашего DHCP-сервера, введите в Терминале следующую команду:

     $ ip a 

    Файл конфигурации DHCP находится по адресу /etc/dhcp/dhcpd.conf. Мы можем открыть этот файл, выполнив следующую команду в Терминале

     $ sudo nano / etc / dhcp / dhcpd.conf 

    Определение подсети

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

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

     подсеть 192.168. 110.0 сетевая маска 255.255.255.0 {

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

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

    Диапазон
     192.168.110.5 192.168.1.10; 

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

     option Routers 192.168.110.1; 

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

     option domain-name-servers 8.8.8.8, 8.8.4.4; 

    Внесите изменения в соответствии со значениями вашей сети.

    Глобальная конфигурация DHCP

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

    1. Чтобы указать время аренды по умолчанию и максимальное время аренды, найдите в файле конфигурации параметры default-lease-time и max-lease-time и измените их значения.

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

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

     INTERFACESv4 = "eth0" 

    3. Чтобы сделать DHCP-сервер официальным DHCP-сервером для клиентов, раскомментируйте следующую строку в файле конфигурации (удалив символ # ):

     $ authoritative; 

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

    Управление службами DHCP

    После завершения настройки вы можете использовать следующие команды для управления сервером DHCP:

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

     $ sudo systemctl status isc-dhcp-server.service 

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

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

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

     $ sudo systemctl start isc-dhcp-server.service 

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

     $ sudo systemctl stop isc -dhcp-server.service 

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

     $ sudo systemctl restart isc-dhcp-server.service 

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

    Нам необходимо настроить параметры сети в клиентский компьютер, чтобы получить IP-адрес от DHCP-сервера.Здесь мы будем использовать другой Ubuntu 18.04 LTS в качестве клиентского компьютера.

    На клиентском компьютере откройте приложение Settings из меню Ubuntu Dash.

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

    Откроется окно настроек адаптера. Выберите вкладку IPv4 в верхнем меню.Затем выберите опцию Автоматически (DHCP) . Затем нажмите Применить , чтобы сохранить изменения.

    Затем перезапустите сетевые службы, выполнив следующую команду в Терминале:

     $ sudo systemctl restart NetworkManager.service 

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

     $ ip a 

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

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

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

     $ dhcp-lease-list 

    Аренда — это период времени, на который IP-адрес назначается компьютеру.

    Из этого списка вы можете проверить наш DHCP-клиент с MAC: 00: 0c: 29: d4: cf: 69 предоставил IP-адрес 192.

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

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