IPv6 BGP

IPv6 Border Gateway protocol (BGP) communicates IPv6 routing information between Autonomous Systems (ASs). A Dell SonicWALL security appliance with IPv6 BGP support can replace a traditional BGP router on the edge of a network's AS.

IPv6 BGP is enabled on the Network > Routing page, but must be configured on the SonicOS Command Line Interface (CLI).

The following restrictions apply to SonicOS 6.2:

Topics:

Configuring Multiple Autonomous Systems

If an Autonomous System (AS) has multiple BGP routers, the AS can serve as a transit service for other ASs. When BGP runs between routers in different ASs, it uses exterior BGP (eBGP). When BGP runs between routers in the same AS, it uses interior BGP (iBGP).

In the following diagram, AS 200 is a transit AS for AS 100 and AS 300.

Figure 76. Autonomous System with multiple BGP routers configuration

To configure multiple ASs as shown in the above diagram, configure routers RTA, RTB, and RTC as follows:

On RTA:
router bgp 100
: neighbor 129.213.1.1 remote−as 200
address-family ipv6
: redistribute connected
: neighbor 129.213.1.1 activate
On RTB:
router bgp 200
: neighbor 129.213.1.2 remote−as 100
: neighbor 175.220.1.2 remote−as 200
address-family ipv6
: redistribute connected
: neighbor 129.213.1.2 activate
: neighbor 175.220.1.2 activate
On RTC:
router bgp 200
: neighbor 175.220.212.1 remote−as 200
address-family ipv6
: neighbor 175.220.212.1 activate
: neighbor 175.220.212.1 activate
 

Configuring Basic BGP over IPv6

A IPv6 BGP peer router can be configured to carry either IPv4 or IPv6 route information over either an IPv6 address family or an IPv4 address family.

Figure 77. Basic BGP over IPv6 configuration

To configure basic BGP over IPv6, configure routers R1 and R2 as follows:

On R1:
router bgp 6501
: bgp router−id 1.1.1.1
: neighbor 2011:11:11:11::2 remote−as 6502
address−family ipv6
: neighbor 2011:11:11:11::2 activate
exit−address−family
On R2:
router bgp 6502
: bgp router−id 2.2.2.2
: neighbor 2011:11:11:11::1 remote−as 6501
 
address−family ipv6
: network 1010::1/128
: network 2020::1/128
: neighbor 2011:11:11:11::1 activate

Configuring EBGP Multihop

EBGP Multihop enables you to establish a neighbor connection between two external peers that are not directly connected. Multihop is available only for eBGP and is not available in for iBGP. When the firewall has an external neighbor that does not have a direct connection, you can use the ebgp−multihop command to establish a neighbor connection.

To configure EBGP Multihop, configure routers R1 and R2 as follows:

On R1:
router bgp 6501
: bgp router−id 1.1.1.1
: neighbor 2011:11:11:11::2 remote−as 6502
: neighbor 2011:11:11:11::2 ebgp−multihop
 
address−family ipv6
: neighbor 2011:11:11:11::2 activate
exit−address−family
 
On R2:
router bgp 6502
: bgp router−id 2.2.2.2
: neighbor 2011:11:11:11::1 remote−as 6501
: neighbor 2011:11:11:11::1 ebgp−multihop
 
address−family ipv6
: network 1010::1/128
: network 2020::1/128
: neighbor 2011:11:11:11::1 activate

Configuring IPv6 BGP Outbound Route Filter

IPv6 BGP Outbound Route Filter (ORF) can be used to minimize the number of BGP updates sent between peer routers by filtering out unwanted routing updates at the source.

To configure IPv6 BGP Outbound Route Filter (ORF), configure routers R1 and R2 as follows:

On R1:
router bgp 6501
: bgp router−id 1.1.1.1
: neighbor 2011:11:11:11::2 remote−as 6502
 
address−family ipv6
: redistribute connected
: neighbor 2011:11:11:11::2 activate
: neighbor 2011:11:11:11::2 prefix-list pref1 in
: neighbor 2011:11:11:11::2 prefix-list pref2 out
exit−address−family
 
