BGP会话始终是两台路由器之间的点对点会话:
-
内部BGP(iBGP)会话:是与位于同一AS或参与同一BGP联盟的iBGP路由器建立的会话。与eBGP会话相比,iBGP会话被认为更安全,而且减少了某些BGP安全措施。
-
外部BGP(eBGP)会话:是与位于不同AS中的BGP路由器建立的会话。
如果在一个企业内需要用到多个路由策略或者需要在AS之间提供转接连接,那么通常都会在AS内部部署BGP。
IGP始终使用Metric作为路径的选择;BGP则使用多个步骤来确定最佳路径,允许通过BGP路径属性来控制特定前缀(NLRI)的路径,路径可能会更长,从IGP的角度来看,这些路径可能会被认为是次优路径。
路径属性:无法在IGP中维护BGP的所有路径属性;从AS的一个边缘向另一个边缘宣告前缀的时候,只能通过BGP来维护这些路径属性。
在有中转AS的需要时,应该由服务提供商提供转接连接服务;企业组织是客户,不应该跨Internet在AS之间提供转接连接服务。
PS:过去的这些年里,路由原理和路由设计模式都发生了很大的变化。在早期将AS作为转接AS的iBGP部署方案中,通常会将网络前缀重分发到IGP中。为了确保转接AS的完全连接性,BGP需要使用同步机制。BGP同步是指将路由宣告给eBGP对等体之前先验证IGP是否存在该BGP路由的进程。目前,BGP同步机制不再是默认设置,已很少使用。
eBGP使用AS_PATH作为环路检测与预防机制。AS_PATH可以为eBGP邻居提供环路检测功能,因为向其他AS宣告路由时它会附加自己的ASN。但iBGP对等体并不会在AS_PATH中附加自己的ASN,因为NLRI将无法通过有效性检查,不会将前缀安装到IP路由表中。
iBGP会话没有其他的环路检测方法,RFC 4271禁止将从iBGP对等体收到的NLRI宣告给其他iBGP对等体。RFC 4271指出,AS内的所有iBGP路由器都必须建立全网状连接,以提供完整的无环路由表并防止流量黑洞并可以确保在AS内部正确转发流量。
使用环回地址进行对等连接:

BGP会话默认由出站接口的主用IP地址指向BGP对等体。
如果网络10.0.13.0/24上的链路出现故障,那么R3与R1的BGP会话将超时并终止,R3将失去与网络1.1.1.1/32的连接,即使R1与R3可以通过R2(经多跳路径)进行通信;由于iBGP不会宣告从另一个iBGP对等体学到的路由,因而会出现连接丢失问题。
可以通过以下两种方法来解决链路故障问题:
-
在每对路由器之间增加第二链路(从3条链路变为6条链路),并在每对路由器之间建立两条BGP会话;
-
在路由器的转接链路上配置IGP,将环回接口宣告到IGP中。然后配置BGP邻居,与远程路由器的环回地址建立会话。
第二种方法更加有效,也是首选方法。环回接口是虚拟接口且始终存在。出现链路故障后,会话将保持不变,IGP会找到指向环回地址的其他路径。从本质上来说,这就是将单跳iBGP会话转变为了多跳iBGP会话。
PS:仅仅更新BGP配置,从而将会话连接到远程路由器的环回接口的IP地址还不够。BGP数据包的源IP地址仍然反映出站接口的IP地址,收到BGP数据包之后,路由器会将数据包的源IP地址与BGP邻居表相关联,如果BGP数据包的源IP地址与邻居表中的表项不匹配,那么该数据包就无法与邻居表相关联,从而被丢弃。
可以将BGP数据包的源IP地址静态设置为接口的主用IP地址;配置示例如下:(R1和R2启用了默认的IPv4地址簇配置,R3则更改为禁用默认的IPv4地址簇。)
R1的基础配置:
router ospf 1
router-id 11.11.11.11
interface Loopback0
ip address 1.1.1.1 255.255.255.255
ip ospf 1 area 0
end
interface Loopback1
ip address 10.1.1.1 255.255.255.0
end
interface Ethernet0/0
ip address 10.0.12.1 255.255.255.0
ip ospf network point-to-point
ip ospf 1 area 0
duplex auto
end
interface Ethernet0/1
ip address 10.0.13.1 255.255.255.0
ip ospf network point-to-point
ip ospf 1 area 0
duplex auto
end
router bgp 65100
bgp router-id 111.111.111.111
bgp log-neighbor-changes
network 10.1.1.0 mask 255.255.255.0
neighbor 2.2.2.2 remote-as 65100
neighbor 2.2.2.2 update-source Loopback0
neighbor 3.3.3.3 remote-as 65100
neighbor 3.3.3.3 update-source Loopback0
R2的基础配置:
router ospf 1
router-id 22.22.22.22
interface Loopback0
ip address 2.2.2.2 255.255.255.255
ip ospf 1 area 0
end
interface Ethernet0/0
ip address 10.0.12.2 255.255.255.0
ip ospf network point-to-point
ip ospf 1 area 0
duplex auto
end
interface Ethernet0/1
ip address 10.0.23.2 255.255.255.0
ip ospf network point-to-point
ip ospf 1 area 0
duplex auto
end
router bgp 65100
bgp router-id 22.22.22.22
bgp log-neighbor-changes
neighbor 1.1.1.1 remote-as 65100
neighbor 1.1.1.1 update-source Loopback0
neighbor 3.3.3.3 remote-as 65100
neighbor 3.3.3.3 update-source Loopback0
R3的基础配置:
router ospf 1
router-id 33.33.33.33
interface Loopback0
ip address 3.3.3.3 255.255.255.255
ip ospf 1 area 0
end
interface Ethernet0/0
ip address 10.0.23.3 255.255.255.0
ip ospf network point-to-point
ip ospf 1 area 0
duplex auto
end
interface Ethernet0/1
ip address 10.0.13.3 255.255.255.0
ip ospf network point-to-point
ip ospf 1 area 0
duplex auto
end
router bgp 65100
bgp router-id 33.33.33.33
bgp log-neighbor-changes
no bgp default ipv4-unicast
neighbor 1.1.1.1 remote-as 65100
neighbor 1.1.1.1 update-source Loopback0
neighbor 2.2.2.2 remote-as 65100
neighbor 2.2.2.2 update-source Loopback0
!
address-family ipv4
neighbor 1.1.1.1 activate
neighbor 2.2.2.2 activate
exit-address-family

PS:以环回接口为源端建立BGP会话之后,即便对等链路出现了故障(例如,断掉R1和R3之间的链路),也无须重新计算BGP最佳路径。如果存在多条经IGP可达环回地址的等价路径,那么这样做还能提供自动负载均衡能力。
eBGP对等连接是Internet BGP的核心组件,eBGP涉及AS之间的网络前缀交换:
-
eBGP数据包的TTL设置为默认为1;如果尝试发起多跳BGP会话,那么BGP数据包就会在传输过程中丢失(除非手动开启eBGP多跳);iBGP数据包的TTL设置为255,允许进行多跳会话。
-
宣告路由器将BGP下一跳修改为发起BGP连接的IP地址。
-
宣告路由器将自己的ASN附加到现有AS_PATH上。
-
接收路由器验证AS_PATH不包含与本地路由器相匹配的ASN;如果未通过AS_PATH环路预防检查,那么BGP就会丢弃该NLRI。
eBGP与iBGP会话的配置基本相同,区别在于remote-as语句中的ASN与BGP进程中定义的ASN不同。
对于通过eBGP学到的路径来说,其AS_PATH中始终至少存在一个ASN。如果AS_PATH中列出了多个AS,那么始终将最新的AS放在前面(最左侧)。可以通过命令show bgp ipv4 unicast
network / show ip bgp
network显示到特定网络前缀的所有路径的BGP属性。
将eBGP前缀宣告给iBGP邻居的时候,可能会在对NLRI执行有效性检查和下一跳可达性检查时出现问题,从而阻止向其他BGP对等体宣告前缀。最常见的问题包括下一跳可达性检查失败。如果NLRI的下一跳地址不是0.0.0.0,那么iBGP对等体就不会修改下一跳地址。下一跳地址必须在全局RIB中可解析,以确保其有效并宣告给其他BGP对等体。需要通过下一跳自我来更新iBGP传递给对等体的指向。
由于BGP不能将从iBGP对等体学到的前缀宣告给其他iBGP对等体,因而可能会导致AS内出现扩展性问题。公式n(n−1)/2提出了所需的iBGP会话数,其中,n代表路由器的数量。也就是说,5台路由器的全网状拓扑结构需要10条会话,10台路由器的全网状拓扑结构就需要45条会话。对于大型网络来说,iBGP的扩展性是一个不得不面对的重要问题。
RFC 1966引入了一种扩展机制,可以将iBGP对等关系配置为将路由反射给其他iBGP对等体,负责反射路由的路由器称为RR(Route Reflector,路由反射器),接收反射路由的路由器则称为RR客户端。
RR和路由反射涉及3条基本设计规则:
-
规则1——如果RR从非RR客户端收到了NLRI,那么RR就将该NLRI宣告给RR客户端,但是不会将NLRI宣告给非RR客户端。(非非不传)
-
规则2——如果RR从RR客户端收到了NLRI,就将该NLRI宣告给RR客户端和非RR客户端。即使发送该路由宣告的RR客户端收到了路由副本,也会丢弃该NLRI,因为它可以看出自己是路由发端。
-
规则3——如果RR从eBGP对等体收到了路由,就会将该路由宣告给RR客户端和非RR客户端。
三条规则的图示为:

由于RR客户端未执行任何额外的BGP配置,因而只有RR才能感知这种行为变化。
下图中所示的拓扑结构——配置了RR和RR客户端,解释了RR的运行规则。R1将前缀10.1.1.0/24作为普通iBGP路由宣告给了R2。R2按照RR规则2接收前缀10.1.1.0/24并将其宣告给R3(非RR客户端)。R3按照RR规则1接收前缀10.1.1.0/24并将其宣告给R4(RR客户端)。

虽然RR满足了iBGP拓扑结构的全网状连接需求,但是可能会导致路由环路。因此,起草RFC 1966的时候,增加了两个与BGP RR相关的特定属性,以防止路由环路问题:
-
ORIGINATOR_ID——该可选非传递BGP属性由第一台RR创建,且数值被设置为将路由注入/宣告到AS中的路由器的RID;如果NLRI已经填充了ORIGINATOR_ID,就不应该将其覆盖;收到NLRI后,如果路由器发现自己的RID位于ORIGINATOR_ID属性中,就丢弃该NLRI。
-
CLUSTER_LIST——该非传递BGP属性由RR进行更新;RR会将自己的簇ID附加(而不覆盖)到该属性中,在默认情况下,这是BGP标识符;收到NLRI之后,如果RR自己的簇ID位于CLUSTER_LIST属性中,就会丢弃该NLRI。


1. Originator_ID:
-
Originator_ID主要用于BGP的 Confederation和 Route Reflector场景中;它用于标识最初发起该路由的BGP路由器。
-
在BGP路由反射器(Route Reflector)中,当路由器将一条路由传递给它的客户端时, Originator_ID会保存路由的源头(即最初发布该路由的路由器);这样,其他路由器就可以识别是否路由在反射器环路中。
-
Originator_ID通常是最初发出该路由的BGP路由器的 router-id;因此, Originator_ID的值通常是BGP router-id。(例如,当一个路由由路由反射器传递给客户端时,Originator_ID就是发出该路由的原始BGP路由器的router-id)
2. Cluster_List:
-
Cluster_List是BGP路由反射器环境中的另一个机制,用来追踪路由在不同的路由反射器间传递的路径。
-
在BGP Route Reflector中,Cluster_List是一组 router-id(即路由反射器的ID),记录了路由经过哪些路由反射器;每经过一个路由反射器,该路由的router-id会被加入到Cluster_List中;这个字段的作用是避免路由环路——如果路由反射器发现Cluster_List中有自己的router-id,那么它就不会再次反射该路由,从而避免环路。
-
Cluster_List 中的每个元素通常是一个路由反射器的 router-id,即各个反射器的标识。
总结:
-
Originator_ID是发出该路由的BGP路由器的 router-id。
-
Cluster_List中的IP地址是参与路由反射的路由反射器的BGP router-id。
注意,
Originator_ID和
Cluster_List 中的地址是BGP路由器的
router-id,但它们的含义和作用是在不同的BGP架构(如Route Reflector和Confederation)中起作用的。
RFC 3065引入了BGP联盟的概念,作为解决前面所说的iBGP全网状连接问题的可选方案。
联盟由多个被称为成员AS的sub-AS组成,这些sub-AS组成较大的AS,称为AS联盟。成员AS通常使用私有ASN空间(64,512~65,535)中的ASN。
联盟中的eBGP对等体并不知道它们与联盟进行对等连接,并在配置中引用联盟标识符(Confederation Identifier)。

