Whichever end gives out the leases (is that the router?) sets a max valid time for that lease. The first thing to do is to check that out; if it is set to 20 minutes, which is on the low side, but not completely unreasonable, the question may be why are your other machines seem to be ignoring it.
then you'll also need to look at the config for dhcp client.
locate dhcp | grep -i conf
will give you a number of candidates; you'll just have to find the right one.
In there you'll probably see a stanza like
## Type: integer
## Default: ""
# Lease time to request ( -l option)
# Specifies (in seconds) the lease that is suggested to the server.
# The default is infinite. For a mobile computer you probably want to
# set this to a lower value.
from there, either you have an explicit low time set, which you should increase or you don't have any timeout set and you should set an appropriate value.