MPLS VPN需要使用到的技术

1.MPLS LDP协议(作用:为运营商中间设备以及BGP中的VPN实例自动分配标签)

2.BGP协议(作用:为运营商边缘设备之间建立IBGP邻居,双方搭建逻辑隧道)

3.vpn实例(作用:为区分客户端出口设备相同的私有地址)

4.OSPF或ISIS,跑运营商底层连通

拓扑图

拓扑介绍

1.CE1/CE2模拟A公司的总部及分部,CE3/CE4模拟B公司的总部及分部。

2.PE1/PE2为某运营商的MPLS VPN边缘接入设备(此处为一边一台,同时接入具有相同私有地址的客户A客户B),P模拟为运营商中间设备(中间设备可能有成千上万台,此处用一台模拟,效果一样,只要底层配通,各边缘设备之间通信都是通过标签转发)。

配置思路

1.基础配置IP地址,PE1/P/PE2底层ISIS/OSPF协议等;

2.配置PE1/P/PE2 LDP协议;

3.PE1/PE2之间起BGP协议;

4.PE1/PE2上配置VPN实例隔开各公司的IP;

5.配置VPN实例路由(可通过动态协议和静态路由,此处A公司我用OSPF展示,B公司用静态),并引入BGP协议,通过BGP协议的路由发布特性,通告给IBGP邻居。

6.测试连通性,抓包分析嵌套标签

配置开始

1.基础配置IP地址,PE1/P/PE2底层ISIS/OSPF协议等;

基础地址配置略过,底层协议选用ISIS

PE1上:

isis 1

is-level level-2

network-entity 49.0000.0000.0001.00

int g0/0/2

isis enable 1

isis circuit-type p2p    //isis模式改P2P收敛快一些

P上:

isis 1

is-level level-2

network-entity 49.0000.0000.0002.00

int g0/0/0

isis enable 1

isis circuit-type p2p    //isis模式改P2P收敛快一些

int g0/0/1

isis enable 1

isis circuit-type p2p    //isis模式改P2P收敛快一些

PE2上:

isis 1

is-level level-2

network-entity 49.0000.0000.0003.00

int g0/0/0

isis enable 1

isis circuit-type p2p    //isis模式改P2P收敛快一些

P上:

dis isis pee   //P上看一下ISIS 邻居起来了吗

底层配置完毕

2.配置PE1/P/PE2 LDP协议

PE1上:

mpls lsr-id 1.1.1.1

interface loopback 0

ip add 1.1.1.1 32

isis enable 1               //宣告到ISIS中,LDP协议通过LSR-ID建立会话消息需要互通

mpls       //全局开MPLS功能

lsp-trigger all   //MPLS视图下开启为所有路由分配标签功能

mpls ldp   //全局开MPLS的LDP协议

interface g0/0/2

mpls     //接口下再开

mpls ldp   //接口下开LDP协议

太麻烦了  P设备和PE2设备配置类似,略过了,配置过程就是宣告LSR ID 开启MPLS LDP

3.PE1/PE2之间起BGP协议

PE1上:

bgp 100

router-id 1.1.1.1

peer 3.3.3.3 as-number 100

peer 3.3.3.3 connect-interface LoopBack0   //建IBGP邻居可以用LOOPBACK,记住要用命令宣告一下使用的接口,否则邻居起不来

ipv4-family unicast    //开IPV4单播蔟  华为设备缺省就是开的,华三要手动敲一下

peer 3.3.3.3 enable    //开IPV4单播蔟中的邻居

PE2上:

bgp 100

router-id 3.3.3.3

peer 1.1.1.1 as-number 100

peer 1.1.1.1 connect-interface LoopBack0   //建IBGP邻居可以用LOOPBACK,记住要用命令宣告一下使用的接口,否则邻居起不来

dis bgp peer 命令看一下邻居是否正常

正常BGP基础配置完毕,后面BGP还需要绑定VPN实例

4.PE1/PE2上配置VPN实例隔开各公司的IP

