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