2.3MPLS

高速转发设备、VPN部署、流量工程
数据量很大的单位能用到。

MPLS的思路

IP网络路由查找算法:最长匹配算法(二叉搜索树BST),很难适应高速路由器的高处理要求;MPLS:借鉴ATM短的固定长度的分组头,可以加速选路过程;(邮政编码:210003)。

原理

MPLS的主要架构概念是明确分离网络交换元件中控制平面与数据平面。数据平面由转发组件组成,这些组件根据经典标签交换范例执行简单的标签交换操作。另一方面,控制平面关注网络级协调功能,例如路由和信令,以便于在整个网络中传输流量。

Label 标签

定长、局部意义的标识,位于Link Layer和Networy Layer,用于识别某个特定的FEC
Label:20bit,标签值域。
Exp:3bit,用于扩展。现在通常用做CoS(Class of Service),当设备阻塞时,优先发送优先级高的报文。
S:1bit,栈底标识。MPLS支持多层标签,即标签嵌套。S值为1时表明为最底层标签。
TTL:8bit,和IP报文中的TTL(Time To Live)意义相同。
标签栈(Label Stack)是指标签的排序集合。靠近二层首部的标签称为栈顶MPLS标签或外层MPLS标签(Outer MPLS label);靠近IP首部的标签称为栈底MPLS标签或内层MPLS标签(Inner MPLS label)

FEC Forwarding Equivalence Class转发等价类

有共同属性的数据流。

LER label edge router 边缘标记路由器
LSR label switching 标记交换路由器
LSP label switched path 标记交换路径
LDP Label Distribution Protocol 标签分发协议

控制LSR之间交换标签与FEC绑定消息,协调LSR之间工作的一系列规程。

LFIB label forwarding information base 标记转发信息表
LIB 标签信息数据库
FIB 转发信息数据库
控制平面Control Plane

交换第三层路由信息和标记

数据平面Data Plane

基于标记转发分组



MPLS技术特点

1、简化分组转发,基于定长标签匹配
2、支持有效的显式路由explicit routing
与逐跳路由相比,显式路由最显著的优势在于能够提供定制的数据传输服务,允许将管理、运营、流量调节等方面的策略施加于数据转发的过程,允许按照各种业务的特性以及用户需求对网络资源进行灵活的配置。
3、实现流量工程(Traffic Engineering)
平衡网络负载
4、支持QoS选路
按其QoS要求来为它选择路由的方法
5、从IP分组到转发等价类的映射
6、支持多网络功能划分
核心网络则尽可能地简单,网络边缘结点承担更多工作。
7、提高了网络扩展性

标签分发方式

下游自主方式DU(Downstream Unsolicited)
对于一个特定的FEC,LSR无需从上游获得标签请求消息即进行标签分配与分发。

下游按需方式DoD(Downstream on Demand)
对于一个特定的FEC,LSR获得标签请求消息之后才进行标签分配与分发。

标签分配控制方式

有序方式:LSR必须先收到FEC下一跳的标签映射消息,或者该LSR就是此FEC的出节点时,该LSR自己才会为FEC分配标签

独立方式:任何节点,任何时候都可以进行独立的标记分发;

标签保持方式

标记保持方式指LSR对收到的但目前暂时无用的LABEL-FEC绑定的处理方式。保守、自由。采用自由的标签保持方式,则LSR会将所有的邻居发送来的标签映射都保存到标签信息库中,这样做虽然会增加设备的负担,却能够在网络拓扑发生变更的时候让LSP快速切换,

倒数第二跳弹出机制

对于出口LER,先查找LFIB表,发现要将标签弹出,于是它将标签弹出,弹出后发现是个IP报文,于是又去查FIB表,最终将这个IP数据包转发出去。C进行了两次查找。这降低了转发效率。标签可以在(倒数第二跳)上弹出,出口LER只需查找FIB表将收到的IP报文进行转发

LDP工作机制

LDP协议规定了标签分发过程中的各种消息以及相关的处理过程。通过LDP,LSR可以把网络层的路由信息映射到数据链路层的交换路径上,进而建立起LSP。
发现(Discovery)消息:用于通告和维护网络中LSR的存在,如Hello消息。
会话(Session)消息:用于建立、维护和终止LDP对等体之间的会话,如Initialization消息、Keepalive消息。
通告(Advertisement)消息:用于创建、改变和删除FEC的标签映射。
通知(Notification)消息:用于提供建议性的消息和差错通知。

LSP建立过程