上图中R1和R7并不感知BGP联盟,与R2和R6是对等体,看起来就像是AS 200的成员一样。注意,R3不需要配置命令bgp confederation peers,因为R3不与其他成员AS进行对等连接。
BGP联盟的配置步骤如下:
步骤1——使用全局命令router bgp member-asn初始化BGP进程。
步骤2——使用命令bgp confederation identifier as-number标识BGP联盟。
步骤3——在与其他成员AS直接对等的路由器上,通过命令bgp confederation peers member-asn识别对等成员AS。
步骤4——按常规方式配置BGP联盟成员,再按照常规BGP配置方式进行其余配置。
联盟共享iBGP和eBGP会话行为存在以下差异:
-
AS_PATH属性包含一个名为AS_CONFED_SEQUENCE的子字段;AS_CONFED_ SEQUENCE子字段在AS_PATH中列在外部ASN之前的括号中;路由从成员AS传递到其他成员AS的时候,会附加AS_CONFED_SEQUENCE子字段以包含成员AS的ASN;AS_CONFED_SEQUENCE子字段主要用于预防路由环路,选择最短AS_PATH时不考虑该子字段(不计数)。
-
RR可以像普通iBGP对等体一样在成员AS中使用。
-
BGP MED属性可以传递给所有其他成员AS,但不离开联盟。
-
LOCAL_PREF属性可以传递给所有其他成员AS,但不离开联盟。
-
在成员AS之间交换路由时,外部联盟路由的下一跳地址不变。
-
将路由宣告到联盟之外时,需要从AS_PATH中删除AS_CONFED_SEQUENCE子字段。
配置示例如下:
//R1的基础配置:
router bgp 100
bgp router-id 192.168.1.1
bgp log-neighbor-changes
redistribute connected
neighbor 10.12.1.2 remote-as 200

//R2的基础配置:
router bgp 65100
bgp router-id 192.168.2.2
bgp log-neighbor-changes
bgp confederation identifier 200
bgp confederation peers 65200
redistribute connected
neighbor 10.12.1.1 remote-as 100
neighbor 10.23.1.3 remote-as 65100
neighbor 10.25.1.5 remote-as 65200

//R3的基础配置:
router bgp 65100
bgp router-id 192.168.3.3
bgp log-neighbor-changes
bgp confederation identifier 200
redistribute connected
neighbor 10.23.1.2 remote-as 65100
neighbor 10.23.1.2 route-reflector-client
neighbor 10.34.1.4 remote-as 65100
neighbor 10.34.1.4 route-reflector-client

//R4的基础配置:
router bgp 65100
bgp router-id 192.168.4.4
bgp log-neighbor-changes
bgp confederation identifier 200
bgp confederation peers 65200
redistribute connected
neighbor 10.34.1.3 remote-as 65100
neighbor 10.46.1.6 remote-as 65200

//R5的基础配置:
router bgp 65200
bgp router-id 192.168.5.5
bgp log-neighbor-changes
bgp confederation identifier 200
bgp confederation peers 65100
redistribute connected
neighbor 10.25.1.2 remote-as 65100
neighbor 10.56.1.6 remote-as 65200

//R6的基础配置:
router bgp 65200
bgp router-id 192.168.6.6
bgp log-neighbor-changes
bgp confederation identifier 200
bgp confederation peers 65100
redistribute connected
neighbor 10.46.1.4 remote-as 65100
neighbor 10.56.1.5 remote-as 65200
neighbor 10.67.1.7 remote-as 300

//R7的基础配置:
router bgp 300
bgp router-id 192.168.7.7
bgp log-neighbor-changes
redistribute connected
neighbor 10.67.1.6 remote-as 200

R1的BGP表:列出了该拓扑结构宣告的所有路由;R2将路由宣告到联盟外部时,从路由中删除了成员AS的ASN;AS 100不知道AS 200是联盟。

R2的BGP表:列出了参与成员AS 65100的所有路由;R7宣告前缀10.7.7.0/24时,虽然穿越了不同的成员AS,但是并不会修改下一跳IP地址;从括号中的AS_CONFED_SEQUENCE值可以看出,该前缀穿越了联盟AS 200中的子AS 65200。

