Сервер DHCP. опция 66

Обсуждение ПО и его настройки
abdula
Сообщения: 5
Зарегистрирован: 06 сен 2017, 12:19

Здравствуйте
Есть RB951G-2HnD с routeros версии 6.40.3
Не могу заставить его раздавать опцию 66
Когда устанавливаю опции "next-server" и "boot file name" в настройках DHCP все работает отлично
Но когда передаю такие же параметры через опции DHCP, клиенты получають только 67 опцию (имя файла). а адрес сервера передаеться IP самого микротика.
Как правильно настроить чтоб получали клиенты опци 66 через DHCP опции.
Микротик сбивал на дефолт настраивал с нуля только DHCPб пробовал на Cloud образе на вирт машине. Всюда безрезультатно.

Для наглядности рабочий конфиг:

Код: Выделить всё

/ip dhcp-server option
add code=66 name=option66 value="'192.168.1.111'"
add code=67 name=option67 value="s'pxelinux.0'"
/ip pool
add name=pool1 ranges=192.168.1.50-192.168.1.100
/ip dhcp-server
add address-pool=pool1 disabled=no interface=ether1 name=server1
/ip address
add address=192.168.1.1 interface=ether1 network=192.168.1.0
/ip dhcp-client
add dhcp-options=hostname,clientid disabled=no interface=ether1
/ip dhcp-server network
add address=192.168.1.0/24 boot-file-name=pxelinux.0 dns-server=192.168.1.1 \
    gateway=192.168.1.1 netmask=24 next-server=192.168.1.111


Конфиг через опции DHCP (который не работает)

Код: Выделить всё

/ip dhcp-server option
add code=66 name=option66 value="'192.168.1.111'"
add code=67 name=option67 value="s'pxelinux.0'"
/ip pool
add name=pool1 ranges=192.168.1.50-192.168.1.100
/ip dhcp-server
add address-pool=pool1 disabled=no interface=ether1 name=server1
/ip address
add address=192.168.1.1 interface=ether1 network=192.168.1.0
/ip dhcp-client
add dhcp-options=hostname,clientid disabled=no interface=ether1
/ip dhcp-server network
add address=192.168.1.0/24 dhcp-option=option66,option67 dns-server=192.168.1.1 gateway=192.168.1.1 netmask=24


Подстажите в чем ошибка моя. Спасибо.


Аватара пользователя
Vlad-2
Модератор
Сообщения: 2531
Зарегистрирован: 08 апр 2016, 19:19
Откуда: Петропавловск-Камчатский (п-ов Камчатка)
Контактная информация:

не знаю, помогу или нет Вам, даже толком сказать не могу,но такое было!
короче Вам надо сжать все передаваемые параметры в одну сущность, и уже
эту сущность передавать(вызывать) в настройках DHCP, ибо по отдельности параметры затираются!?.

Код: Выделить всё

/ip dhcp-server option sets
add name=routes-via-dhcp options=classless-routes

(тут я общую переменную и подсовываю(вызываю) в DHCP

у Вас будет типа так:

Код: Выделить всё

/ip dhcp-server option sets
add name=data-via-dhcp options=name=option66,name=option67

(написал и показал логику, в синтаксисе не уверен)

Попробуйте, мож в этом дело.



На работе(ах): 2xCCR1016-12G, RB3011UiAS и hAP lite (RB941)
Дома: CCR1016-12G, RBcAP2n (standalone), RB wAP LTE kit
Для тестов(под рукой): RB3011UiAS, hAP mini (RB931) и что-то ещё по мелочи
MTCNA
MTCRE
abdula
Сообщения: 5
Зарегистрирован: 06 сен 2017, 12:19

Имеете ввиду опции передавать через Options Set?
Если да, то без измений. Такой же результат.


Аватара пользователя
Vlad-2
Модератор
Сообщения: 2531
Зарегистрирован: 08 апр 2016, 19:19
Откуда: Петропавловск-Камчатский (п-ов Камчатка)
Контактная информация:

abdula писал(а):Имеете ввиду опции передавать через Options Set?
Если да, то без измений. Такой же результат.

Да-да-да, Вы удачно и кратко сформулировали. Поздним вечером, после работы
не так хорошо получается иногда сказать. :-)

Чтож, у меня была проблема в этом (в том числе), когда вплотную на одном DHCP
настраивал отдачу маршрутов, поэтому и решил с Вами поделиться!
Ну а так, надо идти в логирование, включать дебаг для DHCP и смотреть
что передаётся и что в ответ получаете. Может не такой синтаксис, и так далее...
в своё время я так ошибку и нашёл.

