MPLS VPN基础

文章目录

MPLS VPN

既然能用MPLS解决私网经过公网进入私网之间进行通信,为什么还要用MPLSVPN?

  • 当私网中出现多个站点,需要使用一定的技术来对私网流量进行区分,同时也要实现用户之间的隔离
  • MPLS网络一般是运营商进行搭建的,但是也能实现基本的内网经过公网之后到内网之间的通信,但是存在很大弊端
  • 因此使用 MPLS VPN
    隔离靠VRF:用来让LER下方连接的私网之间进行隔离

区分靠RD:RD不可以控制路由的加载,没有能力控制路由究竟进入哪一个VRF的功能,能通过RD区分具体的VPNv4路由

进入对应的VRF使用RT:究竟进入哪一个VRF,RT来决策

传递靠MP-BGP:多协议BGP,用于传递VPNv4路由
传统GRE、IPsecVPN的优缺点

  • 便宜,不需要找运营商(运营商只负责互通)

  • 只需要自己配置就可以

  • 假设运营商中间出现网络拥塞,用户体验得不到保障

  • 服务质量和带宽得不到保障

  • 用户业务和运营商业务是相互隔离的

MPLS VPN相比于传统的GRE、IPsecVPN的优点

  • 吸取传统VPN优点:运营商传递的是 VPNv4 路由
  • 可以对数据流量进行优化,保障网络的稳定性
  • 用户业务和运营商业务之间也是相互隔离的

VPN组件

VRF

VPN实例,把一个物理设备虚拟成很多逻辑设备,逻辑设备之间相互隔离,用来让 LER 下方连接的私网之间进行隔离 虚拟路由转发表 VPN-instance 提供路由隔离

包含内容:IP路由表、标签转发表、接口列表、RD、路由过滤策略

在LER设备上配置

bash 复制代码
ip vpn-instance VPN_A    #创建VPN实例
ipv4-family    #打开IPv4地址族功能
inter g0/0/0
ip bind vpn-instance VPN_A    #进入接口将接口加入VPN实例,绑定的不同VPN实例可以针对不同的客户
ip add 12.1.1.2 24    #将接口加入VPN实例之后会清空IP配置
dis ip routing-table vpn-instance VPN_A    #查看虚拟路由表

#此时在LER设备上进行 ICMP 的 Ping 测试需要在命令后加参数
ping -vpn-instance VPN_A 3.3.3.3 进行连通性测试(同样支持普通ICMP里面的参数)
ping -vpn-instance VPN_A -a 1.1.1.1 3.3.3.3    #指定源地址去进行 Ping 测试
tracert -vpn-instance VPN_A -v -a 1.1.1.1 3.3.3.3    # -v表示显示详细信息,-a表示指定源地址,-q表示探测包的数量
#在配置完RT之后,我们使用上面的 Tracert 命令就能看见数据包经过IP网络进入MPLS网络的效果
RD

路由标识符,用于区分使用相同地址空间的IPv4前缀,必须保证PE上的RD全局唯一

bash 复制代码
R1
ip vpn-instance VPN_A    #当用户的路由加入到VRF之后,我们需要给他添加一个RD值
route-distinguisher 100:1    #RD用来标识进入此LER设备的路由变成 VPN 路由之后打的Tag就是100:1

R3
ip vpn-instance VPN_A
route-distinguisher 100:2

加上RD属性之后就变成了VPNv4路由,之后就需要建立 MP-BGP 用以承载 VPNv4 路由

MP-BGP

因为本身有MPLS作为支撑,所以可以直接跨设备建立邻居

所以在MPLS网络中需要建立 MP-IBGP 的邻居关系

bash 复制代码
bgp 100
peer 3.3.3.3 as 100
peer 3.3.3.3 con loo 0
undo peer 3.3.3.3 enable    #关闭掉IPv4的邻居关系
ipv4-family vpnv4    #在BGP中使能 VPNv4
peer 3.3.3.3 enable    #激活 VPNv4 的邻居关系

