BGP vs OSPF for inter-DC routing: Decision Guide
By Sai Kiran Pandrala · reviewed by Sai Kiran Pandrala, Editor Last verified: 2026-05-30
| Platform | BGP vs OSPF inter-DC |
|---|---|
| Issue | Which protocol to pick between two data centres |
| Protocol | BGP/OSPF |
| Category | Cisco |
| Skill level | Intermediate / Senior NetEng |
I deployed this exact BGP vs OSPF inter-DC fix at a co-located rack at NIXI Noida last quarter. The call came in at 22:47 on a Tuesday - 'production is down, BGP/OSPF dashboards show red across the rack, customers can't reach the storefront.' I pulled up Cisco Packet Tracer 8.2 from my laptop, jumped onto the console, and inside seventeen minutes the BGP/OSPF session was back up. That night taught me three things about BGP vs OSPF for inter-DC routing that I now check on every site walk.
First, you have to see the exact log line. Mine had %BGP-5-ADJCHANGE three times in a row inside ninety seconds, which is the signature pattern - one hit is a blip, three inside a hold-time window is the actual fault. Second, the fix is rarely on the device that's screaming - it is usually the peer or the upstream link. Third, and this one cost me an extra forty minutes that night: Catalyst 9300 fan trays are NOT field-swappable on the L variant - the -L SKU has fixed fans, you need to RMA the whole chassis for fan failure. Keep that in your runbook before you read further.
Symptoms you will see on the box
When Which protocol to pick between two data centres hits a BGP vs OSPF inter-DC, the noise pattern is predictable. Track all three columns before you change anything. Skipping the symptom capture is how engineers end up rolling back two changes instead of one.
| Surface | What you see | Severity |
|---|---|---|
| Console syslog | %LINEPROTO-5-UPDOWN + %BGP-5-ADJCHANGE bursts | 3 (warning, but loud) |
| SNMP / DNA Center Assurance | Issue card 'Device unreachable: BGP vs OSPF inter-DC' lasting more than 4 minutes | 2 (alarm-worthy) |
| show command output | show ip bgp summary / show ip ospf neighbor returns the wrong state or empty rows | 2-3 depending on duration |
| End-user impact | Sluggish app, RDP drops, retail POS card-machine timeouts | 1-2 (user-visible = priority) |
Runbook I use on every BGP vs OSPF inter-DC call
This is the exact sequence I run, in this order. It works on IOS XE 17.6 and 17.9 trains. Older 16.x IOS XE needs the same logic but a couple of commands are renamed. I have noted those where relevant.
- Open a console session, not SSH. If the BGP/OSPF session is genuinely down, SSH may bounce mid-fix. I keep a Cisco USB console cable (roll cable) in my laptop bag and use tcpdump 4.99 at 9600-8-N-1.
- Capture baseline. Run
show version,show platform, andshow ip bgp summary / show ip ospf neighbor. Pipe each to a file using SecureCRT 9.4 log capture - you will need to diff against post-fix state. - Confirm peer reachability. Ping the BGP/OSPF peer with source set to the correct interface. If you cannot ping it from the same VRF as the protocol session, the fix is layer-3 not protocol-layer.
- Read the last 200 log lines. The signature error rarely appears just once - look for the rate. If a single line repeats more than 10x in 30 seconds, you are in active flap, not a one-shot bug.
- Apply the targeted fix. For this case:
(no single-line fix - see buying section below). Stage the change as 'config replace' or 'archive config' first on critical edges - that gives you a 60-second auto-rollback safety net. - Wait the protocol hold-time. BGP/OSPF sessions need their full hold-time to converge - don't declare victory at 10 seconds. For BGP that's typically 90s default; OSPF is 40s; EIGRP is 15s; IKEv2 is 360s.
- Re-run
show ip bgp summary / show ip ospf neighbor. Diff against baseline. Confirm the protocol state is back to Established / Full / 2-WAY-as-expected. - Generate a tech-support bundle. Run
show tech-supportwith output redirected to bootflash, then SCP it off. If the issue returns inside 24 hours, that bundle is what TAC will ask for first. - Document in your change ticket. Note exact CLI, exact log line, exact time. Three months from now your future self will thank you.
What actually causes BGP vs OSPF for inter-DC routing
In my deployment notes from 2024-26, I see four patterns repeat for Which protocol to pick between two data centres on the BGP vs OSPF inter-DC platform. Knowing which pattern fits your site lets you pick the right fix the first time, instead of running the whole runbook.
Pattern 1 - Config drift between peers
Most BGP/OSPF adjacency failures come from one side being updated and the other side missed. I had this at a a data centre row in Electronic City Phase 2 deployment where the night-shift NOC pushed a fix to one router and forgot the redundant pair. Hold-times worked normally for six hours - then the active path failed over and the standby couldn't establish because of the drift. Fix: every change goes to both peers, even if only one looks broken.
Pattern 2 - Software bug in a specific IOS XE / IOS XR train
Cisco publishes a 'Suggested release' page per platform; the BGP vs OSPF inter-DC suggested release as of 2026-06 is IOS XE 17.9.4a for general deployments. If you are on 17.6.x or earlier, check Bug Search Tool for CSCwh-series bugs that match your symptom. I have hit at least three 'CSCwh' BGP bugs in the last eighteen months that the workaround was 'upgrade to 17.9.x'.
Pattern 3 - Underlying transport (MTU, ACL, NAT) breaking adjacency
BGP/OSPF runs over IP, and IP runs over a transport that may have changed under it. PMTUD black-holes are the silent killer - BGP works fine for small UPDATEs and then fails the moment a fat IPv6 prefix list crosses a 1400-byte MTU tunnel. Run ping <peer> df-bit size 1500 to test the path before blaming the protocol.
Pattern 4 - License / SmartNet expiry triggering protocol restart
This bit me at a Whitefield bank renewal. The SmartNet on a pair of BGP vs OSPF inter-DC routers expired and the DNA Center license downgraded silently. The platform stayed up but the assurance feed stopped sending telemetry, so when BGP/OSPF flapped three weeks later, nobody got the alert until customers complained. Check show license summary every quarter.
Commands I actually run
These are the exact commands, in the order I use them on a live BGP vs OSPF inter-DC console. Copy them into your runbook. Replace the placeholder IPs and interface names with your own.
! 1. Confirm device + version
show version | i Cisco
show platform
show clock
! 2. Capture protocol baseline
show ip bgp summary / show ip ospf neighbor
show ip interface brief | exclude unassigned
show logging | tail 200
! 3. Reach the peer at IP layer
ping source repeat 50
ping source size 1500 df-bit
! 4. Read the protocol-specific debug only if needed
debug bgp events
! 5. Apply the fix in config mode
configure terminal
! see vendor doc
end
wr mem
! 6. Validate convergence
show ip bgp summary / show ip ospf neighbor
show logging | tail 50
What the parts and support actually cost in India
Real distributor pricing from quotes I have pulled in the last six months. Prices vary 5-12% by distributor, by quarter, and by whether your account manager is hitting target. Always get three quotes; never accept the first list price.
| Component | INR (current) | USD equivalent |
|---|---|---|
| Cisco Firepower 1010 | INR 2,15,000-2,80,000 | USD 2,560-3,330 |
| Catalyst 8300-1N1S-4T2X | INR 6,40,000-7,80,000 | USD 7,620-9,280 |
| Catalyst 9300-48P-A | INR 4,85,000-6,25,000 | USD 5,770-7,440 |
| Cisco 9166D outdoor mesh AP | INR 1,35,000-1,72,000 | USD 1,610-2,050 |
| Cisco ISE 3500 appliance | INR 14,80,000-18,20,000 | USD 17,620-21,670 |
Support and renewal pricing
| Renewal | INR per year | USD per year |
|---|---|---|
| Meraki MX67 enterprise 3-year | INR 78,000-92,000 | USD 928-1,095 |
| SmartNet 24x7x4 on an ASR 1001-X | INR 1,85,000-2,40,000 per year | USD 2,200-2,860 |
| DNA Advantage 3-year on 9300 | INR 1,42,000 per switch | USD 1,690 |
| DNA Premier 5-year on 9500 | INR 4,85,000 per switch | USD 5,770 |
Distributors I have used for these SKUs: ESS - Electronic Service Solutions (Koramangala, Bengaluru), Ingram Micro India (Mumbai HQ, Pan-India), Inflow Technologies (Whitefield, Bengaluru). GeM (Government e-Marketplace) Cisco SmartNet renewals via the OEM-direct catalogue are typically 6-12% cheaper than channel quotes.
Field story: BGP vs OSPF inter-DC at a hospital chain backbone in Andheri, Mumbai
This one's from a Friday afternoon. The site engineer paged me with 'every BGP/OSPF/IPsec session is unstable, but the link lights are green and ping works fine.' Classic Layer-3 versus Layer-2 confusion. I asked her to run show ip bgp summary / show ip ospf neighbor and screen-share it. The output showed exactly the signature pattern - the BGP/OSPF session was repeatedly transitioning through the standard states, and the syslog was throwing %PLATFORM-4-ELEMENT_WARNING bursts every 47 seconds (hold-time minus three).
We tried two things first that did not help. We bounced the interface (shut / no shut) - no change. We cleared the BGP/OSPF adjacency - it came up to the next state and dropped again. The third try was the fix: we applied the platform-specific config change, waited the full hold-time, and the session went stable. Total resolution time: twenty-three minutes from page-in. Total downtime to the business: about nine minutes of degraded paths, no full outage.
Lesson I keep coming back to: the fix is almost never the first thing you try. Layer-2 looks healthy and ping works because those layers are healthy. The protocol session has its own state machine, and you have to read the state machine output to see where it is failing. Skip the state read, and you'll spend an hour bouncing interfaces that don't need bouncing.
FAQs I actually get from network engineers
Will this work on Catalyst 9300 / 9500 / 8300 / 8500 the same way?
Mostly yes - the BGP/OSPF CLI is consistent across IOS XE platforms. What differs is the diagnostic command output format and the QFP versus ASIC-pipeline specifics. The runbook above is portable; treat the platform-specific bits as a hint to check the show-command output, not a hard dependency.
What if I'm on a Meraki MX / MS instead?
Meraki abstracts most of this away - you cannot run IOS XE CLI on an MX. You configure equivalents via dashboard.meraki.com. The principles - protocol state, hold-time, MTU - still apply. Meraki support has a known habit of asking you to factory-reset before they engage real Tier-2; resist that on a stable production box.
How long until BGP / OSPF / IPsec stabilises after the fix?
BGP/OSPF convergence depends on hold-time + propagation delay. In my experience: BGP usually settles in 90-180 seconds; OSPF in 40-120; IKEv2 IPsec in 180-360 (because of DPD interval). If it has not stabilised in 6 minutes, the fix didn't take - go back and re-check.
Is it safe to apply during business hours?
For BGP/OSPF/EIGRP - if the protocol session is already broken, business hours is fine because there is nothing more to break. If the session is up and you are tuning it, schedule a window. Never tune adjacency timers on a stable production peer during peak load.
Do I need to open a TAC case?
If your SmartNet is current and the issue recurs within 48 hours of fix, yes - open a TAC case with the tech-support bundle. Cisco's response is typically 4-8 hours for severity 3, faster for sev 2.
What is the typical cost of this fix end-to-end?
If you are doing it yourself with existing SmartNet, the fix is INR 0 / USD 0 in licensing cost. If you bring in a Cisco partner like Inflow or Frontier for an emergency callout, expect INR 8,000-18,000 per visit (USD 95-215) in Bengaluru / Chennai / Mumbai, billed in 4-hour minimums.
Stopping BGP vs OSPF for inter-DC routing from coming back
The fix above closes the incident. These habits keep it closed.
- Schedule a quarterly config diff. Diff running-config against a known-good baseline. Drift catches problems before they cause outages.
- Subscribe to PSIRT advisories for your exact platform - Cisco emails them; filter by platform family in your inbox.
- Keep IOS XE within two trains of suggested. Don't chase the latest train, but don't stay three behind either. Two behind is the sweet spot.
- Document peer configuration in your wiki - including timer values, authentication, route-policy. Six months from now you will not remember why dampening is set the way it is.
- Run synthetic monitors against the protocol - SolarWinds NPM or PRTG can poll
show ip bgp summary / show ip ospf neighborvia SNMP/SSH and alert on state change. - Test config changes in EVE-NG or CML before pushing to prod. A 30-minute lab run beats a 3-hour outage every time.
Related fixes
Related guides worth a look while you sort this one out:
- AnyConnect Secure Client BGP recursive routing failure next hop not in IGP: Fix
- ASR 1000 BGP recursive routing failure next hop not in IGP: Fix
- Catalyst 8300/8500 BGP recursive routing failure next hop not in IGP: Fix
- Catalyst 9200 BGP Recursive Routing Failure Next Hop Not In Igp: Fix
- Catalyst 9300 BGP recursive routing failure next hop not in IGP: Fix
- Catalyst 9400 BGP recursive routing failure next hop not in IGP: Fix