MPLS VP Hub and Spoke实验


实验拓扑:

在这里插入图片描述

实验要求:

  • R6与R7通信需要经过R1,不可以直通
  • HUB-CE,SPOKE-CE在同一个AS(allow
    -as-loop的合理使用)
  • 各个PE与CE之间均为EBGP关系(也可以做IBGP,OSPF)

实验步骤:

配置Hub-PE与Spoke-PE间使用MP-IBGP

Hub-PE vpn in 团体值 = Spoke-PE的出团体值;vpn out 团体值 = Spoke-PE的入团体值。(所有Spoke-PE的出入团体值设为一致,便于扩展以及Hub-Spoke统一管理)

1.执行命令system-view,进入系统视图。
2.执行命令bgp { as-number-plain | as-number-dot },进入BGP视图。
3.执行命令peer ipv4-address as-number as-number,将对端PE配置为对等体。
4.执行命令peer ipv4-address connect-interface loopback interface-number,指定BGP建立TCP(Transmission Control Protocol)连接的接口。 

PE之间必须使用32位掩码的Loopback接口地址来建立MP-IBGP对等体关系,以便能够迭代到隧道。以Loopback接口地址为目的地址的路由通过MPLS骨干网上的IGP发布给对端PE。

5.执行命令ipv4-family vpnv4 [ unicast ],进入BGP-VPNv4地址族视图。
6.执行命令peer ipv4-address enable,使能对等体交换VPN-IPv4路由信息的能力。

配置PE上的VPN实例

配置Hub-PE上的VPN实例 
Hub-PE需配置两个VPN实例(VPN-in和VPN-out):

 - VPN-in用于接收并维护所有Spoke-PE发布的VPNv4路由。
 - VPN-out用于维护Hub站点及所有Spoke站点的路由,并发布给所有Spoke-PE。

1.执行命令system-view,进入系统视图。
2.执行命令ip vpn-instance VPN-in,创建并进入VPN-in实例视图。 
3.执行命令ipv4-family,使能VPN-in实例IPv4地址族,并进入VPN-in实例IPv4地址族视图。
4.执行命令route-distinguisher route-distinguisher,配置VPN-in实例IPv4地址族的RD。
5.执行命令vpn-target vpn-target1 &<1-8> import-extcommunity,为VPN-in实例IPv4地址族配置VPN-target扩展团体属性,使得该实例IPv4地址族可以接收所有Spoke-PE发布的VPNv4路由。 

6.执行命令quit,退回VPN实例视图。
7.执行命令quit,退回系统视图。
8.执行命令ip vpn-instance VPN-out,创建并进入VPN-out实例视图。
9.执行命令ipv4-family,使能VPN-out实例IPv4地址族,并进入VPN-out实例IPv4地址族视图。
10.执行命令route-distinguisher route-distinguisher,配置VPN-out实例IPv4地址族的RD。
11.执行命令vpn-target vpn-target2 &<1-8> export-extcommunity,为VPN-out实例IPv4地址族配置VPN-target扩展团体属性,发布Hub站点及所有Spoke站点的路由。  

配置Spoke-PE上的VPN实例 
每个Spoke-PE上配置一个VPN实例。
1.执行命令system-view,进入系统视图。
2.执行命令ip vpn-instance vpn-instance-name,进入VPN-in的VPN实例视图。
3.执行命令ipv4-family,进入VPN实例IPv4地址族视图。
4.执行命令route-distinguisher route-distinguisher,配置VPN-in实例IPv4地址族的RD。
5.执行命令vpn-target vpn-target2 &<1-8> import-extcommunity,配置VPN-target扩展团体属性,使得该实例可以接收Hub-PE发布的VPNv4路由。 

6.执行命令vpn-target vpn-target1 &<1-8> export-extcommunity,配置VPN-target扩展团体属性,发布本Spoke-PE所接入的站点的路由。 

配置接口与VPN实例绑定

