mpls和vpn

目录

前言

mpls

路由器的角色

体系结构

mpls标签

mpls报文首部结构

标签的操作类型

LSP案例

LDP

ldp的工作过程

ldp消息

ldp建立稳定的tcp连接

实验

mpls-vpn

mpls-vpn架构

实验

CE和PE之间的本地路由冲突

PE和P之间的问题

MPLS VPN 的路由如何引入到相对应的VRF

总结


前言

我们在学习bgp的时候知道解决bgp水平分割有三种办法:

1.ibgp全互联

2.bgp反射器

3.bgp联盟

ibgp配置复杂,配置量多,拓扑变更

bgp联盟配置多,会改变网络拓扑,而且当子联盟的路由器超过3台依然会出现水平分割

bgp反射器配置简单,且不改变网络拓扑,是我们的第一选择,但是对于反射器(rr)的压力会很大,设备要求性很高

我们还有没有其他的解决办法?

那就是mpls!!!

mpls

为什么会有MPLS:

以前,我们都是通过IP路由表,去收发IP数据包,但是IP路由表,需要通过最长匹配原则去寻找最好的那条路由,这样做,会增加路由器的处理压力 在后来的ATM网络中,有了标签转发的概念,但是ATM网络配置起来相当麻烦 所以,我们为了结合标签转发+路由特性,创造了MPLS 所谓标签转发,就是通过很短且固定长度的标签,去转发携带标签的数据报文

什么是mpls:多协议标签交换协议

mpls的作用:用来在设备之间分享标签

路由器的角色

lsr:运行mpls协议的路由器

ler:位于mpls边缘 连接其他网络的lsr叫做ler

核心lsr:位于内部的lsr

Ler 负责从ip网络给网络打上标签,传递给lsr,lsr只负责按照标签的转发

体系结构

控制平面:面向无连接的,主要负责产生和维护路由信息和标签信息

转发平面:面向连接,负责普通ip报文的转发mpls标签报文的转发

:这里介绍无网络连接协议:无网络连接协议中的分组被称为数据报(datagram),每个分组都是独立寻址,并由应用程序发送的。从协议的角度来看,每个数据报都是一个独立的实体,与在两个相同的对等实体之间传送的任何其他数据报都没有关系,这就意味着协议很可能是不可靠的。也就是说网络会尽最大努力传送每一个数据报,但并不保证数据报不丢失、不延迟或者不错序传输。

mpls标签

标签短而定长+具有本地意义的标识符,表示一个分组所属的fec ,分为 in 标签和 out 标签:

in 表示是当前设备为该 fec 分配的标签

out  表示是去往fec 表示的网络时,所需要携带和使用的标签 

转发等价类(FEC):具有相同特征的报文,例如基于目的IP地址及网络掩码、DSCP等特征来划

标签转换路径(LSP):标签报文穿越MPLS网络到达目的地所走的路径。 同一个FEC的报文通常采用相同的LSP穿越MPLS域,所以对同一个FEC,LSR总是用相同的标签转发。

mpls报文首部结构

Label:20bit,标签值域。

Exp:3bit,用于扩展。现在通常用做 CoS(Class of Service),其作用为流量优先级动态多播过滤服务

S:1bit,栈底标识。MPLS 支持多层标签,即标签嵌套。S 值为 1 时表明为最底层标签。 s值位0的时候,代表后面还有标签

TTL:8bit,和 IP 分组中的 TTL(Time To Live)意义相同

标签的操作类型

入站LSR(Ingress LSR):通常是向IP报文中压入MPLS头部并生成MPLS报文的LSR。

中转LSR(Transit LSR):通常是将MPLS报文进行例如标签置换操作,并将报文继续在MPLS域中转发的LSR。

出站LSR(Egress LSR):通常是将MPLS报文中MPLS头部移除,还原为IP报文的LSR。

Push(压入):指当 IP 报文进入 MPLS 域时,MPLS 边界设备在报文二层首部和 IP 首部之间插入一 个新标签;或者 MPLS 中间设备根据需要,在标签栈顶增加一个新的标签(即标签嵌套封装)。

Swap(交换):当报文在 MPLS 域内转发时,根据标签转发表,用下一跳分配的标签,替换 MPLS 报 文的栈顶标签。

Pop(弹出):当报文离开 MPLS 域时,将 MPLS 报文的标签去掉。

LSP案例

LDP

ldp是什么:

标签分发协议,ldp是mpls的一种控制协议

LDP的作用

1.负责fec的分类

2.负责标签的分类

3.负责lsp的建立和维护

ldp的工作过程

lsr之间建立ldp会话---建立ldp会话后,给fec动态分发标签,根据标签信息建立lsp

ldp会话

本地LDP会话:建立会话的两个LSR之间是直连的;

远程LDP会话:建立会话的两个LSR之间可以是直连的,也可以是非直连的

ldp邻接体

两台lsr之间交互hello消息,即可建立ldp邻接体关系

ldp对等体

在建立邻接体的基础上,两台lsr之间交互ldp会话消息,建立ldp会话,两台lsr设备建立ldp对等体

ldp空间标识符

值为0:基于设备的标签空间

值非0:基于接口的标签空间

ldp消息

  1. 发现(Discovery)消息:用于通告和维护网络中 LSR 的存在。
  2. 会话(Session)消息:用于建立、维护和终止 LDP 对等体之间的会话。
  3. 通告(Advertisement)消息:用于创建、改变和删除 FEC 的标签映射。
  4. 通知(Notification)消息:用于提供建议性的消息和差错通知。

ldp建立稳定的tcp连接

建立邻居 ——> 让对端知道自己的传输地址(默认为MPLS LSR-ID)

目的IP:224.0.0.2 源目端口:UDP646 Hello报文5秒发一个,15秒超时,用于维持LDP邻居

建立TCP ——> 通过传输地址建立稳定的TCP会话 源端口:随机TCP端口 目的端口:TCP646

建立LDP会话 ——>通过稳定的TCP连接,建立稳定的LDP会话 Keepalive报文15秒一个,45秒超时,用于维持LDP会话

分发标签 ——>通过建立稳定的LDP会话,分发标签

标签分布方式(发标签):

du模式(下游自主模式)(默认):/DOD模式(下游按需模式)

标签分配控制方式(传输标签):

有序模式(默认)/独立模式

标签保留方式(保留标签)

自由模式(默认)/保守模式

实验

拓扑图:

配置:

 sysname R6
#
interface GigabitEthernet0/0/0
 ip address 192.168.16.6 255.255.255.0 
#
interface LoopBack0
 ip address 10.10.6.6 32
#
bgp 100
 router-id 6.6.6.6
 peer 192.168.16.1 as-number 200 
 network 10.10.6.6 255.255.255.255
 
  sysname R1
#
mpls lsr-id 10.10.1.1     
mpls         
#
mpls ldp     
#
interface GigabitEthernet0/0/0
 ip address 192.168.12.1 255.255.255.0 
 mpls    
 mpls ldp     
#
interface GigabitEthernet0/0/1
 ip address 192.168.16.1 255.255.255.0 
#
interface LoopBack0
 ip address 10.10.1.1 32
#
bgp 200
 router-id 1.1.1.1
 peer 10.10.5.5 as-number 200 
 peer 10.10.5.5 connect-interface LoopBack0
 peer 192.168.16.6 as-number 100 
 peer 10.10.5.5 next-hop-local 
#
ospf 1 router-id 1.1.1.1 
 area 0.0.0.0 
  network 10.10.1.1  0.0.0.0 
  network 192.168.12.0 0.0.0.255 
#
route recursive-lookup tunnel  


 sysname R2
#
mpls lsr-id 10.10.2.2
mpls
#
mpls ldp
#
interface GigabitEthernet0/0/0
 ip address 192.168.12.2 255.255.255.0 
 mpls
 mpls ldp
#
interface GigabitEthernet0/0/1
 ip address 192.168.23.2 255.255.255.0 
 mpls
 mpls ldp
#
interface LoopBack0
 ip address 10.10.2.2 32
#
ospf 1 router-id 2.2.2.2 
 area 0.0.0.0 
  network 10.10.2.2  0.0.0.0
  network 192.168.12.0 0.0.0.255 
  network 192.168.23.0 0.0.0.255 
  
  
 sysname R3
#
mpls lsr-id 10.10.3.3
mpls
#
mpls ldp
#
interface GigabitEthernet0/0/0
 ip address 192.168.23.3 255.255.255.0 
 mpls
 mpls ldp
#
interface GigabitEthernet0/0/1
 ip address 192.168.34.3 255.255.255.0 
 mpls
 mpls ldp
#
interface LoopBack0
 ip address 10.10.3.3  32
