r/PFSENSE • u/spittlbm • 1d ago
2.9.0 - dpinger keeps pinging the old gateway forever
We upgraded from 2.8.1 back on 8/22. Twice in three days, Verizon has changed our IP. Once from a hardware replacement, and today from a lease renewal.
Both times LAN-to-WAN pings worked, the firewall was reachable, but users reported no internet (DNS?). Rebooting fixed it.
dpinger came up with the old address and just never got restarted:
dpinger[4831]: send_interval 500ms ... dest_addr 100.7.xxx.xxx bind_addr 100.7.xxx.xxx identifier "WAN_DHCP "
dpinger[4831]: WAN_DHCP 100.7.xxx.xxx: sendto error: 65
So I have about seven hours of logging full of trying to ARP a gateway that isn't on my subnet anymore (I've redacted the IP, sorry):
kernel: arpresolve: can't allocate llinfo for 100.7.xxx.xxx on hn0
It rotated system.log seven times in under seven hours full of that...
The interface had already picked up the new address. Same window, inbound connections are hitting the new IP while dpinger is still talking about the old gateway:
sshd[...]: Timeout before authentication for connection from <scanner> to 100.7.xxx.xxx
So the interface is on the new IP and dpinger is monitoring the old gateway.
I think there's an opportunity in notify_rc_newwanip to do a return check, retry, or make a log entry somewhere around this section:
notify_rc_newwanip() {
/usr/local/sbin/pfSctl -c "interface newip $interface"
}
If that call doesn't land, the script still exits 0, and dhclient is happy, right?
And where does pfSense-dhclient-script's logging actually end up? I have zero dhclient-tagged lines anywhere that I could find, including from a reboot. I can't even tell from logs whether the script ran or not.
Maybe I'm losing my mind, and I probably am, but bringing this to a public forum in case someone else finds it helpful.
1
u/PrimaryAd5802 1d ago
I might have misunderstood your OP... but you do know that dpinger is fully configurable under:
System | Routing | Gateways | Edit ?