现代交换技术论文 MPLS多协议标签交换文档格式.docx
- 文档编号:21309922
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:16
- 大小:1.05MB
现代交换技术论文 MPLS多协议标签交换文档格式.docx
《现代交换技术论文 MPLS多协议标签交换文档格式.docx》由会员分享,可在线阅读,更多相关《现代交换技术论文 MPLS多协议标签交换文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
MPLETEtwoormore)
TTL:
防环机制
MPLS在二层的帧头之后,和三层头部之前插入一个字段,所以也被成为2.5层协议,也正因为这样它能优于IP进行快速的转发。
这时候除了插入Label字段以外,二层帧头的type字段也需要改变,比如EtherⅡ在没插入之前,type=0x0800,表示上层协议为IP,那么在插入标签以后,type会改变为0x8847(Frame-mode,也就是基于IP的)还有一个表示为0x888(cell-mode,表示ATM的),我们常用的是frame-mode
MPLS用一个短而定长的标签来封装网络层分组,交换机或路由器根据标签值转发报文。
MPLS指的多协议是:
可以承载在各种链路层协议上:
PPPATMFR。
FEC:
(ForwardingEquivalenceClass)转发等价类:
FEC是在转发过程中以等价的方式处理一组数据分组。
LSP:
(LaberSwitchingPath)标签交换路径:
一个FEC数据流,在不同的节点被赋予确定的标签,数据转发按照这些标签进行,这个路径就成为LSP。
LDP:
(LabelDistributionprotocol,标签分发协议RFC3036):
用于LSR之间分配标签,建立LSP
LSR:
标签交换路由(MPLS域内路由器)
EdgeLSR:
IP与MPLS域之间(负责压入与弹出标签)
LDP的建立机制
LDP消息类型:
1、发现消息(Discoverymessages)用于LDP邻居的发现和维持
2、会话消息(Sessionmessages)用于LSP邻居会话的建立、维护和终止
3、通告消息(Advertisementmessages)用于LDP邻居之间的Laber、地址等信息交互
4、通知消息(NotificationMessages)用于向LDP邻居通知事件或者错误。
LDP会话的建立和维护:
1、邻居建立:
通过互发hello包(UDP/port:
646/ip:
224.0.0.2)
2、建立TCP连接:
由地址大的一方主动发起。
(TCP/port/:
646)
3、会话初始化:
由master发出初始化消息,并携带协商参数。
由slave检查参数能否接受,如果能则发送初始化消息,并携带协商参数。
并发送keepalive消息,master收到后检查参数匹配,匹配上发送keepalive消息互相收到后,会话建立。
4、会话维护:
期间收到任何错误消息,会话就断开与TCP连接。
上游与下游:
数据转发先到的为上游,后到达的为下游,那么标签分发与路由更新正好相反,从下游到上游。
标签分配模式:
DOD(downstream-on-demand,下游按需分配):
只有当上游向下游请求的时候,才会为这个FEC信息分配标签
DU(downstreamunsolicited,下游自动分配):
只要与上游建立会话连接,主动为上游分配标签。
标签控制模式:
有序方式(Ordered):
只有等下游更新了标签信息给上游,上游才会跟新。
独立方式(Independent):
就算没有收到下游的标签信息,也会向上游发送标签信息。
标签保守方式:
保守模式(Conservative):
只会保留来自最近的下一跳邻居标签信息。
自由模式(Liberal):
保留所有来自邻居的标签信息。
现在的MPLS都是采用DU
有序
自由模式来完成MPLS
LDP使用的是UDP/TCP的端口号为646,目的地址为224.0.0.2发送hello包,只要运行LDP的路由器都会收到,在LDP的hello中Transportaddress会携带在hello包中,表示想与邻居建立LDP的关系,通常情况下Transportaddress与LDPID是一致的。
Transportadress的作用是,当双方交换hello包以后,由Transportaddress地址大的一方发起LDP的连接,而小的一方永远是被动的。
TransportAddress选举:
根据自己指定或者自动选择根据loopback优先,然后物理接口。
Cisco在MPLS出现之前使用的是TDP,使用TCP/UDP711号端口,但是在IOS12.4以后默认选择是LDP了。
注意的是,虽然MPLS理论上被认为是2.5层的协议,但是它的工作机制完全依靠IGP来完成,所以IGP的收敛决定了LDP的收敛速度。
下面是关于LSR和Edge的基本工作原理,实在不会画图,所以有从PPT里面截图下来了。
LSR的工作机制,假设当在一个运行IGPOSPF的MPLSDomain中,LSR路由器收到一个关于10.0.0.0/8这个网络的信息,它会用OSPF的LSA告诉其他邻居,当OSPF传递完成后,LDP开始为这条路由分配标签信息,它从左边邻居收到一个标签信息,这个标签告诉本地路由器,要想去往10.0.0.0/8这个网络打上标签17,与此同时本地也会产生一个关于这个路由条目的标签信息,这里为24,它会通告给其他LDP邻居。
假设右边有台路由器要访问10.0.0.0/8这个网络,那么它只需要打上24的标签交给LSR路由器,LSR通过LFIB中的标签转换后,把24去掉,置换成17标签交给左边路由器。
注意的是:
LDP只为IGP分配标签,包括static、RIPv2、EIGRP、ISIS、OSPF,并且默认是打开的,只要形成了LDP邻居关系,就会为每一条路由前缀分配标签,而BGPv4只会为IPv4的unicastrouter分配标签,而且默认是关闭的,但是BGP可以借用关于下一跳的由LDP分配的标签信息。
这个可以在下面的实验中体现出来。
它也相当于后面的MPLSVPN中的P路由器,它分为controlplane和DataPlane,ControlPlane首先依赖于IGP协议的收敛完成,构建成IPRoutingTable(ciscoCEF机制表示为FIB),然后LDP开始为每一条路由分配标签会现成一个LIB数据库,最后关联到LFIB表中,它由FIB和LIB共同完成,包含的信息包括出接口和最优标签绑定,这个为DatePlane,决定数据转发。
什么是最优标签呢,比如下面这个图,R4身后有个4.4.4.4的条目,R4会为这个条目分配一个标签,并且传递给R2,R3,R2,R3也会本地产生一个标签传递给邻居,假设R1去往这个4.4.4.4的路径R2比R3的cost的小,那么在路由条目中,只会显示下一跳为R2,而不是R3,那么出现在LFIB表中的就是关于R2分配的关于4.4.4.4的标签信息和出接口,而R3分配的标签信息还是会保存在本地LIB表中,当R2出现了故障以后,它会自动切换到R3上,并且把LFIB表中的标签绑定改为R3所分配的。
LFIB表中只会显示FIB里面最优路径的下一跳标签信息(根据LIB数据库中保存的label信息),如果是负载均衡的话,那么标签也会负载均衡。
这时候,一个数据包过来的话,那么它只会查看LFIB表,而不去关心路由表,因为LSR属于MPLSDomain的内部路由器,所以这个数据包肯定是打了标签的,这样必须保证在单一的MPLSDomain中一定要保持标签的连续性。
它在MPLSVPN中也叫PE路由器,它也分为ControlPlane和DatePlane,首先也由IGP协议来完成路由的收敛,形成FIB表,然后LDP为每一条路由前缀分配标签信息,保存在LIB表中。
DataPlane会引用FIB表(IPForwaringTable),但是这个FIB表关联了标签信息,当一个纯IP数据包过来以后,它查看关于这个目的网络是否有标签信息,如果有直接压入这个标签信息交给LFIB转发。
如果没有就直接由IP包转发。
LFIB表(由FIB和LIB构成),它负责标签的置换、压入和弹出。
如果弹出以后变成纯IP包,交给FIB转发。
EdgeLSR(PE)它的DataPlane由FIB和LFIB共同完成,它决定一个纯IP数据包是否需要压入标签,和一个标签数据包是否弹出标签转发给IP域。
关于MPLS的几张表项总结
RTB:
由IGP协议生成的路由表,会选出最优的路径。
FIB:
通过RTB生成的CEF表,同时会把LIB中关于这条最优路径的标签信息关联CEF表中。
当纯IP包进来|或者label出来的时候,会通过FIB里面对应的标签进行压入或者弹出。
LFIB:
(动态)进出标签与下一跳关联
LIB:
(静态)LDP或者TDP协议产生的本地以及邻居的标签
LFIB是通过LIB与FIB关联的一张动态标签表
这张表体现了MPLSTE、MPLSVPN等ControlPlane和DatePlane的形成。
PenultimatehopPopping(次莫跳)
当一个IP包从Eage过来通过FIB来查询是否压入标签,
通过标签表发给P节点,查看LFIB,执行转换动作,当EageLSR收到后,执行POP后,会再查询下一跳,把IP包转发出去。
但是EageLSR的负担和数据包转发延迟会加大,PHP解决的是,如果边界网络的话,会发出PHP的指令给次莫跳,由它来完成POP动作,自己只查询FIB表负责下一跳。
(POP动作为弹出一层标签)
MPLS的TTL
两种机制:
1、在MPLS中会借用三层的TTL值,经过一个路由器会减一,当到次莫跳的时候,会把MPLS中的TTL还原到IP层中。
2、边界PE上关闭TTL传播。
这样不会关注三层的TTL,此时三层TTL为1,直接在MPLS上附加为255,当次莫跳的时候,会还原为1,当目的收到后就变成0丢弃。
这样客户只能看到边界与目的的设备中间的看不到,包含了ISP的网络。
MPLS的标签状态。
impose:
压入标签
Swap:
一个标签变成另外一个labelorstack
POP:
弹出一层标签
,一般为只有一层,而且是邻居告知的
untagged:
不是邻居告诉我的,而是自己发现的
标签全部弹出
aggregate:
出现递归的查询,一般出现错误的配置或者目的为自己的直连
实验部分了,实验目的不是为了做通这个实验,而是分析标签的置换过程,MPLS难点就是在于这,理论部分很好理解。
R1有两个loopback,一个为1.1.1.1/24,一个为11.11.11.11/24,R2---R4各有一个32位环回口。
R5也有两个loopback口,一个为5.5.5.5/24,一个为55.55.55.55/24。
IGP使用的为OSPF,这个能体现出很多问题出来。
R1和R5建立IBGP邻居,最后达到的目的是,11.11.11.11能够ping通55.55.55.55
在CISCO上MPLSVPN必须开启CEF,CEF唯一一种提供MPLS标签插入的转发机制。
先构建底层通信,(在BGP和MPLS中底层通信依靠IGP来完成,所以后续指的底层都为IGP)
R1
R1(config)#ints1/0
R1(config-if)#ipadd12.1.1.1255.255.255.0
R1(config-if)#noshut
R1(config-if)#intlo1
R1(config-if)#ipadd11.11.11.11255.255.255.0
R1(config-if)#intlo0
R1(config-if)#ipadd1.1.1.1255.255.255.0
R2
R2(config)#ints1/0
R2(config-if)#ipadd12.1.1.2255.255.255.0
R2(config-if)#noshut
R2(config-if)#intlo0
R2(config-if)#ipadd2.2.2.2255.255.255.255
R2(config)#ints1/1
R2(config-if)#ipadd23.1.1.1255.255.255.0
R3
R3(config)#ints1/1
R3(config-if)#ipadd23.1.1.2255.255.255.0
R3(config-if)#noshut
R3(config-if)#ints1/2
R3(config-if)#ipadd34.1.1.1255.255.255.0
R3(config-if)#ipadd3.3.3.3255.255.255.255
R4
R4(config)#ints1/2
R4(config-if)#ipadd34.1.1.2255.255.255.0
R4(config-if)#noshut
R4(config-if)#ints1/3
R4(config-if)#ipadd45.1.1.1255.255.255.0
R4(config-if)#intlo0
R4(config-if)#ipadd4.4.4.4255.255.255.255
R5
R5(config)#ints1/3
R5(config-if)#ipadd45.1.1.2255.255.255.0
R5(config-if)#noshut
R5(config-if)#intlo0
R5(config-if)#ipadd5.5.5.5255.255.255.0
R5(config-if)#intlo1
R5(config-if)#ipadd55.55.55.55255.255.255.0
开始IGP的构建OSPF
R1(config-if)#routerospf1
R1(config-router)#router-id1.1.1.1
R1(config-router)#network12.1.1.10.0.0.0a0
R1(config-router)#network1.1.1.10.0.0.0a0
R2(config-if)#routerospf1
R2(config-router)#router-id2.2.2.2
R2(config-router)#network2.2.2.20.0.0.0a0
R2(config-router)#network12.1.1.20.0.0.0a0
R2(config-router)#network23.1.1.10.0.0.0a0
R3(config-if)#routerospf1
R3(config-router)#router-id3.3.3.3
R3(config-router)#network3.3.3.30.0.0.0a0
R3(config-router)#network23.1.1.20.0.0.0a0
R3(config-router)#network34.1.1.10.0.0.0a0
R4(config-if)#routerospf1
R4(config-router)#router-id4.4.4.4
R4(config-router)#network4.4.4.40.0.0.0a0
R4(config-router)#network34.1.1.20.0.0.0a0
R4(config-router)#network45.1.1.10.0.0.0a0
R5(config)#routerospf1
R5(config-router)#router-id5.5.5.5
R5(config-router)#network5.5.5.50.0.0.0a0
R5(config-router)#network45.1.1.20.0.0.0a0
在MPLS的学习中,建议要养成一个随手配置RID的习惯,无论是OSPF还是BGP,在MPLSVPN中经常用的上。
还有就是配置完毕后,先测试底层的连通性,在做后续的配置。
配置R1和R5的BGP
R1(config)#routerbgp1
R1(config-router)#bgprouter-id1.1.1.1
R1(config-router)#neighbor5.5.5.5remote-as1
R1(config-router)#neighbor5.5.5.5update-sourcelo0
R1(config-router)#network11.11.11.0mask255.255.255.0
R5(config-router)#routerbgp1
R5(config-router)#bgprouter-id5.5.5.5
R5(config-router)#neighbor1.1.1.1remote-as1
R5(config-router)#neighbor1.1.1.1update-sourcelo0
R5(config-router)#network55.55.55.0mask255.255.255.0
关于BGP正常建立了,也已经收到R1传递过来的路由,在BGP表中为最优
路由表中也有关于11.11.11.0的表项,开始测试下关于去往11.11.11.11这个网段能放通信。
发现通信不了,虽然两边都收到了各自的路由,因为这是传统的IP网络,它会基于路由表的查找。
首先在路由表中BGP关于11.11.11.0/24的下一跳为1.1.1.1也就是R1的RID,然后继续查找路由表关于1.1.1.1怎么去,查表下一跳为45.1.1.1,这时候会以S:
55.55.55.55D:
11.11.11.11|ICMP头部 | Date 发送给R4,R4收到以后,会查询路由表是否有关于去往11.11.11.11的条目,发现并没有,所以把数据包给drop了,如果以IP网络的解决办法就是NP课程提到过的fullmase或者做RR。
但是这样非常麻烦,也给ISP带来了额外的投资。
MPLS能够解决这个路由黑洞的问题,它能实现只需要两个边界设备之间建立IBGP邻居关系,来传递路由,内部路由器跟本不需要知道公网的路由条目信息,从而减轻内部路由器的投资和负担。
公网上40多万条路由在以前的IP网络中,必须每个路由器都有明细的路由条目,否则会产生路由的黑洞。
而MPLS出现解决了这个问题,利用的就是标签的置换。
在这个实验和后续的实验中,为了分析标签转换的方便,所以通过mplslabelrange来限制标签的分发范围,因为标签只具有本地的意义,有可能本地产生的为16,邻居发送给我的也是16,限制标签范围这样对于刚学习这个来说,比较容易理解,到了后面领会了的话,完全没有必要使用这个命令了,这个命令在实际中是为了解决路由器负担而设计的。
MPLS的配置其实很简单,难点在于标签的置换。
R1(config)#mpl
R1(config)#mplslabelrange100199
R1(config)#mplsldprouter-idlo0
R1(config-if)#mplsip
R2(config)#mplslabelrange200299
R2(config)#mplsldprouter-idlo0
R2(config-if)#mplsip
R2(config-if)#ints1/1
R2(config-if)#mpls
R3(config)#mplslabelrange300399
R3(config)#mplsldprouter-idlo0
R3(config-if)#mplsip
R4(config)#mplslabelrange400499
R4(config)#mplsldprouter-idlo0
R4(config-if)#mplsip
R4(config-if)#mplsi
R5(config)#mplslabelr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 现代交换技术论文 MPLS多协议标签交换 现代 交换 技术 论文 MPLS 协议 标签
![提示](https://static.bdocx.com/images/bang_tan.gif)