Hub-PE上需要使用两个接口或子接口:一个绑定VPN-in,用于接收Spoke-PE发来的路由;另一个绑定VPN-out,用于发布Hub站点及所有Spoke站点的路由。

  • 配置VPN实例后,需要将本设备上属于该VPN的接口与该VPN实例绑定,否则该接口将属于公网接口,无法转发VPN数据。
  • 绑定VPN实例的接口将属于私网接口,需重新配置IP地址,以实现PE-CE间的路由交互。
  • 接口与VPN实例绑定后,将删除接口上已经配置的IP地址、路由协议等三层特性(包括IPv4和IPv6)。
  • 去使能VPN下的某个地址族(IPv4或IPv6)时,将清理接口下该类地址的配置;当VPN实例下没有地址族配置时,将解除接口与VPN实例的绑定关系。

在Hub-PE及所有Spoke-PE上进行如下配置。

1.执行命令system-view,进入系统视图。
2.执行命令interface interface-type interface-number,进入需要绑定VPN实例的接口视图。
3.(可选)对于以太网接口,执行命令undo portswitch,配置接口切换到三层模式。

缺省情况下,以太网接口处于二层模式。

4.执行命令ip binding vpn-instance vpn-instance-name,将当前接口与VPN实例绑定。 

缺省情况下,接口不与任何VPN实例绑定,属于公网接口。

5.执行命令ip address ip-address { mask | mask-length },配置接口的IP地址。 

配置PE与CE间路由交换

1.执行命令system-view,进入系统视图。
2.执行命令bgp { as-number-plain | as-number-dot },进入BGP视图。
3.执行命令ipv4-family vpn-instance vpn-instance-name,进入BGP-VPN实例IPv4地址族视图。 
4.执行命令peer { group-name | ipv4-address } allow-as-loop [ number ] [ global-as [ vpn-as ] ],允许路由环路。这里的number取1,允许AS重复1次的路由通过。

检查Hub and Spoke配置结果

1.使用display ip routing-table vpn-instance vpn-instance-name命令在Hub-PE上查看VPN-in和VPN-out的路由信息。可以看到:VPN-in的路由表中有到所有Spoke站点的路由;VPN-out的路由有到Hub站点及到所有Spoke站点的路由。 
2.使用display ip routing-table命令在Hub-CE和所有Spoke-CE上查看路由信息,Hub-CE和所有Spoke-CE上有到Hub站点和到所有Spoke站点的路由。 

实验测试:

查看HUB-PE的bgp表

vpn in
在这里插入图片描述
vpn out
在这里插入图片描述

查看SPOKE-PE的bgp路由表:

在这里插入图片描述

R7 (Spoke-CE)tracert R6(Spoke-CE):

可以看到先去R1(HUB-CE)然后去R6
在这里插入图片描述

实验总结:实验很简单,过程很艰难

  • 起初没配vpn时,想要R1与R6的环回相通,所有配置都对,但就是不行,一怒之下删完后醒悟: 华为设备需要开启 route recursive-lookup tunnel 路由基于隧道进行递归查找
  • Spoke-PE与Spoke-CE之间,绑定vpn-instance之后,邻居关系就断了,一直不行:绑定了vpn-instance的接口那里配置BGP邻居时需要在ipv4-family中的vpn-instance下配置
  • 因为所有CE都划分在AS1,所以注意BGP的防环,运用allow-as-loop
  • 实验结束后写总结时,R2掉线了,重新配了一遍
  • 好艰难,实验简单,很多细节不到位,nonono

实验所有配置

R1

#
interface Ethernet0/0/1
 ip address 21.1.1.1 255.255.255.0
#
interface LoopBack0
 ip address 1.1.1.1 255.255.255.0
#
bgp 1
 peer 12.1.1.2 as-number 100
 peer 21.1.1.2 as-number 100
 #
 ipv4-family unicast
  undo synchronization
  network 1.1.1.0 255.255.255.0
  peer 12.1.1.2 enable
  peer 12.1.1.2 allow-as-loop
  peer 21.1.1.2 enable
