Перейти к содержимому
Калькуляторы

Dlink 30XX+DHCP Option 82 для чайников Подробное описание конфигурации des30xx и DHCP

День добрый!

Убив достаточное количество времени, удалось реализовать связку DHCP и des30XX (в моем случае был 3028, так же работает на 3028G, могу предположить что подходит для всего семейства 30ХХ)

Поведаю вам эту страшную историю.

В нашей сети на текущий момент используется оборудование еджкоре (доступ, агрегация, ядро). И все какбэ почти работает. IP-адрес от DHCP с поддержкой Option 82 прилетает. Но как-то иногда. Причины, почему одному и тому же пользователю ип-адрес присваевается через раз пока не выяснены.

Решили взять на тест дес3028. Настраиваем влан

conf vlan default del 1-24

#если порты из 1 влана не удалить в другой они не добавяться. Порты как untag могут быть только в одном влане. Как tag могут одновременно находиться хоть в 4000-х

create vlan vl100 tag 100

#создание влана с именем vl100 и тегом 100

conf vlan vl100 add unt 1-24

conf vlan vl100 add tag 25-28

#добавляем 1-24 порт как антагет и 25-28 порты как тагет

conf vl100 adv en

#включаем влан. до введения этой команды влан создан, но недееспособен.

conf ipif System ipad 192.168.3.251/16

#присваиваем коммутатору ип-адрес и маску.

create iproute default 192.168.0.7

#прописываем шлюз. Впринципе работать абоненты будут и без шлюза. Но если его не прописать - забудьте про пинг, телнет и тем более про веб интерфейс. Придется бегать до коммутатора с ноутбуком и проводом Х_х.

Включаем в цепочку доступ-агрегация-ядро-циска

Подключение к интернету у нас осуществляется посредством протокола PPPoE, т.е внутренний IP-адрес абоненту для этого счастья не нужен. Пробуем - интернет работает.Ура!.

Теперь проверяем присваивается ли IP-адрес.

Настройки коммутатора

enable dhcp_relay

#включаем само dhcp_relay

conf dhcp_relay option82 st enable

#включаем опцию82

conf dhcp_relay add ipif System 172.28.14.10

#указываем адрес релея, те адрес нашего DHCP-сервера

Смотрим лог на DHCP.

DHCPDISCOVER from 00:1b:38:24:dc:11 via 192.168.0.7:network 192.168.3.0/16: no free leases

Очень удивительно, особенно учитывая, что конфиг DHCP выглядит примерно так:

authoritative;
ddns-update-style none;
local-address           172.28.14.10;
option broadcast-address 172.28.14.255;
default-lease-time 3600;
max-lease-time 3660;
log-facility local7;
option ms-classless-static-routes code 249=array of integer 8;
option rfc3442-classless-static-routes code 121=array of integer 8;
subnet 172.28.14.0 netmask 255.255.255.0 {  
}
subnet 172.16.47.128 netmask 255.255.255.192 {
option domain-name-servers 91.142.158.9, 91.142.144.76;
option ms-classless-static-routes 16, 172,16, 172,16,1,61;  
class "Vlan_100Port_1"
{
match if (
binary-to-ascii(10,16,"",substring(option agent.circuit-id, 2, 2))="100"
and binary-to-ascii(10,8,"",suffix(option agent.circuit-id,1))="1");
}
pool 
{range 172.16.47.129;
allow members of "Vlan_100Port_1";}
}
if exists agent.circuit-id
{
log(info, concat("Lease for",
binary-to-ascii(10,16,".",leased-address),
"Switch port:",
binary-to-ascii(10,16,".",option agent.circuit-id),
"Switch vlan:",
binary-to-ascii(10,16,".",option agent.circuit-id)));
}
if exists agent.circuit-id
{
log(info, concat("Port must know",binary-to-ascii(10,8,"",suffix(option agent.circuit-id, 1))));
log(info, concat("Vlan must know",binary-to-ascii(10,16,"",substring(option agent.circuit-id, 2, 2))));
}

 

Т. е подсети 192 вообще нигде не указано O_o. Удаляем на коммутаторе шлюз:

delete iproute default

Теперь коммутатор у нас даже не пингуется. Зато в логе пишет.

