difference between behavior after pxe and normal request and their definitions
Glenn Satchell
glenn.satchell at uniq.com.au
Sat Jul 19 06:16:37 UTC 2014
Hi Meike
First let me say, that not everything is covered in an RFC, sometimes it
can be left as an implementation detail :) DHCP Client-Ids are one
example, with almost no common clients setting the Client-Id, the notable
exception is Windows.
The usual situation with PXE is that the PXE client boots with no
Client-Id. Then Windows boots and its dhcp client does provide a
Client-Id. To the dhcp server this looks like two different clients,
because the Client-Id is used as the primary identifier.
Whether the lease is expired or not after step 1, the server will try and
match a client with a previously used IP address. Sometimes it can't
because it has reassigned it already, or maybe it thinks that the PXE
client is a different client and won't assign the same address to two
different clients.
In my dhcpd.conf I work around this by using a relatively short lease time
for PXE clients, 10 minutes.
However, in your packet capture the PXE client does send a Client-Id, and
it is the same as the Windows Client-Id, so the chcp server would see this
as the same client asking for a renewal of an existing lease, so it is ok
for it to do so.
regards,
-glenn
On Sat, July 19, 2014 2:11 am, Meike Stone wrote:
> Hello,
>
> we set up a Citrix VDI environment and a few virtual desktops (PVS
> Target devices) boots Windows from network (normally via pxe).
> 1) So at first, the (virtual) NIC from the PVS target device discovers
> and request an IP address and getting the boot image via tftp
> 2) Second, during later booting the OS (Windows), the client network
> stack discover and request an IP address again (same mac).
>
> a) Normaly, the DHCP Server should hand out two different IP
> addresses, if the first lease (from 1)) is not expired.
> That works as expected (normal network boot without pxe).
>
> b) With a PXE request in 1), the client gets in 2) the same address
> like in 1), regardless whether the lease in 1) is expired or not.
>
> Both are normal, but my question is, where can I find the definitions
> (RFC) for this behavior regarding pxe in the dhcp protocol? I did
> nothing found until now?
> The manual page from dhcp.conf does nothing write about this...
>
> Citrix only made a small comment in their knowledge base :
> http://support.citrix.com/article/CTX139873
>
> Thanks Meike, have nice weekend!
>
>
> ===============================================
> Examples (only Discover and Offer)
> (hope, I made no mistake during clean up ...)
> ===============================================
>
> -----------------------------------------
> Example without PXE for a)
> -----------------------------------------
>
> * NIC
>
> 15:43:27.390642 192.168.128.12.bootpc > dhcpsrv.vdi.test.bootps: [udp
> sum ok] BOOTP/DHCP, Request from 42:b1:60:11:23:12 (oui Unknown),
> length 260, hops 1,
> xid 0x574fe450, Flags [none]
> Gateway-IP 192.168.128.12
> Client-Ethernet-Address 42:b1:60:11:23:12 (oui Unknown)
> Vendor-rfc1048 Extensions
> Magic Cookie 0x63825363
> DHCP-Message Option 53, length 1: Discover
> Client-ID Option 61, length 7: ether 42:b1:60:11:23:12
> Parameter-Request Option 55, length 5:
> Subnet-Mask, Default-Gateway, Domain-Name-Server, Domain-Name
> Server-ID
> END Option 255, length 0
>
>
> 15:43:27.391136 IP dhcpsrv.vdi.test.bootps > 192.168.128.12.bootps:
> [udp sum ok] BOOTP/DHCP, Reply, length 300, hops 1,
> xid 0x574fe450, Flags [none]
> Your-IP 192.168.129.215
> Gateway-IP 192.168.128.12
> Client-Ethernet-Address 42:b1:60:11:23:12 (oui Unknown)
> Vendor-rfc1048 Extensions
> Magic Cookie 0x63825363
> DHCP-Message Option 53, length 1: Offer
> Server-ID Option 54, length 4: dhcpsrv.vdi.test
> Lease-Time Option 51, length 4: 360
> Subnet-Mask Option 1, length 4: 255.255.255.0
> Default-Gateway Option 3, length 4: 192.168.129.1
> Domain-Name-Server Option 6, length 8:
> dns01.vdi.test,dns02.vdi.test
> Domain-Name Option 15, length 11: "d.vdi.test."
> END Option 255, length 0
> PAD Option 0, length 0, occurs 9
>
>
> **** WINDOWS OS Stack ****
>
> 15:46:42.656691 192.168.128.12.bootpc > dhcpsrv.vdi.test.bootps:
> [udp sum ok] BOOTP/DHCP, Request from 42:b1:60:11:23:12 (oui Unknown),
> length 300, hops 1,
> xid 0x42f613d, secs 768, Flags [Broadcast]
> Gateway-IP 192.168.128.12
> Client-Ethernet-Address 42:b1:60:11:23:12 (oui Unknown)
> Vendor-rfc1048 Extensions
> Magic Cookie 0x63825363
> DHCP-Message Option 53, length 1: Discover
> CLASS Option 77, length 7: "vditest"
> Client-ID Option 61, length 7: ether 42:b1:60:11:23:12
> Hostname Option 12, length 11: "pvs-pd-t-04"
> Vendor-Class Option 60, length 8: "MSFT 5.0"
> Parameter-Request Option 55, length 12:
> Subnet-Mask, Domain-Name, Default-Gateway, Domain-Name-Server
> Netbios-Name-Server, Netbios-Node, Netbios-Scope,
> Router-Discovery
> Static-Route, Classless-Static-Route,
> Classless-Static-Route-Microsoft, Vendor-Option
> END Option 255, length 0
> PAD Option 0, length 0
>
>
> 15:46:43.658587 dhcpsrv.vdi.test.bootps > 192.168.128.12.bootps: [udp
> sum ok] BOOTP/DHCP, Reply, length 300, hops 1,
> xid 0x42f613d, secs 768, Flags [Broadcast]
> Your-IP 192.168.129.184
> Gateway-IP 192.168.128.12
> Client-Ethernet-Address 42:b1:60:11:23:12 (oui Unknown)
> Vendor-rfc1048 Extensions
> Magic Cookie 0x63825363
> DHCP-Message Option 53, length 1: Offer
> Server-ID Option 54, length 4: dhcpsrv.vdi.test
> Lease-Time Option 51, length 4: 3600
> Subnet-Mask Option 1, length 4: 255.255.255.0
> Domain-Name Option 15, length 11: "d.vdi.test."
> Default-Gateway Option 3, length 4: 192.168.129.1
> Domain-Name-Server Option 6, length 8:
> dns01.vdi.test,dns02.vdi.test
> END Option 255, length 0
> PAD Option 0, length 0, occurs 9
>
>
>
>
>
>
> -----------------------------------------
> Example with PXE for b)
> -----------------------------------------
>
> **** NIC ****
>
> 16:09:23.366919 192.168.128.12.bootps > dhcpsrv.vdi.test.bootps: [udp
> sum ok] BOOTP/DHCP, Request from d6:12:16:ef:ab:32 (oui Unknown),
> length 384, hops 2,
> xid 0x16dae42a, secs 4, Flags [none] (0x0000)
> Gateway-IP 192.168.128.12
> Client-Ethernet-Address d6:12:16:ef:ab:32 (oui Unknown)
> Vendor-rfc1048 Extensions
> Magic Cookie 0x63825363
> DHCP-Message Option 53, length 1: Discover
> MSZ Option 57, length 2: 1260
> 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"
> CLASS Option 77, length 4: "gPXE"
> 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
> T175 Option 175, length 42:
> 45317,272,60545,14616,257,8705,281,257,8449,272,258,4609,275,257,4353,491,769,0,5889,277,257
> Client-ID Option 61, length 7: ether d6:12:16:ef:ab:32
> GUID Option 97, length 17:
> 0.76.160.173.120.214.79.202.71.138.35.67.120.117.143.246.52
> END Option 255, length 0
>
> 16:09:24.367470 dhcpsrv.vdi.test.bootps > 192.168.128.12.bootps: [udp
> sum ok] BOOTP/DHCP, Reply, length 300, hops 2,
> xid 0x16dae42a, secs 4, Flags [none] (0x0000)
> Your-IP 192.168.129.34
> Gateway-IP 192.168.128.12
> Client-Ethernet-Address d6:12:16:ef:ab:32 (oui Unknown)
> Vendor-rfc1048 Extensions
> Magic Cookie 0x63825363
> DHCP-Message Option 53, length 1: Offer
> Server-ID Option 54, length 4: dhcpsrv.vdi.test
> Lease-Time Option 51, length 4: 360
> Subnet-Mask Option 1, length 4: 255.255.255.0
> Default-Gateway Option 3, length 4: 192.168.129.1
> Domain-Name-Server Option 6, length 8:
> dns01.vdi.test,dns02.vdi.test
> Domain-Name Option 15, length 11: "d.vdi.test."
> END Option 255, length 0
> PAD Option 0, length 0, occurs 9
>
>
>
> **** WINDOWS OS Stack ****
>
>
> 16:10:05.079842 192.168.128.12.bootps > dhcpsrv.vdi.test.bootps: [udp
> sum ok] BOOTP/DHCP, Request from d6:12:16:ef:ab:32 (oui Unknown),
> length 300, hops 2,
> xid 0x5ba369f0, Flags [Broadcast] (0x8000)
> Gateway-IP 192.168.128.12
> Client-Ethernet-Address d6:12:16:ef:ab:32 (oui Unknown)
> Vendor-rfc1048 Extensions
> Magic Cookie 0x63825363
> DHCP-Message Option 53, length 1: Discover
> CLASS Option 77, length 5: "vdipc"
> Client-ID Option 61, length 7: ether d6:12:16:ef:ab:32
> Hostname Option 12, length 12: "vdisk-04-002"
> Vendor-Class Option 60, length 8: "MSFT 5.0"
> Parameter-Request Option 55, length 12:
> Subnet-Mask, Domain-Name, Default-Gateway,
> Domain-Name-Server
> Netbios-Name-Server, Netbios-Node, Netbios-Scope,
> Router-Discovery
> Static-Route, Classless-Static-Route,
> Classless-Static-Route-Microsoft, Vendor-Option
> END Option 255, length 0
> PAD Option 0, length 0, occurs 2
>
>
> 16:10:05.080139 dhcpsrv.vdi.test.bootps > 192.168.128.12.bootps: [udp
> sum ok] BOOTP/DHCP, Reply, length 300, hops 2,
> xid 0x5ba369f0, Flags [Broadcast] (0x8000)
> Your-IP 192.168.129.34
> Gateway-IP 192.168.128.12
> Client-Ethernet-Address d6:12:16:ef:ab:32 (oui Unknown)
> Vendor-rfc1048 Extensions
> Magic Cookie 0x63825363
> DHCP-Message Option 53, length 1: Offer
> Server-ID Option 54, length 4: dhcpsrv.vdi.test
> Lease-Time Option 51, length 4: 3600
> Subnet-Mask Option 1, length 4: 255.255.255.0
> Domain-Name Option 15, length 11: "d.vdi.test."
> Default-Gateway Option 3, length 4: 192.168.129.1
> Domain-Name-Server Option 6, length 8:
> dns01.vdi.test,dns02.vdi.test
> END Option 255, length 0
> PAD Option 0, length 0, occurs 9
> _______________________________________________
> dhcp-users mailing list
> dhcp-users at lists.isc.org
> https://lists.isc.org/mailman/listinfo/dhcp-users
>
More information about the dhcp-users
mailing list