I’ve got TDS DSL at a location. I was using their modem/router/wifi device for a while but wanted to have a site to site vpn to another location that didn’t require funky routing. So I picked up a pfSense box to use as the router. I hooked it up and everything seemed OK. Got my site to site vpn working and all was well. Things seemed fine until about 4 hours in when everything stopped. I didn’t think to much of it the first time and just rebooted the modem and moved along. Until 4 hours later and then every 4 hours. Things would start working exactly 15 minutes after that. The logs showed a DHCP renewal made everything start back up again. That was odd I thought. So I overrode the DHCP lease renewal time.
I thought great this should fix it. It will renew every 18 minutes (2160/2/60 = 18)but that should keep it from dropping. Of course if that fixed it you wouldn’t be reading this. The same thing now except it’s every 9 or so minutes and fixed at the next 9 minute mark. I’m almost to the point of calling TDS and dealing with their tech support but as anyone who has any networking knowledge knows calling an ISP tech support line is one of the most excruciating things in the entire world.
pfSense has a gateway monitor that watches for gateway up/down events and alarms on them. There is a script that runs on the router checking when a gateway down event occurs. The script is located at /etc/rc.gateway_alarm. I thought “just add a dhclient -r somewhere in there.” Of course it’s not that easy. The dhclient in PATH on pfSense is at /sbin/dhclient. This version doesn’t support the -r flag. Must be old. I didn’t look into it very far. I know you can renew your lease from the GUI so there must be a different dhclient somewhere. There is another dhclient at /usr/local/sbin/dhclient. This one supports -r. So i added “/usr/local/sbin/dhclient -r mvneta0.4090” to the gateway alarm script. mvneta0.4090 is the wan interface on this device. Now as soon as the gateway goes down the interface does a DHCP renew and everything keeps going. I’m sure this causes some retransmits and some other issues but it keep the connection up. I didn’t have to call tech support. I’ll probably end up switching to another provider that uses cable instead of DSL since I have a DOCSIS 3.0 modem not being used.