DHCPDISCOVER from 00:1b:38:24:dc:11 via 172.16.22.190: network 172.16.22.128/26: no free leases

Поднимаем на отдельной машине DHCP-сервер. Создаем связку - DHCP-dlink-абонент. Все, естественно, в одной подсети - и IP-адрес DHCP и IP-адрес длинка и абонентский пул.

Присваивается. Свободно, быстро и без задержек. Некоторое время чешем репу.

То есть получается, что дело не в конфиге DHCP. И вроде бы как и не в конфиге длинка. По логике что-то случается с пакетом по пути? Ставим снифер. Мирорим 1 (абонентский) и 25 (аплинк) порты на машину, где все эти пакеты и сниферим. И тут можно делать удивленые лица - опции 82 в пакете нет. Все остальные есть, както 12 или 50, а 82 нет. О_О

Смотрим файл dhcpd.leases куда заносяться все выданые ип адреса. Там белым по синему четко написано что такойто ипадрес выдан пользователю с таким-то маком и вот вам его circuit.id.

Совершенно не понимая, как это может происходить, списываемся с ТП Длинка. Те, естественно просят обновить прошивку. Обновляем. После этого резет ребут - все как положенно.

Сниферим пакеты на самом DHCP-сервере. И видим что пакет вообще теперь до DHCP не доходит. И с 25 порта вообще не выходит. Хотя снифер абонентского порта показывает что вот он пакетик-то. Даже опция82 теперь в нем появилась.

Занова прописываем шлюз на коммутаторе

create iproute default 192.168.0.7

Чешем репу. Вспоминаем что есть еще у длинка такая фича как dhcp_local_relay. Хотя нигде в интернетах надобность ее включения вроде как не обсуждалась.

Но тем не менее включаем

enable dhcp_local_relay

Смотрим лог.

Пакет теперь долетает. Но ип-адрес снова пытается присвоиться из подсети коммутатора.

Дописываем на длинке:

conf dhcp_local_relay vlan vl100 st enable

С замерающим дыханием смотрим лог.

И - Ура!

"Тут зрители аплодируют, аплодируют, кончили аплодировать"

Наконец-то свершилось. Ип адрес присваивается. Даже длинку. Даже с поддержкой опции 82. И даже тот, который должен быть.

 

 

Кстати, прикладываю навсякий прошивку, которая должны стоять на длинке

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

И к чему эта эпическая сага? На форуме Dlink'а буквально разжевано все это. Уже больше полугода в сети работает больше сотни 3028, было сконфигурено один раз, после вдумчивого чтения форума(скажу по секрету, там даже думать особо не надо было, все разжевано как для младенцев).

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А когда длинк научится делать просто снупинг, без релея?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А когда длинк научится делать просто снупинг, без релея?

 

Честно говоря не пробовал, ибо не надо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

conf vl100 adv en

это всего навсего включение gvrp анонса данного влана... Что обозначает "влан создан, но недееспособен" ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

это всего навсего включение gvrp анонса данного влана... Что обозначает "влан создан, но недееспособен" ?
уфф. спасибо успокоил ;)

час назад прошил 3016 последней прошивкой, настроил для замены установленного свича и положил на полку.

Так было лень доставать, подключать, проверять. Работают в последних прошивках виланы без этого adv en или нет )))

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А когда длинк научится делать просто снупинг, без релея?

3028 умеет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А когда длинк научится делать просто снупинг, без релея?

он уже это гдето как год умеет, если не больше. читайте форум длинк-а.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У многих наверное еще и прошивка стоит 1.00.15?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Уважаемые, а подскажите в какой прошивке для DES30хx есть dhcp_local_relay? Мне тех.сапп ответил, что и не предвидится на этой линейке (что очень жаль).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

если это 3028 - то во второй ветке. Если 3026 - то вроде нету ни в какой

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А когда длинк научится делать просто снупинг, без релея?

он уже это гдето как год умеет, если не больше. читайте форум длинк-а.

Для не очень новых моделей коммутаторов не было и нет.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

И к чему эта эпическая сага? На форуме Dlink'а буквально разжевано все это. Уже больше полугода в сети работает больше сотни 3028, было сконфигурено один раз, после вдумчивого чтения форума(скажу по секрету, там даже думать особо не надо было, все разжевано как для младенцев).

