Настройка роутера dhcp relay
Из определения DHCP relay-агента следует, что это узел, который настроен для передачи пакетов DHCP между клиентом и сервером, находящихся в разных сетях. Relay-агент, помимо своего IP-адреса, может добавлять в запрос клиента информацию опции 82. Предположим, что в пределах локальной сети или подсети администратору необходимо дифференцировать выдачу IP-адресов клиентам. Например, клиенту, подключённому к порту 6 коммутатора, всегда должен выдаваться строго определенный адрес, остальным клиентам — свободные адреса из какого-то диапазона.
Данную задачу можно решить с помощью функции DHCP Local Relay, поддерживаемой коммутаторами D-Link. Она позволяет коммутатору добавлять опцию 82 в запросы клиентов, которые находятся с DHCP-сервером в одном широковещательном домене. При этом локальный relay-агент не изменяет IP- и МАС-адреса отправителя и получателя в DHCP-сообщении, а также не добавляет свой адрес в поле Relay Agent IP address. В DHCP-сообщение клиента будет автоматически добавляться опция 82. На основании информации из опции DHCP-сервер будет определять требуемые параметры, руководствуясь настроенной на нем политикой выдачи адресов. Опция 82 не будет удаляться локальным relay-агентом из ответов DHCP-сервера.
Рассматриваемый пример настройки подходит для следующих серий коммутаторов: DGS-1250, DGS-1510, DGS-1520, DGS-3130, DGS-3630, DXS-3610.
Необходимо чтобы DHCP-клиент А, подключенный к порту 6 коммутатора, получил IP-адрес — 192.168.1.6/24, DHCP-клиент В — любой свободный IP-адрес из диапазона 192.168.1.100–150.
enp0s3 — это имя сетевого интерфейса. Для просмотра информации о сетевых интерфейсах в терминале введите команду:
- Настройте DHCP-сервер так, чтобы DHCP-клиент А, подключенный к порту 6 коммутатора, получил IP-адрес — 168.1.6/24, DHCP-клиент В — любой свободный IP-адрес из диапазона 192.168.1.100–150. Конфигурационный файл /etc/dhcp/dhcpd.conf должен выглядеть следующим образом:
match if binary-to-ascii (10, 8, «», suffix (option agent.circuit-id, 1)) = «6» and binary-to-ascii (16, 8, «:», substring (option agent.remote-id, 2, 6)) = «ac:f1:df:b5:fc:0»;
Manual:IP/DHCP Relay
DHCP Relay is just a proxy that is able to receive a DHCP request and resend it to the real DHCP server.
Properties
Sub-menu: /ip dhcp-relay
Property | Description |
---|---|
add-relay-info (yes | no; Default: no) | Adds DHCP relay agent information if enabled according to RFC 3046. Agent Circuit ID Sub-option contains mac address of an interface, Agent Remote ID Sub-option contains MAC address of the client from which request was received. |
delay-threshold (time | none; Default: none) | If secs field in DHCP packet is smaller than delay-threshold, then this packet is ignored |
dhcp-server (string; Default: ) | List of DHCP servers’ IP addresses which should the DHCP requests be forwarded to |
interface (string; Default: ) | Interface name the DHCP relay will be working on. |
local-address (IP; Default: 0.0.0.0) | The unique IP address of this DHCP relay needed for DHCP server to distinguish relays. If set to 0.0.0.0 — the IP address will be chosen automatically |
relay-info-remote-id (string; Default: ) | specified string will be used to construct Option 82 instead of client’s MAC address. Option 82 consist of: interface from which packets was received + client mac address or relay-info-remote-id |
name (string; Default: ) | Descriptive name for the relay |
DHCP relay does not choose the particular DHCP server in the dhcp-server list, it just send the incoming request to all the listed servers.
Example setup
Let us consider that you have several IP networks ‘behind’ other routers, but you want to keep all DHCP servers on a single router. To do this, you need a DHCP relay on your network which relies DHCP requests from clients to DHCP server.
This example will show you how to configure a DHCP server and a DHCP relay which serve 2 IP networks — 192.168.1.0/24 and 192.168.2.0/24 that are behind a router DHCP-Relay.
IP Address Configuration
IP addresses of DHCP-Server:
[admin@DHCP-Server] ip address> print Flags: X - disabled, I - invalid, D - dynamic # ADDRESS NETWORK BROADCAST INTERFACE 0 192.168.0.1/24 192.168.0.0 192.168.0.255 To-DHCP-Relay 1 10.1.0.2/24 10.1.0.0 10.1.0.255 Public [admin@DHCP-Server] ip address>
IP addresses of DHCP-Relay:
[admin@DHCP-Relay] ip address> print Flags: X - disabled, I - invalid, D - dynamic # ADDRESS NETWORK BROADCAST INTERFACE 0 192.168.0.2/24 192.168.0.0 192.168.0.255 To-DHCP-Server 1 192.168.1.1/24 192.168.1.0 192.168.1.255 Local1 2 192.168.2.1/24 192.168.2.0 192.168.2.255 Local2 [admin@DHCP-Relay] ip address>
To setup 2 DHCP Servers on DHCP-Server router add 2 pools. For networks 192.168.1.0/24 and 192.168.2.0:
/ip pool add name=Local1-Pool ranges=192.168.1.11-192.168.1.100 /ip pool add name=Local1-Pool ranges=192.168.2.11-192.168.2.100 [admin@DHCP-Server] ip pool> print # NAME RANGES 0 Local1-Pool 192.168.1.11-192.168.1.100 1 Local2-Pool 192.168.2.11-192.168.2.100 [admin@DHCP-Server] ip pool>
/ip dhcp-server add interface=To-DHCP-Relay relay=192.168.1.1 \ address-pool=Local1-Pool name=DHCP-1 disabled=no /ip dhcp-server add interface=To-DHCP-Relay relay=192.168.2.1 \ address-pool=Local2-Pool name=DHCP-2 disabled=no [admin@DHCP-Server] ip dhcp-server> print Flags: X - disabled, I - invalid # NAME INTERFACE RELAY ADDRESS-POOL LEASE-TIME ADD-ARP 0 DHCP-1 To-DHCP-Relay 192.168.1.1 Local1-Pool 3d00:00:00 1 DHCP-2 To-DHCP-Relay 192.168.2.1 Local2-Pool 3d00:00:00 [admin@DHCP-Server] ip dhcp-server>
Configure respective networks:
/ip dhcp-server network add address=192.168.1.0/24 gateway=192.168.1.1 \ dns-server=159.148.60.20 /ip dhcp-server network add address=192.168.2.0/24 gateway=192.168.2.1 \ dns-server 159.148.60.20 [admin@DHCP-Server] ip dhcp-server network> print # ADDRESS GATEWAY DNS-SERVER WINS-SERVER DOMAIN 0 192.168.1.0/24 192.168.1.1 159.148.60.20 1 192.168.2.0/24 192.168.2.1 159.148.60.20 [admin@DHCP-Server] ip dhcp-server network>
Configuration of DHCP-Server is done. Now let’s configure DHCP-Relay:
/ip dhcp-relay add name=Local1-Relay interface=Local1 \ dhcp-server=192.168.0.1 local-address=192.168.1.1 disabled=no /ip dhcp-relay add name=Local2-Relay interface=Local2 \ dhcp-server=192.168.0.1 local-address=192.168.2.1 disabled=no [admin@DHCP-Relay] ip dhcp-relay> print Flags: X - disabled, I - invalid # NAME INTERFACE DHCP-SERVER LOCAL-ADDRESS 0 Local1-Relay Local1 192.168.0.1 192.168.1.1 1 Local2-Relay Local2 192.168.0.1 192.168.2.1 [admin@DHCP-Relay] ip dhcp-relay>
Особенности работы и настройки DHCP на маршрутизаторах Cisco (Часть 2)
Статья является продолжением предыдущей статьи, посвященной базовой настройке DHCP на маршрутизаторе Cisco. В этой статье я хочу рассмотреть конфигурацию и настройку централизованного сервера DHCP и агентов DHCP-Relay
1. Конфигурация
В качестве примера возьмем следующую схему:
На маршрутизаторе R3 расположен DHCP-сервер, который централизованно выдает адреса в сети LAN_1 и LAN_2. Маршрутизаторы R1 и R2 в данной схеме являются DHCP-Relay агентами
Сконфигурируем на R3 два пула адресов для каждой локальной сети:
!в режиме глобальной конфигурации определим адреса, которые будут исключены из пула (это адреса интерфейсов R1 и R2
ip dhcp excluded-address 192.168.1.1
ip dhcp excluded-address 192.168.2.1
!создадим пул адресов с именем LAN_1
ip dhcp pool LAN1
network 192.168.1.0 255.255.255.0
ip default-router 192.168.1.1
!создадим пул адресов с именем LAN_2
ip dhcp pool LAN2
network 192.168.2.0 255.255.255.0
ip default-router 192.168.2.1
Естественно, при необходимости можно добавить в пул дополнительные опции.
Следующий этап — конфигурация агентов DHCP-Relay на маршрутизаторах R1 и R2. Суть DHCP-Relay заключается в пересылке широковещательного пакета от клиента одноадресатным пакетом DHCP-серверу.
Конфигурация агентов выполняется следующей командой:
!выбираем интерфейс, на который будет приходить широковещательный запрос от клиентов, в данном случае это интерфейс f0/0 маршрутизатора, который подключен к сегменту сети
interface fa0/0
ip helper-address 10.1.1.2
- Time (udp 37)
- TACACS (udp 49)
- DNS (udp 53)
- TFTP (udp 69)
- NetBIOS name service (udp 137)
- NetBIOS datagram service (udp 138)
2. Как это работает?
Клиент шлет стандартный DISCOVERY:
который пересылается Relay-агентом в направлении DHCP-сервера (измененные поля отмечены красным):
Как видно из картинки, сообщение теперь пересылается одноадресным пакетом с источником 192.168.1.1 (интерфейс маршрутизатора, на который был получен широковещательный пакет) и получателем 10.1.1.2 (адрес, который указан командой ip helper-address. Кроме того, адрес 192.168.1.1 указан в поле Relay agent IP address
На основании адреса источника сообщения DHCP-сервер определяет, из какого пула выдавать адреса. Для маршрутизатора R2 запрос пойдет с адресом источника 192.168.2.1 и сервер выдаст адрес из пула LAN_2.
Предложение OFFER от R3 к R1 выглядит следующим образом:
R1 пересылает его клиенту меняя только адреса источника на 192.168.1.1 и получателя на 192.168.1.2 (ссылка на скриншот)
Вот таким образом выглядит обмен сообщениями между клиентом, агентом и сервером:
3. Заключение
Для правильной работы данного примера важно учесть следующий момент: маршрутизатор R3 получает пакеты от R1 с адресом источника 192.168.1.1, поэтому на R3 сеть 192.168.1.0 должна быть в таблице маршрутизации, я настроил EIGRP между маршрутизаторами для решения этой проблемы. Смотрим таблицу:
Gateway of last resort is not set
10.0.0.0/24 is subnetted, 2 subnets
C 10.1.2.0 is directly connected, FastEthernet0/0
C 10.1.1.0 is directly connected, FastEthernet0/1
D 192.168.1.0/24 [90/307200] via 10.1.1.1, 00:00:16, FastEthernet0/1
D 192.168.2.0/24 [90/307200] via 10.1.2.1, 00:02:17, FastEthernet0/0