ipv6 prefix-list pref1 seq 10 deny 1010::1/128
ipv6 prefix-list pref1 seq 20 permit any
ipv6 prefix-list pref2 seq 10 deny 1111::1/128
ipv6 prefix-list pref2 seq 20 permit any
On R2:
router bgp 6502
: bgp router−id 2.2.2.2
: neighbor 2011:11:11:11::1 remote−as 6501
 
address−family ipv6
: redistribute connected
: neighbor 2011:11:11:11::1 activate
 

To check the routes on R1 and R2, use the show bgp ipv6 unicast command.

The route on R1 should have IPv6 address 1010::1/128.

The route on R2 should have IPv6 address 1111::1/128.

On R1:
R1> show bgp ipv6 unicast
On R2:
R2> show bgp ipv6 unicast

Configuring IPv6 BGP Distribute List

IPv6 BGP Distribute List can be used to minimize the number of BGP updates sent between peer routers by filtering out unwanted routing updates at the source.

To configure IPv6 BGP Distribute List, configure routers R1 and R2 as follows:

On R1:
router bgp 6501
: bgp router−id 1.1.1.1
: neighbor 2011:11:11:11::2 remote−as 6502
 
address−family ipv6
: redistribute connected
: neighbor 2011:11:11:11::2 activate
: neighbor 2011:11:11:11::2 distribute-list acl1 in
: neighbor 2011:11:11:11::2 distribute-list acl2 out
exit−address−family
 
ipv6 access-list acl1 deny 1010::1/128
ipv6 access-list acl1 permit any
ipv6 access-list acl2 deny 1111::1/128
ipv6 access-list acl2 permit any
On R2:
router bgp 6502
: bgp router−id 2.2.2.2
: neighbor 2011:11:11:11::1 remote−as 6501
 
address−family ipv6
: redistribute connected
: neighbor 2011:11:11:11::1 activate
 

To check the routes on R1 and R2, use the show bgp ipv6 unicast command.

The route on R1 should have IPv6 address 1010::1/128.

The route on R2 should have IPv6 address 1111::1/128.

On R1:
R1> show bgp ipv6 unicast
On R2:
R2> show bgp ipv6 unicast

IPv6 BGP Route-Map

IPv6 BGP Route-Map can be used to minimize the number of BGP updates sent between peer routers by filtering out unwanted routing updates at the source.

To configure IPv6 BGP Route-Map, configure routers R1 and R2 as follows:

On R1:
router bgp 6501
: bgp router−id 1.1.1.1
: neighbor 2011:11:11:11::2 remote−as 6502
 
address−family ipv6
: redistribute connected
: neighbor 2011:11:11:11::2 activate
: neighbor 2011:11:11:11::2 route-map map1 in
: neighbor 2011:11:11:11::2 route-map map2 out
exit−address−family
 
ipv6 access-list acl1 deny 1010::1/128
ipv6 access-list acl1 permit any
ipv6 access-list acl2 deny 1111::1/128
ipv6 access-list acl2 permit any
!
route-map map1 permit 1 match ipv6 address acl1
!
route-map map2 permit 1 match ipv6 address acl2
!
On R2:
router bgp 6502
: bgp router−id 2.2.2.2
: neighbor 2011:11:11:11::1 remote−as 6501
 
address−family ipv6
: redistribute connected
: neighbor 2011:11:11:11::1 activate

To check the routes on R1 and R2, use the show bgp ipv6 unicast command.

On R1:
R1> show bgp ipv6 unicast

The route on R1 should have IPv6 address 1010::1/128.

On R2:
R2> show bgp ipv6 unicast

The route on R2 should have IPv6 address 1111::1/128.

Configuring an AS Regular Expression

You can configure regular expressions that can be matched and used to deny or allow addresses from an AS.

Figure 78. Autonomous System regular expression configuration

RTB advertises these routes:

