Australian cloud for business software — built and run in Sydney since 2003

NetLeverage
NetLeverage

NSX Tier-0 BGP Neighbour Down: Read the Session State Before Resetting Anything

Technical article
VMware

An NSX 4.2 Tier-0 gateway peers with an external router over BGP. An alarm says a BGP neighbour is down, the Tier-0 BGP neighbour list shows a status other than up, or routes from the physical network have gone. The usual reflex is to clear the BGP session or bounce the uplink. A reset replaces the state that tells you which side failed, and it can drop routes that are still working on other neighbours.

This guide shows how to record one neighbour's session on each Edge node, read what the state means, and match it to Broadcom's documented causes. The result is a dated finding for the NSX, network and peer-router owners.

This guide is based on source research only. Nothing in it was run. Edge names, addresses and AS numbers below are fictional.

Scope

This guide applies to:

  • NSX 4.2.x;
  • one Tier-0 gateway in its default VRF;
  • IPv4 BGP to an external router on the same VLAN uplink (one hop).

Out of scope: Tier-0 VRF gateways, EVPN, BGP over IPsec VPN (Broadcom has separate KBs for its Idle and Connect cases), Federation, IPv6 sessions and multi-hop peering. Whether the right subnets are advertised once the session is up is covered in NSX Tier-1 Segment Has No Upstream Route, which excludes BGP itself.

What Broadcom documents

Source What it says
Configure BGP (NSX 4.2) With no source address selected, "the gateway will automatically set up a peering session with the neighbor on each Tier-0 SR. If a Tier-0 SR does not have an interface in the subnet of the neighbor, the BGP session configured on this Tier-0 SR will remain down." If the Tier-0 gateway firewall "is configured with a default Drop or Reject rule, you must manually add an Allow rule for BGP and for BFD if it is configured". "With only BGP configured, if all BGP neighbors go down, the service router's state will be down." The Hold Down Time "specifies how long the gateway will wait for a KEEPALIVE message from a neighbor before considering the neighbor dead".
Verify BGP Connections from a Tier-0 Service Router (NSX 4.2; page sits in the Manager mode section) On the Edge, get logical-routers finds the VRF of the Tier-0 service router, vrf <number> enters it, and get bgp neighbor shows the state; the healthy example reads "BGP state: Established, up", with hold time, keepalive interval, messages, prefixes and "1 Connections established, 2 dropped".
NSX Edge Router High Availability Status is Down (NSX 4.2) get edge-cluster status can show the Edge "Up (Routing Down)". "This issue occurs if all BFP and/or BGP sessions for the router goes down." Run get bgp neighbor summary in the Tier-0 SR VRF; if there is no connection established, ping the neighbour and source addresses "from inside as well as outside SR vrf"; get logical-router <logical-router-id> interfaces stats shows TX or RX drops; get diagnosis topology shows uplink and peer status.
KB 339392: Troubleshooting NSX BGP (NSX-T Data Center and NSX; no version stated) Most common reasons: "No communication between peers. Timers mismatch. BFD configuration mismatched." Ask "Which BGP state (Idle; Connect; Active; OpenSent; OpenConfirm; Established) are the peers in, or cycling between?" and "Has peering ever been stable in the Established state?" Logs: /var/log/frr/frr.log (grep the peer IP, "NOTIFICATION" and "ADJCHANGE") and /var/log/syslog (grep "state=BGP"). A ping "may not be a true test, as ICMP may be blocked between neighbors". Check the VLAN on the uplink segment and the peer; "If the VLAN configuration does not match, ping is expected to fail." Check neighbour address, AS numbers, timers and password on both ends.
KB 454325: Troubleshooting NSX Tier-0 Gateway Uplink and BGP/BFD Connectivity Issues (NSX; no version stated) "The BGP finite state machine cycles between Active and Connect when the Edge node initiates the TCP handshake but receives no response." Causes: Layer 3 reachability, incorrect neighbour parameters, or "a firewall/ACL blocking TCP port 179". If the state is Established but BFD is DC or DW, look at BFD: enabled on the peer, timers, and UDP 3784 (single-hop) or 4784 (multi-hop; out of scope here).
KB 369185: BGP neighborship is down alarm (NSX; no version stated) A down neighbourship withdraws the peer's routes. Check get route for a route to the peer, ping it, VLAN, MTU on the ToR interface, timers, password and "Ensure the neighbor admin state is enabled."
KB 439484: BGP Session Down due to Hold Timer Expiration on External Neighbor (NSX; no version stated) frr.log shows "%NOTIFICATION: received from neighbor 10.X.X.X 4/0 (Hold Timer Expired)" and "Established->Clearing". Edge logs under var/log/debug/routing/bgp-flap, "available from NSX version 4.2.x", list down events and keepalives sent. When the Edge was sending keepalives, the packets "are either being dropped in the physical underlay network, or the external neighbor is unable to process them".
KB 416763: Deleted BGP neighbors are still seen in Edge CLI but not on NSX GUI (NSX; no version stated) Neighbours deleted in the UI still appear in get bgp neighbor summary as "Activ" with "never", and "BGP Down" alarms may remain. Resolution is a Broadcom support case.
KB 367930: BGP neighbor goes down when one edge in a two node edge clusters exits maintenance mode (NSX-T Data Center and NSX) A known cause of Established to Idle on the other Edge after maintenance mode exit; "resolved in VMware NSX 4.2.0".
VMware NSX 4.2.2 Release Notes (NSX 4.2.2, Known Issues) Issue 3276632: sessions "remain in IDLE state and do not transition to ESTABLISHED" because addresses are missing on the interfaces. The workaround is a debug-mode interface rescan on the Edge.

