BGP/MPLS-IP VPN实验

前言:

定义

标签分发协议LDP(Label Distribution Protocol)多协议标签交换MPLS的一种控制协议,相当于传统网络中的信令协议,负责转发等价类FEC(Forwarding Equivalence Class)的分类、标签的分配以及标签交换路径LSP(Label Switched Path)的建立和维护等操作。LDP规定了标签分发过程中的各种消息以及相关处理过程。

目的

MPLS支持多层标签,并且转发平面面向连接,故具有良好的扩展性,使在统一的MPLS/IP基础网络架构上为客户提供各类服务成为可能。通过LDP协议,标签交换路由器LSR(Label Switched Router)可以把网络层的路由信息直接映射到数据链路层的交换路径上,动态建立起网络层的LSP。

目前,LDP广泛地应用在VPN服务上,具有组网、配置简单、支持基于路由动态建立LSP、支持大容量LSP等优点。

本实验命令和题目来自华为官网文档。

实验要求:

CE1连接公司总部研发区、CE3连接分支机构研发区,CE1和CE3属于vpna;

CE2连接公司总部非研发区、CE4连接分支机构非研发区,CE2和CE4属于vpnb。

公司要求通过部署BGP/MPLS IP VPN,实现总部和分支机构的安全互通,同时要求研发区和非研发区间数据隔离。

配置思路

采用如下的思路配置BGP/MPLS IP VPN:

P、PE之间配置OSPF,实现骨干网的IP连通性。

PE、P上配置MPLS基本能力和MPLS LDP,建立MPLS LSP公网隧道,传输VPN数据。

PE1和PE2之间配置MP-IBGP,交换VPN路由信息。

PE1和PE2上配置VPN实例,其中,vpna使用的VPN-target属性为111:1,vpnb使用的VPN-target属性为222:2,以实现相同VPN间互通,不同VPN间隔离。同时,与CE相连的接口和相应的VPN实例绑定,以接入VPN用户。

CE与PE之间配置EBGP,交换VPN路由信息。

拓扑:

设备使用华为eNSP模拟器-汇聚交换机(S5700)

1.  在MPLS骨干网上配置IGP协议,实现骨干网PE和P的互通

# 配置PE1

<HUAWEI> system-view
[HUAWEI] sysname PE1
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 1.1.1.9 32
[PE1-LoopBack1] quit
[PE1] vlan batch 10 20 30
[PE1] interface gigabitethernet 0/0/1
[PE1-GigabitEthernet0/0/1] port link-type trunk
[PE1-GigabitEthernet0/0/1] port trunk allow-pass vlan 10 
[PE1-GigabitEthernet0/0/1] quit
[PE1] interface gigabitethernet 0/0/2
[PE1-GigabitEthernet0/0/2] port link-type trunk
[PE1-GigabitEthernet0/0/2] port trunk allow-pass vlan 20 
[PE1-GigabitEthernet0/0/2] quit
[PE1] interface gigabitethernet 0/0/3
[PE1-GigabitEthernet0/0/3] port link-type trunk
[PE1-GigabitEthernet0/0/3] port trunk allow-pass vlan 30 
[PE1-GigabitEthernet0/0/3] quit
[PE1] interface vlanif 30
[PE1-Vlanif30] ip address 172.1.1.1 24
[PE1-Vlanif30] quit
[PE1] ospf 1 router-id 1.1.1.9
[PE1-ospf-1] area 0
[PE1-ospf-1-area-0.0.0.0] network 172.1.1.0 0.0.0.255
[PE1-ospf-1-area-0.0.0.0] network 1.1.1.9 0.0.0.0
[PE1-ospf-1-area-0.0.0.0] quit
[PE1-ospf-1] quit

# 配置P

<HUAWEI> system-view
[HUAWEI] sysname P
[P] interface loopback 0
[P-LoopBack0] ip address 2.2.2.9 32
[P-LoopBack0] quit
[P] vlan batch 30 60
[P] interface gigabitethernet 0/0/1
[P-GigabitEthernet0/0/1] port link-type trunk
[P-GigabitEthernet0/0/1] port trunk allow-pass vlan 30
[P-GigabitEthernet0/0/1] quit
[P] interface gigabitethernet 0/0/2
[P-GigabitEthernet0/0/2] port link-type trunk
[P-GigabitEthernet0/0/2] port trunk allow-pass vlan 60
[P-GigabitEthernet0/0/2] quit
[P] interface vlanif 30
[P-Vlanif30] ip address 172.1.1.2 24
[P-Vlanif30] quit
[P] interface vlanif 60
[P-Vlanif60] ip address 172.2.1.1 24
[P-Vlanif60] quit
[P] ospf 1 router-id 2.2.2.9
[P-ospf-1] area 0
[P-ospf-1-area-0.0.0.0] network 172.1.1.0 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 172.2.1.0 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 2.2.2.9 0.0.0.0
[P-ospf-1-area-0.0.0.0] quit
[P-ospf-1] quit

