华为数通HCIP-VPN技术-mpls vpn

VPN(虚拟专线网络)

作用:实现广域互联(不同地域局域网之间跨越公网进行互通);

VPN(Virtual Private Network,虚拟专用网络)指的是在一个公共网络中实现虚拟的专用网络,从而使得用户能够基于该专用网络实现通信的技术。

MPLS VPN

设备角色:

PE(运营商边界设备):

CE:VPN用户企业的边界设备

P:运营商

VPN实例

一般一个企业对应一个VPN实例,通过实例名称作为区分;

RD(路由标识符)

作用:用于区分来自不同的VPN实例的私网路由;

原理:会根据私网路由一起在公网上传递;

特点:不同的VPN实例不能配置相同的RD值;

RT(路由目标值)

作用:控制VPN路由的接收,实现VPN实例之间的访问控制;

原理:私网路由在公网上传递时,会携带对应vpn实例的出方向RT,对端PE收到后会对比路由中的出方向RT,与自身连接的VPN实例的入方向RT是否一致,一致则传递进该VPN实例,不一致则不传;

因此,在配置时,需要互通的VPN实例之间的RT值需要交叉一致;

VRF(虚拟路由转发表/VPN实例路由表)

在PE设备上,每个VPN实例都会有一张对应的VRF表,功能跟路由表一致,但是专门用于存放VPN路由;

关键信息:私网标签、vpn实例名称,下一跳/出接口,tunnel id;

display ip routing-table vpn-instance a //查看vpn实例a的路由表

控制层面工作过程:

1、CE会将需要跟对端通信的路由,以普通路由的形式传递给PE;

2、PE会将从CE收到的路由,记录进对应的VRF表项中,记为私网路由;

3、PE会为私网路由,分配一个私网标签,并且将该路由以update报文的形式传递给所有vpnv4邻居;

update报文:携带非ipv4单播路由时,通过mp-reach-NLRI字段携带路由;

NLRI:携带私网路由、掩码、私网标签;

下一跳:以自身作为下一跳;

扩展团体属性:出方向RT;

4、PE收到对端PE发送过来的VPNv4路由时,会做出以下检查:

(1)下一跳是否可达;

(2)下一跳是否存在完整的隧道;

(3)检查VPNv4路由的出方向RT与本设备连接的其他的VPN实例的RT是否一致;

当上述三个条件均满足,则该路由会被学习进VRF表项中,并且BGP VPN路由表中该路由也会显示为有效

配置:

1、CE设备与PE设备建立普通的EBGP/IGP邻居关系,并且宣告/引入需要进行广域互联的路由给PE设备;

CE1:

bgp 700

peer 10.1.17.1 as-number 100

network 8.8.8.8 32

2、PE上创建VPN实例,并且设置RD、RT值;

PE1:

ip vpn-instance a

route-distinguisher 1:1

vpn-target 1:2 export-extcommunity

vpn-target 2:1 import-extcommunity

PE2:

ip vpn-instance b

route-distinguisher 2:2

vpn-target 2:1 export-extcommunity

vpn-target 1:2 import-extcommunity

3、将VPN实例绑定到连接到对应客户的接口下

interface GigabitEthernet0/0/0

ip binding vpn-instance a

ip address 10.1.17.1 24 //绑定完成后,ip地址会清空,需要重新配置

4、在PE上与CE建立BGP/IGP的实例邻居(以BGP为例)

bgp 100

ipv4-family vpn-instance a //进入VPN实例a视图

peer 10.1.17.7 as-number 700 //peer CE设备建立邻居

5、PE1与PE2之间跨跳建立VPNv4邻居

bgp 100

peer 4.4.4.4 as-number 100

peer 4.4.4.4 connect-interface LoopBack0

ipv4-family vpnv4 //进入BGP的VPNv4协议栈

peer 4.4.4.4 enable //与4.4.4.4建立vpnv4邻居

如果想减轻设备负担,可以关闭PE之间的普通ipv4邻居:

BGP 100

ipv4-family unicast

undo peer 4.4.4.4 enable

6、在CE上将BGP引入到IGP

CE2:

isis 1

import-route bgp

display ip vpn-instance verbose //查看VPN实例的配置以及绑定情况

display bgp vpnv4 all peer //查看VPN实例邻居

display bgp vpnv4 all routing-table //查看BGP VPN路由表

display ip routing-table vpn-instance a verbose //查看VRF a详细信息,其中包含私网标签以及tunnel id;

如果PE与CE之间运行IGP(以ospf 3为例)

CE2:

ospf 3 router-id 6.6.6.6