#

R2

#
sysname R2
#
ip vpn-instance in
 ipv4-family
  route-distinguisher 1:1
  vpn-target 1:1 import-extcommunity
#
ip vpn-instance out
 ipv4-family
  route-distinguisher 2:2
  vpn-target 2:2 export-extcommunity
#
mpls lsr-id 2.2.2.2
mpls
#
mpls ldp
#
interface Ethernet0/0/0
 ip binding vpn-instance in
 ip address 12.1.1.2 255.255.255.0
#
interface Ethernet0/0/1
 ip address 23.1.1.1 255.255.255.0
 mpls
 mpls ldp
#
interface GigabitEthernet0/0/0
 ip binding vpn-instance out
 ip address 21.1.1.2 255.255.255.0
#
interface LoopBack0
 ip address 2.2.2.2 255.255.255.0
#
bgp 100
 peer 4.4.4.4 as-number 100
 peer 4.4.4.4 connect-interface LoopBack0
 peer 5.5.5.5 as-number 100
 peer 5.5.5.5 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  peer 4.4.4.4 enable
  peer 4.4.4.4 reflect-client
  peer 4.4.4.4 next-hop-local
  peer 5.5.5.5 enable
  peer 5.5.5.5 reflect-client
  peer 5.5.5.5 next-hop-local
 #
 ipv4-family vpnv4
  policy vpn-target
  peer 4.4.4.4 enable
  peer 4.4.4.4 reflect-client
  peer 4.4.4.4 next-hop-local
  peer 5.5.5.5 enable
  peer 5.5.5.5 reflect-client
  peer 5.5.5.5 next-hop-local
 #
 ipv4-family vpn-instance in
  peer 12.1.1.1 as-number 1
 #
 ipv4-family vpn-instance out
  peer 21.1.1.1 as-number 1
  peer 21.1.1.1 allow-as-loop 2
#
ospf 1 router-id 2.2.2.2
 area 0.0.0.0
  network 23.1.1.0 0.0.0.255
  network 2.2.2.2 0.0.0.0
#

R3

#
sysname R3
#
mpls lsr-id 3.3.3.3
mpls
#
mpls ldp
#
interface Ethernet0/0/0
 ip address 23.1.1.2 255.255.255.0
 mpls
 mpls ldp
#
interface Ethernet0/0/1
 ip address 34.1.1.1 255.255.255.0
 mpls
 mpls ldp
#
interface GigabitEthernet0/0/0
 ip address 35.1.1.1 255.255.255.0
 mpls
 mpls ldp
#
interface LoopBack0
 ip address 3.3.3.3 255.255.255.0
#
ospf 1 router-id 3.3.3.3
 area 0.0.0.0
  network 0.0.0.0 255.255.255.255
#
route recursive-lookup tunnel
#

R4

#
sysname R4
#
ip vpn-instance spoke
 ipv4-family
  route-distinguisher 1:1
  vpn-target 1:1 export-extcommunity
  vpn-target 2:2 import-extcommunity
#
mpls lsr-id 4.4.4.4
mpls
#
mpls ldp
#
interface Ethernet0/0/0
 ip address 34.1.1.2 255.255.255.0
 mpls
 mpls ldp
#
interface Ethernet0/0/1
 ip binding vpn-instance spoke
 ip address 46.1.1.1 255.255.255.0
#
interface LoopBack0
 ip address 4.4.4.4 255.255.255.0
#
bgp 100
 peer 2.2.2.2 as-number 100
 peer 2.2.2.2 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  peer 2.2.2.2 enable
  peer 2.2.2.2 next-hop-local
 #
 ipv4-family vpnv4
  policy vpn-target
  peer 2.2.2.2 enable
  peer 2.2.2.2 next-hop-local
 #
 ipv4-family vpn-instance spoke
  peer 46.1.1.2 as-number 1
