> It *ought* to be possible to configure both hostname.xl0 and hostname.fxp1 > as dhcp, and whichever one comes up first, will then bridge through the > DHCP server for the other. Unfortunately it just happens by luck of > alphabetical order, that the one which comes up first is *not* looking > at a DHCP server. So after a relatively short period of retries it > goes to sleep. Then the other interface asks for its dhcp address and > gets it quickly. What I expected was that the first would sleep for a > short time then ask again, and get it OK. I haven't seen that happen - > about 30 minutes later and the interface still has no IP.
I was thinking when I posted this that the problem was that the interfaces picked up IP addresses in the wrong order. That would be true if we were routing from one to the other, but in fact I've just realised that the real problem is that the interfaces are brought up *before the bridging is turned on*. So naturally only one of them will be facing a DHCP server. The other one should only get its IP address *after* the bridging is enabled. It never does. I think the problem may be a misunderstanding of dhclient. Why is it not retrying? The man page doesn't give any clues. It *is* still running, as can be seen from ps. I'm not accidentally blocking it with pf as my pf.conf allows everything from anywhere to anywhere! Do I have to do something special to make dhclient wake up? (Yes, I know I can manually kill it and re-issue the command, and I can even automate it by writing a script to grep ifconfig -A, find the interface that has no IP, look for the dhclient for that interface, kill it and restart it - but as I said I'm looking for a guru-level elegant solution, not a crude hack...) Or might this be one of these bridging problems where the packets are going out on the wrong interface...? (thinking aloud as I type here...) OK, I'll go do some tcpdumping. Assuming that the problem turns out to be that the dhcp request for fxp1 is always routed out of fxp1 (makes sense, right?) what can I do to have it routed out the other interface via bridging? (Remembering that the solution has to work symmetrically, if in some other deployment it is the other of the two interfaces which can't see the DHCP server...) thanks Graham