How to get ip address automatically from different dhcp server

Christopher J. Ruwe cjr at cruwe.de
Fri Aug 12 18:32:29 UTC 2011


On Fri, 12 Aug 2011 11:46:34 +0800
dave jones <s.dave.jones at gmail.com> wrote:

I rearrange your mail and post bottom to enable others to have a look.

>On Thu, Jul 28, 2011 at 4:30 AM, Christopher J. Ruwe  wrote:
>> On Wed, 27 Jul 2011 10:49:42 +0800
>> dave jones <s.dave.jones at gmail.com> wrote:
>>
>>> Hi,
>>>
>>> I cat get an IP address from dhcp server by adding the line
>>> in /etc/rc.conf:
>>>
>>> ifconfig_em0="DHCP"
>>>
>>> If I move my laptop to another place, I have to manually run
>>> "dhclient em0" to get an IP. Otherwise, it won't get an IP
>>> automatically.
>>>
>>> My question is it's possible to get ip address automatically from
>>> different dhcp server? thanks.
>>>
>>> Regards,
>>> Dave.
>>> _______________________________________________
>>> freebsd-questions at freebsd.org mailing list
>>> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
>>> To unsubscribe, send any mail to
>>> "freebsd-questions-unsubscribe at freebsd.org"
>>
>> Have a look at /etc/devd.conf. Mine include a portion
>>
>> #
>> # Try to start dhclient on Ethernet like interfaces when the link comes
>> # up.  Only devices that are configured to support DHCP will actually
>> # run it.  No link down rule exists because dhclient automaticly exits
>> # when the link goes down.
>> #
>> notify 0 {
>>        match "system"          "IFNET";
>>        match "type"            "LINK_UP";
>>        media-type              "ethernet";
>>        action "/etc/rc.d/dhclient quietstart $subsystem";
>> };
>> #
>> notify 0 {
>>        match "system"          "IFNET";
>>        match "type"            "LINK_DOWN";
>>        media-type              "ethernet";
>>        action "/etc/rc.d/dhclient quietstop $subsystem ; ifconfig $subsystem inet 0.0.0.0";
>> };
>>
>> I am under the impression that this rule does what you want to do.
>>
>> Cheers,
>> --
>> Christopher J. Ruwe
>> TZ GMT + 2
>>

> Hi Christopher,
> 
> Thanks for your solution. It does help a lot, but there's one problem.
> For example, DHCP server is not started for some reason and my computer's
> ethernet cable is plugged. Once dhcp server started, I can't get the IP unless
> I unplug and then plug the ethernet cable. Do you know how to solve
> this issue? Thank you.
> 
> Regards,
> Dave.
> 

Ok. To check whether I understand what you are saying: Your computer is running, but an external DHCP-server is not. Your computer tries to get an IP from the external DHCP server, which is down, so dhclient is unsuccessful. You then kick the DHCP-server back to live and then you have to plug in and out to get an IP?

Assuming I understand correctly, that is exactly what should happen. You see, normally DHCP-servers don't flood the network with "Hello all dhclients, I am dhcp-server, please tell me if you need an IP", usually the opposite direction is in order as in "hello dhcp-server, I am dhclient, I need an IP, please give me one". 
You now have two options: 1) You coerce a manual request be running dhclient. 2) You plug in and out, which runs dhclient as you have configured to do so in your devd.conf.
Of course you can set the retry-time for dhclient (see `man dhclient`) to an absurldly low threshold, so you are saved doing the dhcp-discover-procedure manually. It is, however, dubious, whether you want to do so. It might be a smarter way to fix that DHCP-server of yours.

Hope to have been of some help here, 
cheers
-- 
Christopher J. Ruwe
TZ GMT + 2


More information about the freebsd-questions mailing list