area 0.0.0.0

network 10.1.46.0 0.0.0.255 //与PE建立普通的ospf邻居

import-route isis 1 //将需要传递给对面的私网路由引入到ospf 3

PE2:

ospf 3 router-id 4.4.4.4 vpn-instance b

area 0.0.0.0

network 10.1.46.0 0.0.0.255 //与CE设备建立VPN实例邻居

bgp 100

ipv4-family vpn-instance b

import-route ospf 3 //在BGP中创建vpn实例b视图,引入ospf3

ospf 3

import-route bgp //将bgp引入致ospf 3,使对端的路由,可以传递给CE设备;

CE2:

isis 1

import-route ospf 3 //将ospf 3引入到isis,使对端的路由,可以传递给本企业的设备;

实验二

场景

某公司有两个客户网络,分别是网络A与网络B,该公司希望两个网络内的员工能通过私网路由相互访问。该公司希望在网络边缘设备上使用BGP协议将私网路由发送给运营商网络。运营商通过MP-BGP实现私网路由在公共网络上的传递,同时使用MPLS VPN技术保证客户网络信息的安全性和私密性。

步骤一 基本配置与IP编址

(IP已经配置好,记得检查接口配置信息)

AR1

AR2

AR3

AR4

AR5

步骤二 ISP配置单区域OSPF

R1 R2 R3使用ospf router-id为环回接口 宣告10.1.12.0/24,10.1.23.0/24网段以及各自loopback 0接口(自行配置,宣告最精确的地址)

AR1

ospf 1 router-id 1.1.1.1
area 0
network 10.1.12.0 0.0.0.255
network 1.1.1.1 0.0.0.0

AR2

ospf 1 router-id 2.2.2.2
area 0
network 10.1.12.0 0.0.0.255
network 10.1.23.0 0.0.0.255
network 2.2.2.2 0.0.0.0

AR3

ospf 1 router-id 3.3.3.3 
area 0.0.0.0 
network 3.3.3.3 0.0.0.0 
network 10.1.23.0 0.0.0.255 

dis ospf peer brief查看邻居关系建立情况

配置完成后,查看设备的路由表,并ISP的连通性。

<R2>dis ip routing-table (截图)

步骤三 配置运营商网络设备使用MPLS LDP协议转发客户的私网数据

R1,R2,R3 运行MPLS,并且运行MPLS LDP协议进行标签的发放

在各LSR上配置全局MPLS和LDP

[R1]mpls lsr-id 1.1.1.1
[R1]mpls 
Info: Mpls starting, please wait... OK!
[R1-mpls]quit
[R1]mpls ldp
[R1-mpls-ldp]

R2 R3基本一样 R2 LSR ID为2.2.2.2 R3为3.3.3.3

在各LSR接口上配置MPLS和LDP

[R1]int s1/0/0

[R1-Serial1/0/0]mpls 
[R1-Serial1/0/0]mpls ldp

R2的 S1/0/0 S3/0/0和R3的S3/0/0也一样要配置

配置完成后,在节点上执行display mpls ldp session命令,可以看到R1和R2和R3之间的本地LDP会话状态为"Operational"。

[R1]display mpls ldp session

步骤四 LDP建立LSP

在配置完成后,各LSR已根据默认的LDP LSP触发策略,即所有主机路由触发建立LDP LSP。

在各LSR上执行display mpls ldp lsp命令,可以看到所有主机路由都触发建立了LDP LSP。

[R1]display mpls ldp lsp

步骤五 配置运营商网络边缘设备的VPN实例

在R1与R3上分别为客户A网络与客户B网络配置VPN实例。分配客户A网络的VPN实例为ClientA,RD值为100:100,Export Target与Import Target为100:200;分配给客户B网络的VPN实例为ClientB,RD值为200:200,Export Target与Import Target为100:200。

[R1]ip vpn-instance ClientA   ###创建VPN实例,实例名为ClientA 
[R1-vpn-instance-ClientA]route-distinguisher 100:100  ###为VPN实例地址族配置路由标识RD值为100:100
[R1-vpn-instance-ClientA-af-ipv4]vpn-target 100:200 both ###配置VPN实例出入方向VPN-Target扩展团体属性为100:200 
[R1]int s3/0/0  ###在CE和PE之间的接口
[R1-Serial3/0/0]ip binding vpn-instance ClientA  ###将PE上的S3/0/0接口与VPN实例ClientA绑定

注意:绑定实例后IP地址需要重新配

R3配置的也一样 实例名为ClientB RD为200:200,RT为100:200,在S1/0/0接口绑定实例,记得重新配IP