# 配置PE2

<HUAWEI> system-view
[HUAWEI] sysname PE2
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 3.3.3.9 32
[PE2-LoopBack0] quit
[PE2] vlan batch 40 50 60
[PE2] interface gigabitethernet 0/0/1
[PE2-GigabitEthernet0/0/1] port link-type trunk
[PE2-GigabitEthernet0/0/1] port trunk allow-pass vlan 40
[PE2-GigabitEthernet0/0/1] quit
[PE2] interface gigabitethernet 2/0/0 
[PE2-GigabitEthernet0/0/2] port link-type trunk
[PE2-GigabitEthernet0/0/2] port trunk allow-pass vlan 50
[PE2-GigabitEthernet0/0/2] quit
[PE2] interface gigabitethernet 0/0/3 
[PE2-GigabitEthernet0/0/3] port link-type trunk
[PE2-GigabitEthernet0/0/3] port trunk allow-pass vlan 60
[PE2-GigabitEthernet0/0/3] quit
[PE2] interface vlanif 60
[PE2-Vlanif60] ip address 172.2.1.2 24
[PE2-Vlanif60] quit
[PE2] ospf 1 router-id 3.3.3.9
[PE2-ospf-1] area 0
[PE2-ospf-1-area-0.0.0.0] network 172.2.1.0 0.0.0.255
[PE2-ospf-1-area-0.0.0.0] network 3.3.3.9 0.0.0.0
[PE2-ospf-1-area-0.0.0.0] quit
[PE2-ospf-1] quit

配置完成后,PE1和P、P和PE2之间应能建立OSPF邻居关系,执行display ospf peer或是display ospf peer brief命令可以看到邻居状态为Full。执行display ip routing-table命令可以看到PE之间学习到对方的Loopback0路由。

以PE1的显示为例:

2.在MPLS骨干网上配置MPLS基本能力和MPLS LDP,建立LDP LSP

# 配置PE1

协议解释:MPLS(多协议标签交换)和LDP(标签分发协议)

[PE1] mpls lsr-id 1.1.1.9
    # 这条命令用于设置MPLS网络中该设备的LSR(标签交换路由器)ID。LSR ID是MPLS网络中用于唯一标识一个LSR的IP地址。在这个例子中,LSR ID被设置为1.1.1.9。一般使用Loopback口的IP地址。
    
[PE1] mpls
    # 进入MPLS的全局配置模式。这个命令本身不直接改变配置,允许访问MPLS相关的配置命令。
    
[PE1-mpls] quit
[PE1] mpls ldp
    # 进入LDP的配置模式。LDP是MPLS网络中用于分发标签信息的一种协议。通过LDP,MPLS网络中的LSR可以相互学习如何为特定的IP前缀分配标签。
    
[PE1-mpls-ldp] quit
[PE1] interface vlanif 30
    # 进入编号为30的VLAN接口的配置模式。VLAN接口是交换机上用于表示VLAN的虚拟接口,可以像物理接口一样配置IP地址和其他网络参数。
    
[PE1-Vlanif30] mpls
    # 在VLAN接口Vlanif30上启用MPLS功能。这意味着该接口将参与MPLS转发过程,可以接收、处理和转发MPLS标签化的数据包。
    
[PE1-Vlanif30] mpls ldp
    # 在VLAN接口Vlanif30上启用LDP。这通常意味着该接口将参与LDP会话,用于分发和接收标签信息。使LDP会话正常工作,还需要在全局或LDP配置模式下配置LDP的邻居、会话参数等。
[PE1-Vlanif30] quit

#配置P

[P] mpls lsr-id 2.2.2.9
[P] mpls
[P-mpls] quit
[P] mpls ldp
[P-mpls-ldp] quit
[P] interface vlanif 30
[P-Vlanif30] mpls
[P-Vlanif30] mpls ldp
[P-Vlanif30] quit
[P] interface vlanif 60
[P-Vlanif60] mpls
[P-Vlanif60] mpls ldp
[P-Vlanif60] quit

# 配置PE2

[PE2] mpls lsr-id 3.3.3.9
[PE2] mpls
[PE2-mpls] quit
[PE2] mpls ldp
[PE2-mpls-ldp] quit
[PE2] interface vlanif 60
[PE2-Vlanif60] mpls
[PE2-Vlanif60] mpls ldp
[PE2-Vlanif60] quit