PE1上:

ip vpn-instance VPNA       //用名称为VPNA的VPN实例指公司A

route-distinguisher 1:2     //RD值随便配置,只在本地有效,用来区分设备接受CE的私有IP

vpn-target 10:20 export-extcommunity         //配置export  target  发出的标签要与PE2接收的标签相同,这个值是要在BGP的community属性中传递的,所以BGP的团体属性不要给关闭了否则不通

vpn-target 20:10 import-extcommunity     //配置import target  允许接收的标签,这个值要与对方PE2发出的值相吻合

ip vpn-instance VPNB      //用名称为VPNB的VPN实例指公司B

route-distinguisher 3:4     //RD值随便配置,只在本地有效,用来区分设备接受CE的私有IP

vpn-target 30:40 export-extcommunity         //配置export  target  发出的标签要与PE2接收的标签相同,这个值是要在BGP的community属性中传递的,所以BGP的团体属性不要给关闭了否则不通

vpn-target 40:30 import-extcommunity     //配置import target  允许接收的标签,这个值要与对方PE2发出的值相吻合

int g0/0/0

ip binding vpn-instance VPNA   //接口绑定VPN实例用来将接收的私有地址打上RD标签,区分重复私有地址

ip add 172.16.0.2 24

int g0/0/1

ip binding vpn-instance VPNB   //接口绑定VPN实例用来将接收的私有地址打上RD标签,区分重复私有地址

ip add 172.16.0.2 24   //这里已经用VPN实例隔开了,相当于把一台路由器分成了三台(一台根路由,两台VPN实例路由),所以可以在每一台逻辑的路由器上配置相同的地址,其实也就是打个RD值很好理解。

PE2上:

ip vpn-instance VPNA       //用名称为VPNA的VPN实例指公司A

route-distinguisher 1:2     //RD值随便配置,只在本地有效,用来区分设备接受CE的私有IP

vpn-target 20:10 export-extcommunity         //配置export  target  发出的标签要与PE2接收的标签相同,这个值是要在BGP的community属性中传递的,所以BGP的团体属性不要给关闭了否则不通

vpn-target 10:20 import-extcommunity     //配置import target  允许接收的标签,这个值要与对方PE1发出的值相吻合

ip vpn-instance VPNB      //用名称为VPNB的VPN实例指公司B

route-distinguisher 3:4     //RD值随便配置,只在本地有效,用来区分设备接受CE的私有IP

vpn-target 40:30 export-extcommunity         //配置export  target  发出的标签要与PE2接收的标签相同,这个值是要在BGP的community属性中传递的,所以BGP的团体属性不要给关闭了否则不通

vpn-target 30:40 import-extcommunity     //配置import target  允许接收的标签,这个值要与对方PE1发出的值相吻合

int g0/0/2

ip binding vpn-instance VPNA   //接口绑定VPN实例用来将接收的私有地址打上RD标签,区分重复私有地址

ip add 192.168.0.2 24

int g0/0/1

ip binding vpn-instance VPNB   //接口绑定VPN实例用来将接收的私有地址打上RD标签,区分重复私有地址

ip add 192.168.0.2 24   //这里已经用VPN实例隔开了,相当于把一台路由器分成了三台(一台根路由,两台VPN实例路由),所以可以在每一台逻辑的路由器上配置相同的地址,其实也就是打个RD值很好理解。

实例配置完成

5.配置VPN实例路由

首先我用A公司跑OSPF协议来进行展示(正常企业中接入MPLS VPN专线,一般不采用OSPF,客户端是什么都不需要配置的直接指缺省路由出去就通了,也就是客户方无感知)

PE1上:

ospf 10 router-id 1.1.1.1 vpn-instance VPNA     // OSPF进程绑定VPNA实例,可以理解为VPNA的逻辑路由器开了个OSPF协议
 import-route bgp
 area 0.0.0.0 
  network 172.16.0.2 0.0.0.0

CE1上:

ospf 10 router-id 11.11.11.11

area 0.0.0.0

network 172.16.0.1 0.0.0.0

int loopback 0                //起个LOOPBACK模拟客户方内网地址,方便测试

ip add 11.11.11.11 32

ospf enable 10 a 0       //宣告到OSPF里

PE2上:

ospf 10 router-id 1.1.1.1 vpn-instance VPNA
 import-route bgp
 area 0.0.0.0 
  network 192.168.0.2 0.0.0.0

CE2上:

ospf 10 router-id 11.11.11.11 
 area 0.0.0.0 
  network 192.168.0.1 0.0.0.0

int loopback 0                //起个LOOPBACK模拟客户方内网地址,方便测试

ip add 22.22.22.22 32

ospf enable 10 a 0       //宣告到OSPF里

PE1/PE2上display ospf peer  brief 查看邻居是否起来了

PE1:

PE2:

ospf配完

接下来做OSPF和BGP的相互引入

PE1上:

bgp 100

ipv4-family vpnv4             //开启BGP的VPNV4功能
  peer 3.3.3.3 enable
 ipv4-family vpn-instance VPNA    //进入到BGP中的实例VPNA中
  import-route ospf 10      //引入OSPF

BGP进程一般设备只允许开一个进程所以一般都是在进程内进行划分实例,不像OSPF直接在开进程时就直接绑定实例

PE2上:

bgp 100

ipv4-family vpnv4             //开启BGP的VPNV4功能
  peer 1.1.1.1 enable
 ipv4-family vpn-instance VPNA    //进入到BGP中的实例VPNA中
  import-route ospf 10      //引入OSPF

配置完成

查看VPNA实例的路由表

PE1上:

PE2上:

路由已经学到了,在CE1pingCE2

验证完成

5.1.配置VPN实例路由

通过静态配置

PE1上:

ip route-static vpn-instance VPNB 33.33.33.33 255.255.255.255 172.16.0.1  //配置VPN实例路由指向CE3的loopback口

bgp 100

ipv4-family vpn-instance VPNB     //引入静态和直连
  import-route direct                 //引入直连是让对端邻居学习到172.16.0.0/24的路由
  import-route static                //引入静态是让对端邻居学习到33.33.33.33的路由

CE3/CE4上:

ip route-static 0.0.0.0 0 172.16.0.2  一条缺省即可

PE2上:

ip route-static vpn-instance VPNB 44.44.44.44 255.255.255.255 192.168.0.1  //配置VPN实例路由指向CE4的loopback口

bgp 100

ipv4-family vpn-instance VPNB     //引入静态和直连
  import-route direct                 //引入直连是让对端邻居学习到192.168.0.0/24的路由
  import-route static                //引入静态是让对端邻居学习到44.44.44.44的路由

验证路由表

PE1:

PE2:

CE3pingCE4

6.抓包分析

在CE3pingCE4的44.44.44.44地址

抓包P设备G0/0/0口可以看到ICMP请求包标签嵌套,外层标签为1025,栈底标签为1027

在PE1和PE2上查看LSP标签信息

PE1上:

dis mpls lsp

FE2上:

可以看到BGP通过标签来区分进入流量的VPN实例,也就是说去往44.44.44.44的流量一经过PE1设备,PE1就为其打上了PE2可以识别的唯一标签1027,此标签在传递过程中不剥离一直到PE2设备上弹出外层的传递标签1025,看到栈底的1027标签,PE2就可以知道这个报文是去往VPNB实例中的44.44.44.44的报文。

抓包查看完成,此配置实例我发在下载中,点赞下载。