RTC advertises these routes:

To check the routes on router RTA, use the show bgp ipv6 unicast command.

On RTA:
RTA> show bgp ipv6 unicast
 
BGP table version is 4, local router ID is 10.0.1.2
Status codes: s suppressed, d damped, h history, * valid, > best,
i - internal, l - labeled
S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
 
Network: Next Hop: Metric: LocPrf: Weight: Path
*> 2002::/64: ::ffff:a00:101: 0: 0: 100: i
*> 2003::/64: ::ffff:a00:101: 0: 0: 100: i
*> 2004::/64: ::ffff:a00:101: 0: 0: 100: i
*> 5000::/64: ::ffff:a00:101: 0: 0: 100: 400i
*> 6666::6/128: ::ffff:a00:101: 0: 0: 100: 400
*> 7777::7/128: ::ffff:a00:101: 0: 0: 100: 400
 

To configure AS regular expressions on RTA and deny all routes originated in AS100:

router bgp 200
: neighbor 10.0.1.1 remote-as 100
: neighbor 10.0.1.1 update-source X2
: neighbor 2004::1 remote-as 100
: neighbor 2004::1 update-source X2
!
address-family ipv6
: neighbor 10.0.1.1 activate
: neighbor 10.0.1.1 filter-list 1 in
: neighbor 2004::1 activate
: exit-address-family
 
ip as-path access-list 1 deny ^100$
ip as-path access-list 1 permit .*
 

To check the routes on router RTA, use the show bgp ipv6 unicast command.

On RTA:
RTA> show bgp ipv6 unicast
BGP table version is 4, local router ID is 10.0.1.2
Status codes: s suppressed, d damped, h history, * valid, > best,
i - internal, l - labeled
S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network: Next Hop: Metric: LocPrf: Weight: Path
*> 5000::/64: ::ffff:a00:101: 0: 0: 100: 400i
*> 6666::6/128: ::ffff:a00:101: 0: 0: 100: 400i
*> 7777::7/128: ::ffff:a00:101: 0: 0: 100: 400i
 
Total number of prefixes 3

 

To modify the AS path to deny all routes learned from the AS100:

On RTA:
router bgp 200
: neighbor 10.0.1.1 remote-as 100
: neighbor 10.0.1.1 update-source X2
: neighbor 2004::1 remote-as 100
: neighbor 2004::1 update-source X2
!
address-family ipv6
: neighbor 10.0.1.1 activate
: neighbor 10.0.1.1 filter-list 1 in
: neighbor 2004::1 activate
exit-address-family
 
ip as-path access-list 1 deny _100_
ip as-path access-list 1 permit .*

To check the routes on router RTA, use the show bgp ipv6 unicast command.

On RTA:
RTA> show bgp ipv6 unicast

EBGP Route Selection

Routes are selected based on the administrative distance of the routing protocol running on that route. Routing protocols with lower administrative distances are given priority over routing protocols with higher administrative distances. EBGP has an administrative distance of 20. OSPF has an administrative distance of 110.

This diagram shows three ASs and the routing protocols used by the BGP routers.

Figure 79. Autonomous systems EBGP route selection configuration

The RTC router in AS300 advertises route 1000::/64 to both AS100 and to AS200.

The route from RTC (AS300) to RTA (AS100) runs OSPF.

The route from RTC (AS300) to RTB (AS200) runs eBGP.

The route from RTA (AS100) to RTB (AS200) runs eBGP.

RTA (AS100) receives updates about route 1000::/64 from both OSPF and eBGP. The route learned from eBGP is selected and added to RTA’s routing table, because the administrative distance of eBGP is less than the administrative distance of OSPF.

On RTA:
router bgp 100
: neighbor 3001::1 remote-as 200
!
address-family ipv6
: distance bgp 150 150 150
: neighbor 3001::1 activate
exit-address-family
On RTB:
router bgp 200
: bgp log-neighbor-changes
: neighbor 1001::1 remote-as 300
: neighbor 2003::1 remote-as 100
 