Two things follow for diagnosis:

  • The state of each session is readable without changing anything. get bgp neighbor summary and get bgp neighbor are display commands; clear bgp resets sessions.
  • With no source address selected, one neighbour means one session per Tier-0 SR. Configure BGP says the gateway then sets up a peering session on each Tier-0 SR, and the session on an SR without an interface in the neighbour's subnet stays down. Which Edge nodes host the SR, and whether each SR was meant to have that interface, has to be recorded, not assumed.

Before you start

  • Read access to NSX Manager: Networking > Tier-0 Gateways > the gateway > BGP > BGP Neighbors (status per neighbour), and the alarm with its Edge node and time.
  • Edge CLI read access on every Edge node in the Tier-0's Edge cluster, or output provided by the NSX owner.
  • The Edge logs for the period: /var/log/frr/frr.log, /var/log/syslog, and the bgp-flap files on 4.2.x (KB 439484). An Edge support bundle holds the same files.
  • The neighbour's configuration in NSX: address, remote AS, source addresses, BFD, timers, admin state (KB 369185 shows the API read).
  • The peer router owner's view: their BGP state and last error for the NSX address, their timers and BFD settings, and their logs for the same time.
  • The change record for the Edge, uplink segment, VLAN, ToR and peer router.

Do not run clear bgp, the debug rescan workaround, an Edge maintenance mode change, a firewall change or a peer reset while you collect this. Each one replaces the evidence, and some withdraw routes on sessions that still work.

Step 1: record each session

For the Tier-0, record the gateway name, NSX version and build, Edge cluster, HA mode (active-standby or active-active), the observation time with time zone, and the owner's design record of which SRs should have an uplink in the neighbour's subnet, or a note that no design record exists.

Then, on each Edge node in the Edge cluster, first check whether it hosts this Tier-0's service router. The Verify BGP page runs get logical-routers and finds the entry of type SERVICE_ROUTER_TIER0 and its VRF number. An Edge with no such entry for this Tier-0 is marked not applicable for fields B to F. On each Edge that hosts it, enter the SR context with vrf <number> before reading fields C, D and F, as that page shows.