MPLS BGP配置实例及抓包分析相关推荐

  1. 华为——OSPF单区域实验配置,实验抓包分析,五种报文分析,六种LSA介绍,以及如何建立邻接关系的七种状态

    华为--OSPF单区域实验配置,实验抓包分析,五种报文分析,六种LSA介绍,以及如何建立邻接关系的七种状态 前言 一:OSPF简介 1.1:工作原理 1.1.1:架构介绍 1.1.2:信息传递 1.1 ...

  2. 华为OSPF抓包分析七种状态

    前言: OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(Auto ...

  3. SSL握手过程实例抓包分析

    为了更好理解SSL协议的握手过程,结合实例,使用Wireshark抓包分析SSL握手过程中客户端与服务器间的交互过程.本例中服务器为AcFun弹幕视频网 - 认真你就输啦 (・ω・)ノ- ( ゜- ゜ ...

  4. hls二次加密 m3u8_HLS实战之Wireshark抓包分析

    0.引言 Wireshark(前称Ethereal)是一个网络封包分析软件.网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料.Wireshark使用WinPCAP作为接口,直 ...

  5. linux抓包库libpcap,linux下libpcap抓包分析.doc

    linux下libpcap抓包分析 HYPERLINK "/Seiyagoo/archive/2012/04/28/2475618.html" linux下libpcap抓包分析 ...

  6. 网站与APP抓包分析1 基础原理与工具使用

    简介: 基于网络协议与相关工具对网站与APP应用数据交互流程进行分析. 关键词:TCP.HTTP.HTTPS.HTTPDNS.Chrome.tshark.Charles.fidder.VirtalXp ...

  7. 实验十四:Wireshark数据抓包分析之ARP协议

    实验十四:Wireshark数据抓包分析之ARP协议 目录 一.实验目的及要求 二.实验原理 1.什么是ARP 2.ARP工作流程 3.ARP缓存表 三.实验环境 四.实验步骤及内容 实验步骤一 1. ...

  8. DHCP数据抓包分析--wireshark

    DHCP数据抓包分析–wireshark DHCP-(Dynamic Host Configuration Procotol,动态主机配置协议),是一个局域网的网络协议,主要用于给内部网络或网络服务供 ...

  9. TCP协议抓包分析 -- wireshark

    TCP协议抓包分析 – wireshark TCP- (Transmission Control Protocol,传输控制协议)是一种面向连接的.可靠的.基于IP的传输层协议.它的主要目的就是为数据 ...

最新文章

  1. Java 中几种获取文件路径的方式
  2. java util concurrent_Error: java.util.concurrent.Execution
  3. deepl真的有取代一般翻译的能力,这吞吐量和稳定性...亲测有效
  4. 计算机应用基础试题号2007,2006-2007计算机应用基础期末试题(A卷).pdf
  5. 'tensorflow' has no attribute 'sub'
  6. shell 结束指定端口
  7. makefile 生成.o_要学好 C 语言 / C++ ,Makefile 可少不了
  8. windows下mongodb安装与使用
  9. 混沌系统与复杂网络控制,神经网络模型求最优解
  10. 尚学堂马士兵hibernate讲义
  11. postgres 坐标_用postgreSQL做基于地理位置的app(zz)
  12. 显示杂谈(1)-Gamma到底是个什么鬼
  13. 弗洛伊德(Floyd)算法之两点之间的最短距离问题
  14. java 关于xml的注解,自动生成xml文件 - @XML***
  15. 【Android】世界各国语言代码
  16. 使用str.split (“\\.“)分割文件前后缀
  17. vuejs study
  18. OpenGLES glUniform1i用法
  19. 软件开发项目保密协议
  20. 如何通过Dynamics CRM 2015修改用户密码

热门文章

  1. win10系统设置环境变量,%%的用法
  2. ubuntu配置VLAN的方法
  3. leap motion java_[Leap Motion开发文档翻译]Leap Motion架构
  4. 2020年第一场面试题汇总
  5. docker学习笔记:容器部署实战
  6. 使用mybatis实现递归查询,mybatis递归查询
  7. “看到同事 2 万块的笔记本,我认输了”:会说话,才是码农该有的自我修养...
  8. 使用Wireshark抓取Mqtt 协议包
  9. 几个行业产品思维导图
  10. MAC如何快速查看软件安装路径