address-family ipv6
: network 6666::6/128
: neighbor 1001::1 activate
: neighbor 2003::1 activate
exit-address-family
On RTC:
router bgp 300
: neighbor 3002::1 remote-as 200
!
address-family ipv6 network 1000::/64
: neighbor 3002::1 activate
exit-address-family

To check the routes on router RTA, use the show ipv6 route command.

RTA> show ipv6 route
IPv6 Routing Table
Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF, I - IS-IS, B - BGP
Timers: Uptime
 
B 1000::/64 [20/0] via fe80::204:27ff:fe0c:b006, X1, 00:01:07
C 2003::/64 via ::, X1, 00:30:50
B 6666::6/128 [20/0] via fe80::204:27ff:fe0c:b006, X1, 00:01:07
C fe80::/64 via ::, X1, 00:30:53
 

Since RTC is directly connected to RTA, the route from OSPF is actually a better route than the route learned by BGP. To ensure that the route between RTA and RTC is selected for the routing table, you can use the distance command to change the default administrative distance of the BGP route to a higher administrative distance than the OSPF route. For example:

distance bgp 150 150 150

You can also use the backdoor neighbor command to set the BGP route as the preferred route. For example:

On RTA:
router bgp 100
: neighbor 3001::1 remote-as 200
!
address-family ipv6
: network 1000::/64
: backdoor neighbor 3001::1 activate
exit-address-family
 

To check the routes on router RTA, use the show ipv6 route command.

RTA> show ipv6 route
IPv6 Routing Table
 
Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF, I - IS-IS, B - BGP
Timers: Uptime
 
O: 1000::/64 [110/2] via fe80::217:c5ff:feb4:57f2, X4, 00:30:53
C: 2003::/64 via ::, X1, 00:31:18
B: 6666::6/128 [20/0] via fe80::204:27ff:fe0c:b006, X1, 00:00:03
C: fe80::/64 via ::, X1, 00:31:21

IPv6 BGP Synchronization

IPv6 BGP Synchronization keeps all BGP routers updated with the IPv6 addresses of all available routes and networks.

In BGP Synchronization, if an AS (AS100) passes traffic from another AS (AS300) to a third AS (AS400), BGP does not advertise that route until all the routers in AS100 have learned that route from the IGP. In this case, the IGP is iBGP. AS100 must wait until iBGP has propagated that route to all routers within AS100. Then, eBGP advertises the route to external ASs.

In this example, after RTB learns address 6666::6/128 via iBGP. it then advertises the address to RTD.

Figure 80. IPv6 BGP synchronization example

In this example, RTC (AS2) advertises address 6666::6/128 to RTA (AS100). In AS100, RTA and RTB are running iBGP, so RTB learns address 6666::6/128 and is able to reach it via next hop 5.5.5.5 (RTC). Next hop is carried via iBGP. However, to reach the next hop (RTC), RTB must send traffic through RTE, but RTE does not know IP address 6666::6/128.

If RTB advertises 6666::6/128 to RTD (AS400), traffic that tries to reach 6666::6/128 from RTD must pass through RTB and RTE in AS100. However, since RTE has not learned 6666::6/128, all packets will be dropped at RTE.

To configure BGP Synchronization on RTB in AS100:

On RTB:
router bgp 100
: neighbor 10.103.10.129 remote-as 100
: neighbor 3001::1 remote-as 100
: neighbor 3001::1 update-source X4
: neighbor 5000::1 remote-as 400
: neighbor 5000::1 update-source X2
!
address-family ipv6
: synchronization
: neighbor 10.103.10.129 activate
: neighbor 3001::1 activate
: neighbor 5000::1 activate
exit-address-family
 

You can disable synchronization if you do not pass traffic from one AS to another AS through an intermediate AS. You can also disable synchronization if all routers in the intermediate AS run BGP. Disabling synchronization lets you to carry fewer routes in your IGP and allows BGP to converge more quickly.

To disable BGP Synchronization on RTB in AS100:

On RTB:
router bgp 100
: neighbor 10.103.10.129 remote-as 100
: neighbor 3001::1 remote-as 100
: neighbor 3001::1 update-source X4
: neighbor 5000::1 remote-as 400
: neighbor 5000::1 update-source X2
!
address-family ipv6
: neighbor 10.103.10.129 activate
: neighbor 3001::1 activate
: neighbor 5000::1 activate
exit-address-family

BGP Route Reflection

By default, all iBGP routers in an AS must be in a full mesh configuration. Each router must be configured as a peer to every other router.

With route reflection, all iBGP routers do not need to be fully meshed. Route reflection eliminates the need for each iBGP router to communicate with every other iBGP router in the AS. An iBGP router can be designated as a route reflector and can pass iBGP learned routes to multiple iBGP clients.

When a router is configured as a route reflector, it acts as a single point where all the other iBGP routers can get the iBGP learned routes. The route reflector acts like a server, rather than a peer, for every other router in the AS. All the other IBGP routers become route reflector clients. A router is a route reflector as long as it has at least one route reflector client.

Figure 81. BGP route reflection configuration

To configure route reflection in an AS:

On RouterA:
interface Serial0/0
: ipv6 address 2011:12:12:12::1/64
: ipv6 ospf 10 area 0
 
interface Serial0/1
: ipv6 address 2011:13:13:13::1/64
: ipv6 ospf 10 area 0
 
router bgp 100
 
bgp router−id 1.1.1.1
no bgp default ipv4−unicast
bgp log−neighbor−changes
: neighbor 2011:22:22:22::22 remote−as 100
: neighbor 2011:22:22:22::22 update−source Loopback0
: neighbor 2011:33:33:33::33 remote−as 100
: neighbor 2011:33:33:33::33 update−source Loopback0
!
address−family ipv6
: neighbor 2011:22:22:22::22 activate
: neighbor 2011:22:22:22::22 route−reflector−client
: neighbor 2011:33:33:33::33 activate
: neighbor 2011:33:33:33::33 route−reflector−client
exit−address−family
!
ipv6 router ospf 10
: router−id 1.1.1.1
 
On RRClient1:
interface Loopback0
: ipv6 address 2011:22:22:22::22/128
: ipv6 ospf 10 area 0
!
interface Loopback10
: ipv6 address 1010:10:10:10::10/128
 
interface Serial0/0
: ipv6 address 2011:12:12:12::2/64
: ipv6 ospf 10 area 0
!
router bgp 100
: bgp router−id 2.2.2.2
: bgp log−neighbor−changes
: neighbor 2011:11:11:11::11 remote−as 100
: neighbor 2011:11:11:11::11 update−source Loopback0
!
address−family ipv6
: neighbor 2011:11:11:11::11 activate
: network 1010:10:10:10::10/128
exit−address−family
!
ipv6 router ospf 10
: router−id 2.2.2.2
RRClient2:
interface Loopback0
: ipv6 address 2011:33:33:33::33/128
: ipv6 ospf 10 area 0
!
interface Loopback20
: ipv6 address 2020:20:20:20::20/128
!
interface Serial0/0
: no ip address
: ipv6 address 2011:13:13:13::2/64
: ipv6 ospf 10 area 0
!
router bgp 100
: bgp router−id 3.3.3.3
: bgp log−neighbor−changes
: neighbor 2011:11:11:11::11 remote−as 100
: neighbor 2011:11:11:11::11 update−source Loopback0
!
address−family ipv6
: neighbor 2011:11:11:11::11 activate
: network 2020:20:20:20::20/128
exit−address−family
!
ipv6 router ospf 10
: router−id 3.3.3.3
: log−adjacency−changes

To check the routes, use the show bgp ipv6 unicast command:

On RRClient1:
RRClient1> show bgp ipv6 unicast

You should see route 2020:20:20:20::20/128.

On RRClient2:
RRClient2> show bgp ipv6 unicast

You should see route 1010:10:10:10::10/128.

