In my test deployment I have 2 hypervisors with XenServer 6.2 installed. I am creating a private network with public Ips, so that the VR is only used to hand out IPs and meta data. The vlan is 501, and it has a range of 216.249.111.2-254. What happens is that when I create new VM's and they spawn on the server with the VR cloud-init works and it gets the password and the server is good. When is spawns on the other hypervisor it can't connect to the VR and because of this it doesn't get its meta data. What I do is quickly move the VR to the other hypervisor, this allows it to get the meta data so I can login. Once this is done I can login and ping the gateway for vlan 501 but can't ping the other VM or the VR if it's not on the same hypervisor. I know my trunks and vlans are correct and the interfaces that's being assigned. To test this I shutdown the zone and deleted the network. Then I removed Vlan501 from the XenServer's and created it manually on the exact same nic as it was before. Then I added a ISO repo and manually installed 2 vms manually assigning the public ip's. It works as expected, I can ping the gateway and the other VM on the other hypervisor. This was to prove my vlan config.
What do I do?