DHCP option 121: classless static routes (RFC 3442), how to encode them in hex and set them on ISC dhcpd, Kea, pfSense and MikroTik

{prefix}{significant destination octets}{router} per route, in hex; 0.0.0.0/0 has zero destination octets. Always include the default route in 121, because the client discards the option 3 router when it receives 121. Windows asks for it as 249 besides 121; Kea 2.4+ writes it as ‘192.0.2.0/24 - 192.168.1.254’; MikroTik as 0x… with code=121.

September 26, 2026 · 4 min

GCP Cloud VPN will not come up: reading the IKE logs (peer not responding, traffic selectors narrowed) and BGP with pfSense

Logs Explorer with resource.type=vpn_gateway and the IKE status text. ‘peer not responding’ = IKE version, PSK, IP or UDP 500/4500; ’traffic selectors narrowed’ = phase 2 subnets that do not match. With pfSense and BGP: permit route maps in/out or no routes are accepted.

September 26, 2026 · 4 min

pfctl: table cheat sheet for pfSense, OPNsense and FreeBSD

pfctl -sT lists tables; pfctl -t -T show|add|delete|test|flush|replace -f. On pfSense aliases are tables, sshguard is the failed-login lockout, and manual changes vanish on the next rules reload.

September 25, 2026 · 4 min

pfSense and OPNsense: the port forward does not work from the LAN itself (NAT reflection and split DNS)

LAN → public IP traffic never leaves through the WAN, it dies at the firewall. Split DNS (host override → internal IP) is the clean way; Pure NAT + automatic outbound NAT for reflection when the DNS is not yours.

September 25, 2026 · 4 min

pfSense: ld-elf.so.1: Shared object "libssl.so.30" not found, required by "pkg"

pkg-static does not depend on libssl and keeps working. certctl rehash, pkg-static install -fy pkg, pkg-static install -xfy pfSense-repo pfSense-upgrade, then the upgrade through System > Update, never with pkg upgrade.

September 25, 2026 · 3 min

pfSense: Let's Encrypt certificate with ACME and Cloudflare DNS, then using it in HAProxy

Cloudflare token with Zone:Read + DNS:Edit on the zone, DNS-Cloudflare method with Token/Account ID/Zone ID, staging first, and a ‘Restart Local Service: haproxy’ action on the certificate so HAProxy reloads the new cert.

September 25, 2026 · 4 min

pfSense: OpenVPN stops accepting clients with 'CRL has expired'

Edit the CRL under System > Certificates > Certificate Revocation, set Lifetime 730 and save: it is regenerated with valid dates. On old versions, apply the ‘Fix for CRL expiration lifetime’ patch with System Patches first.

September 25, 2026 · 3 min

Virtualized pfSense with VirtIO: no traffic until hardware checksum offload is disabled

With vtnet, FreeBSD drops packets whose checksum was never computed. Tick Disable hardware checksum offload and reboot the VM even though the GUI does not ask; until then no traffic flows.

September 25, 2026 · 3 min