Field Where to read it
A. Edge and SR Edge node name; whether it hosts this Tier-0 SR; the SR's VRF number from get logical-routers; HA state of the SR if active-standby
B. Local interface Whether this SR has an uplink interface in the neighbour's subnet; whether a source address is selected on the neighbour; whether the design record says this SR should have the interface
C. State In the SR VRF, get bgp neighbor summary: State, Up/DownTime, BFD, InMsgs, OutMsgs, InPfx, OutPfx for the neighbour
D. Detail In the SR VRF, get bgp neighbor <address>: BGP state, hold time, keepalive, the connections established and dropped counts
E. History frr.log NOTIFICATION and ADJCHANGE lines for the peer, syslog "state=BGP" lines, and on 4.2.x the bgp-flap down events, each with time
F. Route to peer get route <peer address> inside the SR VRF
G1. Edge routing status At the top-level Edge prompt, not in the SR VRF: get edge-cluster status, Routing Status
G2. Interface drops At the top-level Edge prompt: get logical-router <logical-router-id> interfaces stats, TX and RX drop counters

Then once for the neighbour:

Field Where to read it
H. NSX configuration Tier-0 local AS and any neighbour local AS override; remote AS configured for the neighbour; neighbour address; source addresses; admin state; BFD on or off with interval and multiplier; keepalive and hold down; whether a BGP password is configured (yes or no only, never the password)
I. Peer view The peer's own local AS; the remote AS it configured for NSX; the NSX address it peers with and its own source address; its BGP state and last error; its timers; BFD on or off with timers; whether authentication is enabled and its method; whether both owners confirm the passwords match, or "unknown"; the time it was read
J. UI and alarm Status in the BGP Neighbors list, alarm text and Edge node, and whether the neighbour still exists in the UI
K. Change Change record entries with times, or "not available"

A ping from inside the SR VRF is an active test, not part of this record. If the owner runs it, record source, target and result separately. A failed ping can mean a VLAN mismatch (KB 339392); a successful one does not clear a TCP 179 block, and ICMP may be filtered.

Step 2: match the record

Check every row and record each that applies, per Edge node. A row whose evidence is missing is a candidate; a row you could not check is "not checked".

If the record shows Finding Source
B: no source address is selected and this SR has no interface in the neighbour's subnet The session on this SR stays down. If the design record says this SR has no interface there, record the down session as expected. If the design says it should have one, record a missing interface. With no design record, mark it unknown Configure BGP
C or D: Active or Connect, InMsgs 0, cycling, and the session has never been Established TCP to the peer gets no answer. Candidates: reachability (F, VLAN), neighbour address or AS mismatch (H against I), TCP 179 blocked by a Tier-0 gateway firewall Drop/Reject default or an external ACL KB 454325; KB 339392; Configure BGP
As above, but the session was Established before (E shows ADJCHANGE Down) Something changed between the two ends since that time; compare with K KB 339392
E: a NOTIFICATION received from the neighbour with "(Hold Timer Expired)", and bgp-flap shows keepalives sent The peer stopped receiving or processing keepalives. Candidate: underlay drops or a busy peer, owned by the network or peer owner KB 439484
C: Established, BFD DC or DW BGP is up; BFD is failing. Candidates: BFD not enabled on the peer (I), BFD interval or multiplier mismatch (H against I), or single-hop BFD control packets on UDP 3784 dropped between this uplink and the peer. Recording this is not a firewall or ACL change KB 454325
C: Idle on NSX 4.2.2, B shows an interface in the subnet, and the interface has no address Candidate known issue 3276632. The workaround is the NSX owner's change, not part of this record 4.2.2 Release Notes
C: "Activ", Up/DownTime "never", and J shows the neighbour is no longer in the UI Candidate stale neighbour; open a support case KB 416763
C went from Established to Idle on one Edge right after the other Edge left maintenance mode Pattern of KB 367930; that issue is fixed in 4.2.0, so on 4.2.x record it as a symptom match, not the cause KB 367930
G1: Routing Down on an Edge while BGP sessions on its SR are down Record both as observations, with H's BGP and BFD configuration. Configure BGP ties the SR's state to its neighbours differently for BGP only, BFD only, BGP with BFD, and BGP with static routes; note which scenario applies. This record alone does not show which came first Configure BGP; Edge HA Status
H against I: the local AS on one side differs from the remote AS configured on the other, or the neighbour or source address differs Candidate configuration mismatch KB 339392; KB 369185
H against I: authentication configured on one side only, or the owners cannot confirm the passwords match Candidate authentication mismatch; unknown until both owners confirm KB 339392; KB 369185
H: admin state disabled Session down by configuration KB 369185
None of the rows above applies No documented cause is established from this record. Hand the record to Broadcom support with an Edge bundle KB 439484 support list

