Перейти к содержанию

Обзор DHCP

Обзор DHCP#

Протокол динамической настройки узла (Dynamic Host Configuration Protocol, DHCP) делает возможным динамическое назначение IP-адресов и других сведений о настройке клиентам DHCP. Это позволяет сократить издержки и трудозатраты на настройку и управление сетью. С другой стороны, сервис также создаёт дополнительную нагрузку на сеть и требует некоторого обслуживания.

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

Для использования службы DHCP администратор определяет пул IP-адресов в каждой подсети, управляемой сервером DHCP. Каждый пул адресов DHCP сопоставляется с подсетью, связанной с системой. Для каждого пула адресов можно указать интервал времени, в течение которого адрес будет допустимым (длительность аренды). Длительность аренды по умолчанию равна 24 часам. Кроме того, можно указать несколько различных серверов (например, DNS, WINS, SMTP, ...), доступных клиенту в подсети.

Также есть возможность статически сопоставить IP-адрес с MAC-адресом устройства. Служба DHCP осуществляет прослушивание запросов от клиентов DHCP на порту 67 UDP. Пакет запроса позволяет системе определить, на каком интерфейсе расположен клиент. Затем она назначает IP-адрес из подходящего пула и привязывает его к клиенту.

Помимо предоставления сервера DHCP, отдельные интерфейсы системы EDGE можно настроить в качестве клиентов DHCP. Более подробные сведения о клиентских настройках представлены в разделах документации Numa edge по настройке интерфейсов, которые требуется настроить в качестве клиентов DHCP.

В поставляемом Numa Edge по умолчанию включён сервер DHCP для обслуживания управляющего интерфейса. Сервер настроен на раздачу адресов из диапазона 192.168.200.10 — 192.168.200.200 со временем аренды в 24 часа.

Настройка DHCP#

Настройка пулов адресов DHCP#

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

  • 192.168.11.100-192.168.11.200. Этот пул адресов обслуживает подсеть 192.168.11.0/24, подключенную к интерфейсу eth1. Для времени аренды оставлено значение по умолчанию 24 часа (86400 секунд). В том пуле адресов будет использоваться сервер имен DNS по адресу 192.168.11.254.
  • 192.168.12.100-192.168.12.200. Этот пул адресов обслуживает подсеть 192.168.12.0/24, подключенную к интерфейсу eth2. Для времени аренды оставлено значение по умолчанию 24 часа (86400 секунд). В этом пуле адресов будет использоваться сервер имен DNS по адресу 192.168.12.254.
  • 192.168.13.100-192.168.13.200. Этот пул адресов обслуживает подсеть 192.168.13.0/24, подключенную к интерфейсу eth3. Для времени аренды оставлено значение по умолчанию 24 часа (86400 секунд).Для этого пула адресов будет использоваться сервер имен DNS с адресом 192.168.13.254.

На рисунке ниже показан пример настройки пулов адресов.

Схема-стенда

Схема стенда

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

