)
Настройка DHCP Relay Option 82 на коммутаторах QTECH QSW-2900
Задача: настроить на коммутаторе QTECH QSW-2900 dhcp relay с включением в него option 82. На основании значения option 82 выдавать абонентам ip адреса.
Схема :
Оборудование:
- DHCP-сервер 192.168.200.11/24
- Коммутатор L2 ( QTECH QSW-2900 ) в роли агента DHCP Relay
- IP 10.14.0.253/25
- Vlan: 900 - DHCP – клиент, подсоединённые к 1-му порту коммутатора
Настройка коммутатора QTECH QSW-2900:
Создадим vlan 900 назначим его на порт 1/1, как тегированный, а на абонентский порт 0/1 как акцесный. Уберем vlan 1 с этих портов.
|
QTECH_2900> en QTECH_2900# conf t QTECH_2900(config)# vlan 900 QTECH_2900(config-if-vlan)# exit QTECH_2900(config)# interface ethernet 1/1 QTECH_2900(config-if-ethernet-1/1)# switchport mode trunk QTECH_2900(config-if-ethernet-1/1)# switchport trunk allowed vlan 900 QTECH_2900(config-if-ethernet-1/1)# switchport trunk native vlan 900 QTECH_2900(config-if-ethernet-1/1)# exit QTECH_2900(config)# interface ethernet 0/1 QTECH_2900(config-if-ethernet-0/1)# switchport mode access QTECH_2900(config-if-ethernet-0/1)# switchport access vlan 900 QTECH_2900(config-if-ethernet-0/1)# exit QTECH_2900(config)# vlan 1 QTECH(config-if-vlan)# no switchport ethernet 0/1 ethernet 1/1 QTECH(config-if-vlan)# exit |
Создаем ip интерфейс 10.14.0.253/25, пропишем шлюз по умолчанию 10.14.0.254
|
QTECH_2900(config)# ipaddress vlan 900 QTECH_2900(config)# ipaddress 10.14.0.253 255.255.255.128 10.14.0.254 QTECH_2900(config)# no ipaddress vlan 1 |
Выставим в ручную скорость на порту 1/1
|
QTECH_2900(config)# interface range ethernet 1/1 QTECH_2900(config-if-ethernet-1/1)# speed 1000 QTECH_2900(config-if-ethernet-1/1)# exit |
Теперь переходим к настройке dhcp-relay и option 82 на qsw-2900
Включаем dhcp-relay
|
QTECH_2900(config)# dhcp-relay |
Включаем и настраиваем option 82
|
QTECH_2900(config)# dhcp option82 QTECH_2900(config)# dhcp option82 format normal QTECH_2900(config)# dhcp option82 remote-id string qtech QTECH_2900(config)# dhcp max-hops 16 |
Немного поясню:
dhcp option82 – включили option 82
dhcp option82 format normal – задали формат, возможны 2 варианта verbose и normal
dhcp option82 remote-id string qtech – указали идентификатор remote-id qtech, является строкой, и может принимать любые строковые значения.
dhcp max-hops 16 – установили максимальное число хопов до dhcp сервера.
Но на этом еще не все, продолжим.
Укажем ip-адрес основного dhcp сервера и резервного, создадим ip интерфейс для dhcp релеинга, без этого работать не будет.
|
QTECH_2900(config)# vlan 900 QTECH_2900(config-if-vlan)# dhcpserver ip 192.168.200.11 QTECH_2900(config-if-vlan)# dhcpserver backupip 192.168.200.10 QTECH_2900(config-if-vlan)# interface ip 10.14.0.253 255.255.255.128 10.14.0.254 QTECH_2900(config-if-vlan)# exit |
Подключим к 1 порту абонента и проверим, приходит ли запрос.
[root@dhcp etc ]# tshark -V net «10.14.0.128/25″
Capturing on bge0
Frame 1 (362 bytes on wire, 362 bytes captured)
…..
Option: (t=82,l=17) Agent Information Option
Option: (82) Agent Information Option
Length: 17
Value: 0106000403840002020700057174656368
Agent Circuit ID: 000403840001
Agent Remote ID: 00057174656368
End Option
Padding
Все нормально, приступаем к настройке dhcp, в качестве dhcp сервера был выбран ISC DHCP
В следующем примере будут соответствовать все запросы пришедшие из vlan 900:
class "vlan900"
{
match if ( binary-to-ascii (10, 16, "", substring( option agent.circuit-id, 2, 2))="900");
}
Пул для class "vlan900":
pool {
range 10.14.0.136;
allow members of "vlan900";
}
В следующем примере будет проверяться соответствие номера vlan и номера порта коммутатора:
class "vlan900:p1" {
match if (
binary-to-ascii (10, 16, «», substring( option agent.circuit-id, 2, 2))="900"
and binary-to-ascii(10, 8, ",", suffix( option agent.circuit-id, 1)) = "1"
);
}
Пул для class "vlan900:p1":
pool {
range 10.14.0.136;
allow members of "vlan900:p1";
}
Пример, в котором проверяется remote-id, который мы указали (qtech), номер vlan и номер порта:
class "vlan900:p1:qtech" {
match if (
binary-to-ascii (10, 16, "", substring( option agent.circuit-id, 2, 2))="900"
and binary-to-ascii(10, 8, ",", suffix( option agent.circuit-id, 1)) = "1"
and substring(option agent.remote-id, 2, 15) = "qtech"
);
}
Пул для class "vlan900:p1:qtech":
pool {
range 10.14.0.136;
allow members of "vlan900:p1:qtech";
}
В заключении, рассмотрим пример, в котором проверяются ip-адрес коммутатора, remote-id, номер vlan и номер порта:
class "10.14.0.253:vlan900:p1:qtech" {
match if (
binary-to-ascii (10, 16, "", substring( option agent.circuit-id, 2, 2))="900"
and binary-to-ascii(10, 8, ",", suffix( option agent.circuit-id, 1)) = "1"
and substring(option agent.remote-id, 2, 15) = "qtech"
and binary-to-ascii(10, 8, ".", packet(24, 4)) = "10.14.0.253"
);
}
Пул для class "10.14.0.253:vlan900:p1:qtech":
pool {
range 10.14.0.136;
allow members of "10.14.0.253:vlan900:p1:qtech";
}
Вот собственно и все.