IPv6 BGP Local Preference

The local preference designates a route to a certain network as the preferred exit route to that network from the AS. The route with a highest local preference is the preferred route. The default value of the local preference is 100, but this can be changed using the set local-preference command.

Figure 82. IPv6 BGP local preference configuration

To configure the local preference of a preferred route in an AS:

On R1:
interface Loopback0
: ipv6 address 1111:111:111:A::/64 eui−64
: ipv6 ospf 10 area 0
 
interface FastEthernet0/0
: ipv6 address AB01:CD1:123:A::/64 eui−64
: ipv6 ospf 10 area 0
!
interface Serial0/0
: ipv6 address AB01:CD1:123:C::/64 eui−64
!
interface FastEthernet0/1
: ipv6 address AB01:CD1:123:B::/64 eui−64
: ipv6 ospf 10 area 0
!
: ipv6 router ospf 10 router−id 1.1.1.1 log−adjacency−changes
: redistribute connected route−map CONNECTED
!
route−map CONNECTED permit 10
: match interface Serial0/0
!
router bgp 123
bgp router−id 1.1.1.1
: neighbor 2222:222:222:A:C602:3FF:FEF0:0 remote−as 123
: neighbor 2222:222:222:A:C602:3FF:FEF0:0 update−source Loopback0
: neighbor 3333:333:333:A:C603:3FF:FEF0:0 remote−as 123
: neighbor 3333:333:333:A:C603:3FF:FEF0:0 update−source Loopback0
: neighbor AB01:CD1:123:C:C604:16FF:FE98:0 remote−as 101
: neighbor AB01:CD1:123:C:C604:16FF:FE98:0 ebgp−multihop 5
!
address−family ipv6
: neighbor 2222:222:222:A:C602:3FF:FEF0:0 activate
: neighbor 2222:222:222:A:C602:3FF:FEF0:0 next−hop−self
: neighbor 3333:333:333:A:C603:3FF:FEF0:0 activate
: neighbor 3333:333:333:A:C603:3FF:FEF0:0 next−hop−self
: neighbor AB01:CD1:123:C:C604:16FF:FE98:0 activate exit−address−family
 
On R2:
interface Loopback0
: ipv6 address 2222:222:222:A::/64 eui−64
: ipv6 ospf 10 area 0
!
interface FastEthernet0/0
: ipv6 address AB01:CD1:123:A::/64 eui−64
: ipv6 ospf 10 area 0
!
interface FastEthernet0/1
: ipv6 address AB01:CD1:123:D::/64 eui−64
: ipv6 ospf 10 area 0
!
: ipv6 router ospf 10 router−id 2.2.2.2 log−adjacency−changes
!
router bgp 123
bgp router−id 2.2.2.2
: neighbor 1111:111:111:A:C601:3FF:FEF0:0 remote−as 123
: neighbor 1111:111:111:A:C601:3FF:FEF0:0 update−source Loopback0
: neighbor 3333:333:333:A:C603:3FF:FEF0:0 remote−as 123
: neighbor 3333:333:333:A:C603:3FF:FEF0:0 update−source Loopback0
 
address−family ipv6
: neighbor 1111:111:111:A:C601:3FF:FEF0:0 activate
: neighbor 3333:333:333:A:C603:3FF:FEF0:0 activate
exit−address−family
 
