DHCP server will not send DHCP-Boot-Filename
Tested with 2.1.9 and latest 2.1.x from git Compile options: --with-dhcp --prefix=/usr/local/freeradius dictionary.dhcp enabled in dictionary configuration below client is gPXE Etherboot My understanding is that the DHCP server should feed DHCP-Boot-Filename in the ACK response to client and this is the way I've done the configuration. Note that this should show in the dhcp header response sent to client. DHCP-Boot-File-Name parameter does work, however it is an 'option' later in the DHCP packet, and not the same thing as DHCP-Boot-Filename in the header. Also it seems that DHCP responses in header such as DHCP-Your-IP-Address do not show up in radiusd debug output, even though they are sent to client (confirmed with tcpdump). Any suggestions or pointers would be appreciated. config: server dhcp { listen { ipaddr = 209.170.148.3 port = 67 type = dhcp } dhcp DHCP-Discover { update reply { DHCP-Message-Type = DHCP-Offer } update reply { DHCP-Subnet-Mask = 255.255.255.252 DHCP-Domain-Name-Server = 208.79.80.18 DHCP-Gateway-IP-Address = 209.170.148.41 DHCP-IP-Address-Lease-Time = 86400 DHCP-Your-IP-Address = 209.170.148.42 } ok } dhcp DHCP-Request { update reply { DHCP-Message-Type = DHCP-Ack } update reply { DHCP-Subnet-Mask = 255.255.255.252 DHCP-Domain-Name-Server = 208.79.80.18 DHCP-Gateway-IP-Address = 209.170.148.41 DHCP-IP-Address-Lease-Time = 86400 DHCP-Your-IP-Address = 209.170.148.42 DHCP-Server-Host-Name = 209.170.148.3 DHCP-Boot-Filename = pxeboot } ok } dhcp { # send a DHCP NAK. reject } } debug output from radiusd -X -xx: Received DHCP-Discover of id 001752fc from 209.170.148.41:67 to 209.170.148.3:67 01 01 06 01 00 17 52 fc 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d1 aa 94 29 aa 00 00 17 52 fc 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 63 82 53 63 61 11 00 81 fd d6 45 00 bd 23 db 30 be e0 70 fa a0 c7 d5 3d 07 01 aa 00 00 17 52 fc af 28 b1 05 01 10 ec 81 39 13 01 01 17 01 01 15 01 01 11 01 01 12 01 01 18 01 01 23 01 01 22 01 01 19 01 01 21 01 01 10 01 02 35 01 01 39 02 05 c0 5d 02 00 00 5e 03 01 02 01 3c 20 50 58 45 43 6c 69 65 6e 74 3a 41 72 63 68 3a 30 30 30 30 30 3a 55 4e 44 49 3a 30 30 32 30 30 31 37 0d 01 03 06 07 0c 0f 11 2b 3c 42 43 af cb ff DHCP-Opcode = Client-Message DHCP-Hardware-Type = Ethernet DHCP-Hardware-Address-Length = 6 DHCP-Hop-Count = 1 DHCP-Transaction-Id = 1528572 DHCP-Number-of-Seconds = 0 DHCP-Flags = 0 DHCP-Client-IP-Address = 0.0.0.0 DHCP-Your-IP-Address = 0.0.0.0 DHCP-Server-IP-Address = 0.0.0.0 DHCP-Gateway-IP-Address = 209.170.148.41 DHCP-Client-Hardware-Address = aa:00:00:17:52:fc DHCP-UUID/GUID = 0x0081fdd64500bd23db30bee070faa0c7d5 DHCP-Client-Identifier = aa:00:00:17:52:fc DHCP-Message-Type = DHCP-Discover DHCP-DHCP-Maximum-Msg-Size = 1472 DHCP-Client-System = 0x0000 DHCP-Client-NDI = 0x010201 DHCP-Vendor-Class-Identifier = "PXEClient:Arch:00000:UNDI:002001" DHCP-Parameter-Request-List = DHCP-Subnet-Mask DHCP-Parameter-Request-List = DHCP-Router-Address DHCP-Parameter-Request-List = DHCP-Domain-Name-Server DHCP-Parameter-Request-List = DHCP-Log-Server DHCP-Parameter-Request-List = DHCP-Hostname DHCP-Parameter-Request-List = DHCP-Domain-Name DHCP-Parameter-Request-List = DHCP-Root-Path DHCP-Parameter-Request-List = DHCP-Vendor DHCP-Parameter-Request-List = DHCP-Class-Identifier DHCP-Parameter-Request-List = DHCP-TFTP-Server-Name DHCP-Parameter-Request-List = DHCP-Boot-File-Name DHCP-Parameter-Request-List = 175 DHCP-Parameter-Request-List = 203 Wed Jul 7 14:00:26 2010 : Info: server dhcp { Wed Jul 7 14:00:26 2010 : Debug: Trying sub-section dhcp DHCP-Discover {...} Wed Jul 7 14:00:26 2010 : Info: +- entering group DHCP-Discover {...} Wed Jul 7 14:00:26 2010 : Info: ++[reply] returns noop Wed Jul 7 14:00:26 2010 : Info: ++[reply] returns noop Wed Jul 7 14:00:26 2010 : Info: ++[ok] returns ok Wed Jul 7 14:00:26 2010 : Info: } # server dhcp Sending DHCP-Offer of id 001752fc from 209.170.148.3:67 to 209.170.148.41:67 DHCP-Subnet-Mask = 255.255.255.252 DHCP-Domain-Name-Server = 208.79.80.18 DHCP-IP-Address-Lease-Time = 86400 0: 02 01 06 00 00 17 52 fc 00 00 00 00 00 00 00 00 16: d1 aa 94 2a 00 00 00 00 d1 aa 94 29 aa 00 00 17 32: 52 fc 00 00 00 00 00 00 00 00 00 00 00 00 00 00 48: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 96: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 112: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 128: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 144: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 176: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 192: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 208: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 224: 00 00 00 00 00 00 00 00 00 00 00 00 63 82 53 63 240: 35 01 02 01 04 ff ff ff fc 06 04 d0 4f 50 12 33 256: 04 00 01 51 80 ff 00 00 00 00 00 00 00 00 00 00 272: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 288: 00 00 00 00 00 00 00 00 00 00 00 00 Wed Jul 7 14:00:26 2010 : Info: Finished request 0. Wed Jul 7 14:00:26 2010 : Info: Cleaning up request 0 ID 1528572 with timestamp +16 Wed Jul 7 14:00:26 2010 : Debug: Going to the next request Wed Jul 7 14:00:26 2010 : Info: Ready to process requests. Received DHCP-Request of id 001752fc from 209.170.148.41:67 to 209.170.148.3:67 01 01 06 01 00 17 52 fc 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d1 aa 94 29 aa 00 00 17 52 fc 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 63 82 53 63 61 11 00 81 fd d6 45 00 bd 23 db 30 be e0 70 fa a0 c7 d5 3d 07 01 aa 00 00 17 52 fc af 28 b1 05 01 10 ec 81 39 13 01 01 17 01 01 15 01 01 11 01 01 12 01 01 18 01 01 23 01 01 22 01 01 19 01 01 21 01 01 10 01 02 32 04 d1 aa 94 2a 35 01 03 39 02 05 c0 5d 02 00 00 5e 03 01 02 01 3c 20 50 58 45 43 6c 69 65 6e 74 3a 41 72 63 68 3a 30 30 30 30 30 3a 55 4e 44 49 3a 30 30 32 30 30 31 37 0d 01 03 06 07 0c 0f 11 2b 3c 42 43 af cb ff DHCP-Opcode = Client-Message DHCP-Hardware-Type = Ethernet DHCP-Hardware-Address-Length = 6 DHCP-Hop-Count = 1 DHCP-Transaction-Id = 1528572 DHCP-Number-of-Seconds = 0 DHCP-Flags = 0 DHCP-Client-IP-Address = 0.0.0.0 DHCP-Your-IP-Address = 0.0.0.0 DHCP-Server-IP-Address = 0.0.0.0 DHCP-Gateway-IP-Address = 209.170.148.41 DHCP-Client-Hardware-Address = aa:00:00:17:52:fc DHCP-UUID/GUID = 0x0081fdd64500bd23db30bee070faa0c7d5 DHCP-Client-Identifier = aa:00:00:17:52:fc DHCP-Requested-IP-Address = 209.170.148.42 DHCP-Message-Type = DHCP-Request DHCP-DHCP-Maximum-Msg-Size = 1472 DHCP-Client-System = 0x0000 DHCP-Client-NDI = 0x010201 DHCP-Vendor-Class-Identifier = "PXEClient:Arch:00000:UNDI:002001" DHCP-Parameter-Request-List = DHCP-Subnet-Mask DHCP-Parameter-Request-List = DHCP-Router-Address DHCP-Parameter-Request-List = DHCP-Domain-Name-Server DHCP-Parameter-Request-List = DHCP-Log-Server DHCP-Parameter-Request-List = DHCP-Hostname DHCP-Parameter-Request-List = DHCP-Domain-Name DHCP-Parameter-Request-List = DHCP-Root-Path DHCP-Parameter-Request-List = DHCP-Vendor DHCP-Parameter-Request-List = DHCP-Class-Identifier DHCP-Parameter-Request-List = DHCP-TFTP-Server-Name DHCP-Parameter-Request-List = DHCP-Boot-File-Name DHCP-Parameter-Request-List = 175 DHCP-Parameter-Request-List = 203 Wed Jul 7 14:00:27 2010 : Info: server dhcp { Wed Jul 7 14:00:27 2010 : Debug: Trying sub-section dhcp DHCP-Request {...} Wed Jul 7 14:00:27 2010 : Info: +- entering group DHCP-Request {...} Wed Jul 7 14:00:27 2010 : Info: ++[reply] returns noop Wed Jul 7 14:00:27 2010 : Info: ++[reply] returns noop Wed Jul 7 14:00:27 2010 : Info: ++[ok] returns ok Wed Jul 7 14:00:27 2010 : Info: } # server dhcp Sending DHCP-Ack of id 001752fc from 209.170.148.3:67 to 209.170.148.41:67 DHCP-Subnet-Mask = 255.255.255.252 DHCP-Domain-Name-Server = 208.79.80.18 DHCP-IP-Address-Lease-Time = 86400 0: 02 01 06 00 00 17 52 fc 00 00 00 00 00 00 00 00 16: d1 aa 94 2a 00 00 00 00 d1 aa 94 29 aa 00 00 17 32: 52 fc 00 00 00 00 00 00 00 00 00 00 00 00 00 00 48: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 96: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 112: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 128: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 144: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 176: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 192: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 208: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 224: 00 00 00 00 00 00 00 00 00 00 00 00 63 82 53 63 240: 35 01 05 01 04 ff ff ff fc 06 04 d0 4f 50 12 33 256: 04 00 01 51 80 ff 00 00 00 00 00 00 00 00 00 00 272: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 288: 00 00 00 00 00 00 00 00 00 00 00 00 Wed Jul 7 14:00:27 2010 : Info: Finished request 1. Wed Jul 7 14:00:27 2010 : Info: Cleaning up request 1 ID 1528572 with timestamp +17 Wed Jul 7 14:00:27 2010 : Debug: Going to the next request Wed Jul 7 14:00:27 2010 : Info: Ready to process requests. tcpdump -n -A -s 0 -vvv -i eth0: 14:00:26.362344 IP (tos 0x0, ttl 255, id 264, offset 0, flags [none], proto UDP (17), length 404) 209.170.148.41.67 > 209.170.148.3.67: [udp sum ok] BOOTP/DHCP, Request from aa:00:00:17:52:fc, length 376, hops 1, xid 0x1752fc, Flags [none] (0x0000) Gateway-IP 209.170.148.41 Client-Ethernet-Address aa:00:00:17:52:fc Vendor-rfc1048 Extensions Magic Cookie 0x63825363 GUID Option 97, length 17: 0.129.253.214.69.0.189.35.219.48.190.224.112.250.160.199.213 Client-ID Option 61, length 7: ether aa:00:00:17:52:fc T175 Option 175, length 40: 2969895184,3967891731,16848641,18153729,285278482,16848897,19071233,570491161,16851201,17826050 DHCP-Message Option 53, length 1: Discover MSZ Option 57, length 2: 1472 ARCH Option 93, length 2: 0 NDI Option 94, length 3: 1.2.1 Vendor-Class Option 60, length 32: "PXEClient:Arch:00000:UNDI:002001" Parameter-Request Option 55, length 13: Subnet-Mask, Default-Gateway, Domain-Name-Server, LOG Hostname, Domain-Name, RP, Vendor-Option Vendor-Class, TFTP, BF, Option 175 Option 203 END Option 255, length 0 E..............).....C.C..^.......R....................)....R...........................................................................................................................................................................................................c.Sca.....E..#.0..p....=......R..(......9..............+<BC...".....!.....5..9...]...^....< PXEClient:Arch:00000:UNDI:0020017 14:00:26.363586 IP (tos 0x0, ttl 64, id 48230, offset 0, flags [none], proto UDP (17), length 328) 209.170.148.3.67 > 209.170.148.41.67: [udp sum ok] BOOTP/DHCP, Reply, length 300, xid 0x1752fc, Flags [none] (0x0000) Your-IP 209.170.148.42 Gateway-IP 209.170.148.41 Client-Ethernet-Address aa:00:00:17:52:fc Vendor-rfc1048 Extensions Magic Cookie 0x63825363 DHCP-Message Option 53, length 1: Offer Subnet-Mask Option 1, length 4: 255.255.255.252 Domain-Name-Server Option 6, length 4: 208.79.80.18 Lease-Time Option 51, length 4: 86400 END Option 255, length 0 PAD Option 0, length 0, occurs 38 E..H.f..@..........).C.C.42.......R............*.......)....R...........................................................................................................................................................................................................c.Sc5...........OP.3...Q........................................ 14:00:27.373492 IP (tos 0x0, ttl 255, id 266, offset 0, flags [none], proto UDP (17), length 410) 209.170.148.41.67 > 209.170.148.3.67: [udp sum ok] BOOTP/DHCP, Request from aa:00:00:17:52:fc, length 382, hops 1, xid 0x1752fc, Flags [none] (0x0000) Gateway-IP 209.170.148.41 Client-Ethernet-Address aa:00:00:17:52:fc Vendor-rfc1048 Extensions Magic Cookie 0x63825363 GUID Option 97, length 17: 0.129.253.214.69.0.189.35.219.48.190.224.112.250.160.199.213 Client-ID Option 61, length 7: ether aa:00:00:17:52:fc T175 Option 175, length 40: 2969895184,3967891731,16848641,18153729,285278482,16848897,19071233,570491161,16851201,17826050 Requested-IP Option 50, length 4: 209.170.148.42 DHCP-Message Option 53, length 1: Request MSZ Option 57, length 2: 1472 ARCH Option 93, length 2: 0 NDI Option 94, length 3: 1.2.1 Vendor-Class Option 60, length 32: "PXEClient:Arch:00000:UNDI:002001" Parameter-Request Option 55, length 13: Subnet-Mask, Default-Gateway, Domain-Name-Server, LOG Hostname, Domain-Name, RP, Vendor-Option Vendor-Class, TFTP, BF, Option 175 Option 203 END Option 255, length 0 E.... .........).....C.C...7......R....................)....R...........................................................................................................................................................................................................c.Sca.....E..#.0..p....=......R..(......9....................+<BC...!.....2....*5..9...]...^....< PXEClient:Arch:00000:UNDI:0020017 14:00:27.374470 IP (tos 0x0, ttl 64, id 48231, offset 0, flags [none], proto UDP (17), length 328) 209.170.148.3.67 > 209.170.148.41.67: [udp sum ok] BOOTP/DHCP, Reply, length 300, xid 0x1752fc, Flags [none] (0x0000) Your-IP 209.170.148.42 Gateway-IP 209.170.148.41 Client-Ethernet-Address aa:00:00:17:52:fc Vendor-rfc1048 Extensions Magic Cookie 0x63825363 DHCP-Message Option 53, length 1: ACK Subnet-Mask Option 1, length 4: 255.255.255.252 Domain-Name-Server Option 6, length 4: 208.79.80.18 Lease-Time Option 51, length 4: 86400 END Option 255, length 0 PAD Option 0, length 0, occurs 38 E..H.g..@..........).C.C.4/.......R............*.......)....R...........................................................................................................................................................................................................c.Sc5...........OP.3...Q........................................ -- Mark Price
Mark Price wrote:
My understanding is that the DHCP server should feed DHCP-Boot-Filename in the ACK response to client and this is the way I've done the configuration. Note that this should show in the dhcp header response sent to client.
OK.
DHCP-Boot-File-Name parameter does work, however it is an 'option' later in the DHCP packet, and not the same thing as DHCP-Boot-Filename in the header.
Hmm.. I don't see the DHCP-Boot-Filename as an option later in the DHCP packet. Could you point it out more specifically? And yes, the DHCP-Boot-File-Name isn't put into the response packet. That should be fixed.
Also it seems that DHCP responses in header such as DHCP-Your-IP-Address do not show up in radiusd debug output, even though they are sent to client (confirmed with tcpdump).
They should show up with "radiusd -X" in the v2.1.x branch. Alan DeKok.
On Wed, Jul 7, 2010 at 12:00 PM, Alan DeKok <aland@deployingradius.com> wrote:
Hmm.. I don't see the DHCP-Boot-Filename as an option later in the DHCP packet. Could you point it out more specifically?
Let me try to clarify: Currently, DHCP-Boot-Filename value is not being sent and DHCP-Boot-File-Name is being sent. The problem is only with DHCP-Boot-Filename. Note that DHCP-Boot-Filename is part of the dhcp header (as seen in src/lib/dhcp.c). When freeradius writes the response packet, the DHCP-Boot-Filename field is blank, when it should be pulling in a string if I configure DHCP-Boot-Filename. See screenshot of DHCP ACK packet in wireshark: http://i.imgur.com/wSdgp.png . To get that specific example, I have specified BOTH of these in config: DHCP-Boot-Filename = pxeboot DHCP-Boot-File-Name = pxeboot In highlighted blue is the section of the packet where DHCP-Boot-Filename should be populated. Circled in pink is the section of the packet where DHCP-Boot-File-Name is being sent. Hope that helps. Thank you, Mark
Mark Price wrote:
Currently, DHCP-Boot-Filename value is not being sent and DHCP-Boot-File-Name is being sent. The problem is only with DHCP-Boot-Filename.
OK.
Note that DHCP-Boot-Filename is part of the dhcp header (as seen in src/lib/dhcp.c). When freeradius writes the response packet, the DHCP-Boot-Filename field is blank, when it should be pulling in a string if I configure DHCP-Boot-Filename.
Yes. That's easy enough to fix, and should be in 2.1.10. Alan DeKok.
participants (2)
-
Alan DeKok -
Mark Price