Diagnosing FreeBSD Ethernet Link Flapping at the Driver Level
How to tell whether a flapping network interface is a cabling/physical-layer problem, a switch-side issue, or a driver/firmware problem, using FreeBSD's own interface statistics.
tag
24 posts
How to tell whether a flapping network interface is a cabling/physical-layer problem, a switch-side issue, or a driver/firmware problem, using FreeBSD's own interface statistics.
Why ntpd sometimes refuses to correct large clock offsets, how to read its own diagnostic output correctly, and when stepping the clock manually is the right call instead of waiting.
Configuring CARP for automatic IP failover between two FreeBSD hosts, and the parts of a real HA setup that CARP alone doesn't handle for you.
Setting up multiple routing tables (fibs) on FreeBSD for policy routing across several uplinks, and what MPTCP actually offers versus simple multi-fib load distribution.
No network connectivity, or an interface that won't get an IP address — here's how to work through Haiku's networking stack from hardware detection through DHCP.
Why editing /etc/resolv.conf directly often silently fails to change actual DNS behavior on systemd-resolved systems, and the correct way to override DNS settings that actually persists.
Creating a separate network stack on the same Linux machine to test firewall rules, routing configurations, or networked software without touching the host's real network configuration.
Working through the network preference files and configuration state that macOS updates most commonly leave in an inconsistent state, before assuming a hardware or router problem.
Using the same BSD packet filter that powers macOS's Application Firewall directly, for network-layer filtering the GUI's simple allow/deny-per-app model can't express.
The layered, extensible packet-filtering architecture introduced in Windows Vista that both Windows Firewall and most third-party security software actually build on, rather than each implementing separate low-level network hooks.
Working through the DNS client cache, adapter-specific resolver settings, and the actual configured servers systematically, instead of jumping straight to reinstalling network drivers.
Ping works, but domain names won't resolve inside WSL2 — or the reverse. Here's how to actually diagnose whether the problem is DNS configuration, VPN interference, or the networking mode itself.
A complete walkthrough switching between WSL2's default NAT networking and mirrored networking mode — and how to verify which one actually solves your specific reachability problem.
A complete walkthrough combining two or more network interfaces into a single bonded interface using NetworkManager — for redundancy, throughput, or both, depending on the mode you choose.
WSL2's original networking design put it behind its own virtual network, invisible to the rest of your LAN by default. Mirrored networking mode, added later, takes a fundamentally different approach — and each has real tradeoffs.
How pod-to-pod networking, Services, and kube-proxy's packet rewriting fit together to make Kubernetes' flat network model actually work.
A complete walkthrough getting real TCP/IP networking working on FreeDOS using mTCP and a packet driver, enough for FTP, Telnet, and a basic web browser.
A jail starts fine but has no network connectivity, or can't reach the host — usually a VNET/epair configuration problem, not a jail bug.
A command touching an NFS-mounted path just hangs forever instead of erroring out. This is expected default NFS behavior, not a bug — here's how to diagnose it and when to change it.
A complete walkthrough for assigning a static IP, default route, and DNS resolution on FreeBSD, persisted correctly across reboots.
A complete walkthrough configuring a WireGuard tunnel on FreeBSD using the in-kernel wg driver, from key generation to a working peer-to-peer connection.
How FreeBSD names and configures network interfaces, manages routing tables, and exposes the tools to inspect both.
How pf's rule evaluation model, tables, and anchors fit together on FreeBSD, with a ruleset you can adapt for a real host.
Ping by IP works but hostnames don't resolve. Here's a systematic path through resolv.conf, systemd-resolved, and nsswitch.conf to find where resolution is actually breaking.