mpls 知识总结;
学习mpls之前我们首先了解的几个知识点;
一; 标签;比较短的。。定长的32比特,通常只具有局部意义的标识, 这些标签通常位于数据链路层的封装头和三层数据包之间, 标签通过与绑定过程同FEC相映射。
二; FEC:(转发等价类) 是在转发过程中以等价的方式处理的一组数据分组, 通常在一台设备上,对FEC分配相同的标签。
三; LSP;标签交换通道。 所经过FEC转发的通道的数据流, 数据流所走的路径就是LSP
四; LSR: LSR是mpls的网络的核心交换机, 它提供标签交换和标签分发功能。
五; LER: 在mpls的网络边缘,进入到mpls网络的流量由ler分为不同的FEC,并为这些FEC请求相应的标签。 它提供流量分类和标签的映射,在标签的移除功能。
mpls 的包头结构;
mpls 标签头部共占32个字节。、
其中, 20个字节用于定义标签, 3个字节用于定义COS, 1 个字节的S (用于标识是否是栈底,表明mpls的标签可以嵌套。) 8个字节的TTL。
2层头部---mpls头部----IP头部-----数据
IP的逐跳转发; 在经过第一跳处, 必须进行路由表的最长匹配查找,(可能多次) 速度缓慢。
mpls的标签转发; 通过事先分配好的标签,为报文建立了一条标签转发通道(LSP) , 在通道经过的每一台设备处,只需要进行快速的标签交换即可(一次查找)。
FEC的精妙之处; 不同目的地址(恪地相同的网段)的IP报文, 在ingress处被划分为相同的FEC, 具有相同的标签,这样在LSR处,只需要根据标签做快速的交换即可,而对于传统的IP路由, 在每一跳处实际上都是一次重新划分FEC的过程,如果一台路由器对于IP路由和标签交换同样使用了cache功能, 由于对于路由来说, 在cache 中只能记录主机路由, 条目将十分有限, 而标签对应的FEC,可能是网段, 可以做到很少的条目匹配大量的报文。
FEC缺陷;
对于一条FEC来说, 沿途所有的设备都必须具有相同的路由(前缀和掩码必须完全相同)才可以建成一条LSP。 换句话说, 使用mpls转发的所有沿途设备上,对于要使用标签转发的路由, 都不能做成路由聚合的操作。
Ldp; 是一个动态的生成标签的协议。
LDP分发标签的几大要素;
报文,
邻居的自动发现和维护机制
一套算法, 用来根据搜集到的信息计算最终结果,只不过前者计算的结果是标签, 后者是路由罢了。
问题; 当一个链路层协议收到一个mpls报文后, 她是如何判断这是一个mpls报文的? 应该送给MPLS处理, 而不是像普通的IP报文那样, 直接送给IP层处理?
回答; 在以太网中;使用值是0x8847单播,和0x8848组播,来表示承载MPLS报文
0800是IP报文。
在PPP中, 增加了一种新的NCP; mplscp 使用; 0x8281来标识 。
LDP的四种LDP消息;
发现; 用于通告和维护网络中的LSR的存在。
会话; 用于建立,维护和结束LDP对等实体之间的会话连接,
通告; 用于创建,改变和删除特定FEC, 标签绑定。
通知; 用于提供消息通告和差错通知。
标签的分配和管理;
标记分发方式;
LDP标签分配方式(DU) 下游主动向上游发出标记映射消息。 标签分配方式中同样存在水平分割, 即; 对我已选中的出口标签,就不再为下一跳分配标签。标签是设备随机自动生成的, 16以下为系统保留。
还有一种DOD方式; (由上游向下游请求) 修练胡的较少。
dod 下流按需标记分发。
du 下流自主标记分发。
标记控制方式;
有序方式; 标记控制。 除非LSR是路由的始发节点, 否则LSR必须等收到下一跳的标记映射才能向上游标记映射。
独立方式; 标记控制。 LSR可以向上游发出标记映射,而不必等待来自LSR下一跳的标记映射消息。
标签保留方式;
保守方式。
自由方式。
上游与下游; 在一条LSP上, 沿数据包传送的方向,相邻的LSR分别叫上游LSR, 和下游LSR, 下游是路由的始发者。
DU+自由+有序
一; 发现自己有直连接口路由时发送标签。
二; 收到下流某条路由的标签时,并且该路由生效。 (也就是说,在本地已经存在该路由,并且路由的下一跳和标签的下一跳相同)时会发送标签。
三; 标签表中会存在大量的非选中的标签,
标签转发表;
入标签是我分给别人的,出标签是别人分给我的。
我分配的标签是给别人用的,我不会添加到报文中。
倒数第二跳弹出:
标签分配方式。 转发方式
倒数第一跳; 随机分配------分配特定的标签3 标签弹出IP路由转发---IP路由转发
倒数第二跳; 随机分配------随机分配。 标签交换-----标签弹出.
vpn分类。 ;
按照PE和CE分类; 分为; overlay vpn 和 点到点vpn
overlay vpn的本质是一种静态VPN, 这好比是静态路由, 所以他具有类似静态路由的全部缺陷。
一; 所有的配置与部署都需要手工完成, 而且具有N2问题, 如果某个客户的VPN中新增了一个结点, 则需要完成如下工作。
1) 。 在这个新增结点上建立所有已存在的N个结点的隧道及相关的路由。
2) 。 对于已存在的N个结点,需要在每个结点上都建立一个新增结点之间的隧道用相关的路由。
二; 由于静态VPN, 则无法反应网络的实时变化,
而且,如果隧道建立在CE上, 则必须由用户维护,如果建立在PE上,而又无法解决地址冲突问题。
ce; 直接与服务提供商相连的用户设备。
PE; 指骨干网上的边缘路由器与CE相连, 主要负责VPN业务的接入。
P; 指骨干网上的核心路由器, 主要完成路由和快速转发功能。
由于网络规模不同, 网络中可能不存在P路由器, PE路由器也可能同时是P路由器。
overlay vpn 隧道建立在CE上。
特点; 在CE与CE之间建立隧道,并直接传送路由信息。 路由协议数据总是在客户设备之间交换, 服务商对客户网络结构一无所知。 典型代表是GRE, IPSEC。
优点; 不同的客户地址空间可以重叠,保密必,安全性非常好。
缺点; 需要客户自己创建并维护VPN 。 通常客户不愿意,也没有这个能力。
overlay vpn 隧道建立在pe上。
特点; 在PE上每一个VPN用户建立相应的GRE隧道, 路由信息在PE与PE之间传递, 公网中的P设备不知道私网的路由信息。
优点; 客户把VPN的创建及维护完全交给了服务商, 保密性, 安全性比较好,
缺点; 不同的VPN用户不能共享相同的地址空间, 即使可以共享,则PE与CE之间的地址, tunnel之间的地址不一不定不能相同,并且必须使用大量的ACL和策略路由, 在实际中不具备可行性。
overlay vpn的本质; 由于是静态VPN, 则无法反应网络的实时变化莫测。
而且,如果隧道建立在CE上, 则必须由用户维护,如果建立在PE上则有又无法解决地址冲突问题。
PEER-PEER VPN
是指; ce-to-pe , 也就是要在CE与PE之间交换私网路由信息, 然后由PE将这些私网路由在P-NETWORK 中传播,(p-network上肯定是运行了一种动态路由协议), 这样这些私网路由会自动的传播到其他的Pe上,
这种VPN由于私网路由会泄露到公网上, 所以必须严格的通过路由来控制,即; 要确保同一个VPN的CE路由器上只能有本VPN的路由。 所以, 通常CE与PE之间运行的路路协议,与P-network上运行的路由协议是不同的, 即使相同, 也要有很好的路由和选择的机制。
p-to-p VPN 共享PE方式; 所有VPN用户的CE都连到同一台PE上, PE与不同的CE之间运行不同的路由协议;(或者是相同路由协议的不同进程,比如ospf)
由路由始发PE将这些路由发布到公网上,在接收端的PE上将这些路由后再发 相应的CE设备。
缺点; 为了防止连接在同一台PE上的不同CE之间互通,b 必须在PE上配置大量的ACL。,
p-to-p vpn 专用PE方式; 为每一个VPN单独的一台PE路由器, PE和CE之间可以运行任意的路由协议, 与其他VPN无关, PE与P之间运行BhGP,并全用路由属性进行过滤。
优点; 无需配置任何的ACL了,
缺点; 每一个VPN用户都要新增一台专用PE,代价过于昂贵了。
RD的本质;
如果两个VRF中存
在相同的邗, 则一不定期要配置不同的RD, 而且两个VRF一定不能互访, 间接互访也不成。
同一台PE上的不同VRF不能配置相同的RD
RD并不会影响不同VRF之间的路由选择以及VPN的形成, 这些事情由RT搞定,
RD只有在地址相同的时候才会的挥作用。
PE从CE接收的标准的是路由是IPV4路由, 如果需要发布给其他的PE路由器, 些时需要为这条路由附加一个RD。
VPN-IPV4地址公用于服务供应商网络内部, 在PE
本地路由的冲突,问题; VRF VT解决,
不要的VPN之中存在相同路由; RD来解决。
VRP; 在一个PE虚拟出来的路由器, 包括一些特定的接口, 一张路由器, 一个路由协议, 一个RD和一组RT规则 。
RT; 表明了一个VRP的路由喜好。 通过他可以实现不同VRF之间的路由互通。 他的本质就是BGP的community属性。
RD; 为了防止一台PE接收到无端PE发来的不同VRF的相同路由时不知所措, 而加在路由前面的特殊信息, 在PE发布路由时加上, 在远端PE接收到路由后放在本地路由表中, 用来与后来接收 到的路由进行比较。
lebe; 为了防止一台PE接收到远端PE发给本地不同VRF的相同地址的主机时不知所措,而加在报文前面的特殊信息, 由本地PE在发布路由时加上, 远端PE接收到保存在相应的VRF中,
SITE; 一个VRF加上与其相连的所有的CE的集合。
VPN; 是一些SITE的集合。 这些SITE由于共享了相同的路由信息可以互通。
CE与PE之间如何交换路由;
VRF在PE上的配置。
PE 维护独立的路由表, 包括公网和私网VRF路由表。。
公网路由表; 包含全部PE和P 路由器之间的路由, 由骨干IGP产生。
私网路由表; 包含本VPN用户可达信息的路由转发表。
PE和CE能过标准的EBGP , OSPF RIP , 或者静态路由交换路由信息,
静态路由, RiP都是标准的协议, 但是每个VRF运行不同的实例, 相互之间没有干扰,与PE的MP-IBGP之间只是简单的redistribute 操作。
EBGP也是普通的EBGP,而不是MP-EBGP,只交换经过PE过滤后的本VPN路由,
OSPF则做了很多修改, 可以将本site的LSA放在BGP的扩展community属性中携带,与远端VPN中的OSPF之间交换LSA, 每个SITE中的OSPF都可以存在area 0, ,而骨干网则可以看作是supe area 0 此时的OSPF由两极拓扑变为3级拓扑,
VRF路由注入到mp-ibgp
PE路由器需要对一条路由进行如下操作;
加上RD(RD为手工配置)变为一条vpn-ipv4路由。
更改下一跳属性为自己(通常是自己的loopback地址)
加上私网标签(随机自己生成, 无需配置)
加上RT属性(RT需手工配置) 携带RT的是export 还是import属性
发给所有的PE邻居。
mp-ibgp路由注入到vrf
vpn-v4路由变为ipv4路由, 并且根据本地VRF的import RT属性加入到相应的VRF中, 私网标签保留, 留做转发时使用。 再由本VRF的路由协议引入并转发给相应的CE。
公网标签分配过程;
Pe和P路由器通过骨干网IGP学习到BGP邻居下一跳的地址。
通过运行LDP协议, 分配标签,建立LSP通道。
标签栈
报文转发; 从CE到ingreess pe
CE将报文发给与其相连的VRF接口,PE在本VRF的路由表中进行查找, 得到了该路由的公网下一跳地址。(即; 对端PE的loopback地址)和私网标签
在把该报文封装一层私网标签后, 在公网的标签转发表中查找下一跳地址, 再封式 ????
ingress pe------- egress pe ------------ ce
该报文在公网上沿着LSP转发, 并根据途径每一台设备的标签转发表进行标签交换
在倒数第二跳处, 将外层的公网标签弹出,交给目的PE设备。
PE设备根据内层的私网标签判断该报文的出接口和下一跳。
去掉私网标签后, 将报文转发给相应的VRF中的CE。