artem
13.09.2013
12472

Настройка DHCP-сервера для выдачи адресов по классу вендора

В одной из статей опубликованных на данном сайте ранее было рассказано о настройке DHCP-сервера для автоконфигурирования телефонов. (Ознакомиться с ней можно здесь). В данной статье попробуем прикрутить к серверу DHCP возможность выдачи пула ip-адресов в зависимости от производителя устройства. Настройку рассмотрим на примере операционной системы CentOS.

Для реализации данного функционала используется опция 60 DHCP-сервера. В синтаксисе DHCP данная апция носит намименование “option vendor-class-identifier”.

Как известно большинство сетевых устройств при обращении к серверу dhcp наряду с MAC-адресами передает и строку характеризующую вендора. Т.е. если вы не совсем уверены как Ваше устройство передает данные о своем производителе, то возможно уточнить его, сделав захват пакетов каким-либо сетевым снифером, например Wireshark’ом.

Рассмотрим настройку DHCP на примере:

option boot-server code 66 = string;
        class “cisco” {
                match if substring (option vendor-class-identifier, 0, 5) = “Cisco”;
        }
        class “yealink” {
            match if
                substring (option vendor-class-identifier, 0, 4) = “A580” or
                substring (option vendor-class-identifier, 0, 5) = “udhcp” or
                substring (option vendor-class-identifier, 0, 10) = “yealink” or
                substring (option vendor-class-identifier, 0, 4) = “00006=”;
       }
subnet 192.168.180.0 netmask 255.255.255.0 {
    option routers 192.168.180.1;
 
#Cisco-Phones
pool {
    range 192.168.180.10 192.168.180.30;
    allow members of “cisco”;
    }

#Yealink-Phones
pool {
    range 192.168.180.31 192.168.180.250;
    allow members of “yealink”;
    }

#Not-grouped-clients
pool {
    range 192.168.180.205 192.168.180.215;
    allow unknown-clients;
   }
}

Вначале определяем классы устройств и указываем строки с указанием типа вендора, которые данные устройства посылают серверу dhcp. Если данные строки совпадают с указанными в определенном классе, то устройство будет занесено в данный класс:

class “cisco” {
                match if substring (option vendor-class-identifier, 0, 5) = “Cisco”;
        }

В данном примере устройство попадает в класс, определенный как “cisco”, если возвращаемая ими строка с нулевой позиции и равная пяти символам равна “Cisco”.

Далее определяем пул адресов для каждого созданного нами класса. И конечно не забываем указать устройства не попадающие в какой-либо из определенных нами классов, например:

pool {
    range 192.168.180.205 192.168.180.215;
    allow unknown-clients;
   }

Также возможно указать не только строку идентификатор вендора, но и по трем начальным байтам MAC-адреса устройства. Но в данном подходе неудобно то, что если используются, например, телефоны фирмы Cisco, то у данных устройств довольно много типов MAC-адресов и если в компании парк телефонов обширен, то можно не учесть все варианты MAC-адресов. В данном случае более корректно использовать vendor-class-identifier.

 
avatar
  Подписаться  
Уведомление о

Остались вопросы?

Я - Кондрашин Игорь, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование

ближайшие курсы

ближайшие Вебинары

ONLINE

Why Choose HUGE?

Unlimited pre-designed elements

Each and every design element is designed for retina ready display on all kind of devices

User friendly interface and design

Each and every design element is designed for retina ready display on all kind of devices

100% editable layered PSD files

Each and every design element is designed for retina ready display on all kind of devices

Created using shape layers

Each and every design element is designed for retina ready display on all kind of devices