Dhcp несколько подсетей linux

Обновлено: 07.07.2024

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

С понижением цен на аппаратное обеспечение размеры локальных сетей выросли. Теперь обычным явлением являются локальные сети размером от малого офиса (5-10 хостов) до больших корпоративных сетей, охватывающих целое здание (более 50 хостов).

В сетях среднего размера мы часто вынуждены объединять все узлы в один сегмент. Современные дешевые коммутаторы легко справляются с обработкой трафика 50-ти узлов, но они не поддерживают функции виртуальных сетей. Коммутаторы же с такой функцией на порядок дороже. Хорошо известные брэнды продают их начиная от $1200 за 24-портовый коммутатор. Возможно, он и стоит этих денег, однако он совершенно не вписывается во многие сметы. Например, в мою.

DHCP и подсети

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

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

Пользуясь этим, мы можем создать список MAC-адресов хостов группы А, и настроить DHCP на раздачу им постоянных IP-адресов из подсети 192.168.10.0. А хостам с MAC-адресами группы Б, будут отдаваться адреса из сети 192.168.20.0, хосты не принадлежащие ни одной из групп (лаптопы визитеров, например) получат адрес в подсети 192.168.1.0 .

Настройка DHCP

Если вас интересует, где можно узнать MAC-адрес сетевой карты, то посмотрите на нее внимательно. На большинстве из них есть наклейка, где он указан. Если же на ваших картах наклейки нет, то пока пропустите этот шаг. Заканчивайте настройку DHCP-сервиса, и запускайте хосты один за другим. Поскольку каждый хост получает IP-адрес (в сети 192.168.1.0 пока что), вы увидите его в файле /var/lib/dhcp/dhcpd.leases. Например:

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

Закончите настройку фиксированных адресов в конфигурации DHCP-сервера.

Не забудьте также установить маску 255.255.255.0 в общей настройке клиентов сети 192.168.0.0.

Организация доступа к серверу

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

Это, в основном, все, что вам нужно. Возможно, вам нужно будет разрешить маршрутизацию на сервере, например для доступа к Internet. Но будьте аккуратны, при этом нужно будет запретить маршрутизацию между локальными подсетями; 192.168.X.0 не должна видеть 192.168.Y.0 . Чтобы избежать этого, используйте брандмауэр, такой как iptables. Его же можно использовать для блокировки доступа в Internet для тех или иных подсетей или хостов.

Зарезервированный адрес: адрес, зарезервированный для использования конкретным хостом. (Адрес вне пула адресов)

тестовая среда

Установить пакет DHCP

Измените файл конфигурации

Соответствующий порт DHCP

Сервер UDP 67
Клиентский UDP 68

Пример развертывания DHCP-сервера

Измените файл конфигурации

Проверьте порт прослушивания DHCP

Проверка клиента

Метод первый, перезапустите веб-сервер

Способ 2: перезагрузите сетевую карту

Метод 3: используйте dhclinet для запуска



Просмотр конфигурации DNS-сервера

Просмотр порта, контролируемого клиентом

Информация об аренде для проверки на стороне сервера

Пример 1. Укажите конкретный сервер и настройте конкретный IP-адрес.

Пример 2 DHCP-сервер назначает адреса нескольким различным сегментам сети.

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

Принцип агента ретрансляции

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

Процесс агента ретрансляции DHCP

  • (1) DHCP-клиент передает пакет dhcpdiscover
  • (2) Агент ретрансляции DHCP отправляет пакет dhcpdiscover на сервер DHCP в одноадресной передаче.
  • (3) Сервер HDCP отправляет пакет предложения DHCP агенту ретрансляции DHCP в одноадресной передаче.
  • (4) Агент ретрансляции DHCP передает пакет dhcpffer
  • (5) DHCP-клиент передает пакет dhcprequest
  • (6) Агент ретрансляции DHCP пересылает пакет dhcprequest на сервер DHCP в одноадресной передаче.
  • (7) Сервер DHCP отправляет пакет dhcpack агенту ретрансляции DHCP в одноадресной передаче.
  • (8) Агент DHCP-ретрансляции передает пакет dhcpack 。

Как правило, агент ретрансляции DHCP отслеживает запросы DHCP на всех интерфейсах. Если сервер HDCP расположен в подсети с сетевым интерфейсом eth0, то агент ретрансляции может использоваться для предоставления услуг DHCP в подсети, к которой подключены eth1 и eth2.

сервер Сетевая карта
DHCP-сервер 192.168.30.10/24
Сервер агента ретрансляции DHCP 192.168.30.1/24,192.168.40.1/24,192.168.50.1/24
Тестовый сервер 1 192.168.30.202/24
Тестовый сервер 2 192.168.40.202/24

Конфигурация на DHCP-сервере

Работа на сервере ретрансляции:

Сконфигурируйте сетевой IP-адрес на сервере как статический IP-адрес.Конфигурация eth0 следующая, а конфигурация eth1 и eth2 аналогична.

Установите сервер ретрансляции dhcp

Включить маршрутизацию и пересылку

Запустите службу dhcrelay

Клиентский тест

Запустите сервер в том же сегменте сети, что и сеть прокси-сервера ретрансляции DHCP.

