网络高可用技术

MPLS

基本介绍

多协议标签交换(英语:Multi-Protocol Label Switching,缩写为MPLS)是一种在开放的通信网上利用标签引导数据高速、高效传输的新技术。多协议的含义是指MPLS不但可以支持多种网络层层面上的协议,还可以兼容第二层的多种数据链路层技术。

多协议标签交换(Multi-Protocol Label Switching,MPLS)是新一代的IP高速骨干网络交换标准,由因特网工程任务组(Internet Engineering Task Force,IETF)提出。
MPLS是利用标记(label)进行数据转发的。当分组进入网络时,要为其分配固定长度的短的标记,并将标记与分组封装在一起,在整个转发过程中,交换节点仅根据标记进行转发。
MPLS 独立于第二和第三层协议,诸如ATM 和IP。它提供了一种方式,将IP地址映射为简单的具有固定长度的标签,用于不同的包转发和包交换技术。它是现有路由和交换协议的接口,如IP、ATM、帧中继、资源预留协议(RSVP)、开放最短路径优先(OSPF)等等。
在MPLS 中,数据传输发生在标签交换路径(LSP)上。LSP 是每一个沿着从源端到终端的路径上的结点的标签序列。
MPLS 主要设计来解决网路问题,如网路速度、可扩展性、服务质量(QoS)管理以及流量工程,同时也为下一代IP 中枢网络解决宽带管理及服务请求等问题。
在这部分,我们主要关注通用MPLS 框架。有关LDP、CR-LDP 和RSVP-TE 的具体内容可以参考个别文件。
多协议标签交换MPLS最初是为了提高转发速度而提出的。与传统IP路由方式相比,它在数据转发时,只在网络边缘分析IP报文头,而不用在每一跳都分析IP报文头,从而节约了处理时间。
MPLS起源于IPv4(Internet Protocol version 4),其核心技术可扩展到多种网络协议,包括IPX(Internet Packet Exchange)、Appletalk、DECnet、CLNP(Connectionless Network Protocol)等。“MPLS”中的“Multiprotocol”指的就是支持多种网络协议。

协议结构

MPLS 标签结构:
20 23 24 32 bit
Label Exp STTL
Label ―Label 值传送标签实际值。当接收到一个标签数据包时,可以查出栈顶部的标签值,并且系统知道:A、数据包将被转发的下一跳;B、在转发之前标签栈上可能执行的操作,如返回到标签进栈顶入口同时将一个标签压出栈;或返回到标签进栈顶入口然后将一个或多个标签推进栈。
Exp ―优先级。Experimental Bits用以表示从0到7的报文优先级字段。
S ―栈底。标签栈中最后进入的标签位置,s值为0。S值为1表明此为最底层标签。 正因为这个字段表明了MPLS的标签理论上可以无限嵌套,从而提供无限的业务支持能力。这是MPLS技术最大魅力所在。
TTL―生存期字段(Time to Live),用来对生存期值进行编码。与IP报文中的TTL值功能类似,同样是提供一种防环机制。

协议组

MPLS:相关信令协议,如OSPF、BGP、ATM PNNI等。
LDP:标签分发协议(Label Distribution Protocol)
CR-LDP:基于路由受限标签分发协议(Constraint-Based LDP)
RSVP-TE:基于流量工程扩展的资源预留协议(resource Reservation Protocol –Traffic Engineering)

BGP和anycast

什么是BGP和anycast?

BGP属于一项技术,一般应用于IDC多线机房,也就是把接入到机房的多条线路融合为一体。实现多线单IP。因为最早的多线机房都是双线双IP,现在很多双线机房开始利用该技术,让用户使用IP的时候操作更简单些。

Anycast最初是在RFC1546中提出并定义的,它的最初语义是,在IP网络上通过一个Anycast地址标识一组提供特定服务的主机,同时服务访问方并不关心提供服务的具体是哪一台主机(比如DNS或者镜像服务),访问该地址的报文可以被IP网络路由到这一组目标中的任何一台主机上,它提供的是一种无状态的、尽力而为的服务。目前对于Anycast的中文译称主要有,“任播”、“泛播”、“选播”等,本文一律使用“任播”一词,或者直接使用英文单词“Anycast”。

简单来说 anycast可以让不同服务器在公网上以一个ap暴露出来然后就近访问

ARP

在传输一个 IP 数据报的时候,确定了源 IP 地址和目标 IP 地址后,就会通过主机「路由表」确定 IP 数据包下一跳。然而,网络层的下一层是数据链路层,所以我们还要知道「下一跳」的 MAC 地址。

由于主机的路由表中可以找到下一跳的 IP 地址,所以可以通过 ARP 协议,求得下一跳的 MAC 地址。

