Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 Aug 2011 20:32:04 +0200
From:      "Christopher J. Ruwe" <cjr@cruwe.de>
To:        dave jones <s.dave.jones@gmail.com>
Cc:        "freebsd-questions@freebsd.org" <freebsd-questions@freebsd.org>
Subject:   Re: How to get ip address automatically from different dhcp server
Message-ID:  <20110812203204.931270c4.cjr@cruwe.de>
In-Reply-To: <CANf5e8bHvznRJmZ=j0T3gJ3jdf3=piUdCNSOvQx4DgQ-ukYJTA@mail.gmail.com>
References:  <CANf5e8ZtkdWZhM6f=MeWv6%2BmNJOZ75jjox28Ss7L9RWpGNG3=g@mail.gmail.com> <20110727223034.0c0f0c8d@dijkstra> <CANf5e8bHvznRJmZ=j0T3gJ3jdf3=piUdCNSOvQx4DgQ-ukYJTA@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 12 Aug 2011 11:46:34 +0800
dave jones <s.dave.jones@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@gmail.com> wrote:
>>
>>> Hi,
>>>
>>> I cat get an IP address from dhcp server by adding the line
>>> in /etc/rc.conf:
>>>
>>> ifconfig_em0=3D"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@freebsd.org mailing list
>>> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
>>> To unsubscribe, send any mail to
>>> "freebsd-questions-unsubscribe@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. =A0Only devices that are configured to support DHCP will actually
>> # run it. =A0No link down rule exists because dhclient automaticly exits
>> # when the link goes down.
>> #
>> notify 0 {
>> =A0 =A0 =A0 =A0match "system" =A0 =A0 =A0 =A0 =A0"IFNET";
>> =A0 =A0 =A0 =A0match "type" =A0 =A0 =A0 =A0 =A0 =A0"LINK_UP";
>> =A0 =A0 =A0 =A0media-type =A0 =A0 =A0 =A0 =A0 =A0 =A0"ethernet";
>> =A0 =A0 =A0 =A0action "/etc/rc.d/dhclient quietstart $subsystem";
>> };
>> #
>> notify 0 {
>> =A0 =A0 =A0 =A0match "system" =A0 =A0 =A0 =A0 =A0"IFNET";
>> =A0 =A0 =A0 =A0match "type" =A0 =A0 =A0 =A0 =A0 =A0"LINK_DOWN";
>> =A0 =A0 =A0 =A0media-type =A0 =A0 =A0 =A0 =A0 =A0 =A0"ethernet";
>> =A0 =A0 =A0 =A0action "/etc/rc.d/dhclient quietstop $subsystem ; ifconfi=
g $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,
>=20
> 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 u=
nless
> I unplug and then plug the ethernet cable. Do you know how to solve
> this issue? Thank you.
>=20
> Regards,
> Dave.
>=20

Ok. To check whether I understand what you are saying: Your computer is run=
ning, 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 se=
e, 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".=20
You now have two options: 1) You coerce a manual request be running dhclien=
t. 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 a=
n absurldly low threshold, so you are saved doing the dhcp-discover-procedu=
re manually. It is, however, dubious, whether you want to do so. It might b=
e a smarter way to fix that DHCP-server of yours.

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110812203204.931270c4.cjr>