从R4的角度显示了去往R7宣告的前缀10.7.7.0/24的完整NLRI信息;NLRI包含了字段confed-internal和confed-external(具体取决于该NLRI是在同一成员AS内还是在其他成员AS内收到的)。

MP-BGP允许BGP为多种协议承载NLRI,如IPv4、IPv6和MPLS、L3VPN。
RFC 4760定义了以下新功能特性:
-
新的AFI模型。
-
新的BGPv4可选和非传递属性。
❏ 多协议可达NLRI。
❏ 多协议不可达NLRI。
新的多协议可达NLRI属性负责描述IPv6路由信息,而多协议不可达NLRI属性则从服务中撤销IPv6路由。这些属性都是可选非传递属性,因此,如果较旧的路由器无法理解这些属性,就可以忽略这些属性。
底层IPv4路径矢量路由协议的功能特性及规则也适用于IPv6 MP-BGP。IPv6 MP-BGP继续使用与IPv4 BGP相同的周知TCP端口179建立会话的对等连接。在初始的OPEN消息协商期间,BGP对等路由器会交换功能信息。MP-BGP包含了AFI属性字段(描述所支持的协议)和SAFI属性字段(描述该前缀是否适用于单播或多播路由表)。
-
IPv4单播:AFI:1,SAFI:1。
-
IPv6单播:AFI:2,SAFI:1。
仅使用IPv6编址的路由器必须静态定义BGP RID,以确保会话的成功建立。
用于建立BGP会话的协议与AFI/SAFI路由宣告完全独立。BGP使用的TCP会话是四层协议,可以使用IPv4地址或IPv6地址建立会话的邻接关系并交换路由。
注:
为简化操作,建议为BGP对等连接使用唯一的全局单播地址。如果没有为接口手动分配地址,那么使用链路本地地址的BGP对等连接就可能会存在风险。硬件故障或缆线调整都会改变MAC地址,从而产生新的链路本地地址,从而导致会话失败,因为无状态地址自动配置会生成新的IP地址。
Cisco IOS默认宣告IPv4单播路由能力,除非邻居使用命令no bgp default ipv4-unicast关闭了该特性(可以在IPv4地址簇模式下或BGP进程的全局模式下配置该命令)。
下图的拓扑结构包含了3个不同的AS,R2与R1和R3建立了eBGP会话。

//R1的IPv6基础配置:
ipv6 unicast-routing
router bgp 65100
bgp router-id 192.168.1.1
bgp log-neighbor-changes
no bgp default ipv4-unicast
neighbor 2001:DB8:0:12::2 remote-as 65200
!
address-family ipv6
redistribute connected
neighbor 2001:DB8:0:12::2 activate
exit-address-family

//R2的IPv6基础配置:
ipv6 unicast-routing
router bgp 65200
bgp router-id 192.168.2.2
bgp log-neighbor-changes
no bgp default ipv4-unicast
neighbor 2001:DB8:0:12::1 remote-as 65100
neighbor 2001:DB8:0:23::3 remote-as 65300
!
address-family ipv6
network 2001:DB8::2/128
network 2001:DB8:0:12::/64
network 2001:DB8:0:23::/64
neighbor 2001:DB8:0:12::1 activate
neighbor 2001:DB8:0:23::3 activate
exit-address-family

//R3的IPv6基础配置:
ipv6 unicast-routing
router bgp 65300
bgp router-id 192.168.3.3
bgp log-neighbor-changes
no bgp default ipv4-unicast
neighbor 2001:DB8:0:23::2 remote-as 65200
!
address-family ipv6
redistribute connected
neighbor 2001:DB8:0:23::2 activate
exit-address-family

该拓扑结构从已定义的链路本地范围FE80::/10配置了链路本地地址。


命令show bgp ipv6 unicast summary可以显示会话状态的摘要信息,包括已交换的路由数量和会话的正常运行时间。

以下R1、R2和R3的IPv6单播BGP表;某些路由将未指定地址(::)作为下一跳。未指定地址表明本地路由器正在为BGP表生成前缀;权重32768也表明该前缀是由本地路由器发起的。



通过命令show bgp ipv6 unicast prefix/prefix-length查看IPv6路由的BGP路径属性;其中部分通用字段(如AS_PATH、路由来源以及本地优先级)与IPv4路由相同。

例如R2通过BGP学到的IPv6路由的全局RIB。

