Konstantin Klimchev писал(а):
возможно я не прав, но при dhcp_relay option_82 System ipif и клиентская сеть должна быть в одной сети.
Вы не правы, т.к. стандартный, RFC-шный DHCP Relay специально и задумывался для ситуаций когда DHCP клиент находится в другой подсети нежели DHCP сервер и не сможет "достать" его своими бродкастами ...
comtel-b.ru писал(а):
хм... а у нас через локал релей.
Поясните почему не обязательно и в каком случае стало бы обязательно?
если IP интерфейс свича находится в той же сети что и клиенты - local_relay (проприетарная фича D-Link), во всех остальных случаях - стандартный dhcp_relay
antey86 писал(а):
Решил проблему через DHCP Local Relay Settings, добавив в DHCP/BOOTP Local Relay VID List вланы 100,200,300.
с DHCP/BOOTP Relay Global Settings почему-то не захотел работать.
все это потому что Вы не внимательно смотрели конфиг сервера!
смотрите сами, я Вам давал пример:
Код:
class "10.90.90.10:1" { match if concat(binary-to-ascii(10, 8, ".", packet(24, 4)), ":", binary-to-ascii(10, 8, "", suffix(option agent.circuit-id, 1))) = "10.90.90.10:1"; }
думаете там все просто так написано? отнюдь!
Код:
class "10.90.90.10:1" {
match if
concat( <- конкатенация, т.е. по простому - склейка того что в скобках
binary-to-ascii(10, 8, ".", packet(24, 4)), <- это IP адрес свича
":", <- это разделитель
binary-to-ascii(10, 8, "", suffix(option agent.circuit-id, 1)) <- это номер порта
) = "10.90.90.10:1"; <- это результат конкатенации
}
а Вы что пишите?
Код:
class "1p" {
match if
concat(
binary-to-ascii(10, 8, ".", packet(24, 4)),
":",
binary-to-ascii(10, 8, "", suffix(option agent.circuit-id, 1))
) = "1";
}
цифра 1 - что это? откуда это взялось? где IP адрес? где разделитель? Вы хотели привязку к IP свича и номеру порта - я Вам ее дал, если Вам нужен был просто порт свича, то его проще всего, в цифровом виде, получить так:
Код:
class "1p" {
match if
binary-to-ascii(10, 8, "", suffix(option agent.circuit-id, 1)) = "1";
}
обратите внимание, так Вы его получите в цифре, а не в НЕХ, т.е. будете писать не
Код:
class "10p" { match if suffix(option agent.circuit-id, 1) = A; }
а
Код:
class "10p" { match if binary-to-ascii(10, 8, "", suffix(option agent.circuit-id, 1)) = 10; }
что IMHO удобнее ...