iPXE discussion forum

Full Version: Problem with more than 1 interface
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi everyone,

I´m in the process of developing a small PXE solution for our industrial machines and I´m using iPXE to load what I need there.

Now, some of these machines have more than 1 NIC, maybe 2-4 ,usually at least 2 of them are connected and sometimes this leads to the following issue:

Machine starts up, PXE ROM receives an IP and loads menu, then starting an option like this:
KERNEL /Linux/iPXE/ipxe.lkrn
APPEND dhcp && chain

Now I´ve seen 2 different things happen on the same device, within 5 minutes and 10 reboots:

Possibility 1: NIC comes up, receives IP, further commands are loaded via the PHP file, everything nice

Possibility 2: Trying to "up" eth0 and failing. The MAC showed is NOT the correct one, therefore I guess ipxe is trying one of the other internal interfaces and fails (depending on machine type they may be up or disconnected).
It is not trying to bring up other interfaces but fails immediately....

Unfortunately I can´t reproduce this error on test machines and my "playtime" with the real device is very limited due to business reasons. So I was hoping that one of you could tell me what to add to the "dhcp" line in the IPXE script that would ensure trying on all interfaces first before proceeding.

Would something like
APPEND :retry && dhcp || goto retry && chain

work or would it just be searching for DHCP on the wrong interface forever?

Any help is very much appreciated!

Thanks in advance
(2018-03-28 22:01)LordBadHabit Wrote: [ -> ]work or would it just be searching for DHCP on the wrong interface forever?

From: http://ipxe.org/cmd/ifconf

ifconf documentation Wrote:iPXE will open the first specified network interface and attempt to automatically configure it. If automatic configuration succeeds, the command will terminate and the network interface will be left open. If automatic configuration fails, the network interface will be closed and iPXE will proceed to the next network interface in the list.
If no network interfaces are explicitly specified, iPXE will try all available network interfaces.
If no configurators are explicitly specified, iPXE will try all available configurators.

So the retry, as is also shown as an example on that page should work.

The default for iPXE is to run: http://ipxe.org/cmd/autoboot

For your actuall issue, have you made sure that the machine is not connected to a Switch that has STP enabled? The error you get on failure gives you an url that might have some suggestions to try.

also please run ifconf on the machine and document which nics you have with mac adress and also which driver is in use for each nic.
I knew it would be simple if you know how Blush

APPEND :retry && ifconf || goto retry && chain

did the trick.

Thanks a lot!

By the way, as I´m quite new to this "iPXE" world:
Is there maybe a PXE-server solution/appliance/fork/whatever available that would allow me to enable/disable PXE boot through a Webinterface by client/mac-address?

Like a list of clients where I could configure "next time this MAC does a PXE boot, do this"?

I´m quite sure that FOG can do this, but it can do a million things more that I wouldn´t need so I was hoping for something smaller.

Thanks a lot in advance
Reference URL's