IPv6的路由汇总或聚合过程与IPv4的相同,命令格式也相同,区别在于需要在IPv6地址簇下通过命令aggregate-address prefix/prefix-length [summary-only] [as-set]进行配置。
例如,在R2上增加一条命令,配置如下:
R2(config-router-af)#do sh run | s bgp
router bgp 65200
bgp router-id 192.168.2.2
bgp log-neighbor-changes
no bgp default ipv4-unicast
neighbor 2001:DB8:0:12::1 remote-as 65100
neighbor 2001:DB8:0:23::3 remote-as 65300
!
address-family ipv6
network 2001:DB8::2/128
network 2001:DB8:0:12::/64
network 2001:DB8:0:23::/64
aggregate-address 2001:DB8::/58 summary-only
neighbor 2001:DB8:0:12::1 activate
neighbor 2001:DB8:0:23::3 activate
exit-address-family


对于R1与R2之间的对等链路(2001:db8:0:12::/64)来说,首先要以十六进制(而不是十进制)数值进行考虑。第四个16比特段携带了十进制数值18(而不是12),因而最少需要5个比特。
IPv6汇总地址示例如下:

BGP可以使用IPv4或IPv6 TCP会话交换路由。常规部署方案通常都通过专用IPv4会话交换IPv4路由,通过专用IPv6会话交换IPv6路由。不过,也可以通过IPv4 TCP会话共享IPv6路由,或者通过IPv6 TCP会话共享IPv4路由,还可以通过单个BGP会话共享IPv4和IPv6路由。
通过修改以上拓扑的IPv4地址,查看BGP表如下:



以上显示了3台路由器的IPv6 BGP表,表明路由已成功进行了宣告。对于通过IPv4 BGP会话宣告的IPv6路由来说,为下一跳分配的是一个映射IPv4的IPv6地址,格式为::FFFF:xx.xx.xx.xx,其中,xx.xx.xx.xx是BGP对等连接的IPv4地址。由于该地址不是有效的转发地址,因而不会在RIB中安装该IPv6路由。
另外,IPv6一样可以向IPv4的相同类似方式在BGP路由映射中手动设置IPv6下一跳地址:
R1:
route-map FR1R2 permit 10
set ipv6 next-hop 2001:DB8:0:12::1
router bgp 65100
bgp router-id 192.168.1.1
bgp log-neighbor-changes
no bgp default ipv4-unicast
neighbor 10.12.1.2 remote-as 65200
neighbor 2001:DB8:0:12::2 remote-as 65200
!
address-family ipv6
redistribute connected
neighbor 10.12.1.2 activate
neighbor 10.12.1.2 route-map FR1R2 out
neighbor 2001:DB8:0:12::2 activate
exit-address-family
R2:
route-map FR2R1 permit 10
set ipv6 next-hop 2001:DB8:0:12::2
route-map FR2R3 permit 10
set ipv6 next-hop 2001:DB8:0:23::2
router bgp 65200
bgp router-id 192.168.2.2
bgp log-neighbor-changes
no bgp default ipv4-unicast
neighbor 10.12.1.1 remote-as 65100
neighbor 10.23.1.3 remote-as 65300
neighbor 2001:DB8:0:12::1 remote-as 65100
neighbor 2001:DB8:0:23::3 remote-as 65300
!
address-family ipv6
network 2001:DB8::2/128
network 2001:DB8:0:12::/64
network 2001:DB8:0:23::/64
aggregate-address 2001:DB8::/62
neighbor 10.12.1.1 activate
neighbor 10.12.1.1 route-map FR2R1 out
neighbor 10.23.1.3 activate
neighbor 10.23.1.3 route-map FR2R3 out
neighbor 2001:DB8:0:12::1 activate
neighbor 2001:DB8:0:23::3 activate
exit-address-family
R3:
route-map FR3R2 permit 10
set ipv6 next-hop 2001:DB8:0:23::3
router bgp 65300
bgp router-id 192.168.3.3
bgp log-neighbor-changes
no bgp default ipv4-unicast
neighbor 10.23.1.2 remote-as 65200
neighbor 2001:DB8:0:23::2 remote-as 65200
!
address-family ipv6
redistribute connected
neighbor 10.23.1.2 activate
neighbor 10.23.1.2 route-map FR3R2 out
neighbor 2001:DB8:0:23::2 activate
exit-address-family