上述配置完成后,PE1与P、P与PE2之间应能建立LDP会话,执行display mpls ldp session命令可以看到显示结果中Status项为“Operational”。执行display mpls ldp lsp命令,可以看到LDP LSP的建立情况。

以P的显示为例:

PeerID:这是LDP会话的标识符,由对端IP地址和标签空间标识符(通常是0,表示默认的IPv4标签空间)组成。
Status:显示会话的状态,这里是Operational,意味着会话正在正常运行中。
LAM:如前所述,所有会话都使用DU模式,即非请求地通告标签。非请求方式(即未经请求地)从下游路由器通告给上游路由器的。这是LDP的默认通告模式之一,适用于大多数MPLS部署场景。
SsnRole:
1.1.1.9:0 会话的角色是Active,表示该路由器主动向1.1.1.9发起LDP会话并通告标签信息。
3.3.3.9:0 会话的角色是Passive,表示该路由器被动接收来自3.3.3.9的LDP会话和标签信息。
SsnAge:显示会话的持续时间,格式为天数:小时:分钟。这可以帮助了解会话的稳定性和持续时间。
KASent/Rcv:显示会话中发送(Sent)和接收(Rcv)的KeepAlive消息的数量。KeepAlive消息用于检测会话的活性,确保对端仍然可达和响应。

显示了MPLS网络中LDP(标签分发协议)的LSP(标签交换路径)信息。LSP是MPLS网络中的一条路径,通过它数据包可以基于标签进行转发。下面是对输出内容的详细解释:

字段解释
DestAddress/Mask:目标IP地址及其子网掩码,表示LSP的目的地。
In/OutLabel:入口/出口标签。入口标签是接收数据包时使用的标签,而出口标签是发送数据包到下一跳时使用的标签。如果入口标签为NULL,则表示没有为入站流量分配标签;如果出口标签为Liberal,则表示这是一个宽松模式下的LSP,标签值后面会跟着实际的标签值。
UpstreamPeer:上游对等体地址,即发送标签映射信息给当前路由器的对等体。如果该字段为空(-),则表示没有明确的上游对等体,或者该LSP是本地生成的。
NextHop:下一跳地址,数据包将被转发到的地址。
OutInterface:出口接口,数据包离开当前路由器的接口。

特殊标记解释
* 在LSP前:表示该LSP尚未建立。
* 在Label前:表示上游或下游控制块(USCB或DSCB)已过时,可能是因为标签被删除或会话状态已更改。
* 在UpstreamPeer前:表示上游对等体会话已过时,可能是因为对等体不可达或会话被删除。
* 在DS前:与*在UpstreamPeer前的含义相似,但这里特指下游会话已过时。
* 在NextHop前:在您的输出中并没有出现这种情况,但通常用于表示该LSP是快速重路由(FRR)LSP,即一种备份路径。

输出内容分析
对于1.1.1.9/32,存在多个LSP,包括一个未建立的LSP(标记为*)和一个宽松模式下的LSP(Liberal/1024),这意味着可能存在多条路径到达同一目的地,并且至少有一条路径使用了宽松模式(允许不匹配的标签)。
对于2.2.2.9/32,有两个未建立的LSP和两个宽松模式下的LSP,分别指向不同的上游对等体(1.1.1.9和3.3.3.9)。
3.3.3.9/32的LSP与1.1.1.9/32类似,但包含不同的标签和可能的路径。

逐条解释

1.1.1.9/32         NULL/3         -            172.1.1.1       Vlanif30
1.1.1.9/32         1024/3       1.1.1.9       172.1.1.1       Vlanif30

这里结合两条看:

当P设备与PE-1(LSR-ID为1.1.1.9)建立LDP会话后,它们会相互交换标签映射信息,以便为数据包在MPLS网络中的转发建立路径。所以这里上游和目的地址是一样的;

第二条是1.1.1.9发来,进行交换标签映射信息的,而第一条是根据交换得来的LSP,本地产生一个LSP到达1.1.1.9,所以看到入标签是空的;

根据抓包,查看得知PE-1设备组播发送报文(hello报文--ospf,LDP报文),应该是P设备从报文中得知这样一条LSP;

1.1.1.9/32       1024/3       3.3.3.9       172.1.1.1     Vlanif30

这条LSP的是上游LSR-ID是3.3.3.9,意思就是:由上游对等体3.3.3.9发送至1.1.1.9/32的LSP,该LSP的入口标签为1024,出口标签为3,数据包在离开当前设备时应经由下一跳地址为172.1.1.1,且经由的接口为VLANIF30。入口标签为进入时已附带之标签,出口标签为离开本设备后附带之标签。

