路由协议
一、综述
定义
路由(网关)协议是用来指定数据包转送方式的网络协议。Internet网络的主要节点设备是路由器,路由器通过路由表来转发接收到的数据。
路由协议可以让路由器自动学习到其他路由器的网络,并且在网络拓扑发生改变后自动更新路由表。
本文共涉及10种协议,按OSI模型层级从低到高分别为:
- IS-IS - L2 链路层
- RTSP - L2 链路层
- MTSP - L2 链路层
- VTP - L2 链路层
- MPLS - L2.5 链路层和网络层之间
- OSPF - L3 网络层
- IGRP - L3 网络层
- EIGRP - L3 网络层
- BGP - L5 应用层
- RIP - L5 应用层
其中,真正涉及“为路由器转发IP分组找出适当的下一跳路由器”的是
- IS-IS
- OSPF
- IGRP
- EIGRP
- BGP
- RIP
分类
路由协议根据作用范围不同,可以分为两种:
- 内部网关协议(Interior Gateway Protocol),指在一个自治系统(Autonomous system, AS)内部所使用的一种路由协议。自治系统是指一个实体管辖下的所有IP网络和路由器,有自己的编号
- 外部网关协议(Exterior Gateway Protocol),在自治系统之间使用。
内部网关协议根据路由选择算法不同,可以分为两种:
- 距离向量路由协议(包括RIP,IGRP),路由器只知道相邻的路由器和相邻链路的代价。通过迭代计算,邻居之间交换信息得到其他路由器的信息。
- 链路状态路由协议(包括OSPF,ISIS),每个节点都知晓整个网络的拓扑信息,各节点使用自己了解的网络拓扑情况来计算出最佳的转发地址(下一跳)。
- 混合路由协议(EIGRP),综合以上两者的优点。
设计路由选择算法的目标是生成路由表,为路由器转发IP分组找出适当的下一跳路由器。
设计路由选择协议的目标是实现路由表中路由信息的动态更新。
外部网关协议常见的只有边界网关协议(Border Gateway Protocol)。
二、协议详情
1 IS-IS
- 全称:Intermediate system to intermediate system, 中间系统到中间系统
- 能否探测:否
- 文档:wiki
IS-IS属于内部网关协议。IS-IS采取的算法和架构都十分近似OSPF,都是链路状态路由协议,最大的区别在于OSPF是基于IP层的协议,而IS-IS是链路层的协议。更多信息见5 OSPF。
工作过程:IS-IS协议通过发送LSP(链路状态协议数据单元)进行路由信息通告,通过Hello PDU发现邻居和创建邻接,通过SNP(序号协议数据单元)确保路由器持有最新的、有效的LSP。路由器在接收到的LSP的基础上,通过SPF(最短路径优先)算法最终确定路由表。
2 RSTP
- 全称:Rapid Spanning Tree Protocol,快速生成树协议
- 能否探测:否
- 文档:wiki
RTSP和MTSP都属于生成树协议(TSP)。TSP的基本应用是防止交换机冗余链路产生的环路,确保以太网的拓扑结构不产生环路。
TSP的工作原理:任意一交换机中如果到达根网桥有两条或者两条以上的链路,TSP都根据算法把其中一条切断,仅保留一条,从而保证任意两个交换机之间只有一条单一的活动链路。 来源和具体流程
RTSP的最大特点在于能够快速响应网络拓扑的变化。传统的TSP需要30-50秒,而RTSP只需要3个hello的时间(默认为3个2秒)。RTSP通过增加网桥端口来实现快速响应,同时又保持了和RTP的向后兼容性。
3 MSTP
- 全称:Multiple Spanning Tree Protocol
- 能否探测:否
- 文档:wiki
MSTP在RTSP的基础上进一步扩充,使其能够支持vLAN。
4 VTP
VTP是思科的私有协议,负责自动传播和维护vLAN配置,工作在链路层。
有了VTP协议之后,管理员不用再重复配置每个交换机的vLAN,而是配置一台机器后,由VTP传播配置信息。
VTP支持对vLAN的添加,删除和重命名操作。
5 MPLS
- 全称:Multi-Protocol Label Switching,多协议标签交换
- 能否探测:否
- 文档:wiki
MPLS使用标签取代了网络地址,避免了复杂的路由表查询。同时可以使用标签直接进行路由,避免分析包的内容。从设计思想上来看,MPLS是将数据链路层的第二层交换技术引入网络层,实现快速IP分组交换。
多协议的含义是指MPLS可以封装多种网络层协议,同时还可以兼容第二层的多种数据链路层技术。由于MPLS可以传输链路层和网络层的数据包,MPLS一般被认为是介于链路层和网络层之间。
MPLS工作过程工作原理:MPLS网络中最重要的路由器是标记交换路由器label switch router(LSR),其中边缘处的叫做Edge Label Switch Router(E-LSR)
当一个未被标记的分组(IP包、帧中继或ATM信元)到达E-LSR时,入口的E-LSR根据输入分组头查找路由表以确定通向目的地的标记交换路径LSP,把查找到的对应LSP的标记插入到分组头中,完成端到端IP地址与MPLS标记的映射。
[图片上传失败...(image-974e84-1543816919470)]
6 OSPF
- 全称:Open Shortest Path First,开放式最短路径优先
- 能否探测:否
- 文档:wiki
OSPF协议是大中型网络上使用最为广泛的IGP协议。OSPF属于链路状态路由协议,即网络中的每个路由器都知道全网的拓扑结构和每条边的权值,使用最短路径算法,每个路由器计算自己和网络中其它所有结点的最短路径得出转发表。通过相互交换信息,路由器更新自己的路由表,多次迭代后,每个路由器获得到其它所有结点的最佳路由信息。
度量和数据库:OSPF使用"代价(Cost)"作为路由度量,这个度量(Metric)由距离,延迟,负载等参数加权计算得到。链路状态数据库(LSDB)用来保存当前网络拓扑结构,路由器上属于同一区域的链路状态数据[图片上传中...(image.png-97c469-1543816134797-0)]
库是相同的。
一个OSPF网络被分割成多个区域,这样做的好处是某一区域内的路由器只用维护该区域的链路状态数据库。区域被分为多种类型,其中骨干区域和其它所有区域都直接相连;对应的,路由器也被分为多种路由器。
一个自治系统被划分为多个区域OSPF定义了以下5种协议数据包类型:
Hello包 HELLO
数据库描述包 DBD
链路状态请求包 LSR
链路状态更新包 LSU
链路状态确认包 LSAckOSPF执行过程:
- 每隔10秒交换一次hello包,40秒没收到某路由器的hello则修改其为不可达并重新计算路由;
- 每隔30分钟,要刷新一次数据库中的链路状态。通过与相邻路由器交换“数据库描述分组”,然后使用“链路状态请求分组”请求发送缺少的链路信息。
- 链路状态更新:如果有链路发生变化,该路由器将“链路状态更新”分组,采用“洪泛法”发送出去。
- 优点:支持距离、时延等多种度量,增加了网络管理的灵活性;同时支持层次化结构,适应较大网络需求。
- 缺点:协议复杂,度量值可以由网络管理员设定,产生很多不确定性。同时由于采用洪泛法传输路由信息,占用了一定带宽资源。
7 IGRP
- 全称:Interior Gateway Routing Protocol,内部网关路由协议
- 能否探测:否
- 文档:思科官网
IGRP的原理和目的和RIP类似,是思科的私有协议,和RIP都采用了距离向量算法,但是可以用于更大规模,更复杂的网络中。
IGRP和RIP技术上最大的区别是使用了综合的路由度量,而RIP仅仅使用跳数。同时,IGRP还解决了RIP会产生环路的问题,并且效率更高。
IGRP使用一组metric的组合作为路由度量:网络延迟、带宽、可靠性和负载都被用于路由选择,IGRP可以用管理员设置的权值来自动计算最佳路由。
8 EIGRP
EIGRP同样是思科的协议,但是在2013年已经公有化。和IGRP使用的路由算法不同,IGRP使用了类似OSPF的链路状态路由协议,但是同时又实现了类似RIP的快速收敛。
和OSPF不同,EIGRP可以不发送定期的路由更新信息以减少带宽的占用。类似OSPF,EIGRP也有多种数据包。数据包下载
9 BGP
BGP负责维护自治系统之间的可达性。用于BGP路由中的每个自治系统(AS)都被分配一个唯一的自治系统编号(ASN)。ASN是区别整个相互连接的网络中的各个网络的唯一标识。
和IGP转发机制一样,BGP同样要维护一张路由表。BGP路由时最重要的是考虑AS之间的可达性,BGP每1分钟要发送一次keep-alive报文,以通告自己存活。
在配置BGP时,每个自治系统的管理员要选择至少一个路由器(通常是BGP边界路由器)作为该自治系统的BGP发言人(BGP speaker)。一个BGP发言人与其他自治系统中的BGP发言人要交换路由信息,如增加的路由、撤销过时的路由、差错信息等。
BGP发言人BGP和IGP协议工作的不同点是节点数量少,因为BGP节点的数量和自治系统(AS)的数量成正比。
同时,BGP在选择路径时,一般只要求找一条差不多好的路径即可,因为AS内部的网络情况是无法确定的,找到经过AS少的也不一定最快。
因此和IGP主要考虑延迟,距离等指标不同,BGP更多考虑路径等特定的规则集来决定路由。
BGP不仅仅能应用在AS之间,在AS内部BGP也能起到和普通IGP(如OSPF等)一样的作用,此时为iBGP,工作在AS之间的路由器称作eBGP。
10 RIP
- 全称:Routing Information Protocol,路由信息协议
- 能否探测:能
- Shodan和Zoomeye主机数量:15,000
- 端口:UDP 520
- 文档:RFC2453
RIP基于距离矢量算法,使用"跳数(metric)"来衡量到达目标地址的路由距离。
尽管RIP的缺陷比较多,但在小型网络中还是经常使用。这是因为RIP非常易于配置,不需要设置任何的参数。
RIP工作的目标是配置网络层,但是由于其使用UDP协议,所以还是一个应用层协议。所有的RIP数据都要封装在UDP中,通过UDP520端口互相传输。RIP只有两种消息:第一种request,要求另一台路由器提供其路由表;第二种response,将自己的路由表回复过去。
RIPv1和v2的区别:v1可以接收v1和v2发送的宣告,但是v2只能接收v2发送的宣告。此外,v1是有类路由协议,它们宣告路由信息时不携带网络掩码;而v2是无类路由协议,它们在宣告路由信息时携带网络掩码。
网友评论