dis bgp vpnv4 all peer    #查看VPNv4的所有邻居

bgp 100
ipv4 vpn-instance VPN_A    #进入VPN实例进行路由宣告
network x.x.x.x 24    #在VPN实例里面宣告路由

dis bgp vpnv4 vpn-instance VPN_A routing-table 3.3.3.3    #查看VPN实例下的BGP路由
dis bgp vpnv4 route-distinguisher 100:1 routing-table 12.1.1.0    #查看RD、RT信息,并且指定要查询的路由
dis bgp vpnv4 all routing-table peer 3.3.3.3 advertised-routes    #查看所有对邻居3.3.3.3通告的路由信息

#此时因为没有配置RT,VPNv4路由无法接受,因此MP-IBGP邻居收不到传来的路由条目,刚刚的查询命令查不到相应的东西
RT

称为VPN的 Target、BGP扩展团体属性、控制VPN路由信息的加载、每个VPN实例关联一个或多个VPN Targer 属性

接受的RT叫 IRT,发送的RT叫 ERT

bash 复制代码
R1
ip vpn-instance VPN_A    #还是需要在LER设备上进行配置
vpn-target 100:1 export-extcommunity    # R1-LER 配置出去的RT为100:1

R3
ip vpn-instance VPN_A
vpn-target 100:1 import-extcommunity    # R3-LER 配置进来的RT为100:1

R3
ip vpn-instance VPN_A    #还是需要在LER设备上进行配置
vpn-target 100:2 export-extcommunity    # R3-LER 配置出去的RT为100:2

R1
ip vpn-instance VPN_A
vpn-target 100:2 import-extcommunity    # R1-LER 配置进来的RT为100:2

#现在使用命令就能在 R3-LER 设备上看到本端LER传递的路由信息
dis bgp vpnv4 route-distinguisher 100:1 routing-table 12.1.1.0    #查看RD、RT信息,并且指定要查询的路由
dis bgp vpnv4 vpn-instance VPN_A routing-table 3.3.3.3   #查看VPN实例下的BGP路由,配置RT之后就可以正常查询了
bash 复制代码
在LER设备上进行 ICMP 的 Ping 测试需要在命令后加参数
ping -vpn-instance VPN_A 3.3.3.3 进行连通性测试(同样支持普通ICMP里面的参数)
ping -vpn-instance VPN_A -a 1.1.1.1 3.3.3.3    #指定源地址去进行 Ping 测试
tracert -vpn-instance VPN_A -v -a 1.1.1.1 3.3.3.3    # -v表示显示详细信息,-a表示指定源地址,-q表示探测包的数量
#在配置完RT之后,我们使用上面的 Tracert 命令就能看见数据包经过IP网络进入MPLS网络的效果

Author:DC

相关推荐
TheITSea几秒前
云服务器宝塔安装静态网页 WordPress、VuePress流程记录
java·服务器·数据库
嚯——哈哈17 分钟前
轻量云服务器:入门级云计算的最佳选择
运维·服务器·云计算
我是唐青枫19 分钟前
Linux dnf 包管理工具使用教程
linux·运维·服务器
黑客Ash28 分钟前
计算机中的网络安全
网络·安全·web安全
PersistJiao36 分钟前
Spark 分布式计算中网络传输和序列化的关系(二)
大数据·网络·spark·序列化·分布式计算
嚯——哈哈43 分钟前
AWS云服务器:开启高效计算的新纪元
服务器·云计算·aws
嚯——哈哈43 分钟前
从入门到精通:解析如何使用亚马逊云服务器(AWS EC2)
运维·服务器·aws
王ASC1 小时前
ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值。ojdbc8版本23.2.0.0驱动BUG【已解决】
数据库·sql·oracle
Dlwyz1 小时前
问题: redis-高并发场景下如何保证缓存数据与数据库的最终一致性
数据库·redis·缓存
岳不谢1 小时前
VPN技术-VPN简介学习笔记
网络·笔记·学习·华为