ISC DHCP Server с релеем и ёжиками

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) и  пользователь после переподключения сети — уйдет в заданом направлении(без переподключения ничего работать не будет, сеть то не та в которой настройки прошлый раз получали)