D-LINK DHCP Relay option 82: различия между версиями
Материал из noname.com.ua
Перейти к навигацииПерейти к поискуSirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
| Строка 169: | Строка 169: | ||
Сравним с тем что получено от коммутатора |
Сравним с тем что получено от коммутатора |
||
| + | Agent Circuit ID: 0106000408BC0001 |
||
| − | Agent Circuit ID: 0004 08BC0001 (Явно не 8 байт, как написано в документации) |
||
| − | На основании того, что номер VLAN откуда пришел запрос я знаю (2236), предпологаю что все таки верно вот так: |
||
<TABLE border=1> |
<TABLE border=1> |
||
<TR> |
<TR> |
||
| Строка 177: | Строка 176: | ||
</TR> |
</TR> |
||
<TR> |
<TR> |
||
| − | <TD>Тип опции= |
+ | <TD>Тип опции=01 (hex)</TD><TD>Длина=06 (hex)</TD><TD>Тип Circuit ID=00 (hex)</TD><TD>Длина=04 (hex) </TD><TD>VLAN ID=08BC (hex)</TD><TD>Module (=00) (hex)</TD><TD>Port=01 (hex)</TD> |
</TR> |
</TR> |
||
<TR> |
<TR> |
||
Версия 19:30, 9 марта 2009
Настройка коммутатора Д-линк
Настройки коммутатора
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 user_define "172.29.14.122" 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 172.29.14.1
http://xgu.ru/wiki/%D0%9E%D0%BF%D1%86%D0%B8%D1%8F_82_DHCP
Настойка DHCPd
DHCP - пакет (детально)
tshark -V ...
Frame 19 (366 bytes on wire, 366 bytes captured)
Arrival Time: Mar 9, 2009 15:24:42.257042000
[Time delta from previous captured frame: 15.000093000 seconds]
[Time delta from previous displayed frame: 15.000093000 seconds]
[Time since reference or first frame: 780.215513000 seconds]
Frame Number: 19
Frame Length: 366 bytes
Capture Length: 366 bytes
[Frame is marked: False]
[Protocols in frame: eth:ip:udp:bootp]
Ethernet II, Src: D-Link_17:c6:28 (00:1c:f0:17:c6:28), Dst: IntelCor_06:8b:c7 (00:1c:c0:06:8b:c7)
Destination: IntelCor_06:8b:c7 (00:1c:c0:06:8b:c7)
Address: IntelCor_06:8b:c7 (00:1c:c0:06:8b:c7)
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
Source: D-Link_17:c6:28 (00:1c:f0:17:c6:28)
Address: D-Link_17:c6:28 (00:1c:f0:17:c6:28)
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
Type: IP (0x0800)
Internet Protocol, Src: 172.29.14.122 (172.29.14.122), Dst: 172.29.14.1 (172.29.14.1)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
0000 00.. = Differentiated Services Codepoint: Default (0x00)
.... ..0. = ECN-Capable Transport (ECT): 0
.... ...0 = ECN-CE: 0
Total Length: 352
Identification: 0x00c6 (198)
Flags: 0x00
0... = Reserved bit: Not set
.0.. = Don't fragment: Not set
..0. = More fragments: Not set
Fragment offset: 0
Time to live: 128
Protocol: UDP (0x11)
Header checksum: 0xc411 [correct]
[Good: True]
[Bad : False]
Source: 172.29.14.122 (172.29.14.122)
Destination: 172.29.14.1 (172.29.14.1)
User Datagram Protocol, Src Port: bootpc (68), Dst Port: bootps (67)
Source port: bootpc (68)
Destination port: bootps (67)
Length: 332
Checksum: 0x4a5c [correct]
[Good Checksum: True]
[Bad Checksum: False]
Bootstrap Protocol
Message type: Boot Request (1)
Hardware type: Ethernet
Hardware address length: 6
Hops: 1
Transaction ID: 0xa9dbdf39
Seconds elapsed: 28 (little endian bug?)
Bootp flags: 0x8000 (Broadcast)
1... .... .... .... = Broadcast flag: Broadcast
.000 0000 0000 0000 = Reserved flags: 0x0000
Client IP address: 0.0.0.0 (0.0.0.0)
Your (client) IP address: 0.0.0.0 (0.0.0.0)
Next server IP address: 0.0.0.0 (0.0.0.0)
Relay agent IP address: 172.29.14.122 (172.29.14.122)
Client MAC address: Dell_95:8d:8b (00:1c:23:95:8d:8b)
Server host name not given
Boot file name not given
Magic cookie: (OK)
Option: (t=53,l=1) DHCP Message Type = DHCP Discover
Option: (53) DHCP Message Type
Length: 1
Value: 01
Option: (t=116,l=1) DHCP Auto-Configuration
Option: (116) DHCP Auto-Configuration
Length: 1
Value: 01
Option: (t=61,l=7) Client identifier
Option: (61) Client identifier
Length: 7
Value: 01001C23958D8B
Hardware type: Ethernet
Client MAC address: Dell_95:8d:8b (00:1c:23:95:8d:8b)
Option: (t=50,l=4) Requested IP Address = 169.254.86.169
Option: (50) Requested IP Address
Length: 4
Value: A9FE56A9
Option: (t=12,l=6) Host Name = "tester"
Option: (12) Host Name
Length: 6
Value: 746573746572
Option: (t=60,l=8) Vendor class identifier = "MSFT 5.0"
Option: (60) Vendor class identifier
Length: 8
Value: 4D53465420352E30
Option: (t=55,l=11) Parameter Request List
Option: (55) Parameter Request List
Length: 11
Value: 010F03062C2E2F1F21F92B
1 = Subnet Mask
15 = Domain Name
3 = Router
6 = Domain Name Server
44 = NetBIOS over TCP/IP Name Server
46 = NetBIOS over TCP/IP Node Type
47 = NetBIOS over TCP/IP Scope
31 = Perform Router Discover
33 = Static Route
249 = Classless Static Route (Microsoft)
43 = Vendor-Specific Information
Option: (t=43,l=2) Vendor-Specific Information
Option: (43) Vendor-Specific Information
Length: 2
Value: DC00
Option: (t=82,l=25) Agent Information Option
Option: (82) Agent Information Option
Length: 25
Value: 0106000408BC0001020F010D3137322E32392E31342E3132...
Agent Circuit ID: 000408BC0001
Agent Remote ID: 010D3137322E32392E31342E313232
End Option
Меня в первую очередь интересует Option 82
Option: (t=82,l=25) Agent Information Option
Option: (82) Agent Information Option
Length: 25
Value: 0106000408BC0001020F010D3137322E32392E31342E3132...
Agent Circuit ID: 000408BC0001
Agent Remote ID: 010D3137322E32392E31342E313232
Формат поля DHCP option 82 для DES-35XX:
Формат поля опции с Circuit ID - в ней указывается порт коммутатора, за которым находится клиент и VID соответствующего VLAN: (Взято с Dlink.ru)
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| Тип опции=1 | Длина=6 | Тип Circuit ID=0 | Длина=4 | VLAN ID | Module (=0) | Port |
| 1 байт | 1 байт | 1 байт | 1 байт | 2 байта | 1 байт | 1 байт |
- Module : Для автономного коммутатора, поле Module всегда 0; для стекируемого коммутатора, Module = Unit ID.
- Port : Порт коммутатора, с которого получен DHCP-запрос (начинается с 1) port
Сравним с тем что получено от коммутатора Agent Circuit ID: 0106000408BC0001
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| Тип опции=01 (hex) | Длина=06 (hex) | Тип Circuit ID=00 (hex) | Длина=04 (hex) | VLAN ID=08BC (hex) | Module (=00) (hex) | Port=01 (hex) |
| Тип опции=0 (dec) | Длина=0 (dec) | Тип Circuit ID=0 (dec) | Длина=4 (dec) | VLAN ID=2236 (dec) | Module (=00) (dec) | Port=01 (dec) |
| 1 байт | 1 байт | 1 байт | 1 байт | 2 байта | 2 байта | 2 байта |
Формат поля опции с Remote ID - в ней указывается MAC-адрес коммутатора, являющегося агентом DHCP Relay: 1. 2. 3. 4. 5 2
8
0
6
MAC address
1 байт 1 байт 1 байт 1 байт 6 байтов
1. Тип опции 2. Длина 3. Тип Remote ID type 4. Длина 5. MAC address : MAC-адрес коммутатора.
(аналогично для DES-3028, DES-3052, вероятно для DES-3528)
Конфигурирование DHCPd
lease-file-name "/var/lib/dhcp/dhcpd.leases"; option domain-name-servers 193.33.**.**,193.33.**.**; local-address 172.29.14.1; log-facility local7; authoritative; ddns-update-style none; ignore client-updates;
Эта часть описывает логгирование
if exists agent.circuit-id
{
log(info, concat("Lease"
," IP ", binary-to-ascii(10, 8, ".", leased-address)
," MAC ", binary-to-ascii(16, 8, ":", substring(hardware, 1, 6))
," switch ", substring(option agent.remote-id, 2, 15)
," port ", binary-to-ascii(10, 16, "", substring(option agent.circuit-id, 4, 2))
," VLAN ", binary-to-ascii(10, 16, "", substring(option agent.circuit-id, 2, 2))
)
);
}
Описание "Класса"
# Switch-Port-MAC classes
class "172.16.33.17_22_0:13:77:3a:58:48"
{
match if( (binary-to-ascii(16, 8, ":", substring(hardware, 1, 6)) = "0:13:77:3a:58:48")
and (substring(option agent.remote-id, 2, 15) = "172.16.33.17")
and (binary-to-ascii(10, 16, "", substring(option agent.circuit-id, 4, 2)) = "22")
);
}