Troubleshooting
Most FRR problems on Linux are one of three things: the session isn't up, the route isn't accepted, or the route is in FRR but traffic still goes elsewhere. Work in that order.
| Symptom | Check | Usual cause |
|---|---|---|
| Session stuck in Active or Connect | vtysh -c "show bgp summary"; nft list chain inet filter input; tcpdump -ni eth0 tcp port 179 | Firewall dropping TCP 179, wrong neighbour address, no route to the neighbour |
| Session Idle (Admin) | show bgp summary | neighbor … shutdown left in the configuration |
| Idle (PfxCt) after a burst of routes | show bgp neighbors <ip> | The peer exceeded maximum-prefix |
| No routes from a peer, session up | show bgp ipv4 neighbors <ip> received-routes vs routes | The import route map or prefix list rejects them; or there's no route map at all (FRR accepts and sends nothing on an eBGP session without a policy, unless no bgp ebgp-requires-policy) |
| Your prefix isn't announced | show bgp ipv4 neighbors <ip> advertised-routes; ip route | No exact route in the table for the network statement (add the blackhole), or the export route map |
| OSPF neighbour missing | show ip ospf interface eth2; the input chain's counter | Firewall dropping protocol 89, area or network type mismatch, interface not in OSPF |
| Route in FRR, but not in the kernel | show ip route; ip route | Zebra couldn't install it (look for r or q codes and journal errors), or the daemon isn't enabled in daemons |
| Traffic still goes out the wrong ISP | ip route get <address> | Local preference not set as you think; a static route or another table winning |
| Incoming traffic lost for minutes after a link failure | The upstream's view: Last reset | The upstream waits for its hold timer: use BFD or lower timers |
| Your config comments vanished | head /etc/frr/frr.conf | write memory rewrote the file |
systemctl reload frr fails | journalctl -u frr | No frr-pythontools on Debian 13: restart instead, or use FRR's own repository |
Cheat sheets: BGP troubleshooting, OSPF, nftables, Network error messages explained.