On R3:
interface Loopback0
: ipv6 address 3333:333:333:A::/64 eui−64
: ipv6 ospf 10 area 0
!
interface FastEthernet0/0
: ipv6 address AB01:CD1:123:B::/64 eui−64
: ipv6 ospf 10 area 0
!
interface Serial0/0
: ipv6 address AB01:CD1:123:E::/64 eui−64
!
interface FastEthernet0/1
: ipv6 address AB01:CD1:123:D::/64 eui−64
: ipv6 ospf 10 area 0
!
ipv6 router ospf 10
: router−id 3.3.3.3
: redistribute connected route−map CONNECTED
!
router bgp 123
: no synchronization
: bgp router−id 3.3.3.3
: neighbor 1111:111:111:A:C601:3FF:FEF0:0 remote−as 123
: neighbor 1111:111:111:A:C601:3FF:FEF0:0 update−source Loopback0
: neighbor 2222:222:222:A:C602:3FF:FEF0:0 remote−as 123
: neighbor 2222:222:222:A:C602:3FF:FEF0:0 update−source Loopback0
: neighbor AB01:CD1:123:E:C605:16FF:FE98:0 remote−as 202
: neighbor AB01:CD1:123:E:C605:16FF:FE98:0 ebgp−multihop 5
!
address−family ipv6
: neighbor 1111:111:111:A:C601:3FF:FEF0:0 activate
: neighbor 1111:111:111:A:C601:3FF:FEF0:0 next−hop−self
: neighbor 1111:111:111:A:C601:3FF:FEF0:0 route−map LOCAL_PREF out
: neighbor 2222:222:222:A:C602:3FF:FEF0:0 activate
: neighbor 2222:222:222:A:C602:3FF:FEF0:0 next−hop−self
: neighbor 2222:222:222:A:C602:3FF:FEF0:0 route−map LOCAL_PREF out
: neighbor AB01:CD1:123:E:C605:16FF:FE98:0 activate
exit−address−family
!
ipv6 prefix−list 10 seq 5 permit BC01:BC1:10:A::/64
!
route−map LOCAL_PREF permit 10
: match ipv6 address prefix−list 10
: set local−preference 500
!
route−map LOCAL_PREF permit 20
!
route−map CONNECTED permit 10
: match interface Serial0/0
On R4:
interface Serial0/0
: ipv6 address AB01:CD1:123:C::/64 eui−64
!
interface Loopback10
: ipv6 address BC01:BC1:10:A::/64 eui−64
!
interface Loopback11
: ipv6 address BC02:BC1:11:A::/64 eui−64
!
interface Loopback12
: ipv6 address BC03:BC1:12:A::/64 eui−64
 
router bgp 101
bgp router−id 4.4.4.4
: neighbor AB01:CD1:123:C:C601:3FF:FEF0:0 remote−as 123
!
address−family ipv6
: neighbor AB01:CD1:123:C:C601:3FF:FEF0:0 activate
: network BC01:BC1:10:A::/64 network BC02:BC1:11:A::/64
: network BC03:BC1:12:A::/64 exit−address−family
On R5:
interface Serial0/0
: ipv6 address AB01:CD1:123:E::/64 eui−64
: clock rate 2000000
!
interface Loopback10
: ipv6 address BC01:BC1:10:A::/64 eui−64
!
interface Loopback11
: ipv6 address BC02:BC1:11:A::/64 eui−64
!
interface Loopback12
: ipv6 address BC03:BC1:12:A::/64 eui−64
!
router bgp 202
bgp router−id 5.5.5.5
: neighbor AB01:CD1:123:E:C603:3FF:FEF0:0 remote−as 123
: neighbor AB01:CD1:123:E:C603:3FF:FEF0:0 ebgp−multihop 5
!
address−family ipv6
: neighbor AB01:CD1:123:E:C603:3FF:FEF0:0 activate
: network BC01:BC1:10:A::/64
: network BC02:BC1:11:A::/64
: network BC03:BC1:12:A::/64
exit−address−family
 

To verify the route, use the show bgp ipv6 unicast command:

On R2:
R2> show bgp ipv6 unicast

Before the local preference is configured, R2 has R1 as its next hop for all learned IPv6 addresses. After configuring the local preference on R3 to 500, R2 has a different preferred exit route for prefix BC01:BC1:10:A::/64. R2 can now reach prefix BC01:BC1:10:A::/64 through the exit path of R3, which is now designated as the local preference.

BGP Peer Group Update Policies

A BGP peer group is a group of BGP neighbors that share the same update policies. Update policies are typically set by route maps, distribution lists, and filter lists.