Распространенные ошибки

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

IP-адреса DHCP-сервера и прокси-сервера ретрансляции DHCP изменятся автоматически.
Анализируйте причины : Запуск dhclient на этих двух серверах получит адреса от локального DHCP.
Решение: killall dhclinet

Интеллектуальная рекомендация


Краткое описание общих функций MPI

содержание 1, основная функция MPI 2, точка-точка функция связи 3, коллективная функция связи 1, основная функция MPI MPI_Init(&argc, &argv) Информировать системы MPI для выполнения всех необх.

Примечание 9: EL выражение


JVM память

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

Проблема сетевого запроса на Android 9.0

вЗапустите Android 9 (API Уровень 28) или вышеНа устройстве операционной системы Android, чтобы обеспечить безопасность пользовательских данных и устройств, использование по умолчанию для зашифрованно.


Учебная запись по Webpack (3) В статье рассказывается о создании webpack4.0.

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

Приветствую всех хабраюзеров. Мой первый опыт написания статей на Хабре, так что любая конструктивная критика приветствуется. Написать решил только лишь потому, что недавно столкнулся с задачей, решения которой «в лоб» не нашел.

Суть задачи в том, что в большой организации нужен был отказоустойчивый DHCP-сервер, с dhcp-relay и возможностью быстро синхронизировать конфигурацию. Основной момент, что в большинстве найденных мной руководствах рассматривается либо вариант failover, либо dhcp-relay и нигде оба варианта не рассматривались вместе да ещё и с удобным методом синхронизации конфигурации. Вдруг кому моя статья немного поможет?

Суть задачи в следующем: есть большое предприятие, сеть на >1000 компов, единственный vlan, 2 контроллера домена, в сети dhcp отсутствует(!). Предыдущие админы умели только так, но это отдельный рассказ и не для Хабра.

Понятно, что первой же задачей стала модернизация сети, а именно сегментация на vlan и внедрение dhcp. При анализе задачи были выработаны следующие требования:

  • Отказоустойчивость — независимость от какого-либо железа
  • Учитывая планы по сегментации сети — необходимо, чтоб сервер знал, в какой vlan какую адресацию отдавать
  • «Репликация» — учитывая, что планируется широко использовать dhcp «привязки» по MAC, нужно чтоб эти «привязки» работали всегда (например, сетевые принтеры)
  • Автоматическое ведение обратных DNS зон
  • Две виртуальные машины на двух разных гипервизорах
  • На машинах стоит centos7 и isc-dhcpd
  • На dhcp настроены failover, динамическое обновление зон и распознавание option 82
  • Option 82 меткой того VLAN, из которого пришел запрос, серверу отдают центральные коммутаторы L3+, на которых все VLAN и разруливаются
  • Так как большинство админов плохо ориентируются в linux и vim, нужна автоматизация процесса добавления статических привязок и механизм репликации конфига

image

    Для начала в Windows DNS создаем все обратные зоны для всех VLAN'ов, разрешаем зонам небезопасные обновления.

Для репликации серверов достаточно написать скрипт, который синхронизирует файлы в каталоге "/etc/dhcp/dhcpd.d/" и перезапускает dhcp-демон после этого. Сам скрипт приводить не буду из-за очень «костыльного» кода, который писался на коленке и на очень скорую руку. Возможно синхронизировать конфиги с помощью утилиты типа csync2 или rsync.

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

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

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


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

Каждый сетевой хост, настроенный для получения 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-сервера в сети:

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

Стандартный DHCP-сервер доступен для Linux дистрибутивов от ISC (Internet System Consortium).

Используйте следующую команду для установки DHCP-сервера, в зависимости от вашего дистрибутива Linux.

Debian и Ubuntu

Redhat и Fedora

Простая конфигурация DHCP

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

Starting ISC DHCP server: dhcpdcheck syslog for diagnostics. . failed!
Examining log files such as /var/log/syslog reveals more details:
No subnet declaration for eth0 (some IP address).
Your server may be connected to multiple network subnets. To start DHCP server, at least one subnet must be defined within the DHCP configuration file /etc/dhcp/dhcpd.conf.
NOTE: if your server has access to more than one subnet, DHCP requires all subnets to be defined even though there isn't immediate intention to enable DHCP service on that subnet.

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

А так же в файле /etc/default/isc-dhcp-server укажем наш интерфейс (или несколько):

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

Измените приведенный выше код с вашей подсетью и вставьте его в файл /etc/dhcp/dhcpd.conf. После перезагрузите DHCP-сервер с помощью команды:

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

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

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

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

Назначим шлюз по-умолчанию

DHCP-сервер также позволяет использовать шлюз по-умолчанию для клиента. Например установим шлюз по-умолчанию 10.1.1.1 для клиентов сети 10.1.1.0, добавим строку option routers 10.1.1.1 в dhcpd.conf в соотвествующие секции:

Описание конфигурации для отдельных хостов на DHCP-сервере

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

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

Как быстро настроить DHCP-клиент на Ubuntu

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

auto eth0
iface eth0 inet dhcp

Конфигурация DHCP-relay (передача полномочий другому DHCP-серверу)

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

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

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

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