Wilco van Bragt - LinkeIn Wilco van Bragt - Twitter rssa 

The case of the magic unknown Citrix Provisioning Services feature

On one of my projects we are using Citrix Provisioning Services (PVS) for our XenApp 6.5 environment. At this project several teams are responsible for the different stages in the infrastructure (DTAP, Development, Test, Acceptance and Production).

After a while one of the guys of the test environment came to me asking me how and why we are using fixed IP addresses within the PVS image. I told me that this could not be the case as the design was written based on a DHCP based IP address and I was pretty sure that none of this colleagues in test has the knowledge available to configure fixed IP addresses within the possibilities PVS is offering. In this article I will start describing which documented options are available within PVS to use a fixes IP address within the PVS image, followed by showing the magic unknown feature in Citrix Provisioning Service the test colleague encountered accidently.

 




Let’s start with the possibilities Citrix has documented to use a static fixed IP address. The first possibility is using the personality option which is available within the properties of each target device. This part is especially created to configure specific parts with a unique setting within the PVS image. For assigning an IP address you could add the IP into this personality part as the first step.

Second step is to create a start-up script that reads out the value of the file and configures the Network Interface Card with the IP address provided in the personality component. In the article How do I Citrix? Statics IPs in Citrix Provisioning all the steps are described. Personally I don’t like this option as you have to configure the address for each target device and also the script is not rock solid when more NICs are available in the Target Device (Windows regularly swops the NICS in a different order). Also you still need a IP in advance for receiving the bootstrap, so you are actually need two IPs per Target Device.

The other possibility is to use an option available in the Boot Device Manager. The Boot Device Manager is a small start-up component, which can be created using the BDM Utility on the PVS server.

Within the wizard to create the BDM you can specify if you would like to use a fixed IP address and provide the IP information. Yes you are correct? With this option you need to create a unique BDM ISO/Disk for each Target Device, so it’s a pretty labor intensive solution. The upside in comparison with the Personality feature is that you don’t need scripts to configure the settings.

So actual both available document options are not easy to implement and are also labor intensive.

Now back to our case of the magic unknown feature. In this situation we were using PXE broadcast to deliver the bootstrap so it was out of the question that somebody created the BDM with wrong settings (as we did not use BDM at all). As stated the test department don’t have specific PVS knowledge to set-up the personality option (as we did not explained it at all). In total disbelieve modus I took a look at their test environment and indeed the machines were configured with a fixed IP address. But most unbelievable the IP addresses were indeed unique, both on the clients as in the PVS console. I checked to be 100% sure they were booting via PXE and there was no personality option configured.

And there is our magic unknown PVS feature, but as I don’t believe it when I did not do it myself. So I configured an PVS image with an fixed IP address in the image. I booted up target devices with this image and also these were configured with unique IP addresses.

This target device was in the same VLAN as the vDisk was configured with a fixed IP, so to check how far the PVS magic goes I also booted a Target Device in another VLAN. Logically the subnet mask and gateway should be reconfigured as well. As you can see in below shown figure all IP settings were configured according the VLAN settings.

I also created a new target device (so it never connected to the PVS environment before) and every target device got an unique IP address also.

The configured IP address is exactly the same IP address that is assigned during the PXE boot, so in someway PVS arranges that if a fixed IP is set in the image that the IP address assigned during the PXE boot is configured as the IP address of that target device. I was not aware of this feature and searched on Internet. I could not find any information that this feature is documented by Citrix and only find one forum question about it, where the person was told that his situation could not happen (exactly what I thought, but there is another new PVS trick).

After I come around this magic feature I was thinking if there was any added value. Because you are still dependent of the DHCP for the IP address and you would like that each server has the same IP address every time you still need a to make a reservation or configure the lease time to unlimited. So that is nothing different when configuring the base image with a DHCP address. Sometimes applications require a fixed IP address configured and it will help there, but for XenApp and XenDesktop Target Devices this is normally that the case, so that’s a small use case.

I could not find any other reason, so is it made for this small use case or just for the people who forgot to configure the image creation machine on a DHCP address?