配置基本BGP/MPLS IPv6 VPN
基本BGP/MPLS IPv6 VPN是指:只包括一个运营商、MPLS骨干网不跨域,PE、P、CE设备不兼任其它功能(没有一台设备既是PE,又是CE)。配置基本的BGP/MPLS IPv6 VPN之后,将可以实现IPv6 VPN的功能。
应用环境
本节介绍基本的BGP/MPLS IPv6 VPN组网配置,配置基本BGP/MPLS IPv6 VPN之后,将可以实现VPN的相关功能。VPN可以使多个用户私有网络通过运营商骨干网络进行通信,在路由的传输过程中,VPN私网路由与骨干网络的公网路由隔离。不同VPN实例的路由之间也是相互隔离的。
Site1只能与Site3相互通信。
Site2只能与Site4相互通信。
各个Site内的私网路由不能被MPLS骨干网感知,保证私网信息的安全性。
配置VPN实例
配置IPv6地址族的VPN实例,用以管理IPv6 VPN路由。
背景信息
BGP/MPLS IPv6 VPN为每个VPN进行实例化,构建本VPN私有转发信息实例,即VPN实例(VPN-instance)。VPN实例也称为VPN路由转发表VRF(VPN Routing and Forwarding table)。在相关标准中,VPN实例被称为per-site forwarding table。
VPN实例用于将VPN私网路由与公网路由隔离。不同VPN实例的路由之间也是相互隔离的。在所有BGP/MPLS IPv6 VPN组网方案中,都需要配置VPN实例。
操作步骤
- 执行命令system-view,进入系统视图。
- 执行命令ip vpn-instance vpn-instance-name,创建VPN实例,并进入VPN实例视图。
VPN实例的名字区分大小写。例如,“vpn1”和“VPN1”将被认为是不同的VPN实例。
- (可选)执行命令description description-information,配置VPN实例的描述信息。
描述信息的作用类似于主机名和接口描述信息,可以方便用户记忆VPN实例的创建信息。
- (可选)执行命令vpn-id vpn-id,配置VPN ID。通过配置vpn-id命令可以为VPN实例创建一个全局唯一的标识。在CU(Control Plane and User Plane)分离场景中,为了能确保控制平面和转发平面上相同VPN实例的VPN ID一致,用户可以使用vpn-id命令手工设置VPN ID。
- 执行命令ipv6-family,使能VPN实例IPv6地址族,并进入VPN实例IPv6地址族视图。
VPN实例下支持双栈,即IPv4地址族和IPv6地址族。根据通告路由和转发数据的类型使能相应的地址族后,才能进行VPN的相关配置。
- 执行命令route-distinguisher route-distinguisher,配置VPN实例IPv6地址族的RD。
VPN实例IPv6地址族只有配置了RD后才生效。同一PE上的不同VPN实例IPv6地址族下的RD不能相同。
RD配置后不能被修改,但是可以被删除。如果删除了RD,则该VPN实例IPv6地址族下的所有配置都会被删除。
- 执行命令vpn-target vpn-target &<1-8> [ both | export-extcommunity | import-extcommunity ],为VPN实例IPv6地址族创建VPN-target扩展团体。
VPN Target是BGP的扩展团体属性,用来控制VPN-IPv6路由信息的接收和发布。一条vpn-target命令最多可以配置8个VPN Target。如果希望在VPN实例IPv6地址族下配置更多的VPN Target,可以多次使用vpn-target命令进行配置。
- (可选)执行命令prefix limit number { alert-percent [ route-unchanged ] | simply-alert },配置VPN实例IPv6地址族的最大路由前缀数。为防止PE设备上VPN实例IPv6地址族下的路由前缀过多,可以配置一个VPN实例IPv6地址族能够支持的最大路由前缀数。
当路由前缀超限时,直连路由和静态路由依然可以被添加到VPN实例IPv6地址族路由表中。
- (可选)执行命令import route-policy policy-name,配置VPN实例IPv6地址族入方向路由策略。
在通过VPN Target属性控制VPN路由收发的同时,如果需要更精确地控制VPN路由,还可以配置入方向的路由策略。入方向路由策略可以过滤引入到VPN实例IPv6地址族的路由信息。
- (可选)执行命令export route-policy policy-name [ add-ert-first ],配置VPN实例IPv6地址族出方向路由策略。
在通过VPN Target属性控制VPN路由收发的同时,如果需要更精确地控制VPN路由,还可以配置出方向路由策略。出方向路由策略则可以进一步过滤可发布给其他PE的路由。
缺省情况下,私网路由在通过出方向路由策略后才会加上出方向RT,如果该出方向路由策略带有对RT值进行匹配的过滤条件,则该出方向路由策略无法对私网路由产生作用。如果希望这样的出方向路由策略对私网路由进行过滤,则可以配置add-ert-first参数使私网路由在通过出方向路由策略前会先加上出方向RT。
- (可选)执行命令import route-filter route-filter-name,配置VPN实例IPv6地址族入方向过滤策略。
在通过VPN Target属性控制VPN路由收发的同时,如果需要更精确地控制VPN路由,还可以配置入方向的过滤策略。入方向路由策略可以过滤引入到VPN实例IPv6地址族的路由信息。
- (可选)执行命令export route-filter route-filter-name [ add-ert-first ],配置VPN实例IPv6地址族出方向过滤策略。
在通过VPN Target属性控制VPN路由收发的同时,如果需要更精确地控制VPN路由,还可以配置出方向过滤策略。出方向路由策略则可以进一步过滤可发布给其他PE的路由。
缺省情况下,私网路由在通过出方向过滤策略后才会加上出方向RT,如果该出方向过滤策略带有对RT值进行匹配的过滤条件,则该出方向过滤策略无法对私网路由产生作用。如果希望这样的出方向过滤策略对私网路由进行过滤,则可以配置add-ert-first参数使私网路由在通过出方向过滤策略前会先加上出方向RT。
- (可选)执行命令tnl-policy policy-name,对VPN实例IPv6地址族应用隧道策略。
通过对VPN实例IPv6地址族应用隧道策略,可以指定IPv6 VPN流量转发时使用的隧道。
- (可选)配置VPN实例IPv6地址族下标签的分配方式。
- 执行命令apply-label { per-nexthop | per-route } pop-go,配置当前VPN实例IPv6地址族下所有发往对端PE的每条路由或每下一跳使用单独的标签值,并且当收到封装这个标签的数据报文后,系统将弹出标签并从ILM(Incoming Label Map,入标签映射表)中查找对应的出接口将数据报文转发出去。
- 执行命令apply-label { per-instance | per-nexthop | per-route },配置VPN实例IPv6地址族下标签的分配方式。
apply-label { per-nexthop | per-route } pop-go命令和apply-label { per-instance | per-nexthop | per-route }命令互斥,后一次配置的命令将会覆盖前一次配置的命令。
- 执行命令commit,提交配置。
配置接口与VPN实例绑定
通过配置接口与VPN实例关联,使该接口成为私网接口,从该接口进入的报文使用VPN实例中的转发信息进行转发。
操作步骤
- 执行命令system-view,进入系统视图。
- 执行命令interface interface-type interface-number,进入需要绑定接口的接口视图。
- 执行命令ip
binding vpn-instance vpn-instance-name,将当前接口与VPN实例绑定。
执行ip binding vpn-instance命令将删除接口上已经配置的IP地址和IPv6地址、路由协议等三层特性,如果需要应重新配置。
- 执行命令ipv6 enable,使能接口的IPv6能力。
- 执行命令ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length },配置接口的IPv6地址。
为私网接口配置IPv6地址之后,PE-CE之间才能配置一些三层特性,例如PE-CE间的路由交互等。
- 执行命令commit,提交配置。
(可选)配置BGP VPN实例IPv6地址族Router ID
通过为BGP VPN实例IPv6地址族配置Router ID,使得同一台设备上不同BGP VPN实例IPv6地址族的Router ID不同。
背景信息
缺省情况下,BGP VPN实例IPv6地址族下没有配置Router ID,直接使用的是BGP Router ID,这样同一台设备的不同VPN实例的IPv6地址族Router ID是相同的。而有些情形下,需要为不同的VPN实例IPv6地址族配置不同的Router ID,比如:同一PE上的不同VPN实例IPv6地址族下需要建立BGP对等体。
为所有的BGP VPN实例IPv6地址族配置Router ID
为指定的BGP VPN实例IPv6地址族配置Router ID
在BGP VPN实例IPv6地址族视图下配置Router ID命令的优先级高于BGP视图下配置Router ID命令的优先级。
修改或删除BGP VPN实例IPv6地址族配置的Router ID,若该BGP VPN实例IPv6地址族下有已经建立的BGP会话,BGP会话将重置。
配置PE与PE间使用MP-IBGP
通过配置PE与PE间使用MP-IBGP,使其能够在PE设备之间传播VPNv6路由。
背景信息
在基本的BGP/MPLS IPv6 VPN组网中,PE之间需要通过MP-IBGP协议传递携带RD属性的VPNv6路由信息,实现VPN实例间的通信。由于所有的PE处于同一个AS,所以PE之间将建立MP-IBGP关系。在当前实现中,PE之间建立的是IPv4 BGP对等体。
请在每个PE上进行如下配置。
操作步骤
- 执行命令system-view,进入系统视图。
- 执行命令bgp as-number,进入BGP视图。
- 执行命令peer ipv4-address as-number as-number,将对端PE配置为对等体。
- 执行命令peer ipv4-address connect-interface loopback interface-number,指定建立TCP连接的接口。
PE之间必须使用32位掩码的Loopback接口地址来建立MP-IBGP对等体关系,以便能够迭代到隧道。以Loopback接口地址为目的地址的路由通过MPLS骨干网上的IGP发布给对端PE。
- 执行命令ipv6-family vpnv6,进入BGP-VPNv6地址族视图。
- 执行命令peer ipv4-address enable,使能对等体交换VPN-IPv6路由信息的能力。
- 执行命令commit,提交配置。
配置PE和CE间路由交换
配置PE和CE间路由交换,是保证CE间互访的必要步骤。
背景信息
- CE属于客户端设备,不能感知到VPN的存在,所以在CE上的配置路由协议时,不会带VPN的相关参数。
- PE属于运营商网络的边缘设备,用来与CE设备连接,交换路由信息。PE可以与不同VPN的CE相连接,因此PE上需要维护不同的VRF,所以在PE上配置路由协议时,需要指定该路由协议属于的VPN实例名称,即携带VPN的相关参数。在PE上配置路由协议时,需要在MP-BGP和路由协议间引入对方的路由。
操作步骤
- 配置PE和CE间使用BGP4+
在PE上执行如下配置:
在CE上执行如下配置:
- 配置PE和CE间使用静态路由
在PE上进行如下配置。
有关IPv6静态路由的详细配置,请参见《HUAWEI NetEngine 8000 X系列路由器配置指南 IP路由》的“IPv6静态路由配置”。
CE上的配置方法与普通IPv6静态路由相同,此处不再赘述。
如果一个VPN接收本VPN以外的、非PE发布的路由,并将这些路由发布给PE,这类VPN称为过渡VPN(transit VPN)。只接收本VPN路由以及PE发布的路由的VPN称为stub VPN。通常情况下,静态路由只用于stub VPN的CE与PE间交换路由。
- 配置PE和CE间使用RIPng
在PE上进行如下配置。CE上配置普通RIPng协议,CE上的配置细节,这里不再赘述。RIPng协议的详细配置,请参见《HUAWEI NetEngine 8000 X系列路由器配置指南 IP路由》的“RIPng配置”,此处不再详述。
- 配置PE和CE间使用OSPFv3
在CE上配置普通OSPFv3即可。有关OSPFv3的详细配置,请参见《HUAWEI NetEngine 8000 X系列路由器配置指南 IP路由》的“OSPFv3配置”。
在PE上配置OSPFv3多实例,并配置OSPFv3和BGP路由的交互,
- 配置PE和CE间使用IS-ISv6
在PE上进行如下配置,CE上配置普通IS-ISv6即可。IS-ISv6的详细配置,请参见《HUAWEI NetEngine 8000 X系列路由器配置指南 IP路由》的“IS-IS配置”,此处不再详述。
- 配置PE和CE间使用直连路由
PE和CE间使用直连路由只适用于CE是主机,且是通过VLANIF逻辑接口与PE相连的场景。在配置时,只需在与该CE相连的PE上配置即可。
请在PE上进行如下配置。
检查配置结果
配置了基本BGP/MPLS IPv6 VPN后,可以看到PE设备上创建的VPN实例IPv6地址族的信息,包括RD值及其相关属性,还可以在PE设备和CE设备上查看到本端站点和远端站点的IPv6 VPN路由信息。
操作步骤
- 在PE设备上执行以下命令可以看到创建的VPN实例IPv6地址族的信息,包括RD值及其相关属性。
使用display ip vpn-instance vpn-instance-name命令查看指定VPN实例的简要信息。
使用display ip vpn-instance verbose vpn-instance-name命令查看指定VPN实例的详细信息,包括VPN实例IPv4地址族和IPv6地址族下的信息。
使用display ip vpn-instance import-vt ivt-value命令查看所有具备指定入口vpn-target属性的VPN实例信息。
- 使用display ip vpn-instance [ vpn-instance-name ] interface命令查看指定VPN实例所绑定的接口信息。
- 使用display bgp vpnv6 all peer命令查看所有BGP VPNv6对等体信息。
- 在PE设备和CE设备上执行以下命令可以查看到本端站点和远端站点的IPv6 VPN路由信息。
- 使用display ipv6 routing-table vpn-instance vpn-instance-name命令在PE上查看VPN实例IPv6地址族的路由信息。
- 使用display ipv6 routing-table命令在CE上查看路由信息。