Authentication and timers need both ends. Record whether authentication is enabled and its method, and whether the owners confirm the passwords match; never copy a password into the record. KB 339392 lists a timers mismatch among the most common reasons, but these sources do not describe how two different configured values are reconciled. A difference in timers is therefore a candidate for the owners, not a fault on its own.

Worked example (fictional)

Tier-0 t0-prod, NSX 4.2.2, active-active, NSX local AS 64512. Edge cluster ec-01 has edge-01, edge-02 and edge-03. Neighbour 192.0.2.1 (the peer router, AS 64500), remote AS 64500 configured in NSX, no source address selected, BFD on. The design record gives the SRs on edge-01 and edge-02 an uplink in 192.0.2.0/24. Observed 4 November 08:15 AEDT. Change record: ToR tor-a port-channel members replaced 3 November 22:00.

Field edge-01 edge-02 edge-03
A. Hosts t0-prod SR Yes, vrf 5 Yes, vrf 5 No: not applicable for B to F
B. Interface in 192.0.2.0/24 Yes, 192.0.2.11 (as designed) Yes, 192.0.2.12 (as designed) Not applicable
C. State Estab, Up/DownTime 05w1d, BFD UP Activ, 09:45:10, BFD DW, InMsgs 0 since down Not applicable
E. History No ADJCHANGE since 2 October ADJCHANGE Down 3 November 22:30; NOTIFICATION "Hold Timer Expired" received; bgp-flap shows keepalives sent every 60 s before it Not applicable
F. Route to peer Connected Connected Not applicable
G1. Routing status Up Up (other sessions on the SR still up) Up
G2. Interface drops 0 0 Not read
Field Value
H. NSX configuration Local AS 64512, no neighbour local AS override; remote AS 64500; neighbour 192.0.2.1; no source address; keepalive 60, hold down 180; BFD 500 ms × 3; admin enabled; BGP password configured: no
I. Peer view Not yet provided
K. Change 3 November 22:00 ToR port-channel work

Reading it:

  • edge-01's session is fine; the neighbour is not down as a whole.
  • On edge-02 the session was Established, then received Hold Timer Expired at 22:30 while the Edge was sending keepalives: the KB 439484 row applies. It is now Active with no messages received: the "was Established before" row applies.
  • The 22:30 drop is half an hour after the 22:00 ToR work. The timing is consistent with that work; this record does not prove it, because the peer's view (I) is missing.

The finding handed on: "On t0-prod, the session from edge-02 (192.0.2.12) to 192.0.2.1 dropped at 22:30 AEDT on 3 November after edge-02 received Hold Timer Expired from the peer while sending keepalives. It has been Active with BFD down since, as read at 08:15 on 4 November. edge-01's session is Established. The peer's view has not been collected." Do not clear the session to see if it comes back; the network owner checks the path from edge-02's uplink through tor-a.

Troubleshooting

Situation What to do
The UI shows the neighbour down but one Edge shows Established Record per Edge that hosts the SR. The UI shows one status per neighbour; with no source address selected, the Edge CLI shows each SR's session (inference from the per-SR sessions in Configure BGP)
Someone proposes clear bgp It resets the session and drops its routes until it re-establishes. Name the matching row first and hand the record on
The ping fails Check the VLAN on the uplink segment and on the peer interface (KB 339392) before anything else
You cannot reach the Edge CLI Use an Edge support bundle's frr_show_ip_bgp_summary_json and tier0_sr_get_bgp_neighbor files (KB 339392) and mark live fields "not available"
The peer owner says "NSX side is down" Hand them D and E; KB 439484's evidence shows when the Edge sent keepalives

