> ## Documentation Index
> Fetch the complete documentation index at: https://docs.megaport.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Troubleshooting MCR When a BGP Session is Down

> This help topic describes the troubleshooting steps and actions to take when a BGP session is down on MCR.

export const GlossaryArp = () => <>
    The Address Resolution Protocol (ARP) routing table contains a list of MAC address (Layer 2) to IP address (Layer 3) mappings. 
  </>;

export const GlossaryMd5 = () => <>
    Sometimes known as an MD5 hash or BGP key. The message-digest (MD5) algorithm is a widely used cryptographic function producing a string of 32 hexadecimal digits. This is used as a password or key between routers exchanging BGP information.
  </>;

export const GlossaryAcl = () => <>
    An access control list (ACL) is a set of rules that control access to a network device or resource. ACLs are used to specify which traffic is allowed to enter or exit a network, and can be used to filter traffic based on various criteria, such as IP addresses, protocols, ports, and other parameters. ACLs are commonly used in routers and firewalls to control the flow of network traffic between different network segments or between a network and the internet.
  </>;

export const GlossaryBgpNeighbor = () => <>
    MCR uses Border Gateway Protocol (BGP) to exchange network reachability information with adjacent BGP systems, known as neighbors, or peers. By default, once the BGP neighbors are connected, they share routing information with each other.
  </>;

export const GlossaryBEnd = () => <>
    A Port, MCR, or MVE establishes the A-End of the connection and the B-End is the other end. The B-End can be a Port, MCR, or MVE for a private VXC, an Internet Exchange, a Marketplace connection, or a Cloud Service Provider (CSP).
  </>;

export const GlossaryAEnd = () => <>
    The start of the connection -- the Port, MCR, or MVE. Megaport connections need an A-End and a B-End. The connection starts with an A-End. Most often, the Port is the A-End. The B-End is the other end of the connection: it can be a Port, an Internet Exchange, a Marketplace connection, or a cloud service provider.
  </>;

export const GlossaryAsn = () => <>
    An autonomous system (AS) is a collection of connected Internet Protocol (IP) routing prefixes under the control of one or more network operators on behalf of a single administrative entity or domain. ASN refers to autonomous system number and is a unique numerical ID allocated to each AS for use in BGP routing.
  </>;

export const GlossaryBgp = () => <>
    Border Gateway Protocol (BGP) is a standardized routing protocol designed to exchange route and reachability information among autonomous systems (AS) on the internet.
  </>;

export const Gloss = ({term, anchor, langDir = 'en', description, children}) => {
  const errorPrefix = '\x1b[31;1;4mERROR\x1b[0m: Gloss -';
  const id = 'gloss-' + React.useId().replace(/:/g, '');
  const [expanded, setExpanded] = React.useState(false);
  if (typeof term !== 'string') {
    term = String(term);
  }
  if (!term || term === 'undefined') {
    console.error(`${errorPrefix} the \`term\` property is required — rendering an empty string instead`);
    return <></>;
  }
  const content = children ?? description;
  const hasContent = content !== undefined && content !== null && content !== '' && content !== 'undefined';
  if (!hasContent) {
    if (typeof anchor !== 'string') {
      anchor = String(anchor);
    }
    if (!anchor || anchor === 'undefined') {
      console.error(`${errorPrefix} either \`anchor\`, \`description\`, or child content is required — rendering an empty string instead`);
      return <></>;
    }
    const lang = langDir === 'en' ? '/' : '/' + langDir + '/';
    const glossaryPage = lang + 'glossary/#' + anchor;
    return <a href={glossaryPage}>{term}</a>;
  }
  return <span>
      <button type="button" aria-expanded={expanded} aria-controls={id} onClick={() => setExpanded(value => !value)} className="underline decoration-dotted underline-offset-4 text-gray-700 hover:text-gray-900 dark:text-gray-300 dark:hover:text-gray-100">
        {term}
      </button>
      <span id={id} hidden={!expanded} style={{
    borderLeftColor: 'var(--color-primary)'
  }} className="mt-2 flex flex-col gap-1 rounded-lg border border-l-4 border-gray-200 bg-gray-50 px-5 py-4 text-sm dark:border-gray-700 dark:bg-white/5">
        <span className="text-xs font-bold tracking-wide text-gray-500 uppercase dark:text-gray-400">
          Glossary
        </span>
        <span className="font-semibold text-gray-900 dark:text-gray-100">
          {term}
        </span>
        <span className="text-gray-700 dark:text-gray-300">{content}</span>
      </span>
    </span>;
};

export const Image = ({src, alt = '', caption, width, height, shadow}) => {
  const errorPrefix = '\x1b[31;1;4mERROR\x1b[0m: Image -';
  if (typeof src !== 'string') {
    src = String(src);
  }
  if (!src || src === 'undefined') {
    console.error(`${errorPrefix} \`src\` is required — rendering an empty string instead`);
    return <></>;
  }
  const img = <img className={['mega-image-style', shadow ? 'shadow' : ''].join(' ')} src={src} alt={alt} width={width} height={height} style={{
    display: 'block'
  }} />;
  return caption ? <figure>
      {img}
      <figcaption style={{
    textAlign: 'center',
    width
  }}>{caption}</figcaption>
    </figure> : img;
};

