[ipxe-devel] switch causing DHCP timeout

Wissam Shoukair wissams at mellanox.com
Tue May 6 20:09:27 UTC 2014

This explains a lot.
Thanks Richard.

-----Original Message-----
From: Richard Hornbaker [mailto:Richard at Hornbaker.com] 
Sent: יום ב 05 מאי 2014 18:07
To: Christian Hesse
Cc: Wissam Shoukair; ipxe-devel at lists.ipxe.org
Subject: Re: [ipxe-devel] switch causing DHCP timeout

Expanding on Christian's comments...

The default behavior for spanning tree is to block incoming packets from a newly-activated port until the loop-detection protocol times out, and the port is known to be safe from network loops.

Cisco's Portfast setting allows traffic to pass immediately while the loop detection is in process.  The risk being that a loop could be created in the network for a few seconds until it's detected.

Normally, all known server and workstation ports are configured by the network admin for Portfast, but for safety it's not the default setting.

A workaround on the client side is to be persistent about retrying DHCP until an answer is heard.  Unless your script can do something useful without an IP address, this is probably the safest approach anyway.  I recall a 3-4 line snippet that basically checked for good DHCP, and looped if it failed.

(Cisco Systems)

> On May 5, 2014, at 4:00, Christian Hesse <list at eworm.de> wrote:
> Wissam Shoukair <wissams at mellanox.com> on Mon, 2014/05/05 10:51:
>> Thanks Christian.
>> 1. What is the consequences of setting the port's mode to "PortFast" 
>> and not completing the spanning tree initialization?
>> 2. Can I always set this
>> mode to be "PortFast"? Is there any cases where I can't use this mode?
> Spanning tree is a network protocol that ensures a loop-free topology [0].
> You should keep it enabled for ports that connect switches to each other.
> Usually it is save to use "PortFast" for ports that clients are 
> connected to only. But again, read the documentation and do not blame 
> me if anything breaks. ;)
> [0] http://en.wikipedia.org/wiki/Spanning_Tree_Protocol
> -- 
> main(a){char*c=/*    Schoene Gruesse                         */"B?IJj;MEH"
> "CX:;",b;for(a/*    Chris           get my mail address:    */=0;b=c[a++];)
> putchar(b-1/(/*               gcc -o sig sig.c && ./sig    */b/42*2-3)*42);}
> _______________________________________________
> ipxe-devel mailing list
> ipxe-devel at lists.ipxe.org
> https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel

More information about the ipxe-devel mailing list