路由协议,本质上是一种用来计算和维持路由信息的协议。它通过特定的算法自动发现和计算路由,当网络链路或拓扑发生变化时,能够自动更新,从而无需人工干预,大大减轻了网络管理的负担。
常见的路由协议包括RIP、OSPF和BGD。每种协议都有其独特的应用场景和优势。RIP,即路由信息协议,由于仅支持小规模网络,现在几乎已经不再使用。OSPF,即开放最短路径优先,适用于大型企业网络,它基于IP协议,使用协议号89。而BGP,即边界网关协议,基于TCP协议,使用端口号179,主要应用于互联网服务提供商之间。
路由协议的基本原理包括邻居发现、路由信息交换、计算路由和维护路由四个阶段。在邻居发现阶段,路由器会主动发送信息以识别网段内的其他路由器。一旦发现邻居,路由器会交换各自已知的路由信息,通过算法计算出最短路径,并持续维护这些路由信息,以确保网络的稳定性和连通性。
按照作用范围的不同,路由协议可以分为内部网关协议(IGP)和外部网关协议(EGP)。IGP如RIP、OSPF和IS-IS,主要用于同一自治系统内交换路由信息。而EGP,如BGP,则用于连接不同的自治系统,并在它们之间交换路由信息。
自治系统是一组在单一管理域内共享相似路由策略的路由器的集合。每个自治系统都有一个唯一的编号,用于区分不同的网络管理域。
根据协议算法的不同,路由协议还可以分为距离矢量协议、链路状态协议和路径矢量协议。距离矢量协议,如RIP,基于贝尔曼-福特算法,主要关心到目的地的距离和方向。链路状态协议,如OSPF,基于Dijkstra算法,更注重网络中链路或接口的状态信息。而路径矢量协议,如BGP,则引入了更复杂的算法和增量更新机制,以优化路由信息的传播和更新。
距离矢量路由协议的特点包括周期性广播更新、携带全部路由表、路由失效判定等。链路状态路由协议则通过Hello报文发现邻居,发送链路状态公告(LSA),以开销作为度量值,快速收敛路由信息。路径矢量路由协议则在邻居建立时发送全部路由表,之后发送增量路由,通过丰富的路由属性防止路由环路。
通过这些协议和算法,网络管理员能够更高效地管理网络,确保数据的顺畅传输,同时也为网络的扩展提供了可能性。
什么是路由协议
前面我们学到了静态路由,而静态路由的缺点就是需要人工手动配置,在大规模网络的场景下,配置尤为繁琐,且链路如果出现改动,手动增删改查极为不便,于是繁衍出了我们的路由协议。
路由协议可以自动发现和计算路由,并且在链路或者拓扑发生变化时,自动更新,无需人工的维护,极大减少了配置量。
路由协议概述
Routing Protocol(路由协议),简单的来说就是用来计算、维护路由信息的协议。通过采用算法,来产生路由,有一定的方法来确定路由的有效性,从而来维护路由,一般工作在传输层或者应用层。
常见的几个路由协议:
RIP(基本没有用了)
、OSPF
、BGP
协议栈中的位置
不同的路由协议所使用的底层协议各有不同,例如:
OSPF是基于IP协议,协议号89
BGP基于TCP,端口号179
RIP基于UDP,端口号520
路由协议的基本原理
所有路由协议的共同目的都是计算和维护路由,两台路由器都实现了某种路由协议并且已经启动了协议,那么他们就具备了相互通信的基础, 通常,各种动态路由协议的工作过程包含以下几个阶段:
邻居发现
、交换路由信息
、计算路由
、维护路由
邻居发现
运行了某种路由协议的路由器会主动把自己介绍给网段内的其他路由器,发送方式可以是广播也可以是单播。
路由信息交换
发现邻居后,每台路由器将自己已知的路由相关信息发送给相邻的路由器,相邻路由器又发送给下一台路由器,最后网络中的每台路由器都会受到网络中所有的路由信息
计算路由
每台路由器都会运行某种算法,计算出最终的路由
维护路由
为了能够识别网络故障的发送(例如线缆中断、设备故障等),路由协议会制定一种生存周期,如果在周期内不能收到邻居发来的协议报文,那么说明这条链路或者邻居出现了故障
路由协议的分类
目前就两大类IGP
、EGP
IGP
IGP内部网关协议(Interior Gateway Protocols)
是指在同一个自治系统内交换路由信息的路由协议,例如RIP、OSPF、IS-IS
都属于IGP,IGP的主要目的是发现和计算自治系统内的路由信息
EGP
EGP外部网关协议(Exterior Gateway Protocols)
与IGP不同的是,EGP用于连接不同的自治系统,并且在不同的自治系统间交换路由信息,使用路由策略
和路由过滤
等手段来控制路由信息在自治系统间传播,BGP边界网关协议(Border Gateway Protocols)
属于EGP
自治系统概念
自治系统(AS、Autonomous System)
是指一组共享相似路由策略并且在单一管理的域(范围)中运行的路由器的集合。AS可以是一些运行单一IGP协议路由器的集合,也可以是一些运行不同路由协议,但都属于同一个组织几个的路由器的集合,每个自治系统都有一个唯一的自治系统编号,它的基本思想就是希望通过不同的编号来区分不同的自治系统。
这个编号是由因特网授权的管理机构IANA分配的,自治系统的编号范围是 1~65535,其中 1~64511 是注册的因特网编号,64512~65535是专用网络编号
按照协议算法分类
目前有这三种协议:
距离矢量协议
、链路状态协议
、路径矢量
距离矢量
(Distance-Vector,D-V)泛指RIP,度量值是跳数,基于贝尔曼-福特算法,只关心到目的网段的距离和方向
链路状态
(Link-State)度量值是开销,基于 Dijkstra 算法,又叫最短路径优先算法,拥有更强的扩展性和更快的收敛速度,但系统资源占用较高,他关心网络中链路或接口的状态(up/down ip地址、子网掩码)
路径矢量
路径矢量(本质上其实也是距离矢量),但他引入了更强的算法,采用增量更新机制来发送路由更新,只有路由表变化时才发送路由变更,节省了邻居路由之间的带宽
距离矢量路由协议特点
PS:泛指RIP
- 周期性、广播形式发送路由更新
- 路由更新中携带全部的路由表,接受方根据此路由表更新自己的路由表
- 超过一定时间接受不到路由更新(180S),则认定该条路由失效。
- 以到目的地的距离[跳数,RIP最大跳数16跳[不可达]15[可达]]作为度量值。
- 拓扑变化以逐跳的方式散开。
- 路由收敛速度慢。
- 采用距离矢量算法,可能导致路由环路
链路状态路由协议特点
PS:泛指OSPF
- 通过Hello报文来发现邻居
- 建立好邻接关系后,只发送链路状态公告LSA
- 根据自己链路状态信息数据库LSDB来计算路由
- 以到目的地的开销cost作为度量
- 链路状态发送变化时,马上发送LSA到区域内所有路由器
- 路由收敛速度快
- 采用SPF算法,无路由自环
路径矢量路由协议特点
PS:泛指BGP
- 仅在邻居刚建立时发送全部路由表
- 邻居检录后发送增量路由
- 如果邻居失效(180S),则认为该条路由失效
- 丰富的路由属性作为度量值
- 拓扑变化以逐跳的方式扩散
- 采用机制防止路由环路(本质和RIP一样,直接传路由,会产生路由环路)