配置完成后,分别在R1与R3上查看配置的VPN实例。

[R1]display ip vpn-instance verbose

步骤六 配置客户网络边缘设备与运营商网络边缘设备使用BGP协议传递路由

客户A网络的AS号为100,运营商网络的AS号为200,客户B网络的AS号为300。客户网络边缘设备与运营商网络边缘设备建立BGP的邻居关系,使客户私网路由通过BGP协议通告给运营商网络边缘设备。

[R4]bgp 100

[R4-bgp]peer 10.1.14.1 as-number 200

[R4-bgp]network 192.168.10.0 24

[R1]bgp 200

[R1-bgp]ipv4-family vpn-instance ClientA

[R1-bgp-ClientA]peer 10.1.14.4 as-number 100 

R3与R5配置也差不多,指定VPN实例ClientB与IPv4地址族进行关联,peer指向对端建立BGP对等体邻居,通告一条172.16.10.0/24路由给ISP

[R5]bgp 300
[R5-bgp]peer 10.1.35.3 as-number 200
[R5-bgp]network 172.16.10.0 24
[R3]bgp 200
[R3-bgp]ipv4-family vpn-instance ClientB
[R3-bgp-ClientB]peer 10.1.35.5 as-number 300

配置完成后,分别在R1与R4,R3与R5上查看BGP邻居关系的建立情况。

[R1]display bgp vpnv4 vpn-instance ClientA peer (一定要Established状态)

[R4]display bgp peer (一定要Established状态)

[R3]display bgp vpnv4 vpn-instance ClientB peer (一定要Established状态)

[R5]display bgp peer (一定要Established状态)

分别在R1与R3上查看VPN路由表学到的客户网络的私网路由

[R1]dis bgp vpnv4 vpn-instance ClientA routing-table(正常情况应该会有192.168.10.0/24的BGP路由)

[R3]dis bgp vpnv4 vpn-instance ClientB routing-table(正常情况应该会有172.16.10.0/24的BGP路由)

分别在R1与R3上查看VPN路由表学到的客户网络的私网路由。

[R1]display ip routing-table vpn-instance ClientA(圈出EBGP路由条目)

[R3]display ip routing-table vpn-instance ClientB(圈出EBGP路由条目)

步骤七 配置运营商网络设备使用MP-BGP协议传递客户的私网路由

在R1与R3之间采用MP-BGP协议传递客户的私网路由,R2不运行BGP(MPLS可以解决路由黑洞)

[R1]bgp 200

[R1-bgp] peer 3.3.3.3 as-number 200 ###peer指向R3建立BGP对等体AS号为200

[R1-bgp]peer 3.3.3.3 next-hop-local###指定更新源

[R1-bgp]ipv4-family vpn-instance ClientA ###启用BGP的IPv4地址族并进入BGP-VPNv4地址族视图

[R1-bgp-af-vpnv4] peer 3.3.3.3 enable ###启用指定IBGP对等体

(缺省情况下,只有BGP-IPv4单播地址族的对等体是自动使能的。即在BGP视图下配置peer as-number命令后,系统会自动配置相应的peer enable命令。其他地址族视图下都必须手动使能)

R3差不多的反过来配置就行

配置完成后,分别在R1与R3上查看MP-BGP邻居关系的建立情况。

[R1]display bgp vpnv4 all peer (此时应该有两个BGP邻居都是Established状态)

[R3]display bgp vpnv4 all peer (此时应该有两个BGP邻居都是Established状态)

相关推荐
幺零九零零7 分钟前
【C++】socket套接字编程
linux·服务器·网络·c++
TangKenny9 分钟前
计算网络信号
java·算法·华为
23zhgjx-NanKon1 小时前
华为eNSP:QinQ
网络·安全·华为
23zhgjx-NanKon1 小时前
华为eNSP:mux-vlan
网络·安全·华为
点点滴滴的记录1 小时前
RPC核心实现原理
网络·网络协议·rpc
Lionhacker2 小时前
网络工程师这个行业可以一直干到退休吗?
网络·数据库·网络安全·黑客·黑客技术
程思扬2 小时前
为什么Uptime+Kuma本地部署与远程使用是网站监控新选择?
linux·服务器·网络·经验分享·后端·网络协议·1024程序员节
ZachOn1y2 小时前
计算机网络:运输层 —— 运输层概述
网络·tcp/ip·计算机网络·运输层
佚明zj2 小时前
【点云网络】voxelnet 和 pointpillar
网络
转世成为计算机大神2 小时前
网关 Spring Cloud Gateway
java·网络·spring boot·1024程序员节