Коллега, а чем вы помогли окружающим? Человек молодец, поделился проблемой и решением.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А я вот на 3526 столкнулся со стойким размножением dhcp пакетов при включении коммутаторов цепочкой. Шаманство с настройками local relay не помогло. В итоге плюнул, поставил кошку 3550, и сделал ip unnumbered. Там правда тоже оказались свои грабли, но вроде решаемые.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Подскажите пожалуйста, а каким образом выдается default gateway в такой связке?

Из описания следует, что глобально прописывается в настройках шлюза DHCP ( dhcp.router=x.x.x.x ), где так же указано, что этот параметр можно переопределить в каждом из шлюзов. Но ведь не переопределяется.

Что не так?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

subnet N.N.N.N X.X.X.X {

option routers a.a.a.a;

}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

subnet N.N.N.N X.X.X.X {

option routers a.a.a.a;

}

Я про связку скриптового шлюза и шлюза доступа типа dlink.

 

Похоже разобрался - BGDHCP не подхватывает свои настройки из параметров в билинге, пока не удалил и dhcp.data и не перегрузил его.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А как узнать поддерживает ли DHCP сервер эту Option 82?

У меня стоит ISC DHCP Server 4.1.1-P1 - по манам в упор не вижу ничего по этой теме.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А как узнать поддерживает ли DHCP сервер эту Option 82?

У меня стоит ISC DHCP Server 4.1.1-P1 - по манам в упор не вижу ничего по этой теме.

Поддерживает

 

if exists agent.circuit-id

{

log ( info, concat( " Lease for ",binary-to-ascii (10, 8, ".", leased-address

" Swith port: ",binary-to-ascii (10, 8, ".", option agent.circuit-id),

" Switch MAC: ",binary-to-ascii (16, 8, ":", suffix ( option agent.remote-id,

" Switch IP: ",binary-to-ascii(10, 8, ".", packet(24, 4)),

" VLAN: ",binary-to-ascii (10, 16, "", substring( option agent.circuit-id, 2,

" MAC on the port: ",binary-to-ascii (16, 8, ":", substring(hardware, 1, 7)),

" Port report: ",binary-to-ascii (10, 8, ",", suffix( option agent.circuit-id

}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А как узнать поддерживает ли DHCP сервер эту Option 82?

У меня стоит ISC DHCP Server 4.1.1-P1 - по манам в упор не вижу ничего по этой теме.

Поддерживает

 

if exists agent.circuit-id

{

log ( info, concat( " Lease for ",binary-to-ascii (10, 8, ".", leased-address

" Swith port: ",binary-to-ascii (10, 8, ".", option agent.circuit-id),

" Switch MAC: ",binary-to-ascii (16, 8, ":", suffix ( option agent.remote-id,

" Switch IP: ",binary-to-ascii(10, 8, ".", packet(24, 4)),

" VLAN: ",binary-to-ascii (10, 16, "", substring( option agent.circuit-id, 2,

" MAC on the port: ",binary-to-ascii (16, 8, ":", substring(hardware, 1, 7)),

" Port report: ",binary-to-ascii (10, 8, ",", suffix( option agent.circuit-id

}

Ты видимо выделением крайние правые столбцы не зацепил, перепость пожалуйста.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А лучше расскажите или дайте линк на толковый манул как правильно писать вот эти вещи binary-to-ascii (10, 8, ".", leased-address..... - что, как и зачем в них пишется, читаю манул по 3028 - ну там побайтовые структуры нарисованы, а как увязать это с анализом для логов и отдельных фишек 82 опции в isc dhcp - не понятно.

Нашелся man dhcp-eval(5), вопрос, пожалуй можно снять.

Изменено пользователем DukeNukem3D

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Топик-стартеру:

Функция dhcp local relay создана для изолирования одного или нескольких vlan от основного dhcp relay. Например если у нас на всех портах есть свой vlan 100, в котором сидят клиенты, а на одном порту сидит vlan 101, который в аренде у третьей фирмы и у них там свой dhcp сервер. Если ничего не трогать, то свич перехватит dhcp запросы из 101 vlan, а через local relay можно указать какой vlan не трогать и просто передавать запросы дальше.

Изменено пользователем DukeNukem3D

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.