Здравствуйте, столкнулся с такой проблемой, есть freebsd c isc-dhcp 3.1.3.
клиент подключен в d-link des-3526(в примере адрес 10.250.100.98) во второй порт с такой настройкой:
enable dhcp_relay
config dhcp_relay hops 4 time 0
config dhcp_relay option_82 state enable
config dhcp_relay option_82 check disable
config dhcp_relay option_82 policy replace
config dhcp_relay option_82 remote_id default
config dhcp_relay option_60 state disable
config dhcp_relay option_60 default mode drop
config dhcp_relay option_61 state disable
config dhcp_relay option_61 default drop
config dhcp_relay add ipif System 192.168.0.254Настройка dhcpd.conf:
subnet 192.168.0.0 netmask 255.255.255.0 {
option routers 192.168.0.253;
class "port2"
{
match if (option agent.circuit-id ="0:04:01:f4:0:02") and (binary-to-ascii (16, 8, ":", suffix ( option agent.remote-id, 6)) = "0:06:0:13:46:99:2d:fd");
}
pool {
range 192.168.0.249;
allow members of "port2";
}
}Адрес не выдается.
dhcpdump показывает:
TIME: 2011-03-05 08:42:26.326
IP: 10.250.100.98 (00:14:f6:8a:ac:db) > 192.168.0.254 (00:11:11:88:78:c9)
OP: 1 (BOOTPREQUEST)
HTYPE: 1 (Ethernet)
HLEN: 6
HOPS: 1
XID: 620a840d
SECS: 2816
FLAGS: 0
CIADDR: 0.0.0.0
YIADDR: 0.0.0.0
SIADDR: 0.0.0.0
GIADDR: 10.250.100.98
CHADDR: 00:26:9e:59:39:e9:00:00:00:00:00:00:00:00:00:00
SNAME: .
FNAME: .
OPTION: 53 ( 1) DHCP message type 1 (DHCPDISCOVER)
OPTION: 116 ( 1) DHCP Autoconfiguration 01 .
OPTION: 61 ( 7) Client-identifier 01:00:26:9e:59:39:e9
OPTION: 12 ( 4) Host name cr1m
OPTION: 60 ( 8) Vendor class identifier MSFT 5.0
OPTION: 55 ( 11) Parameter Request List 1 (Subnet mask)
15 (Domainname)
3 (Routers)
6 (DNS server)
44 (NetBIOS name server)
46 (NetBIOS node type)
47 (NetBIOS scope)
31 (Perform router discovery)
33 (Static route)
249 (MSFT - Classless route)
43 (Vendor specific info)OPTION: 82 ( 18) Relay Agent Information
Circuit-ID 00:04:01:f4:00:02 <unknown-0> 02:08 Remote-ID 00:06:00:13:46:99:2d:fdМожет подскажите что не так делаю , думаю Circuit-ID и Remote-ID в dhcpd.conf не верны?
Если настраиваю без option 82, то на мак-адрес dhcp ip выдает нормально.
Если поймать tshark'ом dhcp-request, который приходит от коммутатора
des-3526, смотрю поле, относящееся к option82:
Option: (t=82,l=18) Agent Information Option
Option: (82) Agent Information Option
Length: 18
Value: 0106000401F4000202080006001346992DFD
Agent Circuit ID: 000401F40002
Agent Remote ID: 0006001346992DFD
End Optionвидно, что значение Value: 0106000401F4000202080006001346992DFD
складывется из Agent Circuit ID: 000401F40002 и Agent Remote ID:
0006001346992DFD, но между ними добавляет 2 значения 0208, на которые и
ругается сервер. Непонятно что это за значение и как от него избавиться или под него подстроить dhcpd.conf
пример настройки
http://team.pc-club.ru/?page_id=91в моей сети работает успешно.
> пример настройки
> http://team.pc-club.ru/?page_id=91
> в моей сети работает успешно.странно, все сделал как в примере, запрос до сервера доходит, но не выдается адрес, по-старому пишет:
---------------------------------------------------------------------------TIME: 2011-03-09 16:34:47.654
IP: 10.250.100.98 (00:14:f6:8a:ac:db) > 192.168.0.254 (00:11:11:88:78:c9)
OP: 1 (BOOTPREQUEST)
HTYPE: 1 (Ethernet)
HLEN: 6
HOPS: 1
XID: a32d1312
SECS: 6912
FLAGS: 7f80
CIADDR: 0.0.0.0
YIADDR: 0.0.0.0
SIADDR: 0.0.0.0
GIADDR: 10.250.100.98
CHADDR: 00:11:5b:29:50:f3:00:00:00:00:00:00:00:00:00:00
SNAME: .
FNAME: .
OPTION: 53 ( 1) DHCP message type 1 (DHCPDISCOVER)
OPTION: 116 ( 1) DHCP Autoconfiguration 01 .
OPTION: 61 ( 7) Client-identifier 01:00:11:5b:29:50:f3
OPTION: 12 ( 8) Host name BOOK-WIN
OPTION: 60 ( 8) Vendor class identifier MSFT 5.0
OPTION: 55 ( 11) Parameter Request List 1 (Subnet mask)
15 (Domainname)
3 (Routers)
6 (DNS server)
44 (NetBIOS name server)
46 (NetBIOS node type)
47 (NetBIOS scope)
31 (Perform router discovery)
33 (Static route)
249 (MSFT - Classless route)
43 (Vendor specific info)OPTION: 82 ( 18) Relay Agent Information
Circuit-ID 00:04:01:f4:00:02 <unknown-0> 02:08 Remote-ID 00:06:00:13:46:99:2d:fd
---------------------------------------------------------------------------Настройка такая:
class "avb_test2"
{
match if (binary-to-ascii (16,8, "", suffix ( option agent.circuit-id,1 )) = "2") and (binary-to-ascii (16, 8, ":", substring ( option agent.remote-id,2,6)) = "0:13:46:99:2d:fd");
}
pool {
range 192.168.0.48;
allow members of "avb_test2";
в dhcp.log пишет:Mar 9 16:51:48 dhcp dhcpd: DHCPDISCOVER from 00:11:5b:29:50:f3 via 10.250.100.98: network 10.250.100/24: no free leases
т.е. как будто пытается выдать адрес из диапазона 10.250.100/24
у вас коммутатор, клиенты и dhcpd находится в одной сети или клиенты обращаются к dhcpd через какой-то L3?если в одной сети, то коммутаторы должны быть в одном адресном пространстве, что и dhcpd, но при этом выдавать можем любые адреса.
в примере сделано так:
shared-network 1272 {subnet 172.16.216.0 netmask 255.255.252.0 {
}subnet 217.197.206.0 netmask 255.255.255.0
{deny unknown-clients; используется вами?
>[оверквотинг удален]
> обращаются к dhcpd через какой-то L3?
> если в одной сети, то коммутаторы должны быть в одном адресном пространстве,
> что и dhcpd, но при этом выдавать можем любые адреса.
> в примере сделано так:
> shared-network 1272 {
> subnet 172.16.216.0 netmask 255.255.252.0 {
> }
> subnet 217.197.206.0 netmask 255.255.255.0
> {
> deny unknown-clients; используется вами?deny unknown-clients не используется, клиенты находятся в 500 vlan c dhcp-сервером,
все комутаторы в 100 vlan с dhcp-сервером.
subnet 217.197.206.0 netmask 255.255.255.0
>> {
>> deny unknown-clients; используется вами?
> deny unknown-clients не используется, клиенты находятся в 500 vlan c dhcp-сервером,
>
>
>
> все комутаторы в 100 vlan с dhcp-сервером.т.е. в dhcpd.conf:
shared-network 500 {
subnet 192.168.0.0 netmask 255.255.255.0 {
option routers 192.168.0.253;
interface vlan500;
class "avb_test2"
{
match if (binary-to-ascii (10,8, "", suffix ( option agent.circuit-id,1 )) = "2") and (binary-to-ascii (16, 8, ":", substring ( option agent.remote-id,2,6)) = "0:13:46:99:2d:fd");
}
pool {
range 192.168.0.48;
allow members of "avb_test2";
}
}
}и в rc.conf:
cloned_interfaces="vlan100 vlan500"
ifconfig_vlan100="inet 10.250.100.253 netmask 255.255.255.0 vlan 100 vlandev fxp0"
ifconfig_vlan500="inet 192.168.0.254 netmask 255.255.255.0 vlan 500 vlandev fxp0"dhcpd_ifaces="vlan500"
>[оверквотинг удален]
> match if (binary-to-ascii (10,8, "", suffix ( option agent.circuit-id,1 )) =
> "2") and (binary-to-ascii (16, 8, ":", substring ( option agent.remote-id,2,6)) =
> "0:13:46:99:2d:fd");
> }
> pool {
> range 192.168.0.48;
> allow members of "avb_test2";
> }
> }
> }получилось, внес сеть subnet 10.250.1000.0 netmask 255.255.255.0 {
}
в shared-network 500, заработало!
Спасибо, большое за помосч!
так я вам об этом говорил чуть вышеshared-network 1272 {
subnet 172.16.216.0 netmask 255.255.252.0 {
}subnet 217.197.206.0 netmask 255.255.255.0
{}
рад, что все получилось.
> получилось, внес сеть subnet 10.250.100.0 netmask 255.255.255.0 {
> }
> в shared-network 500, заработало!
> Спасибо, большое за помосч!Радость была недолгой)
В роде б настройки не менял, а стал писать лог:Mar 10 15:20:00 dhcp dhcpd: DHCPDISCOVER from 00:11:5b:29:50:f3 via 10.250.100.98
Mar 10 15:20:00 dhcp dhcpd: DHCPOFFER on 192.168.0.48 to 00:11:5b:29:50:f3 (BOOK-WIN) via 10.250.100.98
Mar 10 15:20:00 dhcp dhcpd: DHCPREQUEST for 192.168.0.48 (217.77.117.254) from 00:11:5b:29:50:f3 via vlan500: lease 192.168.0.48 unavailable.
Mar 10 15:20:00 dhcp dhcpd: DHCPNAK on192.168.0.48 to 00:11:5b:29:50:f3 via vlan500
Mar 10 15:20:00 dhcp dhcpd: *Leased:192.168.0.48(with opt82)
Mar 10 15:20:00 dhcp dhcpd: *Remote-ID:0:13:46:99:2d:fd
Mar 10 15:20:00 dhcp dhcpd: Port:2и до компьютера запрос вроде бы доходит, но тот реквесты повторяет снова и снова
>[оверквотинг удален]
> В роде б настройки не менял, а стал писать лог:
> Mar 10 15:20:00 dhcp dhcpd: DHCPDISCOVER from 00:11:5b:29:50:f3 via 10.250.100.98
> Mar 10 15:20:00 dhcp dhcpd: DHCPOFFER on 192.168.0.48 to 00:11:5b:29:50:f3 (BOOK-WIN) via
> 10.250.100.98
> Mar 10 15:20:00 dhcp dhcpd: DHCPREQUEST for 192.168.0.48 (217.77.117.254) from 00:11:5b:29:50:f3
> via vlan500: lease 192.168.0.48 unavailable.
> Mar 10 15:20:00 dhcp dhcpd: DHCPNAK on192.168.0.48 to 00:11:5b:29:50:f3 via vlan500
> Mar 10 15:20:00 dhcp dhcpd: *Leased:192.168.0.48(with opt82)
> Mar 10 15:20:00 dhcp dhcpd: *Remote-ID:0:13:46:99:2d:fd
> Mar 10 15:20:00 dhcp dhcpd: Port:2как видно, dhcp-сервер почему-то посылает запросы в 100(в одном с коммутатором) и 500 (в одном с портом клиента) vlan, т.е. приходят
Mar 10 15:20:00 dhcp dhcpd: DHCPDISCOVER from 00:11:5b:29:50:f3 via 10.250.100.98
> Mar 10 15:20:00 dhcp dhcpd: DHCPOFFER on 192.168.0.48 to 00:11:5b:29:50:f3 (BOOK-WIN) via 10.250.100.98 ( это в 100ый вилан)а вот в 500ый:
dhcp dhcpd: DHCPDISCOVER from 00:c0:9f:6a:b7:ce via vlan500: network vlan500: no free leases
на один запрос сервер отвечаетMar 10 15:20:00 dhcp dhcpd: DHCPREQUEST for 192.168.0.48 (217.77.117.254) from 00:11:5b:29:50:f3
на второй
> Mar 10 15:20:00 dhcp dhcpd: DHCPREQUEST for 192.168.0.48 (217.77.117.254) from 00:11:5b:29:50:f3
> via vlan500: lease 192.168.0.48 unavailable.ну и потом на первый о том что адрес просрочен:
> Mar 10 15:20:00 dhcp dhcpd: DHCPNAK on192.168.0.48 to 00:11:5b:29:50:f3 via vlan500можно ли как то сделать чтоб запрос ответ были именно в одном вилане с портом коммутатора, а не управляющем вилане коммутатора (100)?
спасибо.
> можно ли как то сделать чтоб запрос ответ были именно в одном
> вилане с портом коммутатора, а не управляющем вилане коммутатора (100)?
> спасибо.использовать dhcp_local_relay
в конфе длика есть похожие темы.