When a BGP session on Megaport Cloud Router (MCR) is down, step through these troubleshooting actions.

## Troubleshooting actions

| **Action** | **Steps** |
| :- | :- |
| **Verify the <Gloss term="BGP"><GlossaryBgp /></Gloss> configuration** | Check the <Gloss term="ASN"><GlossaryAsn /></Gloss>, BGP IP address, and subnet mask: <ol> <li> Select the MCR.</li><li> Select the VXC and select the MCR <Gloss term="A-End"><GlossaryAEnd /></Gloss> or <Gloss term="B-End"><GlossaryBEnd /></Gloss>.</li><li>Under BGP Connections, verify that the correct local ASN is in use for the A-End of the VXC.</li><li>Verify that the correct peer IP address is in use.</li></ol> |
| **Verify access to TCP port 179** | <Gloss term="BGP neighbors"><GlossaryBgpNeighbor /></Gloss> establish a TCP session using TCP port 179. <ol> <li>Make sure that a BGP neighbor is not blocking ingress or egress from TCP port 179 and other relevant ephemeral ports. You can view the port number using Wireshark, **debug ip packet detail** command, **netstat** in Windows.</li><li> Make sure that all firewalls and <Gloss term="ACLs"><GlossaryAcl /></Gloss> permit TCP port 179 in both directions.</li></ol> |
| **Verify the route filtering** | The MCR Looking Glass displays the routes received or sent after applying route filtering. For more information, see [Viewing Traffic Routing Through MCR Looking Glass](/mcr/mcr-looking-glass).<ol><li>Choose Tools > MCR/NAT Gateway Looking Glass.</li><li>Select an MCR from the MCR drop-down list.</li><li>Next to the VXC, click **Neighbour Routes**.</li><li>After Show, select the Advertised or Received tabs to narrow the list.</li></ol> |
| **Check the BGP neighbor state** | When BGP is configured with a neighbor IP address, it goes through several stages before it reaches the Established state. The BGP Neighbor States are Idle, Connect, Active, OpenSent, OpenConfirm, and Established.<br /><Image src="/images/troubleshooting/mcr/bgp-states-neighbor.png" alt="BGP Neighbor States" width={450} /> |
| **Check the BGP message type** | BGP packets use these message types:<ul><li>**OPEN** -- Sets up and establishes BGP adjacency.</li><li>**UPDATE** -- Advertises, updates, or withdraws routes.</li><li>**KEEPALIVE** -- Ensures that the BGP neighbor is still alive.</li><li>**NOTIFICATION** -- Indicates an error condition to a BGP neighbor.</li></ul> |
| **Verify the <Gloss term="MD5"><GlossaryMd5 /></Gloss> authentication** | <ul><li>Look through the logs for `Invalid MD5 digest`.</li><li>Verify that the correct BGP MD5 password is in use for the A-End and B-End of the VXC.</li></ul> |
| **Run connectivity tests** | <ul><li>Run a **ping** test between BGP peers. </li><li>Confirm the <Gloss term="ARP"><GlossaryArp /></Gloss> table entry of the BGP peer.</li></ul> |
| **Find error conditions in BGP logs** | The BGP protocol sends a notification message when it detects an error with the BGP session such as: an expiring hold timer, a change to neighbor capabilities, or a request to reset a BGP session. When an error is detected, the BGP session is closed.<br /><br />For example, enter **show log %BGP-xxxxx** |

## Next steps

If the troubleshooting actions do not resolve your issue, contact support. Before contacting support for assistance, collect the following information.

* Note the date, time, and time zone in which the issue started.
* Is the BGP session down?
* Is the BGP session flapping? For example, does the peering establish, then drop, re-establish, and then drop? Try to pinpoint where the problem might be in the network using **ping**.
* Is there a BGP routing issue?

<Note>
  For more information about when a field service technician is needed onsite at the data center, see [Customer Field Services](/finance/customer-field-services).
</Note>

### Collect essential troubleshooting data

**BGP configuration information**

* Interface settings, including VLAN number
* BGP IP address and subnet mask
* BGP ASN
* BGP network addresses to be advertised
* BGP neighbor IP address and subnet mask
* BGP neighbor ASN
* BGP neighbor network addresses to be received
* BGP authentication between BGP peers
* BGP route filtering and manipulation, if any

**BGP command output and packet capture information**

* Examine the BGP neighbor table and BGP state using the **show IP BGP summary** command
* Examine the BGP neighbor details using the **show IP BGP neighbors** command
* Logs that show BGP-related messages (output from the **show log %BGP-xxxxx** command)
* BGP routing table entries that have BGP routing issues (output from the  **show IP BGP** command)
* BGP advertised routes (output from the **show IP BGP neighbors \<neighbor-ip-address> advertised-routes** command)
* BGP received routes (output from the **show IP BGP neighbors \<neighbor-ip-address> routes** command)
* Routing table (output from the **show IP route \<ip-address>** command)
* **Traceroute** logs between source and destination host
* **Packet capture** logs, if possible (file size can be up to 10 M)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.