DHCP (again)
The following are the best DHCP resources I have found. Most of these are specific to Road Runner cable service but should be applicable to any cable service. Please tell me about any other DHCP resources you find.I would recommend the FreeBSD link below over what I’ve done. I think that article does a better job of documenting what needs to be done. My stuff is spread over several documents and should be consolidated into a single resource. At the moment, that is at the top of a long list of low priorities.
ISC Dynamic Host Configuration Protocol (DHCP) | Developers and maintainers of DHCP software. But use the ports first. See the next link. | Setting up a DHCP client on FreeBSD | Specific to FreeBSD. | Road Runner Cable Internet Modem Service | Contains a list of Road Runner cities with the login program for each. | RRLinux Help Site | For Linux, but again, should be universal. |
22 August 1998
It’s time to reinstall the DHCP client. Again. Pity I can’t get that other drive running. Then I’d just copy it from there. Shame, really.Preparing the kernel
After almost a week off, I’m back into it. My next task is to install DHCP. My main resource for this procedure is Setting up a DHCP client on FreeBSD. I’ve followed it pretty much exactly as it appears. The key points are:- recompile your kernel to contain:
pseudo-device bpfilter 4
- Make the necessary devices. But perhaps you should make sure they don’t exist yet. Check the output from the ls bpf* below and make only those devices which don’t appear.
# cd /dev # ls bpf* # ./MAKEDEV bpf0 bpf1 bpf2 bpf3
- Configure your /etc/dhclient.conf file.
# cp /usr/ports/net/isc-dhcp2/work/dhcp-2.0b1pl0/client/dhclient.conf /etc
Compiling the port
Well, the DHCP install instructions do say that DHCP is not straighforward to install. And it isn’t. But I did the following and used CD #3 of FreeBSD 2.2.7. Please note, that the following instructions contain extra
steps. See Building a port – background info on make
for more concise information.
# mount -t cd9660 /dev/wcd0c /cdrom # mkdir /usr/ports # cd /usr/ports # ln -s /cdrom/ports/distfiles distfiles # cd /usr/ports/net/isc-dhcp2 # make # make install
After all of that, it took me a while to figure out where the results were. I knew the stuff had been built, but where was it? [see below for more information about this search]. I found out by doing the following:
find dhclient . | grep dhclient
Which showed that what I wanted was to be found in:
/usr/ports/net/isc-dhcp2/work/dhcp-2.0b1p16/client
After going to that directory, I issued the dhclient ed0 command. And surprise surprise surprise! It worked.
NOTE: You might also want to use the locate command.
To find where a port has installed its files, examine the "pkg-plist" (package packing list) file in the port’s directory. You’ll find a list of pathnames for all files the port installs (caveat: I believe this list is generated manually by the port maintainer; errors or omissions can occur). I find this useful to find the executables of those ports where the executable’s name is different from the port’s name (for example, wmaker/windowmaker).
My cable modem connection would always go bad after being up for about 12hrs. It would still work, but very very slowly. The problem was that DHCP messages weren’t getting through my firewall. It took me a long time to realise this because it’s not mentioned in the FreeBSD Handbook. There is plenty of info out there on the Net about suitable firewall rules; the relevant ports are 67 and 68.