Acceptance checks

  1. NSX version, Tier-0, HA mode and observation time are recorded.
  2. Field A is recorded for every Edge node in the Edge cluster. Fields B to G2 are recorded for every Edge that hosts the Tier-0 SR, not only the alarmed one, and non-hosting Edges are marked not applicable.
  3. H, I, J and K are recorded, or marked "not available". Both AS numbers, both addresses and the authentication status are recorded for each end, with no password copied.
  4. Every Step 2 row is marked applies, candidate, not applicable or not checked; more than one can stand.
  5. A cause is stated only where the row's evidence is present; timing alone is stated as "consistent with".
  6. No clear bgp, rescan, maintenance mode, firewall, BFD, timer or peer change was made while collecting.
  7. Any fix is handed to its owner, and recovery is confirmed by its own read of C on every Edge.

Risk notes

  • Clearing a session takes it down, and KB 369185 says a down neighbourship withdraws the peer's routes (inference: until it re-establishes).
  • The SR's state follows its neighbours as configured. Configure BGP: "With only BGP configured, if all BGP neighbors go down, the service router's state will be down." With BGP and BFD configured, it is all BGP and BFD neighbours.
  • The 4.2.2 rescan workaround uses debug mode on the Edge. It is the NSX owner's change, under their process.
  • Tier-0 gateway firewall defaults of Drop or Reject block BGP and BFD unless allowed (Configure BGP).

These are source-documented behaviours. Expert review and a lab check are still needed before any change to an NSX environment.

Learning notes

  • With no source address selected, a BGP neighbour in NSX is one session per Tier-0 SR. Read every Edge that hosts the SR, and mark the others not applicable.
  • Active or Connect means the TCP session is not completing; Established with BFD down is a different problem.
  • Hold Timer Expired received from the peer, while the Edge log shows keepalives sent, makes the path and the peer the first places to look (KB 439484). The log shows that keepalives were sent, not that they arrived, so it neither clears NSX's configuration nor shows where packets were lost.
  • Timer, AS and authentication differences need both ends' views; a difference in timers is a candidate, not a verdict.

References

Source Version scope Date
Configure BGP NSX 4.2 Page shows "Last Updated July 29, 2026"; retrieved 2026-11-03
Verify BGP Connections from a Tier-0 Service Router NSX 4.2 (Manager mode section) Page shows "Last Updated July 29, 2026"; retrieved 2026-11-03
NSX Edge Router High Availability Status is Down NSX 4.2 Page shows "Last Updated July 29, 2026"; retrieved 2026-11-03
VMware NSX 4.2.2 Release Notes NSX 4.2.2 Page shows "Last Updated July 29, 2026"; retrieved 2026-11-03
KB 339392: Troubleshooting NSX BGP NSX-T Data Center, NSX; no version stated Page metadata 9 December 2025; retrieved 2026-11-03
KB 454325: Troubleshooting NSX Tier-0 Gateway Uplink and BGP/BFD Connectivity Issues NSX; no version stated Page metadata 31 August 2026; retrieved 2026-11-03
KB 369185: BGP neighborship is down alarm NSX; no version stated Page metadata 10 April 2026; retrieved 2026-11-03
KB 439484: BGP Session Down due to Hold Timer Expiration on External Neighbor NSX; log file from 4.2.x Page metadata 3 August 2026; retrieved 2026-11-03
KB 416763: Deleted BGP neighbors are still seen in Edge CLI but not on NSX GUI NSX; no version stated Page metadata 7 May 2026; retrieved 2026-11-03
KB 367930: BGP neighbor goes down when one edge in a two node edge clusters exits maintenance mode NSX-T Data Center, NSX; fixed in 4.2.0 Page metadata 28 October 2025; retrieved 2026-11-03

Related articles