It should be possible. You should be able to pass an interface name to the dhcp client so that it only configures that interface. For example, using the isc-dhcp-client, start the client like
**$** `dhclient eth1`
(I'll assume eth1 is connected to the modem and eth0 to the local network in these examples)
The dhcp server should also have such an option: on Debian using the isc-dhcp-server, "/etc/defaults/isc-dhcp-server" contains a line like
`INTERFACES="eth0"`
but check the particular server's documentation. You'll also need to turn on ip forwarding: in "/etc/sysctl.conf", put
`net.ipv4.ip_forward=1`
Finally, you'll probably need to configure ip masquerading using iptables ([this tutorial][1] might be useful):
**$** `iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE`
You might take a look at .
[1]: http://www.ibiblio.org/pub/linux/docs/howto/other-formats/html_single/Masquerading-Simple-HOWTO.html