DHCP. Option 82. Centos 7 DHCP-сервер + HP Switch 1910 DHCP-Relay. Получение DHCP-клиентами IP-адресов из разных диапазонов: различия между версиями
Cless (обсуждение | вклад) |
Cless (обсуждение | вклад) |
||
| Строка 8: | Строка 8: | ||
= Описание = | = Описание = | ||
Настроим один DHCP-сервер на centos 7 для выдачи ip-адресов из разных диапазонов | Настроим один DHCP-сервер на centos 7 для выдачи ip-адресов из разных диапазонов в зависимости от того, с какого порта на свитче HP Switch 1910 с настроенным DHCP-relay приходит запрос от клиента (DHCP-relay и DHCP-сервер могут быть в разных подсетях (широковещательных доменах L2)). | ||
в зависимости от того, с какого порта на свитче HP Switch 1910 с настроенным DHCP-relay | |||
приходит запрос от клиента (DHCP-relay и DHCP-сервер | |||
могут быть в разных подсетях (широковещательных доменах L2)). | |||
DHCP-Relay в пакете DHCP отправляет на DHCP-сервер: | DHCP-Relay в пакете DHCP отправляет на DHCP-сервер: | ||
agent.circuit-id (Имя устройства HP Switch DHCP-Relay и порта HP Switch DHCP-Relay, в который пришел DHCP запрос от клиента - в нашем случае "hpe-officeconnect-1910-48 eth 0/1/0/7:0001 | '''agent.circuit-id''' (Имя устройства HP Switch DHCP-Relay и порта HP Switch DHCP-Relay, в который пришел DHCP запрос от клиента - в нашем случае "hpe-officeconnect-1910-48 eth 0/1/0/7:0001") | ||
'''agent.remote-id''' (Имя усройства HP Switch DHCP-Relay, в который пришел DHCP запрос от клиента - в нашем случае "hpe-officeconnect-1910-48") | |||
DHCP-сервер на основании agent.circuit-id определяет из какого диапазона выдать IP-адрес исходя из правил | DHCP-сервер на основании agent.circuit-id определяет из какого диапазона выдать IP-адрес исходя из правил. | ||
Можно на DHCP-сервере Centos 7 определить приходящие agent.circuit-id и agent.remote-id в пакетах DHCP через tcpdump | Можно на DHCP-сервере Centos 7 определить приходящие agent.circuit-id и agent.remote-id в пакетах DHCP через tcpdump (после настройки на HP Switch службы DHCP-Relay). | ||
Запустим в консоли | Запустим в консоли | ||
tcpdump -i eth0 -vvv -s 1500 '((port 67 or port 68) and (udp[8:1] = 0x1))' | <code>tcpdump -i eth0 -vvv -s 1500 '((port 67 or port 68) and (udp[8:1] = 0x1))'</code> | ||
Далее запустим DHCP-клиент на устройстве-клиенте и увидим в выводе tcpdump примерно следующее:<blockquote>'''hpe-officeconnect-1910-48''' - имя устройства | |||
'''eth 0/1/0/7''' - номер порта | |||
... | '''0001''' - Vlan ID</blockquote> | ||
... | |||
Circuit-ID SubOption 1, length 42: '''hpe-officeconnect-1910-48 eth 0/1/0/7:0001''' | |||
Remote-ID SubOption 2, length 25: '''hpe-officeconnect-1910-48''' | |||
... | |||
= Входные данные = | |||
[[Файл:Option82-hp-switch-relay-topology.jpg|без|мини|570x570пкс]] | [[Файл:Option82-hp-switch-relay-topology.jpg|без|мини|570x570пкс]] | ||
192.168.17.186 - Centos 7 с DHCP-сервером ISC-DHCP | '''192.168.17.186''' - Centos 7 с DHCP-сервером ISC-DHCP | ||
'''192.168.111.180''' - HP Switch c DHCP-Relay, к его портам подключены DHCP-клиенты | |||
'''pc1, pc2''' - DHCP-клиенты из сети 192.168.111.0/24, подключенные к портам '''7,9''' устройства HP Switch DHCP-Relay | |||
--- | '''pc3''' - DHCP-клиент из сети 192.168.112.0/24, подключенный к порту '''11''' устройства HP Switch DHCP-Relay | ||
= Настройка = | |||
== DHCP-сервер == | |||
<code>yum install dhcp</code> | |||
<nowiki>#</nowiki> | <code>nano /etc/dhcp/dhcpd.conf</code> | ||
<nowiki>#</nowiki> DHCP Server Configuration file. | |||
<nowiki>#</nowiki> see /usr/share/doc/dhcp*/dhcpd.conf.sample | |||
<nowiki>#</nowiki> see 'man 5 dhcpd.conf' | |||
ddns-update-style interim; | |||
log-facility local7; | |||
lease-file-name "/var/log/dhcpd.leases"; | |||
stash-agent-options true; | |||
local-address 192.168.17.186; | |||
subnet 192.168.17.0 netmask 255.255.255.0 { | |||
} | |||
shared-network "192.168.111.0" { | |||
subnet 192.168.111.0 netmask 255.255.255.0 { | |||
option broadcast-address 192.168.111.255; | |||
option routers 192.168.111.1; | |||
option subnet-mask 255.255.255.0; | |||
option domain-name-servers 192.168.111.1,77.88.8.8; | |||
# hpe-officeconnect-1910-48 eth 0/1/0/7:0001 | |||
# 0001 - vlan 1 | |||
class "hpe-officeconnect-1910-48 eth 0/1/0/7:0001" { | |||
match if option agent.circuit-id = "hpe-officeconnect-1910-48 eth 0/1/0/7:0001"; | |||
} | |||
pool { | |||
allow members of "hpe-officeconnect-1910-48 eth 0/1/0/7:0001"; | |||
range 192.168.111.100 192.168.111.109; | |||
} | |||
# hpe-officeconnect-1910-48 eth 0/1/0/9:0001 | |||
# 0001 - vlan 1 | |||
class "hpe-officeconnect-1910-48 eth 0/1/0/9:0001" { | |||
match if option agent.circuit-id = "hpe-officeconnect-1910-48 eth 0/1/0/9:0001"; | |||
} | |||
pool { | |||
allow members of "hpe-officeconnect-1910-48 eth 0/1/0/9:0001"; | |||
range 192.168.111.200 192.168.111.209; | |||
} | |||
} | |||
} | |||
shared-network "192.168.112.0" { | |||
subnet 192.168.112.0 netmask 255.255.255.0 { | |||
option broadcast-address 192.168.112.255; | |||
option routers 192.168.112.1; | |||
option subnet-mask 255.255.255.0; | |||
option domain-name-servers 192.168.112.1,77.88.8.8; | |||
# hpe-officeconnect-1910-48 eth 0/1/0/11:0002 | |||
# 0002 - vlan 2 | |||
class "hpe-officeconnect-1910-48 eth 0/1/0/11:0002" { | |||
match if option agent.circuit-id = "hpe-officeconnect-1910-48 eth 0/1/0/11:0002"; | |||
} | |||
pool { | |||
allow members of "hpe-officeconnect-1910-48 eth 0/1/0/11:0002"; | |||
range 192.168.112.100 192.168.112.109; | |||
} | |||
} | |||
} | |||
<hpe-officeconnect-1910-48> _cmdline-mode on | == HP Switch DHCP-Relay == | ||
Вход в режим полного управления<blockquote>пароль: "'''512900'''" или "'''Jinhua1920unauthorized'''"</blockquote><code><hpe-officeconnect-1910-48> _cmdline-mode on</code> | |||
Переходим в режим конфигурирования | Переходим в режим конфигурирования | ||
<hpe-officeconnect-1910-48> system-view | <code><hpe-officeconnect-1910-48> system-view</code> | ||
Имя хоста | Имя хоста | ||
[hpe-officeconnect-1910-48] sysname hpe-officeconnect-1910-48 | <code>[hpe-officeconnect-1910-48] sysname hpe-officeconnect-1910-48</code> | ||
Включаем службу DHCP | Включаем службу DHCP | ||
[hpe-officeconnect-1910-48] dhcp enable | <code>[hpe-officeconnect-1910-48] dhcp enable</code> | ||
... | |||
... | DHCP is enabled successfully! | ||
... | |||
DHCP is enabled successfully! | |||
... | |||
Указываем номер группы серверов 0 и IP DHCP-сервера, на который Relay будет перенаправлять запросы DHCP | Указываем номер группы серверов 0 и IP DHCP-сервера, на который Relay будет перенаправлять запросы DHCP | ||
[hpe-officeconnect-1910-48] dhcp relay server-group 0 ip 192.168.17.186 | <code>[hpe-officeconnect-1910-48] dhcp relay server-group 0 ip 192.168.17.186</code> | ||
Включаем DHCP-snooping (чтобы запросы DHCP перенаправлялись к DHCP-серверу, указанному в Relay, иначе запросы пойдут напрямую к DHCP-серверу в сети L2) | Включаем DHCP-snooping (чтобы запросы DHCP перенаправлялись к DHCP-серверу, указанному в Relay, иначе запросы пойдут напрямую к DHCP-серверу в сети L2) | ||
[hpe-officeconnect-1910-48] dhcp-snooping | <code>[hpe-officeconnect-1910-48] dhcp-snooping</code> | ||
=== Vlan 1 === | |||
Входим в настройки Vlan1 (это умолчальный Vlan, поэтому создавать командой его не нужно, в отличие от других Vlan) | Входим в настройки Vlan1 (это умолчальный Vlan, поэтому создавать командой его не нужно, в отличие от других Vlan) | ||
[hpe-officeconnect-1910-48] interface Vlan-interface 1 | <code>[hpe-officeconnect-1910-48] interface Vlan-interface 1</code> | ||
< | Привяжем IP адрес для Vlan 1<blockquote>Обязательное условие - привязать IP адрес из подсети, из диапазона которой необходимо выдавать IP адреса с помощью с DHCP Option 82</blockquote><code>[hpe-officeconnect-1910-48-Vlan-interface1] ip address 192.168.111.1 255.255.255.0</code> | ||
<code>[hpe-officeconnect-1910-48-Vlan-interface1] quit</code> | |||
[hpe-officeconnect-1910-48-Vlan-interface1] quit | |||
Включаем Relay | Включаем Relay | ||
[hpe-officeconnect-1910-48-Vlan-interface1] dhcp relay information enable | <code>[hpe-officeconnect-1910-48-Vlan-interface1] dhcp relay information enable</code> | ||
[hpe-officeconnect-1910-48-Vlan-interface1] dhcp select relay | <code>[hpe-officeconnect-1910-48-Vlan-interface1] dhcp select relay</code> | ||
Вводим Vlan1 в группу DHCP-серверов | Вводим Vlan1 в группу DHCP-серверов | ||
[hpe-officeconnect-1910-48-Vlan-interface1] dhcp relay server-select 0 | <code>[hpe-officeconnect-1910-48-Vlan-interface1] dhcp relay server-select 0</code> | ||
Устананавливаем передачу remote-id и circuit-id в формате ASCII (иначе будет передаваться в HEX и надо будет конвертировать на DHCP-сервере) | |||
[hpe-officeconnect-1910-48-Vlan-interface1] dhcp relay information remote-id format-type ascii | <code>[hpe-officeconnect-1910-48-Vlan-interface1] dhcp relay information remote-id format-type ascii</code> | ||
[hpe-officeconnect-1910-48-Vlan-interface1] dhcp relay information circuit-id format-type ascii | <code>[hpe-officeconnect-1910-48-Vlan-interface1] dhcp relay information circuit-id format-type ascii</code> | ||
Устанавливаем формат remote-id и circuit-id | Устанавливаем формат remote-id и circuit-id | ||
[hpe-officeconnect-1910-48-Vlan-interface1] dhcp relay information format verbose node-identifier sysname | <code>[hpe-officeconnect-1910-48-Vlan-interface1] dhcp relay information format verbose node-identifier sysname</code> | ||
<code>[hpe-officeconnect-1910-48-Vlan-interface1] dhcp relay information remote-id string sysname</code> | |||
<code>[hpe-officeconnect-1910-48-Vlan-interface1] quit</code> | |||
=== Проверка === | |||
==== DHCP-сервер ==== | |||
Вставляем клиент '''pc1''' в порт '''7''' коммутатора '''HP Switch DHCP-Relay''' | |||
... | <code>tcpdump -i eth0 -vvv -s 1500 '((port 67 or port 68) and (udp[8:1] = 0x1))'</code> | ||
... | |||
15:47:11.384185 IP (tos 0xe0, ttl 253, id 378, offset 0, flags [none], proto UDP (17), length 405) | |||
192.168.17.7.bootps > centos7-test01.bootps: [udp sum ok] BOOTP/DHCP, Request from cc:2d:e0:39:20:c0 (oui Unknown), length 377, hops 1, xid 0x4d532f86, Flags [Broadcast] (0x8000) | |||
Gateway-IP 192.168.111.180 | |||
Client-Ethernet-Address cc:2d:e0:39:20:c0 (oui Unknown) | |||
Vendor-rfc1048 Extensions | |||
Magic Cookie 0x63825363 | |||
DHCP-Message Option 53, length 1: Request | |||
Server-ID Option 54, length 4: 10.29.24.1 | |||
Requested-IP Option 50, length 4: 192.168.111.175 | |||
Parameter-Request Option 55, length 8: | |||
Subnet-Mask, Classless-Static-Route, Default-Gateway, Static-Route | |||
Domain-Name-Server, NTP, Option 138, Vendor-Option | |||
Hostname Option 12, length 27: "cless_home_hap-mini-111-212" | |||
Client-ID Option 61, length 7: ether cc:2d:e0:39:20:c0 | |||
Agent-Information Option 82, length 71: | |||
Circuit-ID SubOption 1, length 42: hpe-officeconnect-1910-48 eth 0/1/0/7:0001 | |||
Remote-ID SubOption 2, length 25: hpe-officeconnect-1910-48 | |||
END Option 255, length 0 | |||
... | |||
<code>watch -n1 tail -n50 /var/log/messages</code> | |||
... | |||
Aug 17 22:05:44 centos7-test01 dhcpd: DHCPDISCOVER from cc:2d:e0:39:20:c0 (cless_home_hap-mini-111-212) via 192.168.111.180 | |||
Aug 17 22:05:44 centos7-test01 dhcpd: DHCPOFFER on 192.168.111.100 to cc:2d:e0:39:20:c0 (cless_home_hap-mini-111-212) via 192.168.111.180 | |||
Aug 17 22:05:44 centos7-test01 dhcpd: DHCPREQUEST for 192.168.111.100 (192.168.17.186) from cc:2d:e0:39:20:c0 (cless_home_hap-mini-111-212) via 192.168.111.180 | |||
Aug 17 22:05:44 centos7-test01 dhcpd: DHCPACK on 192.168.111.100 to cc:2d:e0:39:20:c0 (cless_home_hap-mini-111-212) via 192.168.111.180 | |||
... | |||
'''pc1''' получает адрес 192.168.111.100 | |||
pc2 | Вставляем клиент '''pc2''' в порт '''9''' коммутатора '''HP Switch DHCP-Relay''' | ||
<code>watch -n1 tail -n50 /var/log/messages</code> | |||
... | |||
Aug 17 22:07:11 centos7-test01 dhcpd: DHCPDISCOVER from cc:2d:e0:39:20:c0 (cless_home_hap-mini-111-212) via 192.168.111.180 | |||
Aug 17 22:07:11 centos7-test01 dhcpd: DHCPOFFER on 192.168.111.200 to cc:2d:e0:39:20:c0 (cless_home_hap-mini-111-212) via 192.168.111.180 | |||
Aug 17 22:07:11 centos7-test01 dhcpd: DHCPREQUEST for 192.168.111.200 (192.168.17.186) from cc:2d:e0:39:20:c0 (cless_home_hap-mini-111-212) via 192.168.111.180 | |||
Aug 17 22:07:11 centos7-test01 dhcpd: DHCPACK on 192.168.111.200 to cc:2d:e0:39:20:c0 (cless_home_hap-mini-111-212) via 192.168.111.180 | |||
... | |||
'''pc2''' получает адрес '''192.168.111.200''' | |||
< | === Vlan 2 === | ||
<blockquote>Важное условие | |||
DHCP-сервер на Centos 7 192.168.17.186 и HP Switch DHCP-Relay (оба интерфейса с адресами 192.168.111.1 и 192.168.112.1) должны видеть друг друга по L3! Проверить сразу доступность пингами! | DHCP-сервер на Centos 7 192.168.17.186 и HP Switch DHCP-Relay (оба интерфейса с адресами 192.168.111.1 и 192.168.112.1) должны видеть друг друга по L3! Проверить сразу доступность пингами! | ||
| Строка 335: | Строка 226: | ||
Для этого порт, которым HP Switch DHCP-Relay подключен в общую сеть Vlan 2 (в нашем случае Ethernet 1/0/1) должен быть настроен с типом Hybrid и включен в Vlan 1 типа untagged и Vlan 2 типа tagged: | Для этого порт, которым HP Switch DHCP-Relay подключен в общую сеть Vlan 2 (в нашем случае Ethernet 1/0/1) должен быть настроен с типом Hybrid и включен в Vlan 1 типа untagged и Vlan 2 типа tagged: | ||
interface Ethernet1/0/1 | <code>interface Ethernet1/0/1</code> | ||
port hybrid | <code>port link-type hybrid</code> | ||
port hybrid vlan | <code>port hybrid vlan 2 tagged</code> | ||
<code>port hybrid vlan 1 untagged</code> | |||
Создадим Vlan 2 | А также на портах всех промежуточных устройств L2 и L3, через которые проходит коммутация от HP Switch DHCP-Relay до маршрутизатора, ведущего к DHCP-серверу, должен быть настроен Vlan 2. Например, если коммутация проходит через Mikrotik, то на его портах, через которые проходит коммутация, должен быть настроен Vlan 2, а эти порты собраны в бридж</blockquote>Создадим Vlan 2 | ||
[hpe-officeconnect-1910-48] vlan 2 | <code>[hpe-officeconnect-1910-48] vlan 2</code> | ||
Добавим физический интерфейс в Vlan 2 | Добавим физический интерфейс в Vlan 2 | ||
[hpe-officeconnect-1910-48-vlan2] port Ethernet 1/0/11 | <code>[hpe-officeconnect-1910-48-vlan2] port Ethernet 1/0/11</code> | ||
Привяжем IP-адрес для Vlan 2 | Привяжем IP-адрес для Vlan 2 | ||
[hpe-officeconnect-1910-48] interface Vlan-interface 2 | <code>[hpe-officeconnect-1910-48] interface Vlan-interface 2</code> | ||
[hpe-officeconnect-1910-48-Vlan-interface2] ip address 192.168.112.1 255.255.255.0 | <code>[hpe-officeconnect-1910-48-Vlan-interface2] ip address 192.168.112.1 255.255.255.0</code> | ||
[hpe-officeconnect-1910-48-Vlan-interface2] quit | <code>[hpe-officeconnect-1910-48-Vlan-interface2] quit</code> | ||
Включаем Relay | Включаем Relay | ||
[hpe-officeconnect-1910-48-Vlan-interface2] dhcp relay information enable | <code>[hpe-officeconnect-1910-48-Vlan-interface2] dhcp relay information enable</code> | ||
[hpe-officeconnect-1910-48-Vlan-interface2] dhcp select relay | <code>[hpe-officeconnect-1910-48-Vlan-interface2] dhcp select relay</code> | ||
Вводим Vlan1 в группу DHCP-серверов | Вводим Vlan1 в группу DHCP-серверов | ||
[hpe-officeconnect-1910-48-Vlan-interface2] dhcp relay server-select 0 | <code>[hpe-officeconnect-1910-48-Vlan-interface2] dhcp relay server-select 0</code> | ||
Устнанавливаем передачу remote-id и circuit-id в формате ASCII (иначе будет передаваться в HEX и надо будет конвертировать на DHCP-сервере) | Устнанавливаем передачу remote-id и circuit-id в формате ASCII (иначе будет передаваться в HEX и надо будет конвертировать на DHCP-сервере) | ||
[hpe-officeconnect-1910-48-Vlan-interface2] dhcp relay information remote-id format-type ascii | <code>[hpe-officeconnect-1910-48-Vlan-interface2] dhcp relay information remote-id format-type ascii</code> | ||
[hpe-officeconnect-1910-48-Vlan-interface2] dhcp relay information circuit-id format-type ascii | <code>[hpe-officeconnect-1910-48-Vlan-interface2] dhcp relay information circuit-id format-type ascii</code> | ||
Устанавливаем формат remote-id и circuit-id | Устанавливаем формат remote-id и circuit-id | ||
[hpe-officeconnect-1910-48-Vlan-interface2] dhcp relay information format verbose node-identifier sysname | <code>[hpe-officeconnect-1910-48-Vlan-interface2] dhcp relay information format verbose node-identifier sysname</code> | ||
<code>[hpe-officeconnect-1910-48-Vlan-interface2] dhcp relay information remote-id string sysname</code> | |||
<code>[hpe-officeconnect-1910-48-Vlan-interface2] quit</code> | |||
=== Проверка === | |||
==== DHCP-сервер ==== | |||
Вставляем клиент '''pc3''' в порт '''11''' коммутатора '''HP Switch DHCP-Relay''' | |||
pc3 получает адрес 192.168.112.100 | <code>watch -n1 tail -n50 /var/log/messages</code> | ||
... | |||
Aug 17 21:47:29 centos7-test01 dhcpd: DHCPDISCOVER from cc:2d:e0:39:20:c0 via 192.168.112.224 | |||
Aug 17 21:47:30 centos7-test01 dhcpd: DHCPOFFER on 192.168.112.100 to cc:2d:e0:39:20:c0 (cless_home_hap-mini-111-212) via 192.168.112.224 | |||
Aug 17 21:47:30 centos7-test01 dhcpd: DHCPREQUEST for 192.168.112.100 (192.168.17.186) from cc:2d:e0:39:20:c0 (cless_home_hap-mini-111-212) via 192.168.112.224 | |||
Aug 17 21:47:30 centos7-test01 dhcpd: DHCPACK on 192.168.112.100 to cc:2d:e0:39:20:c0 (cless_home_hap-mini-111-212) via 192.168.112.224 | |||
... | |||
'''pc3''' получает адрес 192.168.112.100 | |||
Версия 09:23, 18 августа 2022
Ссылки
http://www.miquels.cistron.nl/isc-dhcpd/
http://xgu.ru/wiki/%D0%9E%D0%BF%D1%86%D0%B8%D1%8F_82_DHCP
Описание
Настроим один DHCP-сервер на centos 7 для выдачи ip-адресов из разных диапазонов в зависимости от того, с какого порта на свитче HP Switch 1910 с настроенным DHCP-relay приходит запрос от клиента (DHCP-relay и DHCP-сервер могут быть в разных подсетях (широковещательных доменах L2)).
DHCP-Relay в пакете DHCP отправляет на DHCP-сервер:
agent.circuit-id (Имя устройства HP Switch DHCP-Relay и порта HP Switch DHCP-Relay, в который пришел DHCP запрос от клиента - в нашем случае "hpe-officeconnect-1910-48 eth 0/1/0/7:0001")
agent.remote-id (Имя усройства HP Switch DHCP-Relay, в который пришел DHCP запрос от клиента - в нашем случае "hpe-officeconnect-1910-48")
DHCP-сервер на основании agent.circuit-id определяет из какого диапазона выдать IP-адрес исходя из правил.
Можно на DHCP-сервере Centos 7 определить приходящие agent.circuit-id и agent.remote-id в пакетах DHCP через tcpdump (после настройки на HP Switch службы DHCP-Relay).
Запустим в консоли
tcpdump -i eth0 -vvv -s 1500 '((port 67 or port 68) and (udp[8:1] = 0x1))'
Далее запустим DHCP-клиент на устройстве-клиенте и увидим в выводе tcpdump примерно следующее:
hpe-officeconnect-1910-48 - имя устройства
eth 0/1/0/7 - номер порта
0001 - Vlan ID
... Circuit-ID SubOption 1, length 42: hpe-officeconnect-1910-48 eth 0/1/0/7:0001 Remote-ID SubOption 2, length 25: hpe-officeconnect-1910-48 ...
Входные данные
192.168.17.186 - Centos 7 с DHCP-сервером ISC-DHCP
192.168.111.180 - HP Switch c DHCP-Relay, к его портам подключены DHCP-клиенты
pc1, pc2 - DHCP-клиенты из сети 192.168.111.0/24, подключенные к портам 7,9 устройства HP Switch DHCP-Relay
pc3 - DHCP-клиент из сети 192.168.112.0/24, подключенный к порту 11 устройства HP Switch DHCP-Relay
Настройка
DHCP-сервер
yum install dhcp
nano /etc/dhcp/dhcpd.conf
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
# see 'man 5 dhcpd.conf'
ddns-update-style interim;
log-facility local7;
lease-file-name "/var/log/dhcpd.leases";
stash-agent-options true;
local-address 192.168.17.186;
subnet 192.168.17.0 netmask 255.255.255.0 {
}
shared-network "192.168.111.0" {
subnet 192.168.111.0 netmask 255.255.255.0 {
option broadcast-address 192.168.111.255;
option routers 192.168.111.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.111.1,77.88.8.8;
# hpe-officeconnect-1910-48 eth 0/1/0/7:0001
# 0001 - vlan 1
class "hpe-officeconnect-1910-48 eth 0/1/0/7:0001" {
match if option agent.circuit-id = "hpe-officeconnect-1910-48 eth 0/1/0/7:0001";
}
pool {
allow members of "hpe-officeconnect-1910-48 eth 0/1/0/7:0001";
range 192.168.111.100 192.168.111.109;
}
# hpe-officeconnect-1910-48 eth 0/1/0/9:0001
# 0001 - vlan 1
class "hpe-officeconnect-1910-48 eth 0/1/0/9:0001" {
match if option agent.circuit-id = "hpe-officeconnect-1910-48 eth 0/1/0/9:0001";
}
pool {
allow members of "hpe-officeconnect-1910-48 eth 0/1/0/9:0001";
range 192.168.111.200 192.168.111.209;
}
}
}
shared-network "192.168.112.0" {
subnet 192.168.112.0 netmask 255.255.255.0 {
option broadcast-address 192.168.112.255;
option routers 192.168.112.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.112.1,77.88.8.8;
# hpe-officeconnect-1910-48 eth 0/1/0/11:0002
# 0002 - vlan 2
class "hpe-officeconnect-1910-48 eth 0/1/0/11:0002" {
match if option agent.circuit-id = "hpe-officeconnect-1910-48 eth 0/1/0/11:0002";
}
pool {
allow members of "hpe-officeconnect-1910-48 eth 0/1/0/11:0002";
range 192.168.112.100 192.168.112.109;
}
}
}
HP Switch DHCP-Relay
Вход в режим полного управления
пароль: "512900" или "Jinhua1920unauthorized"
<hpe-officeconnect-1910-48> _cmdline-mode on
Переходим в режим конфигурирования
<hpe-officeconnect-1910-48> system-view
Имя хоста
[hpe-officeconnect-1910-48] sysname hpe-officeconnect-1910-48
Включаем службу DHCP
[hpe-officeconnect-1910-48] dhcp enable
... DHCP is enabled successfully! ...
Указываем номер группы серверов 0 и IP DHCP-сервера, на который Relay будет перенаправлять запросы DHCP
[hpe-officeconnect-1910-48] dhcp relay server-group 0 ip 192.168.17.186
Включаем DHCP-snooping (чтобы запросы DHCP перенаправлялись к DHCP-серверу, указанному в Relay, иначе запросы пойдут напрямую к DHCP-серверу в сети L2)
[hpe-officeconnect-1910-48] dhcp-snooping
Vlan 1
Входим в настройки Vlan1 (это умолчальный Vlan, поэтому создавать командой его не нужно, в отличие от других Vlan)
[hpe-officeconnect-1910-48] interface Vlan-interface 1
Привяжем IP адрес для Vlan 1
Обязательное условие - привязать IP адрес из подсети, из диапазона которой необходимо выдавать IP адреса с помощью с DHCP Option 82
[hpe-officeconnect-1910-48-Vlan-interface1] ip address 192.168.111.1 255.255.255.0
[hpe-officeconnect-1910-48-Vlan-interface1] quit
Включаем Relay
[hpe-officeconnect-1910-48-Vlan-interface1] dhcp relay information enable
[hpe-officeconnect-1910-48-Vlan-interface1] dhcp select relay
Вводим Vlan1 в группу DHCP-серверов
[hpe-officeconnect-1910-48-Vlan-interface1] dhcp relay server-select 0
Устананавливаем передачу remote-id и circuit-id в формате ASCII (иначе будет передаваться в HEX и надо будет конвертировать на DHCP-сервере)
[hpe-officeconnect-1910-48-Vlan-interface1] dhcp relay information remote-id format-type ascii
[hpe-officeconnect-1910-48-Vlan-interface1] dhcp relay information circuit-id format-type ascii
Устанавливаем формат remote-id и circuit-id
[hpe-officeconnect-1910-48-Vlan-interface1] dhcp relay information format verbose node-identifier sysname
[hpe-officeconnect-1910-48-Vlan-interface1] dhcp relay information remote-id string sysname
[hpe-officeconnect-1910-48-Vlan-interface1] quit
Проверка
DHCP-сервер
Вставляем клиент pc1 в порт 7 коммутатора HP Switch DHCP-Relay
tcpdump -i eth0 -vvv -s 1500 '((port 67 or port 68) and (udp[8:1] = 0x1))'
... 15:47:11.384185 IP (tos 0xe0, ttl 253, id 378, offset 0, flags [none], proto UDP (17), length 405) 192.168.17.7.bootps > centos7-test01.bootps: [udp sum ok] BOOTP/DHCP, Request from cc:2d:e0:39:20:c0 (oui Unknown), length 377, hops 1, xid 0x4d532f86, Flags [Broadcast] (0x8000) Gateway-IP 192.168.111.180 Client-Ethernet-Address cc:2d:e0:39:20:c0 (oui Unknown) Vendor-rfc1048 Extensions Magic Cookie 0x63825363 DHCP-Message Option 53, length 1: Request Server-ID Option 54, length 4: 10.29.24.1 Requested-IP Option 50, length 4: 192.168.111.175 Parameter-Request Option 55, length 8: Subnet-Mask, Classless-Static-Route, Default-Gateway, Static-Route Domain-Name-Server, NTP, Option 138, Vendor-Option Hostname Option 12, length 27: "cless_home_hap-mini-111-212" Client-ID Option 61, length 7: ether cc:2d:e0:39:20:c0 Agent-Information Option 82, length 71: Circuit-ID SubOption 1, length 42: hpe-officeconnect-1910-48 eth 0/1/0/7:0001 Remote-ID SubOption 2, length 25: hpe-officeconnect-1910-48 END Option 255, length 0 ...
watch -n1 tail -n50 /var/log/messages
... Aug 17 22:05:44 centos7-test01 dhcpd: DHCPDISCOVER from cc:2d:e0:39:20:c0 (cless_home_hap-mini-111-212) via 192.168.111.180 Aug 17 22:05:44 centos7-test01 dhcpd: DHCPOFFER on 192.168.111.100 to cc:2d:e0:39:20:c0 (cless_home_hap-mini-111-212) via 192.168.111.180 Aug 17 22:05:44 centos7-test01 dhcpd: DHCPREQUEST for 192.168.111.100 (192.168.17.186) from cc:2d:e0:39:20:c0 (cless_home_hap-mini-111-212) via 192.168.111.180 Aug 17 22:05:44 centos7-test01 dhcpd: DHCPACK on 192.168.111.100 to cc:2d:e0:39:20:c0 (cless_home_hap-mini-111-212) via 192.168.111.180 ...
pc1 получает адрес 192.168.111.100
Вставляем клиент pc2 в порт 9 коммутатора HP Switch DHCP-Relay
watch -n1 tail -n50 /var/log/messages
... Aug 17 22:07:11 centos7-test01 dhcpd: DHCPDISCOVER from cc:2d:e0:39:20:c0 (cless_home_hap-mini-111-212) via 192.168.111.180 Aug 17 22:07:11 centos7-test01 dhcpd: DHCPOFFER on 192.168.111.200 to cc:2d:e0:39:20:c0 (cless_home_hap-mini-111-212) via 192.168.111.180 Aug 17 22:07:11 centos7-test01 dhcpd: DHCPREQUEST for 192.168.111.200 (192.168.17.186) from cc:2d:e0:39:20:c0 (cless_home_hap-mini-111-212) via 192.168.111.180 Aug 17 22:07:11 centos7-test01 dhcpd: DHCPACK on 192.168.111.200 to cc:2d:e0:39:20:c0 (cless_home_hap-mini-111-212) via 192.168.111.180 ...
pc2 получает адрес 192.168.111.200
Vlan 2
Важное условие
DHCP-сервер на Centos 7 192.168.17.186 и HP Switch DHCP-Relay (оба интерфейса с адресами 192.168.111.1 и 192.168.112.1) должны видеть друг друга по L3! Проверить сразу доступность пингами!
Для этого порт, которым HP Switch DHCP-Relay подключен в общую сеть Vlan 2 (в нашем случае Ethernet 1/0/1) должен быть настроен с типом Hybrid и включен в Vlan 1 типа untagged и Vlan 2 типа tagged:
interface Ethernet1/0/1
port link-type hybrid
port hybrid vlan 2 tagged
port hybrid vlan 1 untaggedА также на портах всех промежуточных устройств L2 и L3, через которые проходит коммутация от HP Switch DHCP-Relay до маршрутизатора, ведущего к DHCP-серверу, должен быть настроен Vlan 2. Например, если коммутация проходит через Mikrotik, то на его портах, через которые проходит коммутация, должен быть настроен Vlan 2, а эти порты собраны в бридж
Создадим Vlan 2
[hpe-officeconnect-1910-48] vlan 2
Добавим физический интерфейс в Vlan 2
[hpe-officeconnect-1910-48-vlan2] port Ethernet 1/0/11
Привяжем IP-адрес для Vlan 2
[hpe-officeconnect-1910-48] interface Vlan-interface 2
[hpe-officeconnect-1910-48-Vlan-interface2] ip address 192.168.112.1 255.255.255.0
[hpe-officeconnect-1910-48-Vlan-interface2] quit
Включаем Relay
[hpe-officeconnect-1910-48-Vlan-interface2] dhcp relay information enable
[hpe-officeconnect-1910-48-Vlan-interface2] dhcp select relay
Вводим Vlan1 в группу DHCP-серверов
[hpe-officeconnect-1910-48-Vlan-interface2] dhcp relay server-select 0
Устнанавливаем передачу remote-id и circuit-id в формате ASCII (иначе будет передаваться в HEX и надо будет конвертировать на DHCP-сервере)
[hpe-officeconnect-1910-48-Vlan-interface2] dhcp relay information remote-id format-type ascii
[hpe-officeconnect-1910-48-Vlan-interface2] dhcp relay information circuit-id format-type ascii
Устанавливаем формат remote-id и circuit-id
[hpe-officeconnect-1910-48-Vlan-interface2] dhcp relay information format verbose node-identifier sysname
[hpe-officeconnect-1910-48-Vlan-interface2] dhcp relay information remote-id string sysname
[hpe-officeconnect-1910-48-Vlan-interface2] quit
Проверка
DHCP-сервер
Вставляем клиент pc3 в порт 11 коммутатора HP Switch DHCP-Relay
watch -n1 tail -n50 /var/log/messages
... Aug 17 21:47:29 centos7-test01 dhcpd: DHCPDISCOVER from cc:2d:e0:39:20:c0 via 192.168.112.224 Aug 17 21:47:30 centos7-test01 dhcpd: DHCPOFFER on 192.168.112.100 to cc:2d:e0:39:20:c0 (cless_home_hap-mini-111-212) via 192.168.112.224 Aug 17 21:47:30 centos7-test01 dhcpd: DHCPREQUEST for 192.168.112.100 (192.168.17.186) from cc:2d:e0:39:20:c0 (cless_home_hap-mini-111-212) via 192.168.112.224 Aug 17 21:47:30 centos7-test01 dhcpd: DHCPACK on 192.168.112.100 to cc:2d:e0:39:20:c0 (cless_home_hap-mini-111-212) via 192.168.112.224 ...
pc3 получает адрес 192.168.112.100