#
ospf 1 router-id 4.4.4.4
 area 0.0.0.0
  network 34.1.1.0 0.0.0.255
  network 4.4.4.4 0.0.0.0
#
route recursive-lookup tunnel
#

R5

#
sysname R5
#
ip vpn-instance spoke
 ipv4-family
  route-distinguisher 1:1
  vpn-target 1:1 export-extcommunity
  vpn-target 2:2 import-extcommunity
#
mpls lsr-id 5.5.5.5
mpls
#
mpls ldp
#
interface Ethernet0/0/0
 ip address 35.1.1.2 255.255.255.0
 mpls
 mpls ldp
#
interface Ethernet0/0/1
 ip binding vpn-instance spoke
 ip address 57.1.1.1 255.255.255.0
#
interface LoopBack0
 ip address 5.5.5.5 255.255.255.0
#
bgp 100
 peer 2.2.2.2 as-number 100
 peer 2.2.2.2 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  peer 2.2.2.2 enable
  peer 2.2.2.2 next-hop-local
 #
 ipv4-family vpnv4
  policy vpn-target
  peer 2.2.2.2 enable
  peer 2.2.2.2 next-hop-local
 #
 ipv4-family vpn-instance spoke
  peer 57.1.1.2 as-number 1
#
ospf 1 router-id 5.5.5.5
 area 0.0.0.0
  network 35.1.1.0 0.0.0.255
  network 5.5.5.5 0.0.0.0
#
route recursive-lookup tunnel
#

R6

#
sysname R6
#
interface LoopBack0
 ip address 6.6.6.6 255.255.255.0
#
bgp 1
 peer 46.1.1.1 as-number 100
 #
 ipv4-family unicast
  undo synchronization
  network 6.6.6.0 255.255.255.0
  peer 46.1.1.1 enable
  peer 46.1.1.1 allow-as-loop 2
#

R7

#
sysname R7
#
interface Ethernet0/0/0
 ip address 57.1.1.2 255.255.255.0
#
interface LoopBack0
 ip address 7.7.7.7 255.255.255.0
#
bgp 1
 peer 57.1.1.1 as-number 100
 #
 ipv4-family unicast
  undo synchronization
  network 7.7.7.0 255.255.255.0
  peer 57.1.1.1 enable
  peer 57.1.1.1 allow-as-loop 2
#
  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MPLS (Multiprotocol Label Switching) 是一种网络技术,它扩展了传统的IP转发方式,引入了标签交换的概念,使得数据包能够更快速、更高效地在网络中传输。在 MPLS 中,Hub-Spoke模型是一种常见的网络架构设计,主要用于大型企业网络或服务提供商网络。 **Hub-Spoke模型:** - **Hub**: 在这种模型中,通常指的是中心节点或核心路由器,负责连接到多个子网(Spokes)。它是所有流量的主要入口和出口点。 - **Spoke**: 指的是从中心Hub辐射出去的分支网络,每个Spoke代表一个单独的区域或部门,如分公司、数据中心等。Spokes与Hub之间建立专用的MPLS隧道,数据通过这些隧道定向传输到Hub。 - **优点**: - 带宽效率:由于流量被集中处理,Hub可以为每个Spoke提供专用带宽,避免了全网广播或广播风暴。 - 网络扩展:当需要添加新的Spoke时,只需要在Hub和新Spoke之间配置连接,而无需修改整个网络的其他部分。 - 安全性:Hub可以实施防火墙策略,保护内部Spoke之间的通信不受外部干扰。 **如何工作:** 1. 数据包进入Hub时,会被打上标签,标识出它的目的地。 2. Hub根据标签转发数据包,不关心底层的IP路由信息。 3. Spoke之间的通信通过Hub进行,数据包在Hub内进行标签交换,然后沿预定路径到达目的地Spoke。 4. 当数据包到达目标Spoke时,标签被移除,执行最后的IP转发。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值