P.S.
А менять порядок опций не пробовали, ну так, чисто ради "for fun".
Может порядок важен (в рамках именно этих опций?)

P.P.S. (нашёл в гугле один FAQ, ну а вдруг), цитирую:
Если версия прошивки от 6.0 и до 6.7 включительно, то value нужно указывать в одинарных кавычках '192.168.1.2'
Если версия прошивки 6.8 и выше то value указывается следующим образом s'192.168.1.2'



На работе(ах): 2xCCR1016-12G, RB3011UiAS и hAP lite (RB941)
Дома: CCR1016-12G, RBcAP2n (standalone), RB wAP LTE kit
Для тестов(под рукой): RB3011UiAS, hAP mini (RB931) и что-то ещё по мелочи
MTCNA
MTCRE
abdula
Сообщения: 5
Зарегистрирован: 06 сен 2017, 12:19

в логах микротика отсылаються опции в hex-е.
порядок опций пробовал.
Синтаксис разный пробовал. и 'parameter' и s'parameter' и по соблюдениям RFC.

Код: Выделить всё

sep/05 01:00:56 dhcp,debug,packet server1 received request with id 4173076554 from 0.0.0.0 
sep/05 01:00:56 dhcp,debug,packet     secs = 14
sep/05 01:00:56 dhcp,debug,packet     ciaddr = 0.0.0.0
sep/05 01:00:56 dhcp,debug,packet     chaddr = 08:00:27:FC:EF:6A
sep/05 01:00:56 dhcp,debug,packet     Msg-Type = request
sep/05 01:00:56 dhcp,debug,packet     Max-DHCP-Message-Size = 1472
sep/05 01:00:56 dhcp,debug,packet     Unknown(93) = 00-00
sep/05 01:00:56 dhcp,debug,packet     Unknown(94) = 01-02-01
sep/05 01:00:56 dhcp,debug,packet     Class-Id = "PXEClient:Arch:00000:UNDI:002001"
sep/05 01:00:56 dhcp,debug,packet     Unknown(77) = 69-50-58-45
sep/05 01:00:56 dhcp,debug,packet     Parameter-List = Subnet-Mask,Router,Domain-Server,Unknown(7),Host-Name,Domain-Name,Unknown(17),Vendor-Specific,Class-Id,Unknown(66),Unk
nown(67),Unknown(128),Unknown(129),Unknown(130),Unknown(131),Unknown(132),Unknown(133),Unknown(134),Unknown(135),Unkn
sep/05 01:00:56 dhcp,debug,packet own(175),Unknown(203)
sep/05 01:00:56 dhcp,debug,packet     Unknown(175) = B1-05-01-80-86-10-0E-21-01-01-10-01-02-27-01-01-EB-03-01-00-00-17-01-01-15-01-01-13-01-01
sep/05 01:00:56 dhcp,debug,packet     Client-Id = 01-08-00-27-FC-EF-6A
sep/05 01:00:56 dhcp,debug,packet     Unknown(97) = 00-87-37-4F-9B-9E-40-4C-DA-A6-FC-38-F9-39-48-46-A1
sep/05 01:00:56 dhcp,debug,packet     Server-Id = 192.168.1.1
sep/05 01:00:56 dhcp,debug,packet     Address-Request = 192.168.1.29
sep/05 01:00:56 dhcp,info server1 assigned 192.168.1.29 to 08:00:27:FC:EF:6A
sep/05 01:00:56 dhcp,debug,packet server1 sending ack with id 4173076554 to 192.168.1.29
sep/05 01:00:56 dhcp,debug,packet     ciaddr = 0.0.0.0
sep/05 01:00:56 dhcp,debug,packet     yiaddr = 192.168.1.29
sep/05 01:00:56 dhcp,debug,packet     siaddr = 192.168.1.1
sep/05 01:00:56 dhcp,debug,packet     chaddr = 08:00:27:FC:EF:6A
sep/05 01:00:56 dhcp,debug,packet     Msg-Type = ack
sep/05 01:00:56 dhcp,debug,packet     Server-Id = 192.168.1.1
sep/05 01:00:56 dhcp,debug,packet     Address-Time = 600
sep/05 01:00:56 dhcp,debug,packet     Subnet-Mask = 255.255.255.0
sep/05 01:00:56 dhcp,debug,packet     Router = 192.168.1.1
sep/05 01:00:56 dhcp,debug,packet     Domain-Server = 192.168.1.240
sep/05 01:00:56 dhcp,debug,packet     Unknown(66) = 0A-0A-0D-F5
sep/05 01:00:56 dhcp,debug,packet     Unknown(67) = 70-78-65-6C-69-6E-75-78-2E-30


Опции отсылаються но смущает что в логах они Unknown

