华为数通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状态)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/53405.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python速成之循环分支结构学习

循环结构 应用场景 我们在写程序的时候&#xff0c;一定会遇到需要重复执行某条或某些指令的场景。例如用程序控制机器人踢足球&#xff0c;如果机器人持球而且还没有进入射门范围&#xff0c;那么我们就要一直发出让机器人向球门方向移动的指令。在这个场景中&#xff0c;让…

无涯教程-jQuery - serialize( )方法函数

serialize()方法将一组输入元素序列化为数据字符串。 serialize( ) - 语法 $.serialize( ) serialize( ) - 示例 假设无涯教程在serialize.php文件中具有以下PHP内容- <?php if( $_REQUEST["name"] ) {$name$_REQUEST[name];echo "Welcome ". $na…

【Unity2D】Order in Layer 与Layer的区别

Order in Layer 是Unity 图形渲染的顺序&#xff0c;通过设置Order in Layer &#xff0c;可以设置同层(Layer)的物体出现顺序&#xff0c;可以默认使一种物体出现在另一种物体前方 设置一物体默认在其他物体之上不被遮挡 Layer是Unity中物体的层级&#xff0c;不同物体可以位…

SOLIDWORKS Utilities应用

在实际的生产设计制造中&#xff0c;经常会遇到同一个零件多个版本&#xff0c;有可能再次调用零件的时间已经是很长时间之后&#xff0c;对于版本之间的区别就不会那么清楚&#xff0c;碰到简单明显的零件还可以轻松的找到区别&#xff0c;但是复杂的零件区别的查找可能会造成…

word显示书签并给书签添加颜色

CTRg 定位书签 在 Word 的用户界面中&#xff0c;没有直接的选项可以批量为所有书签设置颜色。但你可以使用 VBA 宏或者编写自定义的功能来实现这个需求。这里给出一个简单的 VBA 宏&#xff0c;它可以设置当前文档中所有书签内文本的颜色&#xff1a;vba Sub ColorAllBookmark…

C++程序获取python脚本控制台输出的一种方法

作者&#xff1a;朱金灿 来源&#xff1a;clever101的专栏 为什么大多数人学不会人工智能编程&#xff1f;>>> 最近要使用C程序调用python脚本&#xff0c;调用方法是通过启动python进程来调用&#xff0c;其中遇到的一个问题是在C程序中需要获取python脚本的控制台…

数组的使用(逆序、冒泡)

内存连续数据类型相同从0开始索引 找出数组中的最大值 #include <iostream> #include <stdlib.h> //随机数所在文件 using namespace std;int main() {int arr[5]{104,134,145,129,89};//初始化没有填的为0 int max0;for(int i0;i<5;i){if(arr[i]>max){ma…

Android AIDL 使用

工程目录图 请点击下面工程名称&#xff0c;跳转到代码的仓库页面&#xff0c;将工程 下载下来 Demo Code 里有详细的注释 代码&#xff1a;LearnAIDL代码&#xff1a;AIDLClient. 参考文献 安卓开发学习之AIDL的使用android进阶-AIDL的基本使用Android AIDL 使用使用 AIDL …

SpringCloudAlibaba之Ribbon

Ribbon是nacos自带的负载均衡器&#xff0c;属于客户端的负载均衡 但是在Spring高级版本中让LoadBalancer替代了 本人用的是2.1.0的nacos&#xff0c;ribbon还没有被替换。 使用&#xff1a; 在配置类中&#xff1a;LoadBalanced BeanLoadBalancedpublic RestTemplate restT…

HTTP——一、了解Web及网络基础

HTTP 一、使用HTTP协议访问Web二、HTTP的诞生1、为知识共享而规划Web2、Web成长时代3、驻足不前的HTTP 三、网络基础TCP/IP1、TCP/IP协议族2、TCP/IP的分层管理3、TCP/IP 通信传输流 四、与HTTP关系密切的协议&#xff1a;IP、TCP和DNS1、负责传输的 IP 协议2、确保可靠性的TCP…

Java期末复习基础题编程题

文章目录 基础题记录实践题记录&&与C比较题目1&#xff1a;题目2&#xff1a;题目3&#xff1a; 基础题记录 编译型语言&#xff1a; 定义&#xff1a;在程序运行之前&#xff0c;通过编译器将源程序编译成机器码(可运行的二进制代码)&#xff0c;以后执行这个程序时&…

63 # commander 的配置

初始化配置文件 新建文件夹 63&#xff0c;执行 npm init -y 修改配置文件 {"name": "kaimo-http-server","version": "1.0.0","description": "","main": "index.js","keywords"…

实用上位机--QT

实用上位机–QT 通信协议如下 上位机设计界面 #------------------------------------------------- # # Project created by QtCreator 2023-07-29T21:22:32 # #-------------------------------------------------QT += core gui serialportgreaterThan(QT_MAJOR_V…

nginx配置访问本机文件夹里的静态资源404

在nginx中配置了location访问一直404 location /web/user/ { alias /home/user/wlds/user/;index index.html;try_files $uri $uri/ /index.html 404;} 看日志发现Permission denied 因为是直接使用的yum安装的二进制包nginx&#xff0c;nginx.conf文件首行是user nginx;所以没…

回归预测 | MATLAB实现POA-CNN-BiLSTM鹈鹕算法优化卷积双向长短期记忆神经网络多输入单输出回归预测

回归预测 | MATLAB实现POA-CNN-BiLSTM鹈鹕算法优化卷积双向长短期记忆神经网络多输入单输出回归预测 目录 回归预测 | MATLAB实现POA-CNN-BiLSTM鹈鹕算法优化卷积双向长短期记忆神经网络多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 MATLA…

从Vue2到Vue3【七】——Vue2中响应式原理的实现及其缺陷

系列文章目录 内容链接从Vue2到Vue3【零】Vue3简介从Vue2到Vue3【一】Composition API&#xff08;第一章&#xff09;从Vue2到Vue3【二】Composition API&#xff08;第二章&#xff09;从Vue2到Vue3【三】Composition API&#xff08;第三章&#xff09;从Vue2到Vue3【四】C…

Linux知识点 -- 基础IO(二)

Linux知识点 – 基础IO&#xff08;二&#xff09; 文章目录 Linux知识点 -- 基础IO&#xff08;二&#xff09;一、重定向1.输出重定向2.输入重定向3.追加重定向4.重定向系统调用5.minishell支持重定向6.stdout和stderr的区别7.常规的重定向操作8.perror的实现 二、Linux下一切…

端口复用与重映射

端口复用和重映射 STM32F1有很多的内置外设&#xff0c;这些外设的外部引脚都是与GPIO复用的。也就是说&#xff0c;一个GPIO如果可以复用为内置外设的功能引脚&#xff0c;那么当这个GPIO作为内置外设使用的时候&#xff0c;就叫做复用。 大家都知道&#xff0c;MCU都有串口…

flutter:轮播

前言 介绍几个比较有不错的轮播库 swipe_deck 与轮播沾边&#xff0c;但是更多的是一种卡片式的交互式界面设计。它的主要概念是用户可以通过左右滑动手势浏览不同的卡片&#xff0c;每张卡片上都有不同的信息或功能。 Swipe deck通常用于展示图片、产品信息、新闻文章、社…

C#文件操作从入门到精通(1)——INI文件操作

点击这里:微软官方文档查看writePrivateProfileString函数定义 常见错误: 1、中文路径写入失败,为啥? 2、文件不是全路径,只有文件名也会写入失败: 3、GetLastError怎么使用? GetLastError错误代码含义: (0)-操作成功完成。 (1)-功能错误。 (2)- 系统找不到指定的文件…