Date: Sat, 10 Oct 1998 18:53:24 -0600 From: Oscar Bonilla <obonilla@guate.net> To: bernt@usa.net Cc: freebsd-questions@FreeBSD.ORG Subject: setting up dhcp Message-ID: <36200184.E84181D3@guate.net>
next in thread | raw e-mail | index | archive | help
first of all you have to install the client from the pkgs
what i have is : isc-dhcp-1.0.0
the client is installed in
/usr/local/sbin/dhclient
that's the command you'll have to run... but not yet!!
first you have to create some files in /etc
edit /etc/dhclient.conf and fill it whith something like this:
-----------------------------------------
interface "XXXX" {
request subnet-mask, routers,
domain-name, domain-name-servers, host-name;
require subnet-mask, domain-name-servers, routers;
script "/etc/dhclient-script";
}
------------------------------------------
where XXXX is the name of your network interface (ed0 for example)
the request line is what you ask to the dhcp server to give you.
the require line says the minimum you will accept, and the script
line tells dhclient which script to call when configuring this
interface.
next you have to create /etc/dhclient-script and fill it whith something
like this:
----------------------------
#!/bin/sh
case $reason in
'PREINIT')
ifconfig $interface netmask 255.255.255.255 up
echo "dhcp preinit" >/dev/console
;;
'BOUND')
ifconfig $interface delete
ifconfig $interface $new_ip_address netmask $new_subnet_mask up
route add default $new_routers
echo "domain $new_domain_name" >/etc/resolv.conf
echo $new_domain_name_servers | sed 's/ /\
/g' | awk '{print "nameserver " $1}' >>/etc/resolv.conf
echo "dhcp bound" >/dev/console
;;
'REBIND')
ifconfig $interface delete
ifconfig $interface $new_ip_address netmask $new_subnet_mask up
route add default $new_routers
echo "domain $new_domain_name" >/etc/resolv.conf
echo $new_domain_name_servers | sed 's/ /\
/g' | awk '{print "nameserver " $1}' >>/etc/resolv.conf
echo "dhcp rebound" >/dev/console
;;
'REBOOT')
ifconfig $interface delete
ifconfig $interface $new_ip_address netmask $new_subnet_mask up
route add default $new_routers
echo "domain $new_domain_name" >/etc/resolv.conf
echo $new_domain_name_servers | sed 's/ /\
/g' | awk '{print "nameserver " $1}' >>/etc/resolv.conf
echo "dhcp reboot" >/dev/console
;;
*)
echo $reason: unhandled >/dev/console
;;
esac
----------------------------------------------------
note that i only handle a bunch of responses. if you want to handle'em
all read the man page for dhclient
now you should be able to just run /usr/local/sbin/dhclient and
watch the console for messages concerning the dhcp protocol
one last thing. the dhclient puts the net interface in promiscuos mode
to get the responses (since it doesn't have an ip address at this stage)
so you have to enable the bpf in the kernel for dhclient to work
regards,
-oscar
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?36200184.E84181D3>