Пример - Настройка пулов адресов DHCP#
  1. Создание узла конфигурации для подсети 192.168.11.0/24. Ввод начального и конечного IP-адресов для пула:
    [edit]
    admin@edge# set service dhcp-server subnet 192.168.11.0/24 start 192.168.11.100 stop 192.168.11.200
    
  2. Ввод маршрутизатора по умолчанию для клиентов подсети 192.168.11.0/24:
    [edit]
    admin@edge# set service dhcp-server subnet 192.168.11.0/24 default-router 192.168.11.254
    
  3. Ввод сервера DNS для клиентов подсети 192.168.11.0/24:
    [edit]
    admin@edge# set service dhcp-server subnet 192.168.11.0/24 dns-server 192.168.11.254
    
  4. Создание узла конфигурации для подсети 192.168.12.0/24. Ввод начального и конечного IP-адресов для пула:
    [edit]
    admin@edge# set service dhcp-server subnet 192.168.12.0/24 start 192.168.12.100 stop 192.168.12.200
    
  5. Ввод маршрутизатора по умолчанию для клиентов подсети 192.168.12.0/24:
    [edit]
    admin@edge# set service dhcp-server subnet 192.168.12.0/24 default-router 192.168.12.254
    
  6. Ввод сервера DNS для клиентов подсети 192.168.12.0/24:
    [edit]
    admin@edge# set service dhcp-server subnet 192.168.12.0/24 dns-server 192.168.12.254
    
  7. Создание узла конфигурации для подсети 192.168.13.0/24. Ввод начального и конечного IP-адресов для пула:
    [edit]
    admin@edge# set service dhcp-server subnet 192.168.13.0/24 start 192.168.13.100 stop 192.168.13.200
    
  8. Ввод маршрутизатора по умолчанию клиентов подсети 192.168.13.0/24:
    [edit]
    admin@edge# set service dhcp-server subnet 192.168.13.0/24 default-router 192.168.13.254
    
  9. Ввод сервера DNS для клиентов подсети 192.168.13.0/24:
    [edit]
    admin@edge# set service dhcp-server subnet 192.168.13.0/24 dns-server 192.168.13.254
    
  10. Фиксация изменений:
    [edit]
    admin@edge# commit
    
  11. Вывод настройки:
    [edit]
    admin@edge# show service dhcp-server
      subnet 192.168.11.0/24 {
          default-router 192.168.11.254
          dns-server 192.168.11.254
          start 192.168.11.100 {
              stop 192.168.11.200
          }
      }
      subnet 192.168.12.0/24 {
          default-router 192.168.12.254
          dns-server 192.168.12.254
          start 192.168.12.100 {
              stop 192.168.12.200
          }
      }
      subnet 192.168.13.0/24 {
          default-router 192.168.13.254
          dns-server 192.168.13.254
          start 192.168.13.100 {
              stop 192.168.13.200
          }
      }
    [edit]
    admin@edge#
    
  12. Вывод настройки интерфейсов:
    [edit]
    admin@edge# show interfaces
       ethernet eth1 {
          address 192.168.11.254/24
       }
       ethernet eth2 {
          address 192.168.12.254/24
       }
       ethernet eth3 {
          address 192.168.13.254/24
       }
    

Резервирование адресов#

Бывают ситуации, когда конкретному узлу важно сопоставить конкретный IP-адрес вместо динамического назначения IP-адреса из пула адресов. Это называется резервированием.

Резервирование выполняется при помощи параметра static-mapping узла конфигурации подсети. В данном примере выполняется резервирование адресов в пуле, созданном в примере выше.

В примере ниже выполняется резервирование IP-адреса 192.168.11.100 для устройства с MAC-адресом 0c:ce:8b:51:00:00.

Пример - Резервирование адреса для клиента#
  1. Создание резерва с именем “lab” и ввод статического IP-адреса из диапазона для подсети 192.168.11.0/25:
    [edit]
    admin@edge# set service dhcp-server subnet 192.168.11.0/24 static-mapping lab ip-address 192.168.11.100
    
  2. Ввод соответствующего MAC-адреса для резерва из подсети 192.168.11.0/25:
    [edit]
    admin@edge# set service dhcp-server subnet 192.168.11.0/24 static-mapping lab mac-address 0c:ce:8b:51:00:00
    
  3. Фиксация изменений:
    [edit]
    admin@edge# commit
    
  4. Вывод настройки:
    [edit] 
    admin@edge# show service dhcp-server subnet 192.168.11.0/24
      default-router 192.168.11.254
      dns-server 192.168.11.254
      start 192.168.11.100 {
          stop 192.168.11.200
      } 
      static-mapping lab {
          ip-address 192.168.11.100
          mac-address 0c:ce:8b:51:00:00
      } 
    [edit] 
    admin@edge# 
    
Пример - Просмотр аренды на DHCP сервере после резервирования IP адреса#
1
2
3
4
5
6
7
8
9
Просмотр аренды на DHCP сервере после резервирования IP адреса  admin@edge:~$ service dhcp-server show leases 
IP address     Hardware Address  Lease expiration      Subnet        Client Name 
----------     ----------------  ----------------     ---------      -----------
192.168.11.100 0c:ce:8b:51:00:00 10:23 2023-05-13    192.168.11.0/24 debian1 
192.168.11.196 0c:ad:e6:35:00:00 10:23 2023-05-13    192.168.11.0/24 debian2 
192.168.12.195 0c:9c:01:04:00:00 10:23 2023-05-13    192.168.12.0/24 debian3 
192.168.12.140 0c:7c:52:e1:00:00 10:23 2023-05-13    192.168.12.0/24 debian4 
192.168.13.107 0c:b2:22:b0:00:00 10:23 2023-05-13    192.168.13.0/24 debian5 
192.168.13.111 0c:cc:e2:cd:00:00 10:23 2023-05-13    192.168.13.0/24 debian6 

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

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

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

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

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

