配置Hub and Spoke(IPv6)
Hub and Spoke组网是通过在VPN中设置中心访问控制设备,其它用户的互访都通过中心访问控制设备进行。
应用环境
如果希望在VPN中设置中心访问控制设备,其它用户的互访都通过中心访问控制设备进行,可以使用Hub and Spoke组网方案,使得Spoke站点之间的通信流经Hub站点。
如图8-4所示,VPN1的Site1和Site2站点之间的通信需要流经Site3。这样可以在Site3中设置一些中心访问控制设备对VPN之间的通信进行监控。
配置VPN实例
配置VPN实例,用以管理VPN路由。
背景信息
在Hub and Spoke组网方案中,连接Hub站点的PE设备称为Hub-PE,连接其他非Hub站点的PE设备称为Spoke-PE。
VPN-in用于接收并维护所有Spoke-PE发布的VPNv6路由。
VPN-out用于维护Hub站点及所有Spoke站点的路由,并发布给所有Spoke-PE。
以下步骤1~8是一个VPN实例的配置方法,每个VPN实例的配置都相似,只是同一台设备上不同VPN实例的名称、RD及描述信息不同。
操作步骤
- 执行命令system-view,进入系统视图。
- 执行命令ip vpn-instance vpn-instance-name,创建VPN实例,并进入VPN实例视图。
VPN实例的名字区分大小写。例如,“vpn1”和“VPN1”将被认为是不同的VPN实例。
- (可选)执行命令description description-information,配置VPN实例的描述信息。
描述信息的作用类似于主机名和接口描述信息,可用来记录VPN实例的创建目的以及该VPN实例都和哪些CE建立连接等信息。
- 执行命令ipv6-family,使能VPN实例IPv6地址族,进入VPN实例IPv6地址族视图。
- 执行命令route-distinguisher route-distinguisher,配置VPN实例IPv6地址族的RD。
VPN实例IPv6地址族只有配置了RD后才生效。在配置RD之前,除了描述信息外,不能配置其他任何参数。
- (可选)执行命令apply-label per-route pop-go,配置当前VPN实例IPv6地址族下所有发往对端PE的每条路由使用单独的标签值,并且当收到封装这个标签的数据报文后,系统将弹出标签并从ILM(Incoming Label Map,入标签映射表)中查找对应的出接口将数据报文转发出去。
通过配置apply-label per-route pop-go命令,本端设备在向其他BGP VPNv6对等体发送BGP VPNv6路由时,会将为这条路由分配的标签与路由的出接口信息的对应关系记录在ILM中。当本端设备收到从BGP VPNv6对等体发来封装标签的数据报文后,本端设备将不会再以最长匹配的方式查找IP转发表,而是根据标签值在ILM中查找到一一对应的出接口,并在弹出标签后将数据报文从该出接口转发出去,大大提高了转发速度。
apply-label per-route pop-go命令与apply-label per-instance命令互斥,后一次配置的命令将会覆盖前一次的配置的命令。
- (可选)执行命令apply-label per-instance,配置基于VPN实例IPv6地址族分配MPLS标签,使VPN实例IPv6地址族中的所有路由都使用同一个标签。
- (可选)执行命令prefix limit number { alert-percent [ route-unchanged ] | simply-alert },配置VPN实例IPv6地址族的最大路由前缀数。
为防止PE设备引入的路由前缀数量过多,可以配置一个VPN实例能够支持的最大路由前缀数。
- 执行命令commit,提交配置。
配置接口与VPN实例绑定
通过配置接口与VPN实例绑定,该接口成为私网接口,从该接口进入的报文使用VPN实例中的转发信息进行转发。
背景信息
Hub-PE上需要使用两个接口或子接口:
一个用来绑定VPN-in,用于接收Spoke-PE发来的路由。
一个用来绑定VPN-out,用于发布Hub站点及所有Spoke站点的路由。
在Hub-PE及所有Spoke-PE上进行如下配置。
操作步骤
- 执行命令system-view,进入系统视图。
- 执行命令interface interface-type interface-number,进入要绑定接口的接口视图。
- 执行命令ip binding vpn-instance vpn-instance-name,将当前接口与VPN实例绑定。
执行ip binding vpn-instance命令将删除接口上已经配置的IP地址、路由协议等三层特性。
- 执行命令ipv6 enable,使能指定接口的IPv6能力。
- 执行命令ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length },配置接口的IPv6地址。
- 执行命令commit,提交配置。
配置Hub-PE与Spoke-PE间的路由交换
MP-IBGP通过在BGP中引入扩展团体属性,使其能够在PE设备之间传播VPNv6路由。
背景信息
Hub-PE与所有的Spoke-PE都需要建立MP-IBGP对等体。Spoke-PE之间因为不需要直接交互路由,所以不需要建立MP-IBGP对等体。
在Hub-PE和Spoke-PE上进行如下配置。
操作步骤
- 执行命令system-view,进入系统视图。
- 执行命令bgp as-number,进入BGP视图。
- 执行命令peer peer-address as-number as-number,将对端PE配置为对等体。
- 执行命令peer peer-address connect-interface loopback interface-number,指定建立TCP连接的接口。
PE之间必须使用32位掩码的Loopback接口地址来建立MP-IBGP对等体关系,以便能够迭代到隧道。到Loopback接口的路由通过MPLS骨干网上的IGP发布给对端PE。
- 执行命令ipv6-family vpnv6 [ unicast ],进入BGP-VPNv6地址族视图。
- 执行命令peer peer-address enable,使能与对等体交换VPNv6路由信息。
- 执行命令commit,提交配置。
配置PE与CE间路由交换
PE与CE之间的路由协议可以是BGP、静态路由(包括默认路由)和IGP。配置时根据实际情况选择其一即可。
背景信息
Spoke-PE与Spoke-CE间采用的路由协议与Hub-PE与Hub-CE间采用的路由协议有关,Hub-PE与Hub-CE间可以采用的路由协议有EBGP、IGP和静态路由(包括默认路由),请根据实际组网情况选择其一进行配置。
操作步骤
- Hub-PE与Hub-CE间使用EBGP
具体配置过程请参见配置PE和CE间路由交互。
这种方式中,Spoke-PE与Spoke-CE间可使用EBGP,IGP或静态路由(包括默认路由)。
当Spoke-PE与Spoke-CE间及Hub-PE与Hub-CE使用EBGP时,需要在Hub-PE的BGP-VPN实例IPv6地址族视图下执行命令peer ip-address allow-as-loop [ number ],允许路由环路。这里的number取1,即允许AS_Path中AS号重复1次的路由通过。
- Hub-PE与Hub-CE间使用IGP
具体配置过程请参见配置PE和CE间路由交互。
这种方式中,Spoke-PE与Spoke-CE间只能使用IGP或静态路由(包括默认路由),不能使用BGP。详细介绍请参见《HUAWEI NetEngine 8000 X系列路由器 特性描述-VPN》的“BGP/MPLS IP VPN”一章。
- Hub-PE与Hub-CE间使用静态路由(包括默认路由)
具体配置过程请参见配置PE和CE间路由交互。
这种方式中,Spoke-PE与Spoke-CE间可使用EBGP,IGP或静态路由(包括默认路由)。
如果Hub-CE使用默认路由接入Hub-PE,为了将此默认路由发布给所有Spoke-PE需要在Hub-PE上进行以下配置。
在系统视图下配置ipv6 route-static vpn-instance vpn-instance-name :: 0 nexthop-address [ tag tag ] [ description text ]。
这里的vpn-instance-name是VPN-out,nexthop-address是绑定VPN-out的接口所在链路的Hub-CE侧接口IPv6地址。
在BGP-VPN实例IPv6地址族视图下配置network :: 0,通过MP-BGP发布缺省路由给所有Spoke-PE。