将FEC转发等价类与标签绑定,并通告相邻的LSR,在分组转发路径上,数据分组的发送方路由器是一条LSP的上游LSR,接收方路由器是下游LSR。下游LSR将特定标签分配给特定FEC(即标签绑定)后,将标签发布给上游LSR;上游LSR保存标签和FEC的绑定关系。

在转发数据包之前,MPLS网络路由器根据路由协议生成路由表RIB;路由器的硬件CEF会生成FIB表,用作硬件转发(此表类似路由表);然后路由器会通过LDP协议生成标签数据库LIB表,然后LDP协议会根据LIB表和原有的FIB表,生成标签转发表LFIB。
下面是一个例子
GNS3 c3640

A
f0/0 12.1.1.1 255.255.255.0
loopback0 1.1.1.1 255.255.255.255
B
f0/0 12.1.1.2 255.255.255.0
f1/0 23.1.1.2 255.255.255.0
loopback0 2.2.2.2 255.255.255.255
C
f0/0 23.1.1.3 255.255.255.0
f1/0 34.1.1.3 255.255.255.0
loopback0 3.3.3.3 255.255.255.255
D
f0/0 34.1.1.4 255.255.255.0
f1/0 45.1.1.4 255.255.255.0
loopback0 4.4.4.4 255.255.255.255
E
f0/0 45.1.1.5 255.255.255.0
loopback0 5.5.5.5 255.255.255.255

C#config t
C(config)#int f0/0
C(config-if)#ip address 23.1.1.3 255.255.255.0
C(config-if)#no shutdown
C(config-if)#exit
C(config)#int f1/0
C(config-if)#ip address 34.1.1.3 255.255.255.0
C(config-if)#no shutdown
C(config-if)#exit
C(config)#int loop
C(config)#int loopback0
C(config-if)#ip address 3.3.3.3 255.255.255.255
C(config-if)#end
C#ip add
C#show ip int b
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            23.1.1.3        YES manual up                    up
FastEthernet1/0            34.1.1.3        YES manual up                    up
Loopback0                  3.3.3.3         YES manual up                    up
C#write
Building configuration...
[OK]

OSPF

A#config t
A(config)#router ospf 110
A(config-router)#router-id 1.1.1.1
A(config-router)#network 1.1.1.1 0.0.0.0 area 0
A(config-router)#network 12.1.1.1 0.0.0.0 area 0
A(config-router)#exit
A(config)#exit
A#write
Building configuration...
[OK]

A#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     34.0.0.0/24 is subnetted, 1 subnets
O       34.1.1.0 [110/3] via 12.1.1.2, 00:00:16, FastEthernet0/0
     1.0.0.0/32 is subnetted, 1 subnets
C       1.1.1.1 is directly connected, Loopback0
     2.0.0.0/32 is subnetted, 1 subnets
O       2.2.2.2 [110/2] via 12.1.1.2, 00:00:16, FastEthernet0/0
     3.0.0.0/32 is subnetted, 1 subnets
O       3.3.3.3 [110/3] via 12.1.1.2, 00:00:16, FastEthernet0/0
     4.0.0.0/32 is subnetted, 1 subnets
O       4.4.4.4 [110/4] via 12.1.1.2, 00:00:16, FastEthernet0/0
     5.0.0.0/32 is subnetted, 1 subnets
O       5.5.5.5 [110/5] via 12.1.1.2, 00:00:20, FastEthernet0/0
     23.0.0.0/24 is subnetted, 1 subnets

MPLS

D#config t
D(config)#ip cef
D(config)#int f0/0
D(config-if)#mpls ip
D(config-if)#mpls label protocol mpls
D(config-if)#mpls label protocol ldp
D(config-if)#tag-switching ip
D(config-if)#exit
D(config)#ip cef
D(config)#int f1/0
D(config-if)#mpls ip
D(config-if)#mpls label protocol ldp
D(config-if)#tag-switching ip
D(config-if)#end
D#write
Building configuration...
[OK]
归纳

在上述基于OSPF的局域网中,各路由器使用LDP Label Distribution Protocol 标签分发协议生成管理标签。假设需要一条1.1.1.1到5.5.5.5的虚连接,在LSP建立时,ABCD先在LFIB表为:



之后发送本地绑定标签给其他LSR,如D向C发送local tag为19,所以C把outgong tag记为19。