Лог с клиента на виндовсе:

Код: Выделить всё

sep/05 01:05:07 dhcp,debug,packet     Client-Id = 01-F0-03-8C-01-61-73 
sep/05 01:05:07 dhcp,debug,packet     Host-Name = "ADM-LT-03"
sep/05 01:05:07 dhcp,debug,packet     Client-FQDN = 00-00-00-41-44-4D
sep/05 01:05:07 dhcp,debug,packet     Class-Id = "MSFT 5.0"
sep/05 01:05:07 dhcp,debug,packet     Parameter-List = Subnet-Mask,Router,Domain-Server,Domain-Name,Router-Discovery,Static-Route,Vendor-Specific,NETBIOS-Name-Server,NETBIOS
-Node-Type,NETBIOS-Scope,Classless-Route,MS-Classless-Route,Auto-Proxy-Config
sep/05 01:05:07 dhcp,debug,packet server1 sending ack with id 138572343 to 192.168.1.62
sep/05 01:05:07 dhcp,debug,packet     ciaddr = 192.168.1.62
sep/05 01:05:07 dhcp,debug,packet     yiaddr = 192.168.1.62
sep/05 01:05:07 dhcp,debug,packet     siaddr = 192.168.1.1
sep/05 01:05:07 dhcp,debug,packet     chaddr = F0:03:8C:01:61:73
sep/05 01:05:07 dhcp,debug,packet     Msg-Type = ack
sep/05 01:05:07 dhcp,debug,packet     Server-Id = 192.168.1.1
sep/05 01:05:07 dhcp,debug,packet     Address-Time = 600
sep/05 01:05:07 dhcp,debug,packet     Subnet-Mask = 255.255.255.0
sep/05 01:05:07 dhcp,debug,packet     Router = 192.168.1.1
sep/05 01:05:07 dhcp,debug,packet     Domain-Server = 192.168.1.240


carassin
Сообщения: 49
Зарегистрирован: 24 сен 2013, 16:24

у меня на прошивке 6.39.2 mhdd грузится по сетке с такими параметрами (вот прям ток что затестил :-): ) :

/ip dhcp-server network
add address=192.168.222.0/28 comment="default configuration" dhcp-option-set=pxes dns-server=192.168.222.1 gateway=\
192.168.222.1 netmask=28

/ip dhcp-server option ; кавычки одинарные
add code=66 name=option66 value='192.168.222.1'
add code=67 name=option67 value='tftpboot/pxelinux.0'

/ip dhcp-server option sets
add name=pxes options=option66,option67


carassin
Сообщения: 49
Зарегистрирован: 24 сен 2013, 16:24

carassin писал(а):у меня на прошивке 6.39.2 mhdd грузится по сетке с такими параметрами


блин, похоже что я обманул всех, у меня до этого работало без options (с использованием next-server) и такое ощущение что что-то там закешировалось и даже указание заведомо неправильного ip (например add code=66 name=option66 value='192.168.222.2') положения не меняет - комп всё равно грузится :nez-nayu:

кстати говоря я уже не в первый раз замечаю этот баг, как-то раз было нужно расширить сеть, ну и соответственно пул дхцп - расширил, а адреса по-прежнему выдавались из старого/уменьшенного пула. ничего умнее(или тупее) не придумал как тупо сбросить в дефолт, ибо ни перезагрузка, ни вкл/выкл дхцп не помогало...


abdula
Сообщения: 5
Зарегистрирован: 06 сен 2017, 12:19

KARaS'b писал(а):http://www.hackerror.ru/2015/10/66-dhcp-option-66-tftp.html?m=1

Пробовал так. Не работает. Получаю все равно IP роутера, вместо ip сервера.

Может есть у кого-то рабочий конфиг с 66 опцией рабочей, чтоб залить и проверить работу


carassin
Сообщения: 49
Зарегистрирован: 24 сен 2013, 16:24

вот нашёл на просторах, правда это не про микротик...

Если вы не укажите адрес «next-server», то поле данных «siaddr» возвращается клиенту установленным на ноль, где потом оно, по умолчанию, будет с таким же IP-адресом, как и у DHCP сервера (который, очень часто, может быть и IP-адресом TFTP сервера). Клиент PXE использует 'siaddr' поле, чтобы определить IP-адрес сервера TFTP, таким образом PXE загрузка остановится в точке поиска сервера TFTP.


то есть, если принять это за правду - получается что клиенты pxe (может конечно не все) используют поле siaddr и игнорируют option 66, и даже если не указан next-server то поле siaddr всё равно будет заполнено ip-адресом dhcp-сервера...

в принципе это может быть объяснением...


Ответить