MPLS,多协议标签交换: 一种数据交换机制,由多种协议共同完成交换功能。
帧中继交换,L2
为哪些上层协议提供交换服务:IP
为什么要开发MPLS:替代IP网
标签代表的内容,转发等价类FEC
IP缺点:基于目的IP转发,最长匹配,效率低。
解决方案:硬件转发,提速
MPLS初衷:基于标签转发,提速。
MPLS应用:MPLS VPN ; MPLS TE流量工程traffic engine
相关概念:
LSR,标签交换路由器,支持MPLS的路由器label switch
LSP,标签交换路径
FEC,转发等价类,标签所代表的内容
Label格式:32bit
8bitTTL+3bitEXP+1bit栈底+20bitLabel
8bitTTL:继承,防环
3bitEXP,用于qos
1bit栈底,最后一个标签将此bit置位,即置1
有两种形式:数据帧:大小不固定
信元:53字节,只应用于异步传输
L2.5,二层type=0x8847
Control plane,决策层:协议,邻居建立维护,路由表更新
Routing Protocol Ip Routing Table(RIB)(包含所有的标签信息) Label Exchange Potocol
Data plane,执行转发,存有各种转发表,转发数据
Ip Forwarding Table(FIB) Label Forwarding Table(LFIB)
交换技术介绍:
进程交换:包文转发要到CPU进程表里排队等待处理,最长匹配,递归查询,慢
基于缓存交换:快速交换,缓存第一个进行进程交换的包文的查找结果,后续相同包文可以插队,第一个包文仍慢且缓存有时间限制,流量驱动
基于拓扑交换:拓扑生成时,提前生成CEF表,根据路由生成邻接表(adjacency 表)
L3 CEF表,节约三层查找路由表的时间
L2 adjacency 节约二层查找ARP表的时间
CEF还有打标签作用
LIB-→LFIB
路由表-→FIB,即CEF表,含标签
Show ip cef x.x.x.x detail
Ip cef
若no ip cef,则show mpls forwarding-table 显示为空
LSP建立,数据流转发过程
帧模式MPLS
信元模式MPLS
标签栈:
内-->外,VPN、LDP、TE
8847表示MPLS
0800表示IP
86DD表示IPV6
标签动作:
压入impose,边缘LSR
交换swap
弹出pop,边缘LSR
标签交换分配:
0~15 预留
路由表里德,每个路由条目分配一个标签
标签交换协议:(实为同一协议)
TDP,cisco,tag distribute protocol,端口711
Hello包文,6byte, LDP identifier(TV);4bit,携带用于建立LDP会话用的源地址LDP,label,TCP/UDP,端口646 标签分发协议,国际标准
完成标签交换:基于UDP,发往224.0.0.2
基于TCP
OSPF
OSPF工作原理:Hello--->nbr--->LSA--->LSDB--->SPF--->路由表
OSPF选路:
1.OSPF路由形成:O > O IA > O E1 > O E2 > O N1 > O N2
2.Cost 相同的表现形式的OSPF路由才比较cost cost越小越优先
报文类型:
Hello,发现邻居,
包括:源地址,用于建立后续的TCP会话
LDP-ID:X.X.X.X:YY//前4B,后2B,IP地址+标签空间
前4byte必须是一个自己生成的IP地址,后2byte是标签空间标签空间:标签在多大范围内,即标签唯一的范围
目前每台设备一个标签空间
每个平台:帧模式,标签在本地设备上唯一,X.X.X.X:00
每个接口:信号模式,ATM
1.邻居发现,hello-→224.0.0.2 5s间隔15s有效期(同eigrp)
2.建立会话,IP大的一方主动发起TCP会话,起TCP连接作用
控制平面:主要执行协议方面的操作。协议的运行,路由生成和维护,查询路由表
数据平面:转发数据。TTL-1,CRC校验,数据二层头的重写
控制平面与数据平面之间的联系由软件实现
优点:功能全,灵活
缺点:速度慢——处理不过来,崩溃
非直连邻居建立:
Hello,单播,间隔10s
Hello 发现邻居224.0.0.2 含LDP-ID,会话源地址,间隔为10S
源地址:用于建立后续的TCP会话。
Initialize
Keepalive,60s,180s,维护已建立的邻居->维护一条TCP会话
Label map
Label map withdraw
Error/notification
LSP:基于单播路由协议,单向,来回可能不是一条路
单向德最大意义在于流量工程
PHP,次末跳弹出,penultimate hop pop
隐式空标签:label=3,提醒邻居弹出扔给我
显式空标签:label=0,提醒邻居不要弹出
ATM不可用
路由聚合对LSP的影响:
破坏端到端的LSP
环路避免:TTL,copy
TTL初始=255,对外隐藏自己内部网络且防止超时丢包
Copy指TTL会持续传下去,可禁用-→隐藏内部网络,建议所有设备都禁用TTL
传递
帧模式信元模式ATM
基于平台标签空间基于接口标签空间
主动发送标签map 被动发送标签map
独立于LSP标签分配依赖LSP
自由标签保存保守标签保留
基于接口:相对安全
基于平台:标签表小
基本配置:
Mpls ip//接口开启协议
Mpls label protocol ldp | tdp//接口|全局修改标签交换协议。
Mpls ldp router-id lo0 force//修改LDP ID,force参数会强制关闭已经建立好的TCP 会话
Show mpls ldp neighbor detail//邻居信息,含TCP会话信息
Show mpls ldp bindings detail//查看LIB
Show mpls forwarding-table//查看LFIB
实验:基本配置
R1——R2——R3——R4
起环回口,OSPF,网段宣告32位
R1上路由7条,R1用自己的环回口Ping
R1:(config)#mpls label protocol ldp
(config)#mpls ldp router-id lo0 force
(config)#interface s0/0
(conf ig-if)#mpls ip (encapsulate X)
Traceroute 10.1.1.4 //包文是谁回的?回包源IP
规定标签空间:
Mpls label range 100 199//实验推荐使用
Mpls ldp advertise-labels//控制标签
No mpls ip propagate-ttl//禁用TTL值发布,建议使用 直达,无标签
VPN,virtual private network,虚拟专用网
什么是VPN:跨越公网部署隧道以代替传统的WAN连接,节约费用
VPN分类:
思科说法:
覆盖型overlay :运营商部署(MPLS-VPN)
站点到站点peer-to-peer :端到端/邻居到邻居
核心区别:ISP是否参与客户路由(私网,如10.x)
另:二层VPN:QinQ,ATM,frame-relay
三层VPN:GRE,Ipsec,L2TP 个人认为:MPLS-VPN
四层VPN:SSL
GRE通用封装
特点:部署简单;典型P2P隧道;GRE隧道可以传递单播,组播,广播
任何类型的隧道技术核心原理都相同,就是在原始的数据包头前再去添上一个新的IP包头
GRE隧道的配置:
Interface tunnel x
Ip address x.x.x.x
Tunnel source——隧道源
Tunnel destination——隧道目的
Tunnel mode gre ip ——默认
需要配置本地tunnel口去往对端的路由信息
Tunnel口跑协议,需在同一网段,静态无要求
VRF,virtual route forwarding
虚拟路由转发表,保存客户私网路由,独立于全局路由表。
VPNv4,为了ISP网络区分私网路由,构造出全新的路由,RD+IP,96bit 64bit+32bit 64bitAS系统号,任意赋值
RD,route distinguisher,路由区分。
PE,运营商边缘设备,负责用户接入
P,运营商内部设备,负责VPN路由传递和MPLS转发
C,客户网络
CE,客户边缘设备,和PE对接
VRF虚拟路由转发器VPN routing and forwarding
构造:
PE不同的接口连接到不同的client
PE接口——client路由——RD—加入—VRF表
RD:路由区分符,不是用于区分不同用户的VPN路由,只是和来自C网的Ipv4路由共同生成VPN路由
RT:路由目标符
一个RD一个表,RD是为了让地址不重叠
配置:
(config)#Ip vrf jiance
(config)# Rd 100:100
(config)#Interface f0/0
(config-if)#Ip vrf forwarding jiance
BGP,MP_BGP,传递VPNv4路由,路径属性新增MP_NLRI_Reachable MP_NLRI_UnReachable两项,用于传递VPNv4路由
NLRI网络可达信息
MP多协议
VPN分类:
分类一:intranet、extranet、access
分类二:simple、overlap、central service、manage network
分类三:overlay peer-to-peer
RT:route-target,扩展团体属性,用于VPNv4路由的控制。
Export RTS,携带在从客户收到的私网路由上,并通过MP_BGP在PE间传递。
Import RTS,通过MP_BGP收到的VPNv4路由,携带指定import RT的注入相应的VRF表
定义在route-map,vrf下vrf必须定义RD,RT
配置:VRF下配置、route-map配置
CE---PE---P---PE---CE
PE---PE之间BGP
PE---P---PE IGP
二层标签:ldp帮助P到达两端PE
PE分配VPN标签
1、配置P网络的IGP协议
2、启用P网络的MPLS
3、配置PE间的MP_BGP邻居,即VPN邻居
4、在PE上配置VRF
5、配置PE---CE间的协议XX
6、PE上双向重发布,将从协议XX收到的路由重发布进MP _BGP
1. Show mpls interface//看启用mpls接口
2. Show mpls ldp neighbor
3. Show ip bgp vpnv4 all summary//vpn邻居,即MP_BGP邻居
4. Show ip route vrf XXX//查看VRF路由
5. Show mpls forwarding-table//查看LIB表
目的网段In Label Out Label 出站接口
出和入的映射
本地设备收到标签数值为多少,数据从本地接口转发出去时标签换成多少In Label:自己给自己分配的标签数值
Out Label:邻居给目的网段分配的标签
6. Show ip bgp vpn all label//查看VPN标签
7. Show ip bgp vpn all x.x.x.x
8. Show ip vrf detail
1、
router ospf 1
router-id 3.3.3.3
network 10.1.1.3 0.0.0.0 area 0
network 192.168.35.3 0.0.0.0 area 0
network 192.168.36.3 0.0.0.0 area 0
2、
mpls label protocol ldp
mpls ldp router-id Loopback0 force
interface Ethernet3/0
ip address 192.168.35.3 255.255.255.0
mpls ip
interface Ethernet3/3
ip address 192.168.36.3 255.255.255.0
mpls ip
3、
router bgp 100
bgp router-id 3.3.3.3
no bgp default ipv4-unicast
neighbor 10.1.1.4 remote-as 100
neighbor 10.1.1.4 up Loopback0
neighbor 10.1.1.7 remote-as 100
neighbor 10.1.1.7 up Loopback0
neighbor 10.1.1.8 remote-as 100
neighbor 10.1.1.8 up Loopback0
address-family vpnv4
neighbor 10.1.1.4 activate
neighbor 10.1.1.7 activate
neighbor 10.1.1.8 activate
4、
ip vrf PE3-cisco
rd 100:100
route-target export 100:200
route-target import 100:200
interface Serial0/0
ip vrf forwarding PE3-cisco
ip address 192.168.13.3 255.255.255.0
5、
router ospf 2 vrf PE3-cisco
router-id 10.1.1.3
network 192.168.13.3 0.0.0.0 area 0
6、
Router ospf 2
redistribute bgp 100 subnets
router bgp 100
address-family ipv4 vrf PE3-cisco
redistribute ospf 2 vrf PE3-cisco match internal external 1 external 2 nssa-external 1 nssa-external 2
改静态:
R1:no ip routing
Ip route 0.0.0.0 0.0.0.0 s0/0
R3: ip route vrf PE3 10.1.1.1 255.255.255.255 s0/0
No router ospf 2
Router bgp 100
Address-family ipv4 PE3
Redistribute static
Redistribute connected
改RIP
R2:no ip routing
Router rip
Version 2
Address-family …..
R4: no router ospf 2
Router rip
Version 2
Address-family ipv4 vrf PE4
Redistribute bgp 100 metric 5
Router bgp 100
Address-family ipv4 vrf PE4
Redistribute rip
BGP
In-RIB,从邻居收到的所有路由
Local-RIB,本地能够接收的路由,经过in过滤的show ip bgp (vpn all) Out-RIB,发给邻居的所有路由
Show ip bgp neighbor x.x.x advertise-rou
改EIGRP:
Router eigp 200
Address-family ipv4 vrf VPNA
Network x.x.x.x
Autonomous-system 200
Redistribute bgp 100 subnets
(12.3版本以前)每个路由器限制进程32个,VPN能使用28个
总结:PE与CE之间支持协议:静态static,RIPv2,EIGRP,ODPF,EBGP,ISIS EIGRP支持SOO属性
SOO,site of originate 用于双宿主客户的防环
EIGRP支持soo属性。
PE—CE,OSPF
Down bit
PE执行MP_BGP OSPF,在LSA中设置down bit,其余PE不会重发布down bit 置位的OSPF路由进入MP_BGP;PE上收到的down bit置位的OSPF路由无效,不注入路由表(VRF)
Route-tag
客户两个OSPF进程,进程间重发布清掉down bit,依然会造成环路。故,
PE将外部路由重发布进OSPF时,设置route-tag,route-tag在重发布时不被清掉,可用于防环
Sham-link,伪装链路
连接到超级骨干的PE将自己作为ABR,两个site即使处于同一区域,路由仍以三类LSA互相发布。在有后门链路的拓扑上造成site间流量走后门(O路由)不走MPLS VPN骨干网(OIA路由)。
1、interface loop x//创建环回口用于建立伪装链路
a)ip vrf forwarding xx
b)ip address x.x.x.x 255.255.255.255
2、router bgp xx//将地址通过BGP通知给对端的PE
address-family ipv4 vrf xx
network x.x.x.x m 255.255.255.255
3、router Ospf X vrf xx //建立sham-link
area Y sham-link 100.1.1.1 100.1.1.3
4、(config-if)ip ospf cost xx//将后门链路的OSPF开销调大,避免metric造成的次优路径
CE—PE间为EBGP邻居时,AS-PATH防环检查导致学不到路由
解决:
PE:
Neighbor CE as-override
Neighbor CE allowas-in
SOO防环:
(config-if)#ip vrf sitemap SOO
//EIGRP双宿主
(config-router)#nbr CE route-map SOO in
//BGP双宿主
Route-map SOO
Match
Set excommunity soo 65213
交换技术介绍:
进程交换,报文转发要到CPU进程表里排队等待处理,最长匹配、递归查询,慢
基于缓存交换,快速交换,缓存第一个进行进程交换的报文的查找结果,后续相同报文可以插队,第一个报文仍慢,缓存时间限制,流量驱动
基于拓扑交换,CEF,根据路由表生成CEF表,邻接(adjacency)表,L3,CEF表节约三层找路由表时间
L2,邻接表,节约二层封装找ARP表的时间
LIB-→LFIB
路由表→FIB,即CEF表,含标签
Show ip cef x.x.x.x detail
No Ip cef
Show mpls forwarding-table,显示为空
路由传递过程:
1、CE→PE,通告IPv4路由
2、PE,将从CE收到的IPv4路由注入接口绑定的VRF表
Show ip route vrf xx
3、PE,将2中的路由重发布进MP_BGP。添加上RD构造VPNv4路由,VPNv4
的BGP表还包含VRF下定义的RT
Show ip bgp vpnv4 all x.x.x.x
4、PE→PE,通过MP_BGP通告VPNv4路由。更新报文携带VPNv4路由
(RD:X.X.X.X)、PE为该路由分配的标签、RT等属性
Show ip bgp vpnv4 all label
5、PE,根据importRT将5收到的路由注入VPNv4的BGP表,并去掉RD,
重现IPv4路由
Show ip bgp vpnv4 all
6、PE,将5收到的路由注入对应的VRF表。
Show ip route vrf xx
7、PE,重发布6中的路由
8、PE CE,将VRF中的IPv4路由从对应的接口发出
2,6 show ip route vrf
3 show ip bgp vpnv
4 all (x.x.x.x)
4 show ip bgp vpnv4 all label
5 show ip bgp vpnv4 all
Show ip cef vrf xx
第一层标签:VPNV4标签,即内层,PE---PE
第二层标签:LDP标签,VPNV4邻居用环回口建立
报文转发过程:
1、PE,收到CE报文,
a)收报接口所属VRF
b)查找VRF表,show ip cef vrf xx x.x.x.x,内含标签
FIB,含VPNv4标签(对端PE分配)
c) 全局FIB,show ip cef x.x.x.x,含去往对端PE的标签,由中间的P分配
2、P收到含有标签的报文,查找LFIB,转发到对端PE。PHP正常执行
3、对端PE,收到仅含VPNv4标签的报文,查找LFIB
PHP倒数第二跳弹出机制
原始操作中最后一台MPLS设备需要执行2个操作:去标签以及查询路由表,目前去标签的动作给倒数第二跳设备
报文转发过程,含打label
负载均衡
RT如何控制路由
MPLS-TE
VPN如何接入internet
Multi-VRF
MPLS TE
协商带宽,协议能够携带带宽参数。
OSPF,10类LSA,区域内泛洪带宽需求
ISIS,TLV,type length value
建立隧道,手动配置
分配TE隧道标签
RSVP
LSP,单向
Mpls traffic-eng tunnels
(config-if)
mpls traffic-eng tunnels
ip rsvp bandwidth 128 128//开启RSVP
router ospf 1
mpls traffic-eng router-id Lo0//32位掩码
mpls traffic-eng area 0//骨干网单区域
interface Tunnel1
ip unnumbered Loopback0
mpls traffic-eng tunnels
tunnel destination 10.3.3.3
tunnel mode mpls traffic-eng
tunnel mpls traffic-eng autoroute announce
tunnel mpls traffic-eng priority 7 7
tunnel mpls traffic-eng bandwidth 128
tunnel mpls traffic-eng path-option 1 explicit name 5-2-1-3 tunnel mpls traffic-eng path-option 2 explicit name 5-3
ip explicit-path name xx
next-address x.x.x.x
show mpls traffic-eng tunnels
ip vrf vpnva
export map nms
ip vrf vpnb
export map nms
route-map nms
set extcommunity rt 123:100 additive
route-map soo
match
65213 set extcommunity soo