> For the complete documentation index, see [llms.txt](https://ccie-sp.gitbook.io/ccie-spv5.1-labs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ccie-sp.gitbook.io/ccie-spv5.1-labs/labs/bgp/pic-edge-troubleshooting.md).

# PIC Edge Troubleshooting

**Topology**: ine-spv4

<figure><img src="/files/RafV3hpYbWUA42brYt7u" alt=""><figcaption></figcaption></figure>

Load **bgp.pic.global.tshoot.init.cfg**

```
#IOS-XE
config replace flash:bgp.pic.global.tshoot.init.cfg
 
#IOS-XR
configure
load bootflash:bgp.pic.global.tshoot.init.cfg
commit replace
y
```

IPv4 BGP routing is currently setup in the network. R2 is a dual-homed CE that announces 1.1.1.1/32 and 2.2.2.2/32 to R3 and R4. XR1 is single-homed to R5, announcing 19.19.19.19/32 and 20.20.20.20/32. R6 is the RR.

PIC and add path is configured in the core network. However, R5 does not have a repair route for 1.1.1.1/32 and 2.2.2.2/32. Explain the problem and fix it. Do not change BGP attributes to fix the issue.

## Answer <a href="#id-948aed50-0641-4cef-a3b4-ccb0b7892645" id="id-948aed50-0641-4cef-a3b4-ccb0b7892645"></a>

The issue is that R4 is hiding the alternate routes. R3 is setting LP to 110 based on the received customer community on routes received from R2. R4 chooses R3 as the best path, instead of its own eBGP routes to R2.

To fix this we have two options:

* Have R4 advertise the best external path
  * Does not require Add Path
* Have R4 advertise additional paths to R6
  * Requires Add Path

Note that this could also be fixed by having R4 set weight on routes received from R2, but this is prohibited by the lab instructions.

```
#R4
router bgp 100
 add ipv4
  bgp advertise-best-external

!
! or
!

#R4
router bgp 100
 add ipv4
  bgp additional-paths send receive
  bgp additional-paths select best 2
  neighbor 6.6.6.6 advertise additional-paths best 2
#R6
router bgp 100
 add ipv4
  bgp additional-paths send receive
```

## Explanation <a href="#e1dcf7e9-2f1a-4571-8b41-147adb7ec487" id="e1dcf7e9-2f1a-4571-8b41-147adb7ec487"></a>

Let’s first examine the problem. R4 has two paths to 1.1.1.1/32 and 2.2.2.2/32. One path via R3 with LP=110, and one path via the eBGP peer with default LP. Naturally, it will choose R3 as the bestpath due to the higher LP.

<div align="left"><figure><img src="/files/Ih97daI0BBCvEzVqqdeV" alt=""><figcaption></figcaption></figure></div>

Because of this, R4 hides its eBGP path. Its best path is via an iBGP learned route, so it does not advertise a path to the RR (basic iBGP split horizon rule). On R6 (the RR) we can see that it only knows one path, via R3. Even though Add Path and PIC is configured on R5, there is no alternate route for R5 to use as a backup path.

<div align="left"><figure><img src="/files/cRto9UizbbXaHo3rYEIQ" alt=""><figcaption></figcaption></figure></div>

### Using advertise-best-external <a href="#b56e362c-4cb5-4b82-ae3e-de66554a5450" id="b56e362c-4cb5-4b82-ae3e-de66554a5450"></a>

The easiest fix is to use the **advertise-best-external** feature on R4. This configures the router to always advertise its best eBGP route, even if an iBGP route is the bestpath. This also implicitly enables PIC on R4. This does not use Add Path, so this change is non-disruptive. This just prevents information hiding. R4 will never advertise multiple paths, so Add Path is not needed.

<div align="left"><figure><img src="/files/S4rQRZVEoOfPnYvjHOaz" alt=""><figcaption></figcaption></figure></div>

Now R6 sees the additional path from R4:

<div align="left"><figure><img src="/files/G24Lvj6PKRrPTETHKcw0" alt=""><figcaption></figcaption></figure></div>

Using Add Path, this is advertised to R5, where it is installed as a backup path:

<div align="left"><figure><img src="/files/4nKV8QFyUqhyn7Jy8YoD" alt=""><figcaption></figcaption></figure></div>

### Using Add Path on R4 instead <a href="#a9748a52-bf5b-4167-b513-5d5cdf3073e1" id="a9748a52-bf5b-4167-b513-5d5cdf3073e1"></a>

The other method is to enable Add Path on R4. To do this, we must configure R6 to also receive additional paths (right now it is only sending additional paths). So this will disrupt all iBGP sessions. We also configure R4 to send and receive additional paths.

```
#R4, R6
router bgp 100
 add ipv4
  bgp additional-paths send receive
```

On R4 we just need to select the best 2 routes and advertise these to R6.

```
#R4
router bgp 100
 add ipv4
  bgp additional-paths select best 2
  neighbor 6.6.6.6 advertise additional-paths best 2
```

Optionally, we can also locally install the backup path as a repair path.

```
#R4
router bgp 100
 add ipv4
  bgp additional-paths install
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ccie-sp.gitbook.io/ccie-spv5.1-labs/labs/bgp/pic-edge-troubleshooting.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