那么 ARP 又是如何知道对方 MAC 地址的呢?

简单地说,ARP 是借助 ARP 请求与 ARP 响应两种类型的包确定 MAC 地址的。

  • 主机会通过广播发送 ARP 请求,这个包中包含了想要知道的 MAC 地址的主机 IP 地址。
  • 当同个链路中的所有设备收到 ARP 请求时,会去拆开 ARP 请求包里的内容,如果 ARP 请求包中的目标 IP 地址与自己的 IP 地址一致,那么这个设备就将自己的 MAC 地址塞入 ARP 响应包返回给主机。

操作系统通常会把第一次通过 ARP 获取的 MAC 地址缓存起来,以便下次直接从缓存中找到对应 IP 地址的 MAC 地址。

不过,MAC 地址的缓存是有一定期限的,超过这个期限,缓存的内容将被清除。

RARP 协议你知道是什么吗?

ARP 协议是已知 IP 地址求 MAC 地址,那 RARP 协议正好相反,它是已知 MAC 地址求 IP 地址。例如将打印机服务器等小型嵌入式设备接入到网络时就经常会用得到。

通常这需要架设一台 RARP 服务器,在这个服务器上注册设备的 MAC 地址及其 IP 地址。然后再将这个设备接入到网络,接着:

  • 该设备会发送一条「我的 MAC 地址是XXXX,请告诉我,我的IP地址应该是什么」的请求信息。
  • RARP 服务器接到这个消息后返回「MAC地址为 XXXX 的设备,IP地址为 XXXX」的信息给这个设备。

最后,设备就根据从 RARP 服务器所收到的应答信息设置自己的 IP 地址。

RIP

RIP是一种网络协议,主要用于将IP地址动态分配给网络设备。作为一种常见的网络协议,RIP有许多特点,如简单、快速、高效等。但是,RIP也存在一些缺陷,如易受攻击、网络延迟大等。本文将带你揭秘RIP协议,让你更好地了解它的特点、应用和未来发展。

路由信息协议(RIP),是一种距离矢量路由协议,用跳数作为路由度量。在小型网络中,RIP 是最常用的动态路由协议之一。RIP 通过每 30 秒向相邻路由器发送路由表详细信息来定期交换拓扑信息。相邻路由器之间通过 UDP 数据包的形式进行信息发送,源端口号和目标端口号都设置为 520。

由于每个数据报的最大大小为 504 字节,因此单个数据包中最多可以宣告 25 条路由。这些相邻路由器会依次将信息转发给其他路由器,直到它们达到网络收敛。 RIP 跳数最大限制为 15 跳,超出此范围的任何内容都无法访问。因此,RIP 不适用于大型复杂网络。在小型网络中,RIP 可以快速收敛网络,并有效控制路由更新信息。RIP 协议中的跳数是指路由器处理数据包所需的跳数,每经过一个路由器,跳数加 1。但是,RIP 跳数最大的问题是在大型网络中,由于跳数过多,路由信息无法有效传播,从而导致网络收敛时间过长。

OSPF

OSPF路由协议是用于网际协议(IP)网络的链路状态路由协议。该协议使用链路状态路由算法的内部网关协议(IGP),在单一自治系统(AS)内部工作。适用于IPv4的OSPFv2协议定义于RFC 2328,RFC 5340定义了适用于IPv6的OSPFv3。

开放式最短路径优先(Open Shortest Path First,OSPF)是广泛使用的一种动态路由协议,它属于链路状态路由协议,具有路由变化收敛速度快、无路由环路、支持变长子网掩码(VLSM)和汇总、层次区域划分等优点。在网络中使用OSPF协议后,大部分路由将由OSPF协议自行计算和生成,无须网络管理员人工配置,当网络拓扑发生变化时,协议可以自动计算、更正路由,极大地方便了网络管理。但如果使用时不结合具体网络应用环境,不做好细致的规划,OSPF协议的使用效果会大打折扣,甚至引发故障。
OSPF协议是一种链路状态协议。每个路由器负责发现、维护与邻居的关系,并将已知的邻居列表和链路费用LSU(Link State Update)报文描述,通过可靠的泛洪与自治系统AS(Autonomous System)内的其他路由器周期性交互,学习到整个自治系统的网络拓扑结构;并通过自治系统边界的路由器注入其他AS的路由信息,从而得到整个Internet的路由信息。每隔一个特定时间或当链路状态发生变化时,重新生成LSA,路由器通过泛洪机制将新LSA通告出去,以便实现路由的实时更新。

最重要的是求网络最断路径和自动发现,配置好之后,两台相邻的节点之间,会自动吧自己的路由信息同步给对方,然后广播到整个内网中

Last modification:November 14, 2023
如果觉得我的文章对你有用,请随意赞赏