在A路由器使用traceroute 5.5.5.5命令时,可以看到由A发往B的报文中label为20,B接收到报文,弹出标签,根据标签查找LFIB表找到了local tag为20对应项,再把19压入标签栈发送给C。C也是收到标签为19更具LFIB表压入19标签。D根据LFIB表直接转发,所以没有outgoing tag,没有mpls标签了。
Tracing the route to 5.5.5.5

  1 12.1.1.2 [MPLS: Label 20 Exp 0] 180 msec 292 msec 264 msec
  2 23.1.1.3 [MPLS: Label 19 Exp 0] 336 msec 268 msec 280 msec
  3 34.1.1.4 [MPLS: Label 19 Exp 0] 308 msec 288 msec 268 msec
  4 45.1.1.5 292 msec 316 msec 224 msec
A#show mpls forwarding-table
Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop
tag    tag or VC   or Tunnel Id      switched   interface
16     16          34.1.1.0/24       0          Fa0/0      12.1.1.2
17     Pop tag     2.2.2.2/32        0          Fa0/0      12.1.1.2
18     18          3.3.3.3/32        0          Fa0/0      12.1.1.2
19     19          4.4.4.4/32        0          Fa0/0      12.1.1.2
20     20          5.5.5.5/32        0          Fa0/0      12.1.1.2
21     Pop tag     23.1.1.0/24       0          Fa0/0      12.1.1.2
22     21          45.1.1.0/24       0          Fa0/0      12.1.1.2
B#show mpls forwarding-table
Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop
tag    tag or VC   or Tunnel Id      switched   interface
16     Pop tag     34.1.1.0/24       0          Fa1/0      23.1.1.3
17     Pop tag     1.1.1.1/32        3150       Fa0/0      12.1.1.1
18     Pop tag     3.3.3.3/32        0          Fa1/0      23.1.1.3
19     18          4.4.4.4/32        950        Fa1/0      23.1.1.3
20     19          5.5.5.5/32        1130       Fa1/0      23.1.1.3
21     21          45.1.1.0/24       0          Fa1/0      23.1.1.3
C#show mpls forwarding-table
Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop
tag    tag or VC   or Tunnel Id      switched   interface
16     17          1.1.1.1/32        3234       Fa0/0      23.1.1.2
17     Pop tag     2.2.2.2/32        0          Fa0/0      23.1.1.2
18     Pop tag     4.4.4.4/32        1242       Fa1/0      34.1.1.4
19     19          5.5.5.5/32        1508       Fa1/0      34.1.1.4
20     Pop tag     12.1.1.0/24       1140       Fa0/0      23.1.1.2
21     Pop tag     45.1.1.0/24       0          Fa1/0      34.1.1.4
D#show mpls forwarding-table
Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop
tag    tag or VC   or Tunnel Id      switched   interface
16     16          1.1.1.1/32        1896       Fa0/0      34.1.1.3
17     17          2.2.2.2/32        0          Fa0/0      34.1.1.3
18     Pop tag     3.3.3.3/32        0          Fa0/0      34.1.1.3
19     Pop tag     5.5.5.5/32        1788       Fa1/0      45.1.1.5
20     Pop tag     23.1.1.0/24       0          Fa0/0      34.1.1.3
21     20          12.1.1.0/24       590        Fa0/0      34.1.1.3
E#show mpls forwarding-table
Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop
tag    tag or VC   or Tunnel Id      switched   interface
16     Pop tag     34.1.1.0/24       0          Fa0/0      45.1.1.4
17     16          1.1.1.1/32        0          Fa0/0      45.1.1.4
18     17          2.2.2.2/32        0          Fa0/0      45.1.1.4
19     18          3.3.3.3/32        0          Fa0/0      45.1.1.4
20     Pop tag     4.4.4.4/32        0          Fa0/0      45.1.1.4
21     20          23.1.1.0/24       0          Fa0/0      45.1.1.4
22     21          12.1.1.0/24       0          Fa0/0      45.1.1.4

MPLS VPN

虚拟专用网Virture Private Network
使用IP机制仿真出一个专用的广域网,通过专用的 “隧道Tunnel技术”,在公共数据网中仿真出点到点的专线技术。隧道技术(Tunneling)、加解密技术、密钥管理技术、使用者与设备身份认证技术。


MPLS/BGP VPN的模型

MPLS/BGP VPN: 三层VPN。
在MPLS/BGP VPN的模型中,网络由运营商的骨干网与用户的各个Site组成,所谓VPN就是对site集合的划分,一个VPN就对应一个由若干site组成的集合。如MPLS/BGP VPN的实现如图所示;
利用标记堆叠来实现VPN,在一个IP分组上叠加两个MPLS标记头标进行转发,外侧标记用于转发,内侧标记用于VPN。

基本组件

你可能感兴趣的:(2.3MPLS)