Дополнительно, на агенте ретрансляции может быть настроен параметр service dhcp-relay <ip_клиентского_интерфейса> server-interface, который определяет с какого интерфейса могут быть получены ответы от DHCP сервера. Данный параметр используется для защиты от спуфинга поддельных DHCP ответов полученных на недоверенном интерфейсе, например, смотрящем во внешнюю сеть.

Примечание

В конфигурации устройства могут одновременно присутствовать как сервер DHCP, так и агент ретрансляции, настроенные соответствующими командами разделов service dhcp-server и service dhcp-relay. В таком случае, при обработке запросов, поступающих с интерфейса, определенного в качестве клиентского для dhcp-relay, приоритет обработки будет у агента ретрансляции. Запрос клиента будет перенаправлен серверу DHCP, определенному настройками агента ретрансляции.

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

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

Схема-стенда2

Схема стенда

В примере ниже приведена настройка узла Edge1 в качестве агента ретрансляции DHCP.

Пример - Настройка ретрансляции DHCP#
  1. Просмотр конфигурации интерфейсов ethernet на узле Edge1:
    [edit] 
    admin@Edge1# show interfaces ethernet  
     eth1 { 
          address 192.168.1.1/24 
      } 
      eth2 { 
          address 192.168.12.254/24 
      } 
      eth3 { 
          address 192.168.13.254/24 
      } 
    [edit] 
    admin@Edge1# 
    
  2. Создается узел конфигурации DCHP релея,где указывается IP-адрес интерфейса eth2:
    [edit]
    admin@Edge1# set service dhcp-relay 192.168.12.254
    
  3. Далее указывается адрес DHCP сервера, на который будут перенаправляться запросы клиенов:
    [edit]
    admin@Edge1# set service dhcp-relay 192.168.12.254 server-address 192.168.1.2
    
  4. Затем указывается интерфейс, с которого ожидается получение ответов от DCHP сервера:
    [edit]
    admin@Edge1# set service dhcp-relay 192.168.12.254 server-interface eth1
    
  5. Аналогичным образом настраивается узел конфигурации для адреса 192.168.13.254, который настроен на интерфейсе eth3. Этот адрес используется в качестве адреса отправителя для отправки на DHCP сервер:
    [edit]
    admin@Edge1# set service dhcp-relay 192.168.13.254
    
  6. Указывается адрес DHCP сервера:
    [edit]
    admin@Edge1# set service dhcp-relay 192.168.13.254 server-address 192.168.1.2
    
  7. И интерфейс, смотрящий в сторону DHCP сервера. Если будет получен DHCP ответ с другого интерфейса, он будет отклонен:
    [edit]
    admin@Edge1# set service dhcp-relay 192.168.13.254 server-interface eth1
    
  8. Фиксация изменений:
    [edit]
    admin@Edge1# commit
    
  9. Просмотр получившейся конфигурации:
    [edit] 
    admin@Edge1# show service dhcp-relay  
     192.168.12.254 { 
          server-address 192.168.1.2 
          server-interface eth1 
      } 
      192.168.13.254 { 
          server-address 192.168.1.2 
          server-interface eth1 
      } 
    [edit] 
    admin@Edge1#
    

В примере ниже приведена настройка узла Edge2 в качестве сервера DHCP.

