
ISC DHCP Server с релеем и ёжиками
Реализация рабочей схемы DHCP Option 82 с DHCP-Relay на основе ISC DHCP Server’а и Edge-Core ES3528_52M
Откуда пришло и зачем не столь важно, главное суть!
Дано:
- 2 коммуттора Edge-Core ES3528_52M
- сервер с Centos 7
- 2 шлюза в инет для пользователей
Задача:
-
Настроить полноценный DHCP с relay по vlan’ам
Вроде все просто, и не раз описано, но захотелось «заморочатся».
- VLAN2 — 10.0.2.0/24: Сервер с Centos 7 + управляющий влан для коммутаторов.
- VLAN10 — 10.0.10.0/24: подсеть для серверов и т.д.
- VLAN11 — 10.0.11.0/24: пользователи офиса+корпоративный WiFi в инет ходить будут через свой шлюз.
- VLAN12 — 10.0.12.0/24: гостевая сеть WiFi, у которой свой шлюз.
Конфиг ISC DHCP:
ddns-update-style none; authoritative; lease-file-name "/var/lib/dhcpd/dhcpd.leases"; one-lease-per-client true; deny duplicates; # for debug set pvlan = binary-to-ascii(10, 8, "", substring(option agent.circuit-id, 2, 2)); log(info, concat("Client in VLAN: ", pvlan)); # for ident client network class "pvlan10" { match if binary-to-ascii(10, 8, "", substring(option agent.circuit-id, 2, 2)) = "010"; } class "pvlan11" { match if binary-to-ascii(10, 8, "", substring(option agent.circuit-id, 2, 2)) = "011"; } class "pvlan12" { match if binary-to-ascii(10, 8, "", substring(option agent.circuit-id, 2, 2)) = "012"; } shared-network CompanyName { #Internal service network, no dhcp pool subnet 10.0.2.0 netmask 255.255.255.0 { option domain-name-servers 10.0.2.1; option broadcast-address 10.0.2.255; option subnet-mask 255.255.255.0; option routers 10.0.2.1; } #Servers network subnet 10.0.10.0 netmask 255.255.255.0 { option domain-name-servers 10.0.10.1; option broadcast-address 10.0.10.255; option subnet-mask 255.255.255.0; option routers 10.0.10.1; pool { range 10.0.10.2 10.0.10.254; allow member of "pvlan10"; } } #Corporative network subnet 10.0.11.0 netmask 255.255.255.0 { option domain-name-servers 10.0.11.1; option broadcast-address 10.0.11.255; option subnet-mask 255.255.255.0; option routers 10.0.11.1; pool { range 10.0.11.2 10.0.11.254; allow member of "pvlan11"; } } #Guest network subnet 10.0.12.0 netmask 255.255.255.0 { option domain-name-servers 10.0.12.1; option broadcast-address 10.0.12.255; option subnet-mask 255.255.255.0; option routers 10.0.12.1; pool { range 10.0.12.2 10.0.12.254; allow member of "pvlan12"; } } }
В одной из последних прошивок Edge-Core ES3528_52M появилась возможность включить ip dhcp relay с op 82, ее то и будем использовать.
ip dhcp snooping ip dhcp snooping information option ip dhcp snooping information policy keep ip dhcp snooping vlan 10,11,12
На порту в котором у нас сервер с DHCP не забываем:
ip dhcp snooping trust
А вот теперь самое главное
ip dhcp relay server 10.0.2.1 ip dhcp relay information option ip dhcp relay information policy keep
Все!
Теперь достаточно указать на порту пользователя нужный native vlan(он же pvid) и пользователь после переподключения сети — уйдет в заданом направлении(без переподключения ничего работать не будет, сеть то не та в которой настройки прошлый раз получали)