I've got a Lexmark X9575 all-in-one printer. Up to now, it was connected to the Mac via USB. I wanted to reconfigure it to connect it to the network instead so that I can use it with other computers. But I wanted to do so in such a way that it would get its network configuration via DHCP while keeping a fixed address and be resolvable via DNS.
The first thing I did was to remove the printer setup from the Mac (no, you can't change the configuration, you have to un-install and re-install, thank you Lexmark!). Then I connected the printer to the network switch with a standard RJ45 cable. It requested a DHCP lease form the server immediately and the DNS entries got updated. That was a good start. However, the IP address was part of the dynamic range and therefore unpredictable and the name of the printer was hard-coded to the very non-intuitive ET0020002C5B7A
. I wanted something more memorable like lexmark-printer
.
To force a fixed IP address is quite simple, as explained in this DHCP mini-howto. I just added the following to the /etc/dhcp3/dhcpd.conf
file:
host lexmark-printer {
hardware ethernet 00:20:00:2c:5b:7a;
fixed-address 192.168.1.250;
}
Restarted the DHCP server:
$ sudo /etc/init.d/dhcp3-server restart
And it didn't work, for two reasons:
- The DHCP server already had a lease assigned so wasn't going to renew it;
- The printer already has an IP address configured so wasn't going to renew it either.
To solve the first problem, I needed to force the expiry of the lease on the DHCP server. The ISC DHCP server stores leases between restarts in a file called /var/lib/dhcp3/dhcpd.leases
. So revoking the lease can be done by updating that file, removing the entry for the given lease and restarting the DHCP server.
The second problem was of the same ilk: go to the printer's TCP/IP configuration, set DHCP to no
, save the settings, go back into them, set DHCP back to yes
and that forced the printer to request a new lease.
That gave me a static address for the printer while still keeping it managed by DHCP. However, in such a case, the DHCP server doesn't update the DNS database. This has to be done manually, by adding the following in the forward lookup file:
lexmark-printer.home. IN A 192.168.1.250
And this in the reverse lookup file:
250.1.168.192.in-addr.arpa. IN PTR lexmark-printer.home.
Then of course, a restart of the DNS server is required:
$ sudo /etc/init.d/bind9 restart