In an EVPN-VXLAN Campus Fabric, the border leafs can run OSPF inside a VRF toward a firewall and toward WAN/SD-WAN routers. If all of these neighbors are in the same OSPF area, and the OSPF export policy accepts 0.0.0.0/0 without matching a protocol, the border leaf can send a default route toward the WAN routers.
0.0.0.0/0
This can stay hidden until a change makes all the IRBs go down and come back up at the same time, for example an MTU change on the IRBs. When that happens, every OSPF session is reset and the routes are shared again with all neighbors, including the WAN routers. If the WAN routers pass that default route into the WAN, other sites can lose connectivity.
rpd[<pid>]: RPD_OSPF_NBRDOWN: OSPF neighbor <neighbor-ip> (realm ospf-v2 irb.<unit> area 0.0.0.0) state changed from Full to Down due to KillNbr (event reason: interface went down)
dcd[<pid>]: DCD_PARSE_CFG_WARNING: irb.<unit> iff's config mtu <value> is bigger than member link <interface>.0 iff's mtu 1500 for family inet
user@border-leaf> show interfaces irb.<unit> extensive | match "Protocol inet"
Protocol inet, MTU: 1500
mgd[<pid>]: UI_COMMIT_NOT_CONFIRMED: Commit was not confirmed; automatic rollback in process
The issue comes back once OSPF with the WAN routers is up again, even after the rollback. It stops only when the links to the WAN routers are disconnected.
Cause
The VRF has the WAN routers and the firewall in the same OSPF area, with an export policy like this:
routing-instances <vrf-name> {
protocols {
ospf {
area 0.0.0.0 {
interface irb.<wan-unit-1>;
interface irb.<wan-unit-2>;
interface irb.<firewall-unit>;
}
export <export-policy>;
policy-statement <export-policy> {
term 01_default {
from route-filter-list <default-route-list>; ## 0.0.0.0/0 exact, no protocol match
then accept;
term 02 {
from route-filter-list <site-aggregate-list>;
term 03 {
then reject;
With this setup, the default route can reach the WAN routers in two ways:
This is expected OSPF and policy behavior. It is not a software defect.
Check
Run on each border leaf to see if the border leaf is creating a default route:
user@border-leaf> show ospf database instance <vrf-name> advertising-router self extensive
user@border-leaf> show route table <vrf-name>.inet.0 0.0.0.0/0 extensive
If the first command shows a 0.0.0.0 external route, the border leaf is creating it, and it will be sent to every OSPF neighbor in that area.
Fix
After the change, confirm the border leaf no longer creates the route:
The output should not show any 0.0.0.0/0 or site summary route created by the border leaf.