Настройка DHCP Relay Option 82 на коммутаторах D-Link DES-3526, DES-3028, DES-3828

Опубликовано admin в Вс, 15/08/2010 - 20:12

Краткие теоретические сведения:

Коммутатор может быть сконфигурирован как агент DHCP Relay. В этом случае расширяются возможности применения DHCP-серверов в сети, поскольку уже не нужно использовать несколько DHCP-серверов, по одному в каждой подсети. Коммутатор просто перенаправляет DHCP-запрос от клиента в локальной подсети на удалённый DHCP-сервер.

Option 82 используется для передачи дополнительной информации в DHCP-запросе. Причём эту информацию добавляет сам коммутатор. Эта информация может быть использована для применения политик для увеличения уровня безопасности и эффективности.
Для простоты эти пакеты содержат информацию BOOTP, т.е. DHCP-запросы обрабатываются коммутатором также как BOOTP-запросы.
Подробное описание стандарта RFC 3046 (DHCP Relay Agent Information Option) можно найти здесь http://www.faqs.org/rfcs/rfc3046.html

Оборудование:

  1. DHCP-сервер 172.20.1.2/24
  2. Маршрутизатор или коммутатор L3, выступающий в роли шлюза для 3-х подсетей:
    - 172.20.1.1/24 – подсеть с серверами
    - 192.168.10.1/24 – подсеть для управления коммутаторами
    - 10.0.0.0/24 – подсеть абонентов
  3. Коммутатор L2 (DES-3526/DES-3550/DES-3028/DES-3052/DES-3828) в роли агента DHCP Relay
    IP 192.168.10.5/24
    MAC-адрес: 00-11-22-33-44-55
  4. 2 абонента в качестве DHCP – клиентов, подсоединённые к портам 1 и 2 коммутатора L2 соответственно

Схема сети:

Задачи:

  1. Настроить на коммутаторе DHCP option 82
  2. Настроить DHCP-сервер

Итак, приступим:

Настройки коммутатора на примере DES-3526
Удаляем default vlan с портов

DES-3526:admin#config vlan default delete 1-26

Cоздаем абонентский vlan vlan2002

DES-3526:admin#create vlan vlan2002 tag 2002
DES-3526:admin#config vlan vlanid 2002 add untagged 1-24
DES-3526:admin#config vlan vlanid 2002 add tagged 25-26

Создаем управляющий

DES-3526:admin# create vlan vlan2002 tag 2001
DES-3526:admin# config vlan vlanid 2001 add tagged 25-26

Создаем интерфейс

DES-3526:admin#config ipif System ipaddress 192.168.10.5/24 vlan vlan2002 st en

Прописываем маршрут по умолчанию

DES-3526:admin#create iproute default 192.168.10.1

Теперь настроим DHCP Relay

Включаем DHCP Relay

enable dhcp_relay

Указываем максимальное число хопов

config dhcp_relay hops 16 time 0

Настраиваем option 82

config dhcp_relay option_82 state enable
config dhcp_relay option_82 check enable
config dhcp_relay option_82 policy replace
config dhcp_relay option_82 remote_id default

Указываем IP адрес dhcp-сервера

config dhcp_relay add ipif System 172.20.1.2

С коммутатором закончили, теперь приступаем к настройке DHCP-сервера:

В качестве DHCPD будем использовать ISC DHCPD, ниже приведена базовая конфигурация

#Настраиваем логирование

if exists agent.remote-id and exists agent.circuit-id {

if binary-to-ascii(16, 8, «», substring(option agent.remote-id, 2, 1)) = «0″ {
set switch-mac = concat(«0″, binary-to-ascii(16, 8, «», substring(option agent.remote-id, 2, 1)), «:», binary-to-ascii(16, 8, «:», substring(option agent.remote-id, 3, 6)));
} else {
set switch-mac = binary-to-ascii(16, 8, «:», substring(option agent.remote-id, 2, 6));
}
set switch-addr = binary-to-ascii(10, 8, «.», packet(24, 4));
set switch-port = binary-to-ascii(10, 8, «», substring(option agent.circuit-id, 5, 1));
set switch-port-vlan = binary-to-ascii(10, 16, «», substring(option agent.circuit-id, 2, 2));

log (info, concat(«- Lease: «, binary-to-ascii(10, 8, «.», leased-address), » via IP: «, switch-addr, » (MAC: «, switch-mac, «) on port: «, switch-port, » in VLAN: «, switch-port-vlan));

}

Создаем класс и пул:

Для 1-го абонента будет выдаваться ip 10.0.0.10

class "192.168.10.5:p1" {
 match if binary-to-ascii (10, 8, "", suffix( option agent.circuit-id, 1)) = "1"
 and binary-to-ascii(10, 8, ".", packet(24, 4)) = "192.168.10.5";
}
 
pool {
 range 10.0.0.10;
 allow members of "192.168.10.5:p1";
 
}

Для 2-го абонента будет выдаваться ip 10.0.0.17

class "192.168.10.5:p2" {
 match if binary-to-ascii (10, 8, "", suffix( option agent.circuit-id, 1)) = "2"
 and binary-to-ascii(10, 8, ".", packet(24, 4)) = "192.168.10.5";
}
 
pool {
 range 10.0.0.17;
 allow members of "192.168.10.5:p2";
}

Вот и все, детальную настройку ISC DHCPD я опишу в следующей статье.



Статья взята с http://biparasite.ru (_http://biparasite.ru/?p=130)