20.35. kb-00034: Network Unreachable from Wget / Second Stage Timeout¶
20.35.1. Knowledge Base Article: kb-00034¶
20.35.2. Description¶
This article addresses problems with second stage and wget problems during the PXE bootstrapping process of an operating system. Generally speaking, these issues are related to the Top-of-Rack switch configuration, causing port blocking delays.
20.35.3. Solution¶
Throwing a network unreachable error from wget
when trying to fetch second stage initramfs
; however, by the
time you get dropped into a root console, eth0 has an IP address and can connect to the server fine. May also
see a baremetal PXE boot initial PXE boot works but then it’s getting kicked to a shell before it can download
root.squashfs
.
Troubleshooting: You can manually grab the file with wget
after it bails, so communications are working fine.
It just appears it’s not waiting long enough for DHCP and then fails to get the file before it gets an IP.
Note
You can set these changes in the global
profile so it will apply everywhere. It shouldn’t hurt
functioning systems (they will escape the loop early) and might fix this system.
Solution 1: Do you run your switches with Portfast? or Spanning Tree delays?
- You add these to your
kernel-options
parameter to alter the retry and wait times. provisioner.portdelay=<Number of seconds>
- seconds to wait before bring up linkprovisioner.postportdelay=<Number of seconds>
- seconds to wait after bringing up link before dhcpprovisioner.wgetretrycount=<Number of retries before failure>
- wget of squashfs occurs once a second for 10 times by default.
If you need to specify more than one of the above three values, use a space separated list, for example:
provisioner.wgetretrycount=3 provisioner.postportdelay=120
Solution 2: Is something is really “slower” than sledgehammer expects?
You could try setting provisioner.wgetretrycount=60
. kernel-options
is a parameter that lets you
changing the kernel parameters passed to bootenvs. Sometimes it is used to tweak the kernel options that
the kernel is using, but it can be used for other values as well.
CLI Example:
drpcli profiles add global param kernel-console to "provisioner.wgetretrycount=60 provisioner.postportdelay=120"
20.35.4. Additional Information¶
The params listed above should be added to a profile that will be applied to the machine. You can use the global profile to make sure the param will apply to all machines, or add it to individual profiles and apply them directly to the machine.
20.35.4.1. See Also¶
20.35.4.2. Versions¶
all
20.35.4.3. Keywords¶
network unreachable, squashfs, initramfs, spanning tree protocol, stp, portfast, portdelay, postportdelay, wgetretrycount, top of rack switch, ToR, switch, port blocking
20.35.4.4. Revision Information¶
KB Article : kb-00034 initial release: Wed Jun 10 12:40:47 PDT 2020 updated release: Wed Jun 10 12:40:47 PDT 2020