When you define a peer group and add neighbors to it, all of the update policies that you assign to that peer group apply to all of the neighbors in that peer group. You do not need to define a policy for each neighbor.

Members of a peer group inherit all of the configuration settings of that peer group. You can configure certain members to override the update policies, but only if those policies are set for inbound traffic. You cannot configure members to override group policies if the policies apply to outbound traffic.

Figure 83. BGP peer group update policy configuration

To configure an IPv6 BGP peer group and its update policies:

On R3:
router bgp 123
: no synchronization
: bgp router−id 3.3.3.3
neighbor interalmap peer-group
: neighbor interalmap remote-as 123
: neighbor 1111:111:111:A:C601:3FF:FEF0:0 peer-group interalmap
: neighbor 2222:222:222:A:C602:3FF:FEF0:0 peer-group interalmap
: neighbor AB01:CD1:123:E:C605:16FF:FE98:0 remote−as 202
: neighbor AB01:CD1:123:E:C605:16FF:FE98:0 ebgp−multihop 5
!
address−family ipv6
: neighbor interalmap activate
: neighbor interalmap route-map 1 out
: neighbor 1111:111:111:A:C601:3FF:FEF0:0 peer-group interalmap
: neighbor 2222:222:222:A:C602:3FF:FEF0:0 peer-group interalmap
exit−address−family
!
ipv6 prefix−list 10 seq 5 permit BC01:BC1:10:A::/64
!
route-map 1 permit 10
: match ipv6 address prefix-list 1 set tag 333
: set metric 273
: set local-preference 312

To verify that the correct local preference route is configured, use the show bgp ipv6 unicast command:

On R3:
R3> show bgp ipv6 unicast

Verify that IPv6 address BC01:BC1:10:A::/64 passes from AS100 to R1 and R2, and that the metric and local preference are set to the corresponding route-map settings.

BGP Confederation

You can divide a single AS into multiple ASs, and then assign these multiple ASs to a single confederation of ASs. The implementation of a BGP confederation reduces the iBGP mesh size of the AS, and the confederation can still advertise as a single AS to external peers.

Each individual AS within a confederation runs fully meshed iBGP, and each individual AS within the confederation also runs eBGP connections to the other ASs inside the confederation. These eBGP peers within the confederation exchange routing information as if they used iBGP. In this way, the confederation preserves next hop, metric, and local preference information. To the outside world, the confederation appears to be a single AS.

Figure 84. BGP confederation configuration

To configure a BGP Confederation:

R1:

router bgp 2000
: bgp log-neighbor-changes
: bgp confederation identifier 200
: bgp confederation peers 1000
: neighbor 2003::1 remote-as 1000
!
address-family ipv4
: neighbor 2003::1 activate
exit-address-family
!
address-family ipv6
: network 3002::/64
: network 4000::/64
: neighbor 2003::1 activate
exit-address-family
On R2:
router bgp 1000
: bgp confederation identifier 200
: neighbor 10.0.1.1 remote-as 1000
!
address-family ipv6
: neighbor 10.0.1.1 activate
exit-address-family
 
On R3:
router bgp 1000
: bgp confederation identifier 200
: bgp confederation peers 2000
: neighbor 10.0.1.2 remote-as 1000
: neighbor 3001::1 remote-as 2000
: neighbor 5000::1 remote-as 100
: neighbor 5000::1 update-source X2
!
address-family ipv6
: neighbor 10.0.1.2 activate
: neighbor 3001::1 activate
: neighbor 5000::1 activate
exit-address-family
 
On R5:
router bgp 100
: bgp router-id 5.5.5.5
: bgp log-neighbor-changes
: neighbor 2002::1 remote-as 200
!
address-family ipv6
: network 6666::6/128
: network 7777::7/128
: neighbor 2002::1 activate
exit-address-family
 

Verify that R1, R2, and R3 can learn this route that is advertised by R5:

: 6666::6/128 and 7777::7/128

Verify that R2 can learn this route from R1 even though they are not directly connected:

: 3002::/64 and 4000::/64