*1.1.1.9/32         Liberal/1024                   DS/3.3.3.9

①*标识未建立的LSP

②Liberal是宽松模式

③DS,应该是表示会话已经过期

 2.2.2.9/32         3/NULL       1.1.1.9       127.0.0.1       InLoop0
 2.2.2.9/32         3/NULL       3.3.3.9       127.0.0.1       InLoop0
*2.2.2.9/32         Liberal/1024                   DS/1.1.1.9
*2.2.2.9/32         Liberal/1025                   DS/3.3.3.9

①根据第一条和第二条就可以判断出,目的地址是本地参数,是本地Loopback口的地址;

是达到本地的LSP,是用于交换标签映射信息的LSP

3.3.3.9/32         NULL/3         -             172.2.1.2       Vlanif60
 3.3.3.9/32         1025/3        1.1.1.9     172.2.1.2       Vlanif60
 3.3.3.9/32         1025/3        3.3.3.9      172.2.1.2       Vlanif60
*3.3.3.9/32         Liberal/1025                   DS/1.1.1.9

①本地产生到达3.3.3.9的LSP,标签映射交换后得到的内容,用于后续进行数据包的转发;

②根据判断,转发的接口是172.2.1.2,这是一条转发给PE-2设备的LSP,路径是P和PE-2连接段,入标签是1025,是发送这个LSP信息给设备PE-2的对等体--PE-1打压入的标签;

③用于--标签映射信息交换;指向自身地址的LSP。用于诊断目的,以确保MPLS标签分发和转发机制按预期工作;应该是有LDP报文得知;

④未完成的LSP

在PE1设备中有一条LSP:

3.3.3.9/32         1025/1025    2.2.2.9       172.1.1.2       Vlanif30

意思是上游设备P发送的LSP信息,将目的地址为3.3.3.9/32的数据包转发到vlanif30接口,下一跳是172.1.1.2,入标签是1025,出标签是1025。

P设备告诉PE1设备到达3.3.3.9的转发路径,要经过我这里,而且要压入标签1025;

意思就是在PE1设备已经弹入1024标签,然后转发到P设备后离开,出标签是1025。

对应这条

3.  在PE设备上配置VPN实例,将CE接入PE

# 配置PE1

[PE1] ip vpn-instance vpna
    # 创建并配置VPN实例 vpna
    
[PE1-vpn-instance-vpna] route-distinguisher 100:1
    # 在vpna VPN实例下,设置路由区分符(Route Distinguisher, RD)为100:1。RD用于在MPLS VPN网络中唯一标识VPN路由,因为不同的VPN可能使用相同的IP地址空间
    
[PE1-vpn-instance-vpna-af-ipv4] vpn-target 111:1 both
    # 在vpna的IPv4地址族下,设置VPN目标(VPN Target, VT)为111:1,并指定为both,意味着这个VT既用作导出(export)也用作导入(import)策略。VT用于MP-BGP(多协议边界网关协议)中,以确保只有属于特定VPN的路由被交换。
    
[PE1-vpn-instance-vpna-af-ipv4] quit
[PE1-vpn-instance-vpna] quit
[PE1] ip vpn-instance vpnb
[PE1-vpn-instance-vpnb] route-distinguisher 100:2
[PE1-vpn-instance-vpnb-af-ipv4] vpn-target 222:2 both
[PE1-vpn-instance-vpnb-af-ipv4] quit
[PE1-vpn-instance-vpnb] quit
[PE1] interface vlanif 10
[PE1-Vlanif10] ip binding vpn-instance vpna
[PE1-Vlanif10] ip address 10.1.1.2 24
    # 将VLAN接口10绑定到vpna VPN实例。这意味着通过该接口的所有流量都将被视为vpna VPN的一部分
    
[PE1-Vlanif10] quit
[PE1] interface vlanif 20
[PE1-Vlanif20] ip binding vpn-instance vpnb
[PE1-Vlanif20] ip address 10.2.1.2 24
[PE1-Vlanif20] quit

# 配置PE2

