MPLS ××× (MPBGP+MPLS+×××)

多协议标签交换:(路由条目-FEC-标签)

MPLS Label(标签)一般是由运营商端的边缘路由器添加

三层设备转发机制:1.进程交换

                              2.快速交换

                              3.CEF

          注意:只能使用一种

  1. 进程交换:路由器对收到的每条路由条目都查一次路由表,和ARP表(帧中继映射表)

           负载均衡:基于每个数据包的负载均衡

                           基于每个目的地的负载均衡

  2. 快速交换:收到数据后先分流(默认为256个),路由器依据每个流中的第一个路由条目查看路由表和  ARP表,然后再ASIC中形成缓存,流中的其他数据就可以直接转发

      缺点:需要第一个报文触发,不怎么支持负载均衡

  3. CEF(cisco私有)

      开启后形成两张表:1. FIB-基于优化的路由表,基于拓扑表解决递归查询

                                   2. Adjacency table-ARP表,帧中继映射表

    注意:只有FIB中的路由才能插入标签

启用CEF的命令:

R1(config)#ip cef

R1(config)#int f0/0
R1(config-if)#mpls ip

控制层面分发标签:

LDP (TDP)      BGP      RSVP

1.TDP:

应用层协议:

L2   IP UDP TDP FCS                 L2   IP  TCP  TDP  FCS

两种载和:UDP  /  TCP    711端口号

LDP:端口号  646

区别:TDP和LDP唯一区别就是TDP传递标签不支持认证,LDP支持认证

LIB表(标签信息库):用来存放所有的TDP/LDP邻居分发的他们的标签,以及本地路由标签

LFIB(标签转发信息库):12.4之前的版本默认开启TDP,之后默认开启LDP

3.BGP:只产生于数据层面

  1. 4.RSVP:资源预留协议

MPLS  Labels

只要网络通就能使用:

帧模式:MPLS

信源模式:MPLS (ATM中)

0-15号标签不能使用,被保留

载和:   Label           Exp   S   TTL

           20 bit           3bit     2bit   8bit

EXP:用于给帧打标记,做Qos

标签打在二层和三层的数据包之间(第一个标签离三层最近)

LSR (P) :标签交换 FIB

Edge LSR(PE):标签压入,标签拆除 (FIB/LFIB)

只要收到的帧带标签,就一定会查LFIB

注意:在一台路由器不能为不同的路由条目分发相同的标签,每条路由条目对应一个唯一的标签,例外是0-15标签,如果给路由条目分发的标签取值范围在0-15之间,此时多条路由可以对应相同的被保留标签。

 

TDP/LDP只能为路由表中的 S , C ,O ,R , I , D 分发标签,不为BGP分发标签,标签具有本地意义

倒数第二跳标签弹出:

     3号标签,隐式空标签,可以同时分发给多条路由条目

对于一条路由条目,如果该路由器路由表中该路由条目的出战接口是一个没有启用MPLS的接口,则该路由器就是最后一跳路由器,或者该路由条目对应的下一跳邻居不是本地的TDP/LDP邻居时,该路由器同样为最后一跳路由器。只要一台路由器收到了关于一条路由条目的标签是3,则该路由器就会判断自己是倒数第二跳路由器。

配置:

新式机

R1(config)#ip cef

R1(config)#int f0/0
R1(config-if)#mpls ip

老式机

R1(config)#int f0/0
R1(config-if)#tag-switching ip

修改MPLS的RID:

R1(config)#mpls ldp router-id loopback 0 force

修改MPLS的MTU:

R1(config)#int f0/0
R1(config-if)#mpls mtu 1504

各种查看命令:

R1#show ip cef

R1#show ip cef detail       查看FIB

R1#show mpls ldp bindings   查看LIB,用来转发数据

R1#show mpls forwarding-table   查看LFIB

R1#show mpls ldp neighbor

traceroute 3.3.3.3 source 2.2.2.2

限制分发标签的范围:R1(config)#mpls label range 100 200

只把ACL10中的路由分发标签,发给ACL20的路由器中

R1(config)#mpls ldp advertise-labels for 10 to 20

 

注意:当运行了BGP之后,MPLS本身不会为BGP的路由条目分发标签,但是MPLS会为BGP的下一跳分发标签,以此来解决BGP数据层面的路由黑洞

 

 

×××:私有专线

  1. 逻辑上把相隔甚远的地址连接在一起

  2. 可以使用私有地址

对等体到对等体×××

  1. VRF

       一个VRF就是一个MPLS ×××中的的进程,一台PE为一个公司提供MPLS ×××就要为该公司定义一个本地唯一的VRF进程

    PE创建了VRF之后,一定要将其和某个连接CE接口关联

  2. RD(路由区分器) 64bit   只有本地意义

  3. RT: import / export (导入/导出),具有全局意义,一定要相同

    注意:只有PE需要起VRF

配置:

R1(config)#ip cef

R1(config)#int f0/0
R1(config-if)#mpls ip

R1(config)#ip vrf A
R1(config-vrf)#rd 10:10

R3(config-vrf)#route-target 10:10

R1(config)#int s1/0
R1(config-if)#ip vrf forwarding A (需要在配置一次IP地址)

 

R3(config)#router bgp 1
R3(config-router)#neighbor 2.2.2.2 remote-as 1
R3(config-router)#neighbor 2.2.2.2 update-source loopback 0

R2(config-router)#neighbor 3.3.3.3 next-hop-self
R3(config-router)#address-family ***v4
R3(config-router-af)#neighbor 2.2.2.2 activate
R3(config-router-af)#neighbor 2.2.2.2 send-community both (发送时携带团体属性)

 

R2(config)#router bgp 1
R2(config-router)#address-family ipv4 vrf A
R2(config-router-af)#network 4.4.4.0 mask 255.255.255.0

R2(config-router-af)#redistribute rip metric 10

 

R3(config)#router rip
R3(config-router)#address-family ipv4 vrf A
R3(config-router-af)#redistribute bgp 1 metric transparent(度量值不变)

 

注意:在PE和CE之间运行EIGRP时一定要打

R3(config)#router eigrp 10
R3(config-router)#address-family ipv4 vrf A
R3(config-router-af)#autonomous-system 10

 

启用OSPF的命令

R3(config)#router ospf 110 vrf A