# PIC Edge for VPNv4

**Topology**: ine-spv4

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

Load **bgp.pic.init.cfg**

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

VPNv4 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 singled homed to R5, announcing 19.19.19.19/32 and 20.20.20.20/32. R6 is the RR.

Configure PIC for the L3VPN so that R5 pre-installs a backup route in the FIB for 1.1.1.1/32 and 2.2.2.2/32 for VRF A.

## Answer <a href="#bdada2b4-5839-49ac-992e-d2a80b25389d" id="bdada2b4-5839-49ac-992e-d2a80b25389d"></a>

```
#R3
vrf def A
 no rd 100:1
!
! Wait ~30 seconds
!
 rd 100:3
 route-target both 100:1
!
router bgp 100
 add ipv4 uni vrf A
  neighbor 20.2.3.2 remote-as 65000

#R5
router bgp 100
 add ipv4 uni vrf A
  bgp additional-paths install
```

## Explanation <a href="#ac1804d6-5003-4493-b24d-a00d2949bc71" id="ac1804d6-5003-4493-b24d-a00d2949bc71"></a>

In this lab, we must use per-PE VRF RD values to get R6 to reflect the multiple paths to R5. IOS-XE does not support sending additional paths for VPNv4. Only IOS-XR supports this. So if IOS-XR was the RR, and the PE we want to run PIC was also IOS-XR, we could have used the add-path capability for this instead.

However, VPNv4 gives us an easy way to make prefixes unique, which is to use a different RD per PE. When you change the RD value, you must wait a while for the router to deconfigure the VRF. Then when it is done, you must put in the new RD value, re-add the RTs, and reconfigure the CE as a neighbor under BGP.

```
#R3
vrf def A
 no rd 100:1
!
! Wait ~30 seconds
!
 rd 100:3
 route-target both 100:1
!
router bgp 100
 add ipv4 uni vrf A
  neighbor 20.2.3.2 remote-as 65000
```

At this point R5 should have two paths to 1.1.1.1/32 and 2.2.2.2/32. All that is left is to tell R5 to install additional paths as backup routes using the command **bgp additional-paths install** under the customer VRF under BGP.

```
#R5
router bgp 100
 add ipv4 uni vrf A
  bgp additional-paths install
```

## Verification <a href="#c1a5f59e-faef-44e3-a87e-741ebf2187c0" id="c1a5f59e-faef-44e3-a87e-741ebf2187c0"></a>

Before we make any changes, we can see that R5 only has one route to prefixes advertised by R2.

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

This is because the RR will only select the bestpath to reflect to clients:

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

When we change the RD on R3, the RR sees this as a completely separate prefix due to the unique RD value. Therefore it reflects both paths to its clients.

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

On R5, we now have multiple paths, but we still have not enabled PIC yet.

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

We enable PIC for a VRF under the BGP VRF config:

```
#R5
router bgp 100
 add ipv4 uni vrf A
  bgp additional-paths install
```

Once PIC is enabled, we should see a **b** next to the backup paths:

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

We also see the backup/repair path in the FIB:

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

This can also be seen in the RIB using the following command:

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

## Further Reading <a href="#id-9dcc8341-694f-4115-9446-8a0d01dfbc25" id="id-9dcc8341-694f-4115-9446-8a0d01dfbc25"></a>

<https://learningnetwork.cisco.com/s/question/0D53i00000Kt0rfCAB/multipath-in-bgp-vpnv4-network>


---

# Agent Instructions: 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-for-vpnv4.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.