[PE2] ip vpn-instance vpna
[PE2-vpn-instance-vpna] route-distinguisher 200:1
[PE2-vpn-instance-vpna-af-ipv4] vpn-target 111:1 both
[PE2-vpn-instance-vpna-af-ipv4] quit
[PE2-vpn-instance-vpna] quit
[PE2] ip vpn-instance vpnb
[PE2-vpn-instance-vpnb] route-distinguisher 200:2
[PE2-vpn-instance-vpnb-af-ipv4] vpn-target 222:2 both
[PE2-vpn-instance-vpnb-af-ipv4] quit
[PE2-vpn-instance-vpnb] quit
[PE2] interface vlanif 40
[PE2-Vlanif40] ip binding vpn-instance vpna
[PE2-Vlanif40] ip address 10.3.1.2 24
[PE2-Vlanif40] quit
[PE2] interface vlanif 50
[PE2-Vlanif50] ip binding vpn-instance vpnb
[PE2-Vlanif50] ip address 10.4.1.2 24
[PE2-Vlanif50] quit

# 按拓扑配置连接公司总部研发区的CE1的接口IP地址,CE2、CE3和CE4的配置与CE1类似,配置过程略。

<HUAWEI> system-view
[HUAWEI] sysname CE1
[CE1] vlan batch 10
[CE1] interface gigabitethernet 0/0/1
[CE1-GigabitEthernet0/0/1] port link-type trunk
[CE1-GigabitEthernet0/0/1] port trunk allow-pass vlan 10 
[CE1-GigabitEthernet0/0/1] quit
[CE1] interface vlanif 10
[CE1-Vlanif10] ip address 10.1.1.1 24
[CE1-Vlanif10] quit

配置完成后,在PE设备上执行display ip vpn-instance verbose命令可以看到VPN实例的配置情况。各PE能ping通自己接入的CE。

当PE上有多个接口绑定了同一个VPN,则使用ping -vpn-instance命令ping对端PE接入的CE时,要指定源IP地址,即要指定ping -vpn-instance vpn-instance-name -a source-ip-address dest-ip-address命令中的参数-a source-ip-address,否则可能ping不通。

4.  在PE与CE之间建立EBGP对等体关系,引入VPN路由

# 配置连接公司总部研发区的CE1。CE2、CE3和CE4的配置与CE1类似

以CE1为例:

[CE1] bgp 65410
[CE1-bgp] peer 10.1.1.2 as-number 100
[CE1-bgp] import-route direct
[CE1-bgp] quit

# 配置PE1

PE2的配置与PE1类似,详见配置文件

[PE1] bgp 100
[PE1-bgp] ipv4-family vpn-instance vpna
[PE1-bgp-vpna] peer 10.1.1.1 as-number 65410
[PE1-bgp-vpna] import-route direct
[PE1-bgp-vpna] quit
[PE1-bgp] ipv4-family vpn-instance vpnb
[PE1-bgp-vpnb] peer 10.2.1.1 as-number 65420
[PE1-bgp-vpnb] import-route direct
[PE1-bgp-vpnb] quit
[PE1-bgp] quit

配置完成后,在PE设备上执行display bgp vpnv4 vpn-instance peer命令,可以看到PE与CE之间的BGP对等体关系已建立,并达到Established状态。

以PE1与CE1的对等体关系为例:

5.在PE之间建立MP-IBGP对等体关系

# 配置PE1

[PE1] bgp 100
[PE1-bgp] peer 3.3.3.9 as-number 100
[PE1-bgp] peer 3.3.3.9 connect-interface loopback 1
[PE1-bgp] ipv4-family vpnv4
[PE1-bgp-af-vpnv4] peer 3.3.3.9 enable
[PE1-bgp-af-vpnv4] quit
[PE1-bgp] quit

# 配置PE2

[PE2] bgp 100
[PE2-bgp] peer 1.1.1.9 as-number 100
[PE2-bgp] peer 1.1.1.9 connect-interface loopback 1
[PE2-bgp] ipv4-family vpnv4
[PE2-bgp-af-vpnv4] peer 1.1.1.9 enable
[PE2-bgp-af-vpnv4] quit
[PE2-bgp] quit

配置完成后,在PE设备上执行display bgp peerdisplay bgp vpnv4 all peer命令,可以看到PE之间的BGP对等体关系已建立,并达到实验要求。

6.检查配置结果

在PE设备上执行display ip routing-table vpn-instance命令,可以看到去往对端CE的路由。

dis ip routing-table vpn-instance vpna

同一VPN的CE能够相互Ping通,不同VPN的CE不能相互Ping通。

例如:连接公司总部研发区的CE1能够Ping通连接分支机构研发区的CE3(10.3.1.1),但不能Ping通连接分支机构非研发区的CE4(10.4.1.1)

我这里没有给图片,原因是华为eNSP模拟器中的汇聚交换机S5700,刚刚好落后一个版本!!

在bgp中配置不了---ipv4-family vpn4

所以建议还是使用路由器来做最好!!!

使用路由器进行实验配置差不多;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值