#
ospf 1 router-id 3.3.3.3
 area 0.0.0.0 
  network 10.10.3.3  0.0.0.0
  network 192.168.23.0 0.0.0.255 
  network 192.168.34.0 0.0.0.255 
  
  sysname R4
#
mpls lsr-id 10.10.4.4
mpls
#
mpls ldp
#
interface GigabitEthernet0/0/0
 ip address 192.168.34.4 255.255.255.0 
 mpls
 mpls ldp
#
interface GigabitEthernet0/0/1
 ip address 192.168.45.4 255.255.255.0 
 mpls
 mpls ldp
#
interface LoopBack0
 ip address 10.10.4.4 32
#
ospf 1 router-id 4.4.4.4
 area 0.0.0.0 
  network 10.10.4.4 0.0.0.0
  network 192.168.34.0 0.0.0.255 
  network 192.168.45.0 0.0.0.255 
  
   sysname R5
#
mpls lsr-id 10.10.5.5
mpls
#
mpls ldp
#
interface GigabitEthernet0/0/0
 ip address 192.168.45.5 255.255.255.0 
 mpls
 mpls ldp
#
interface GigabitEthernet0/0/1
 ip address 192.168.57.5 255.255.255.0 
#
interface LoopBack0
 ip address 10.10.5.5  32
#
bgp 200
 peer 10.10.1.1 as-number 200 
 peer 10.10.1.1 connect-interface LoopBack0
 peer 192.168.57.7 as-number 300 
 peer 10.10.1.1 next-hop-local 
#
ospf 1 router-id 5.5.5.5 
 area 0.0.0.0 
  network 10.10.5.5  0.0.0.0
  network 192.168.45.0 0.0.0.255 
#
route recursive-lookup tunnel

 sysname R7
#
interface GigabitEthernet0/0/0
 ip address 192.168.57.7 255.255.255.0 
#
interface LoopBack0
 ip address 10.10.7.7 32
#
bgp 300
 router-id 7.7.7.7
 peer 192.168.57.5 as-number 200 
 network 10.10.7.7  32
 

 验证:

<r1> dis mpls ldp peer
<r6>ping -a 10.10.6.6 10.10.7.7

mpls-vpn

产生背景

随着专用集成电路技术的发展,路由查找速度已经不是阻碍网络发展的瓶颈。这使得MPLS在提高转发速度方面不再具备明显的优势。但是MPLS支持多层标签的特性,使其在VPN、流量工程、QoS等方面得到广泛应用。

专线:单独铺一条光纤,自己用,相当于自己铺的铁路

特点:专有线路,价格昂贵,安全性高,带宽浪费

vpn(虚拟专用网络) :在公网中传递私网路由,在互联网中划分了一个单独的通道,相当于不用自己铺铁路,带个个小板凳,坐在火车里面给你捎过去了。

特点:成本低,使用共享的公共网络环境实现各私网的连接,不同的私有网络之间相互不可见

传统的VPN:

运营商通常仅仅是提供链路的互通,vpn的配置在企业端完成

通常也称为  overlay vpn  覆盖型vpn或者叠加型vpn

新型的VPN

运营商不仅仅提供链路的互通,还可以帮助企业用户来管理路由,实现vpn互通

通常也称为  peer to  peer  vpn  点到点vpn

比如:mpls-vpn

mpls-vpn架构

设备介绍

C设备--企业内部设备(也叫站点)  CE设备--企业边界设备

P设备--运营商骨干设备    PE设备--运营商边界设备(该设备与企业客户设备相连)

难道mpls-vpn 没有任何问题吗?有!那他是怎么解决的

实验

 

CE和PE之间的本地路由冲突

备注:一个城市可能有非常多的企业来租用运营商的VPN,运营商不可能每一个公司都准备一台PE设备,成本太高,所以就可能会出现,一个PE设备,连接多个公司,这些公司在运营商那边称为VPN客户

存在问题

一个PE设备,非常可能同时连接多个VPN客户(多个公司),所带来的问题

IP地址空间重叠:不同的VPN客户内部可能会使相同的私有地址段,所以所传递的路由有可能是重复的

数据泄露:不同的VPN客户都与PE(R1)有路由,所以不同的VPN客户之间有可能实现数据的互相访问

解决方案:

解决方案:VRF (Virtual Routing Forwarding)

                  每一个客户(公司)对应一个VPN实例 **(VPN路由表)**

                  每一个VPN实例对应一个独立的VPN路由表

                  VPN路由表之间是相互隔离

 配置:

[R1] ip vpn-instance b1  //创建vpn-instance 并命名b1   
           ipv4-family  //开启ipv4家族

[R1] int g0/0/1
         ip binding vpn-instance b1  //接口绑定vpn 路由表b1
         
Info: All IPv4 related configurations on this interface are removed!
Info: All IPv6 related configurations on this interface are removed!
//这个接口下的所有的ipv4/ipv6都被清除了

ip  address 192.168.16.1    24   //重新配置接口IP地址

查看:

先来验证R6  ping   192.168.16.1 ,可以ping通
<R6>ping 192.168.16.1
  PING 192.168.16.1: 56  data bytes, press CTRL_C to break
    Reply from 192.168.16.1: bytes=56 Sequence=1 ttl=255 time=30 ms

再次验证:R1  ping   192.168.16.6,发现ping不通
[R1]ping 192.168.16.6
  PING 192.168.16.6: 56  data bytes, press CTRL_C to break
    Request time out

查看路由:
[R1]dis ip routing-table 192.168.16.6
[R1] 路由为空

而且不仅没有路由,连端口也消失了,所以ping不通 192.168.16.6
[R1]dis ip routing-table 
[R1] 在路由表中,别说路由了,连接口都消失的无影无踪了

查看vpn路由表
[R1]dis ip routing-table vpn-instance b1
设置默认路由/双方可以互通
[R1] ip  route-static  vpn-instance b1   192.168.1.0    24   192.168.16.6 

备注:企业的边界设备(CE-也就是R6)一定要配置默认路由
[R6] undo  bgp 100   //先删除R6中原来配置BGP
[R6] ip route-static 0.0.0.0 0.0.0.0 192.168.16.1  //记得在R6上配置默认路由

r5和r7也是这种配置

PE和P之间的问题

PE设备保存VPN路由表和全局路由表,P设备只保存全局路由表

PE设备利用VPN路由表解决了本地路由冲突(IP地址空间重叠)问题,但是PE设备在向P设备发送路由时,路由在骨干网络传输中还会出现路由冲突问题,如何解决?

解决方案:

PE设备在维护多个VPN 路由表时,同时还维护一个公网的路由表。

RD:路由标识符:使用一个全局唯一的标识 和ipv4地址绑定,以区分冲突的私网路由,这个标识被称为RD

RD 字段长度:8字节---64bit   iPv4地址长度:4字节---32bit

RD(64)+IPv4(32)=96bit 的新地址,这个新地址就是VPNV4地址。

[R1]ip vpn-instance b1
[R1-vpn-instance-b1]route-distinguisher 1:5   //配置RD

注:同一个vpn客户的总部和分公司的RD 强烈建议一致,不同vpn客户的RD 不能一致

MPLS VPN 的路由如何引入到相对应的VRF

PE和PE在全局路由表传递路由的依赖的是RD

但是R5-PE收到来自R1-PE的MPBGP路由后,需要将这个RD去掉,然后在给到VRF虚拟路由表,由于PE设备中有可能连接了多个企业客户,有可能有多个VRF路由表,PE如何判断要把一个去掉RD的路由放到那个VRF路由表呢?  就是把路由传递给那个企业

解决方案:

RT:路由标签

每一个企业所属的vpn路由,在进入全局路由表传输的时候,都会打上RT标签

# RT标签有出入两个方向,

集团总部的出标签(Export)===分公司的入标签(Import)

集团总部的入标签(Import)===分公司的出标签(Export)

备注:

RT是BGP的扩展团体属性,它分为import RT  和export RT 

分别用于路由的导入和导出

配置:

[R1]ip vpn-instance b1  
[R1-vpn-instance-b1]vpn-target  6:7 export-extcommunity  //配置RT--出向

                                    vpn-target  7:6  import-extcommunity  //配置RT--入向
[R5]ip vpn-instance b1  
[R5-vpn-instance-b1]vpn-target  6:7  import-extcommunity  //配置RT--出向

                                    vpn-target  7:6  export-extcommunity  //配置RT--入向

注:RT具有全局唯一性,并且只能被一个VPN使用

总结

问题1:也叫本地路由冲突问题(IP地址空间重叠)-----解决方案:VRF

问题2:路由在传输中的冲突问题----解决方案:RD

问题3:对端VPN路由表里的VPN路由引入到对端VPN路由表的问题----解决方案:RT 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值