Пример - Настройка сервера DHCP#
  1. Просмотр конфигурации интерфейсов на узле Edge2:
    [edit] 
    admin@Edge2# show interfaces ethernet  
      eth1 { 
          address 192.168.21.254/24 
      } 
      eth2 { 
          address 192.168.1.2/24 
      } 
    [edit] 
    admin@Edge2# 
    
  2. Создание узла конфигурации для подсети 192.168.21.0/24. Ввод начального и конечного IP-адресов для пула:
    [edit]
    admin@Edge2# set service dhcp-server subnet 192.168.21.0/24 start 192.168.21.100 stop 192.168.21.200
    
  3. Ввод маршрутизатора по умолчанию для клиентов подсети 192.168.21.0/24:
    [edit]
    admin@Edge2# set service dhcp-server subnet 192.168.21.0/24 default-router 192.168.21.254
    
  4. Ввод сервера DNS для клиентов подсети 192.168.21.0/24:
    [edit]
    admin@Edge2# set service dhcp-server subnet 192.168.21.0/24 dns-server 192.168.21.254
    
  5. Создание узла конфигурации для подсети 192.168.12.0/24. Ввод начального и конечного IP-адресов для пула:
    [edit]
    admin@Edge2# set service dhcp-server subnet 192.168.12.0/24 start 192.168.12.100 stop 192.168.12.200
    
  6. Ввод маршрутизатора по умолчанию для клиентов подсети 192.168.12.0/24:
    [edit]
    admin@Edge2# set service dhcp-server subnet 192.168.12.0/24 default-router 192.168.12.254
    
  7. Ввод сервера DNS для клиентов подсети 192.168.12.0/24:
    [edit]
    admin@Edge2# set service dhcp-server subnet 192.168.12.0/24 dns-server 192.168.12.254
    
  8. Создание узла конфигурации для подсети 192.168.13.0/24. Ввод начального и конечного IP-адресов для пула:
    [edit]
    admin@Edge2# set service dhcp-server subnet 192.168.13.0/24 start 192.168.13.100 stop 192.168.13.200
    
  9. Ввод маршрутизатора по умолчанию для клиентов подсети 192.168.13.0/24:
    [edit]
    admin@Edge2# set service dhcp-server subnet 192.168.13.0/24 default-router 192.168.13.254
    
  10. Ввод сервера DNS для клиентов подсети 192.168.13.0/24:
    [edit]
    admin@Edge2# set service dhcp-server subnet 192.168.13.0/24 dns-server 192.168.13.254
    
  11. Фиксация настройки:
    [edit]
    admin@Edge2# commit
    
  12. Вывод настройки:
    [edit] 
    admin@Edge2# show service dhcp-server  
      subnet 192.168.12.0/24 { 
          default-router 192.168.12.254 
          dns-server 192.168.12.254 
          start 192.168.12.100 { 
              stop 192.168.12.200 
          } 
      } 
      subnet 192.168.13.0/24 { 
          default-router 192.168.13.254 
          dns-server 192.168.13.254 
          start 192.168.13.100 { 
              stop 192.168.13.200 
          } 
      } 
      subnet 192.168.21.0/24 { 
          default-router 192.168.21.254 
          dns-server 192.168.21.254 
          start 192.168.21.100 { 
              stop 192.168.21.200 
          } 
      } 
    [edit] 
    admin@Edge2# 
    

В примере ниже приведено определение статических маршрутов к удаленным подсетям на сервере DHCP.

Так как на участке между агентом ретрансляции и DHCP сервером используется индивидуальная рассылка, то получателем пакета от сервера будет указан адрес, назначенный клиентскому интерфейсу агента ретрансляции. Там образом на DHCP сервере потребуется указать статические маршруты до подсетей 192.168.12.0/24 и 192.168.13.0/24 с адресом 192.168.1.1 в качестве следующего транзитного узла для трафика. Для этого необходимо выполнить следующие действия в режиме настройки:

Пример - Определение статического маршрута на сервере DHCP#
  1. Создание статического маршрута к подсети 192.168.12.0/24:
    [edit]
    admin@Edge2# set protocols static route 192.168.12.0/24 next-hop 192.168.1.1
    
  2. Создание статического маршрута к подсети 192.168.13.0/24:
    [edit]
    admin@Edge2# set protocols static route 192.168.13.0/24 next-hop 192.168.1.1
    
  3. Фиксация настройки:
    [edit]
    admin@Edge2# commit
    
  4. Отображение настройки:
    [edit] 
    admin@Edge2# show protocols  
      static { 
          route 192.168.12.0/24 { 
              next-hop 192.168.1.1 { 
              } 
          } 
          route 192.168.13.0/24 { 
              next-hop 192.168.1.1 { 
              } 
          } 
      } 
    [edit] 
    admin@Edge2#
    
Пример - Просмотр аренды на DHCP сервере#

Просмотр аренды на DHCP сервере

1
2
3
4
5
6
7
8
9
admin@Edge2:~$ service dhcp-server show leases  
IP address     Hardware Address  Lease expiration      Subnet        Client Name
----------     ----------------  ----------------     ---------      -----------
192.168.12.152 0c:c8:c3:f7:00:00 12:07 2023-05-13    192.168.12.0/24 debian4
192.168.12.100 0c:55:1d:f9:00:00 12:07 2023-05-13    192.168.12.0/24 debian3
192.168.13.107 0c:57:59:26:00:00 11:59 2023-05-13    192.168.13.0/24 debian5
192.168.13.190 0c:1d:10:c3:00:00 11:59 2023-05-13    192.168.13.0/24 debian6
192.168.21.179 0c:d1:2f:c2:00:00 11:51 2023-05-13    192.168.21.0/24 debian2
192.168.21.143 0c:ba:50:c8:00:00 11:53 2023-05-13    192.168.21.0/24 debian1