交换机、路由器、网桥和局域网/路由器/MPLS
MPLS 代表多协议标签交换,它是一种最初由思科开发的协议,后来被标准化为 IEEE 标准。它是一种协议,用于通过骨干网络提供对使用其他协议的数据的透明访问。
MPLS 有时被称为“第 2.5 层”。这在数据包的包装方式中最为明显(例如,在 IP-over-Ethernet 中,MPLS 数据位于以太网帧头和 IP 数据包之间),但它也是对协议整体概念的描述。MPLS 不提供路由,而是使用其他内部路由协议(iBGP、IS-IS、OSPF 或其他)来路由数据包。但它也不是完全的第 2 层协议,因为它依赖于现有的第 2 层来进行数据的帧封装以及节点之间的通信。MPLS 可以确定性地控制数据流向,而第 2 层交换无法做到这一点。
早期推动 MPLS 的因素之一是,MPLS 下的数据包交换可以在硬件中高效地实现,而 IP 路由则不能(当时)。现在情况已经不再如此。从这个意义上说,MPLS 只是将路由表“烘焙”到高性能交换基础设施中的一种方法。虽然这在 MPLS 的早期发展中发挥了一定作用,但现在已经不再相关了。
MPLS 可以通过任何第 2 层协议交换任何第 3 层协议。因此,它适用于在网络中提供骨干,在该网络中,许多不同的协议(包括尚未指定的未来协议)可能需要通过骨干传输。以前,这种事情只有通过帧中继或 ATM 才能实现。
MPLS 也可以通过骨干传输第 2 层数据包,因为内容会被忽略。这意味着任何第 2 层协议都可以通过 MPLS 传输,称为 AToM(任何传输通过 MPLS)
ATM 最初被认为是 IP 作为端到端网络的潜在替代品,但它从未实现。然而,ATM 仍然被广泛用作广域网网络。现在 IP 统治着互联网,因此有必要通过这些现有的 ATM 网络传输 IP。有几种针对 ATM 上的 IP 实现的特定解决方案,但它们都难以实现,而 MPLS 可以替代所有这些解决方案。
BGP(例如)提供了通过使用路由映射和社区等来定制数据流向的方式。但这实现起来很繁琐且不透明。MPLS 可以让不同的数据流通过网络以不同的路由进行交换,非常灵活,并且可以非常直接地控制。
MPLS 具有分层结构,允许数据包被封装在无限数量的额外容器中。只有最外层的标签在任何时候都起着通过网络路由数据包的作用,因此您可以使用它来将流量通过网络的一部分进行隧道传输,而忽略数据包内部的内容。
标签内部的数据包内容完全被 MPLS 忽略。这意味着您可以在 MPLS 标签中封装一个完整的以太网帧(并在其外部再添加一层第 2 层帧),并将整个以太网帧在网络中不变地传递,模拟跨越长距离和多个路由跳跃的第 2 层广播域中的线缆。
有两种类型的 VPN
- 覆盖
- 对等
在覆盖模型中,服务提供商在网络中设置了客户路由器之间的链路。客户路由器通过这些链路直接对等,而不与服务提供商的路由器对等。
在对等模型中,服务提供商的路由器与客户的路由器对等。这需要服务提供商做更多的工作,因为提供商边缘路由器需要根据客户网络的变化进行更新。
覆盖模型曾经是提供 VPN 的最常见方式,但 MPLS 使提供对等 VPN 变得更加简单。
LDP 是用于在 MPLS 网络中分发标签的协议(RSVP 和 MP-BGP 也可以分发标签)。它基于 TDP,一种思科专有协议。LDP 与 TDP 相似,已经完全取代了 TDP。
LDP 不会选择路由,它只是为通过其他方式确定的路由分发标签。对于 IP over MPLS 的情况,使用 LDP 进行标记的路由将通过标准 IP 路由协议确定。这种最简单的形式主要是一种过时的东西(尽管它是一个令人惊讶的年轻的东西);在路由器无法进行线速 IP 路由的时候,用标签替换路由可以提高性能。如今,更有趣的情况是,使用 MPLS 交换“路由”而不是标准 IP 路由,例如 VPN 或流量工程。这将涉及另一个协议来做出决策,然后使用 LDP 来协调标签。
分发标签有两种主要模式:下行非请求和下行按需。按需形式可以节省路由器上的内存,因为只传输所需的标签。但是,DU 形式收敛速度更快。现在路由器往往有足够的内存,因此 DU 形式更常见(思科对 LC-ATM 使用 DoD,但对其他所有内容使用 DU)。
标签保留模式
[edit | edit source]在保守标签保留模式下,路由器只存储与特定FEC的下一跳相关的绑定。也就是说,对于每个FEC,一次只保留一个标签(在LFIB中编程的标签)。在自由标签保留模式下,路由器存储它接收的任何绑定。
LSP控制模式
[edit | edit source]有两种控制模式:有序和独立。在独立控制模式下,LSRs为其路由表中的任何路由交换标签。这很容易理解和推理,但它的缺点是意味着LSP的不同部分将在不同的时间启动。可能是流量可以跨越网络到达一个没有设置标签绑定的路由器,此时路由器无法对数据包采取正确的操作。这可能会导致路由器回退到更慢的IPv4路由(例如,在软件中)。有序控制模式导致仅为直接连接或已经与下一跳路由器建立标签的路由分配标签。
FECs
[edit | edit source]LDP基于转发等价类(FEC)的概念。FEC由一类流量定义,所有流量都将以相同的方式处理。一个明显的例子是所有具有特定前缀的目标地址的IP数据包,但它可以是任何其他可以以LDP发言者都同意的方式定义的东西。两个LSR之间的伪线将充当FEC。
LDP对等
[edit | edit source]LDP路由器通过将HELLO消息作为UDP组播数据包发送到“子网上的所有路由器”组播地址来发现彼此,因此不需要显式设置对等路由器的地址。当收到HELLO消息时,接收路由器会保留数据包来自的地址。HELLO数据包包含一个保持时间,即HELLO消息之间的时间长度。如果超过此时间,对等将被视为已失败。
每个LSR都有一个LDP ID,它由4字节标识路由器和2字节标识使用的标签空间。4字节路由器ID实际上是一个IPv4地址,尽管它不用于消息传递;唯一的要求是它是唯一的。标签空间的零表示平台范围的标签空间,而非零值表示每个接口的标签空间。
在Cisco IOS中,路由器ID实际上被视为IP地址,路由器检查地址是否在路由表中。