maxiepax / go-via

go-via is a deployment tool for imaging and customising VMware ESXi Hypervisors.
GNU General Public License v3.0
17 stars 1 forks source link

Unicast UDP Acceptance #3

Closed virtualFrog closed 5 months ago

virtualFrog commented 10 months ago

We're trying to get this approach to work in a scenario where we stretch clusters across two datacenters. However, we found out using tcpdump that the current implementation only supports broadcast UDP and not UDP Unicast.

Here is a tcpdump snippet from the observed behavior:

14:09:21.210013 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 14:23:f2:88:00:18 (oui Unknown), length 359 14:09:21.210850 IP 10.65.246.253.bootps > seda.bootps: BOOTP/DHCP, Request from 14:23:f2:88:00:18 (oui Unknown), length 359 14:09:21.210878 IP seda > 10.65.246.253: ICMP seda udp port bootps unreachable, length 395 14:09:21.212301 IP seda.bootps > 255.255.255.255.bootpc: BOOTP/DHCP, Reply, length 297 14:09:21.213632 ARP, Request who-has seda tell 10.65.246.121, length 46 14:09:21.213637 ARP, Reply seda is-at 00:0c:29:62:3d:e3 (oui Unknown), length 28 14:09:21.213697 IP 10.65.246.121.1978 > seda.tftp: TFTP, length 52, RRQ "mboot.efi" octet tsize 0 blksize 1468 windowsize 4 14:09:21.213730 IP seda.bootps > 10.65.246.253.bootps: BOOTP/DHCP, Reply, length 297 14:09:21.214415 IP 10.65.246.253.bootps > 255.255.255.255.bootpc: BOOTP/DHCP, Reply, length 297 14:09:21.215344 IP seda.43207 > 10.65.246.121.1978: UDP, length 28

We'd love to have Unicast Packet support for this from this appliance. Then we could make this approach work perfectly in our scenario.

maxiepax commented 10 months ago

Hey!

Not really sure i understand what the issue here is :) Would it be possible to hop on a Zoom call so that you can share some info about your network layout?

virtualFrog commented 10 months ago

Yes! I would be available to do that a zoom session today. I'm in CET Timezone.

In the meantime here are more details about our issue: We successfully installed a esxi host that is running in the same datacenter as go-via. (no ip helper set in the network config)

We then tried to install a new esxi host that is in the other datacenter, but on the same network. Did not work. We involved our networking guy who told us we need to enable ip helper and dhcp-relaying on the switches. We tried to install again but go-via keeps telling us "ignored because mac address is not flagged for re-imaging" even though the MAC is correct and the host is set for re-image. We looked at the tcpdump (taken on the go-via machine, attached above) and suspected that go-via only replies to broadcast instead of unicast.

After opening the issue I've spent a good hour going through the code here and found support for Unicast in the dhcp.go file. Right now I think the issue might be that the switch (10.65.246.253) is relaying the dhcp request with his own mac-address that is not known to go-via (hence the error about the mac) but I'm not sure if that is the correct assumption because in the go-via log it is logging the correct MAC address.

virtualFrog commented 5 months ago

This issue was not with the go-via, but was a misconfiguration within the Cisco ACI construct. I unfortunately have no details on which configuration options were responsible but we got it to work eventually.