IP路由协议(RIP、IGRP、OSPF、IS-IS、BGP)

简介: 1、路由分类路由产生方式:直接路由:路由器会自动生成本路由器激活端口所在网段的路由条目静态路由:网络管理员手工配置,静态路由信息在缺省的情况下私有的,不会传递给其他的路由器

1、路由分类

路由产生方式:

  1. 直接路由:路由器会自动生成本路由器激活端口所在网段的路由条目
  2. 静态路由:网络管理员手工配置,静态路由信息在缺省的情况下私有的,不会传递给其他的路由器

fffb1fa7dd6b43cdb250d5c2f1d4fee8.png

  • 静态路由描述转发路径的方式有两种:指向本地接口、指向下一跳路由器直连接口的IP地址
  1. 动态路由:运行同一种路由协议的相邻路由器之间可以互相学习路由
  2. 默认路由:是一种特殊的静态路由,当所有已知路由信息都查不到数据包如何转发时,按缺省路由的信息进行转发(最长前缀匹配)

2、RIP协议

RIP(Routing Information Protocols)路由信息协议,是应用较早、使用较普遍的内部网关协议,适用于小型的同类网络,是典型的距离矢量协议。


RIP协议简单,易用,开销小,管理方便

RIP是基于UDP,端口520的应用层协议

RIP协议使用跳数进行路由度量,支持的最大跳数限度为15(超过15个则认为是不可达的)

RIP通过周期性更新将其整个路由表向所有与其直连的邻居发送,维护相邻路由器的关系,同时根据收到的邻居的路由表来计算自己的路由表。

RIP协议采用水平分割、毒性反转、抑制定时器和触发更新等方法阻止路由环路问题

RIP默认支持4条等开销(即度量值相同)的链路做负载均衡,最大可以支持6条。通过路由自动汇总实现路由负载均衡,不支持不等开销的链路做负载均衡

1)RIP的工作原理

RIP启动时的初始RIP Database仅包含本路由器声明的路由

RIP启动后向各个接口广播或组播一个REQUEST报文

邻居路由器的RIP协议从某接口收到REQUEST报文后,根据自己的RIP Database,形成Update(Response)报文向该接口对应的网络广播

RIP接收邻居路由器回复的包含邻居路由器RIP Database的Update报文,形成自己的RIP Database

RIP的Metric以Hop为计算标准,最大的有效跳数为15,16跳为无穷大代表无效

2)RIP路由表的更新过程

RIP以30秒为周期用Response报文广播自己的路由表

收到邻居发来的Response报文后,RIP计算报文中路由项的度量值,比较其与本地路由表中路由项的差别,然后更新自己的路由表

90s没有收到邻居路由器的更新,认为路由不可达

路由表中的每一路由项都对应一老化定时器,当路由项在180s内没有任何更新时,定时器超时,该路由项的度量值变为不可达

某路由项的度量值变为不可达后,以该度量值在Response报文中发布,240秒没有更新后将其从路由表中清除

3)RIP路由表的更新原则

  • 对本路由表中已有的路由项,当发送报文的网关相同时,不论度量值是增大还是减少都更新该路由项
  • 对本路由表中已有的路由项,当发送报文的网关不同时,只在度量值减少时更新该路由项
  • 对本路由表中不存在的路由项,在度量值小于16时在路由表中增加该路由项对本路由表中已有的路由项,当发送报文的网关相同时,不论度量值是增大还是减少都更新该路由项
  • 对本路由表中已有的路由项,当发送报文的网关不同时,只在度量值减少时更新该路由项
  • 对本路由表中不存在的路由项,在度量值小于16时在路由表中增加该路由项0c9a8a3b329f47dfa3daf0d3b9f8fab5.png


4)RIP的特性

  • 定时发送路由更新
  • 跳数限制(限制了网络规模)
  • 固定度量(使用跳数作为度量,基本静态,不适合高度动态网络
  • 收敛速度慢(单个路由器30s更新一次,180s路由失效等,降低网络性能)

5)RIP协议的版本

RIP-1


有类路由协议,不支持可变长子网掩码VLSM

以广播的形式发送更新报文

不支持认证

RIP-2


无类路由协议,支持VLSM,可以学习到不同子网掩码长度的子网的路由

以组播的形式发送更新报文,组播地址为224.0.0.9

支持明文和MD5的认证,增强网络的安全性

RIPv1在执行路由表查询时,首先检查的是目的网络的主网络号,网络从大到小。如有数据包发往10.1.0.0/16,路由器会首先检查表中有无符合10.0.0.0这个A类网络的条目,如果没有则丢弃并返回ICMP包,如果有路由器会继续向下查询有无子网匹配。


RIPv2则相反,从小到大查询网路。它会忽略目的地址的网络类型,不考虑A、B、C类等,在表中执行精确地按位匹配查询。它首先检查的是掩码位数最长的,如果有32位掩码的路由条目,则这条路径会被优先检查,其次是24位、16位等等;不匹配,则返回ICMP包。默认路由的检查,将会被放在最后。


RIPng(RIP next generation)


随着IPv6的出现,很多相关协议需要做出相应改变以适应其128位长的地址,RIPng就是由此应运而生的


RIPng与RIP-2极为相似 ,因此可以让RIP-2更加简单和方便地过渡到RIPng。


4、IGRP协议

IGRP(Interior Gateway Routing Protocol)是从RIP基础上发展而来的,是Cisco专有协议。


IGRP比RIP复杂,能够使用多种度量来确定到达目的地址的最佳路由

负载均衡同样默认4条等开销的链路,最大支持6跳,并且支持不等开销的链路做负载均衡。

IGRP协议适用于更大的网络:分组的最大跳数为255跳(默认100)

IGRP不支持VLSM(以IGRP为基础开发的EIGRP支持VLSM)

1)IGRP路由表的更新

默认情况下90s通过广播发送一次路由更新

270s无路由更新则认为邻居路由器不可达,相关路由进入保持状态,保持时间270s后删除

2)IGRP的度量标准

IGRP默认使用带宽和时延度量


IGRP协议可以使用多个变量来确定一个符合度量标准,使路由选择更准确,适应不同的服务类型


带宽

时延

信道可信度

信道占用率

最大传输单元

跳数

5、OSPF协议

OSPF(Open Shortest Path First)是由IETF开发的一个基于链路状态的域内路由协议,使用最短路径优先算法(SPF)计算路由。


在IP网络上,它通过收集和传递自治系统的链路状态来动态的发现并传播路由


目前有三个版本


OSPFv1:测试版本,仅在实验平台使用

OSPFv2:目前普遍使用的版本

OSPFv3:提供对IPv6路由支持

1)OSPF的原理

所有的路由器都维护一个链路状态数据库,该数据库其实就是整个网络的拓扑结构图


一个路由器的链路状态指的是该路由器都和哪些网络或路由器相邻,以及将数据发往这些网络或路由器所需的成本等

由于网路中链路状态可能经常变化,OSPF让每一个链路状态都带上一个32位的序号,序号越大状态就越新


OSPF规定:链路状态序号增长的速率不能超过每五秒钟一次

全部序号空间在600年内不会产生重复号

只要网络拓扑发生任何变化,通过泛洪链路状态通告数据包LSA,链路状态数据库就能很快地进行更新


OSPF的更新过程收敛得快是其重要优点之一

OSPF依靠路由器之间的频繁交换信息来建立链路状态数据库,并维持数据库在全网范围内的一致性,即实现链路状态数据的同步更新


OSPF直接使用IP分组传送,IP分组首部的协议字段的值为89


OSPF发送的IP分组很小,减少路由信息的通信量

分组小的另一个优点就是传输时不会分片,降低了传输出错的概率

当网络经历改变稳定后,即OSPF路由协议收敛完成时,所有路由器会根据其各自的链路状态信息计算出各自的路由表


当网络稳定时,网络中比较安静


2)OSPF的基本算法

SPF算法(最短路径优先算法)是OSPF路由协议的基础,如Dijkstra算法


SPF算法将每一个路由器自身作为根来计算其到其他路由器的距离,每个路由器根据统一的数据库计算出自治系统的拓扑结构图,被称为最短路径树


3)OSPF成本

OSPF使用成本/开销作为唯一的度量标准,范围为1-65535,成本越低代表路径越优


OSPF使用SPF算法来获得链路的成本


路由器通过累加出口接口上的成本来计算某条路径(抵达目标前必须经过的一系列链路)的总成本


实际中OSPF一般基于接口上的带宽值来得出成本(与链路带宽成反比)。Cisco的计算公式是:100000000/接口带宽,如一个10Mb/s以太网接口的成本为10,10*8*的成本参考值可以修改。


每台OSPF路由器都在每个接口上运行成本计算公式,其他路由器在使用SPF算法以寻找最短路径时将会使用所得出的值


4)链路状态通告

OSPF协议使用链路状态通告LSA来为邻居提供路由选择信息,LSA封装在链路状态更新LSU包中,一个LSU包可以封装多个LSA。LSU又封装在IP分组中,并发给源路由器的邻居。


LSA是根据链路状态的任何变化生成,如链路故障和新链路的出现以及改变链路成本等的接口变化


OSPF是一种自安全的协议,把重复减小到最少:


定期交换Hello数据包以维持邻居消息,默认30分钟才对所有LSA进行一次刷新

更新只在网络发生变化时才发生

5)指定路由器和备份路由器

路由器ID


路由器ID是一个32bit的无符号整数,是一台路由器的唯一标识,在整个自治系统内唯一


如果路由器配置了环回地址则使用环回地址作为ID

存在多个环回地址时则选用最高的作为ID

一般使用路由器的最高IP地址作为ID

用作路由器ID的接口不一定要运行OSPF协议


环回地址


Loopback接口是虚拟接口,大多数平台都支持使用这种接口来模拟真正的接口


系统管理员在完成网络规划后会为每一台路由器创建一个loopback接口,并在该接口上指定一个IP作为管理地址(使用该地址实现远程登录)


虚拟接口不会像物理接口那样因为各种因素的影响而导致接口被关闭,该接口状态永远是UP的,不能封装任何链路层协议


在广播多路访问网络(如Ethernet)中,存在一个指定路由器DR在OSPF协议中完成以下的工作:


指定路由器产生用于负责维护网段的拓扑表,该表内包含在该网段上所有的路由器和链路状态信息

指定路由器与所有和它处于同一个网段上的OSPF路由器建立相邻关系,逻辑上处于一个网段的中心

通过Hello完成,在一个网段上选择路由器ID最大的作为指定路由器,ID第二大的作为备份指定路由器


在广播多路访问网络中使用指定路由器的原因:


网段内可能同时连接多个路由器,邻接关系复杂

如果网段内所有的路由器两两建立连接关系,维护这种关系会发送大量的Hello数据包,占用网络带宽,而且需要占用较多的路由器CPU资源

OSPF支持的网络是否需要指定路由器:


广播多路访问:各种局域网,如Ethernet,需要选举DR

点对点:两台路由器相连,如串行链线路,无需DR和BDR

点对多点:无需DR和BDR

非广播多路访问:如帧中继、X.25,需要选举DR

6)OSPF报文和包交互

OSPF报文类型


OSPF有五种报文类型,每个OSPF包都具有OSPF数据包报头,IP包头中,协议字段为89,代表OSPF,组播地址=224.0.0.5或224.0.0.6


Hello包:建立邻居关系,决定指定路由器和备份指定路由器

数据库描述DD:描述自己的数据库中已有的LSA

链路状态请求LSR:向对方请求LSA

链路状态更新LSU:向邻居发送邻居请求的LSA或是泛洪自己最新更新的LSA

链路状态确认LSAck:告知邻居哪些LSA已经收到,以让邻居将确认收到的LSA从重传列表中删除

OSPF协议包交互


A、B分别向网络以组播的方式发送Hello

A、B在接收到对方的Hello包后,都把对方加入到自己的邻居列表中

假定A收到B的Hello,发现自己在B的邻居列表中,此时A给B发送DD包

B在收到A的DD包后查看自己的数据库,将A发来的DD包中有而自己的数据库中没有的LSA放到B给A的邻居列表中

A收到B的LSR包后,给B发送LSU以让B更新自己的数据库

B收到A的LSU包后,进行一系列的检查,决定是否更新自己的数据库并发送LSAck包

同样,在A给B更新数据库的同时,B也给A更新A的数据库

当A、B数据库完成同步之后,A、B互相成为对方FULL状态的邻居

OSPF路由表更新


路由器发现网络变化后,产生链路状态变更新通告,向所有邻居扩散,来使这个信息传播到整个网络,以便所有的路由器尽快完成收敛


所谓的链路状态变更包括:


检测到邻居的物理链路中断

最大等待时间内没有收到对方的Hello

收到邻居的链路状态更新通告,通知网络变化

7)多区域OSPF

单区域OSPF中随着网络规模的增大,网络故障概率增加且链路状态数据库容量增加

cecf832a9d6a42919ef26c4a8d02b4e3.png

多区域OSPF中包含一个主干区域Area0(一般位于区域中心),其他区域与主干区域通过物理链路或虚拟链路直接相连


多区域OSPF的优点


多区域OSPF的每一个区域都有该区域独立的链路状态数据库

对于每一个区域,其网络拓扑在区域外是不可见的,同样在每一个区域中的路由器对于域外的其余网络结构也不了解

主干区域负责在各区域之间传递路由信息

通过使用多区域OSPF一个大的网络可以被划分为多个小的网络,非常有利于网络的扩展

路由器类型:


内部路由器IR:维护一个区域内的链路状态数据库

区域边界路由器ABR:维护与其相连的所有区域内网络的链路状态数据库

主干路由器BR:至少有一个物理接口在区域0

自治系统边界路由器ASBR:与其他自治系统AS相连的路由器,一般选择主干区域的中心路由器45380c9529414acab3da23bd53316887.png

多区域OSPF的路由汇总/汇聚有两种情况:


区域间汇总:在区域边界路由器上运行,将区域内的网络进行汇总发送给其他区域

外部汇总:在自治系统区域边界路由器上运行,将自治系统内的网络进行汇总发送给其他自治系统

路由表中的由OSPF协议生成的表项中,目标网络有三种:


和路由器在同一个区域内的网络:O

本自治系统内其他区域的网络:O IA

位于本自治系统外的网络:O E1或O E2

多区域OSPF的设计要点


主干区域要能承受较大的网络负荷:所有的区域流量都经主干区域,应当配置冗余路由器和链路,提高可靠性

普通区域可以采用不同的配置策略

尽量采用汇总来减少路由表的条目:合理的进行IP规划

路由器的数量限制:Cisco的通用规则:每个区域不超过50台路由器;路由器的邻居不超过60个,相邻区域不超过3个;每个路由器最多为1个局域网的指定路由器或备份路由器

OSPF虚链路


多区域OSPF设计规定所有区域必须与主干区域直接相连。在实际的网络组建中会出现普通区域没有直接的链路和主干区域连接。


采用配置虚链路的方法解决:虚链路也可用于区域0内的路由器无法直接相连而是通过公共区域相连接的情况

7355a90a95904dcd91f10b2aac3bca06.png

虚链路不是永久OSPF设计的一部份,它仅仅是一个权宜之计,一个用来解决连接问题的暂时方案


8)OSPF的应用特性

适应范围:OSPF支持各种规模的网络,最多可支持几百台路由器,具有巨大的网络直径

快速收敛:如果网络拓扑结构发生变化,OSPF立即发送更新报文,使得这一变化在自治系统中同步

无自环:由于OSPF通过收集到的链路状态用最小生成树算法计算路由,故从算法本身保证了不会生成自环路由

子网掩码:对VLSM提供很好的支持

区域划分:允许自治系统的网络被划分为区域来管理,区域间传送的路由信息被进一步抽象,从而减少了占用网络带宽

等值路由:OSPF支持到同一目的地最多三条等值路由

路由分级:使用4类不同的路由,按优先顺序分别是区域内路由,区域间路由,第一类外部路由,第二类外部路由

支持验证:它支持给予接口的报文验证以保证计算的安全性:明文或者MD5

组播发送:OSPF在有组播发送能力的链路层上以组播地址发送协议报文,既达到了广播的作用,又最大程度的减少了其他网络设备的干扰

6、IS-IS协议

中间系统到中间系统IS-IS是一种内部网关协议,是电信运营商普遍采用的内部网关协议之一,是一种基于链路状态算法的路由协议


IS-IS和OSPF


共同之处:都是链路状态协议,使用SPF算法、VLSM快速汇聚等

从协议实现:OSPF基于TCP/IP,运行在IP层上,IS-IS最早为无连接网络服务设计,后来增加对IP路由的支持

OSPF适合企业级网络,IS-IS更适合运营商级别的网络

7、边界网关协议BGP/BGP4

外部网关协议的典型代表是边界网关协议BGP,它旨在取代早期的一个外部网关协议EGP


BGP是一种用于AS间传递网络可达性信息的路径矢量协议,通过在对等体间交换网络可达性信息来构建AS可达信息拓扑图。

对于BGP而言,整个因特网就是一个大的AS图,到因特网上任一目的的路由可以通过一个AS路径来表示

BGP运行于TCP上,端口号为179

BGP不使用传统的内部网关协议的指标,而使用基于路径、网络策略或规则集来决定路由


AS之间交换或更新网络可达信息

AS路径:由AS号的列表构成的序列

8、三层交换

三层交换在传统局域网交换机的基础上添加专用的路由模块实现局域网内快速路由


具有三层交换功能的交换机称为第三层交换机或路由交换机,使用专用集成电路来完成路由计算,速度比较快,通常能达到线速(即数据输出速率等于输入速率)


三层交换即通常放置在LAN或WAN的核心层,为本地客户提供高速的数据交换和直连路由,分割广播域提高性能


MLS


Cisco交换机使用MLS(MultiLayer Switching)技术实现三层交换,用硬件处理包交换和重写帧头,提高IP路由性能


MLS的组成部分:


多层交换的交换引擎(MLS-SE):负责处理转发和重写数据包功能的交换实体


多层路由处理器(MLS-RP):相当于路由器,负责处理每个数据流的第一个数据包,协助MLS-SE


MLS-RP可以是外部的路由器,也可以由三层交换机的路由交换模块来实现

多层交换协议(MLSP):一个轻型协议,用来通过MLS-RP对MLS-SE进行初始化


MLS步骤


交换机检查目标MAC地址,如果目标MAC地址是交换机(MLS-SE)所配置的路由器(MLS-RP),就开始第三层交换的处理,否则这些报文在第二层被交换

如果这些报文要进行第三层交换,交换机将会在MLS缓存中查找目标IP地址的转发表项

如果找到一个MLS表项,那么报文将使用这个表项中的信息重写报文,修改目标MAC地址,TTL减1,并重新计算校验值

如果没有发现MLS表项,那么此帧将被转发到MLS-RP;路由器路由这个报文,并将此发挥MLS-SE,供它在缓存中写入一个新的转发表项

按新的MAC地址转发此帧

三层交换方案通常在核心层使用三层交换机,汇聚层使用二层交换机,来自不同VLAN的信息流在二层交换机上汇聚,通过三层交换机相连的Trunk链路,在三层交换机实现路由,并转发给目的主机

相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
5月前
|
负载均衡 网络协议 算法
IP路由协议(RIP、IGRP、OSPF、IS-IS、BGP)
1、路由分类 路由产生方式: 直接路由:路由器会自动生成本路由器激活端口所在网段的路由条目 静态路由:网络管理员手工配置,静态路由信息在缺省的情况下私有的,不会传递给其他的路由器
|
网络协议 数据库 网络虚拟化
OSPF路由协议(二)
OSPF路由协议(二)
OSPF路由协议(二)
|
负载均衡 网络协议 算法
OSPF路由协议(一)
OSPF路由协议(一)
161 0
OSPF路由协议(一)
|
网络协议 算法 数据库
|
网络协议 网络架构
二、IP、路由协议
二、IP、路由协议
二、IP、路由协议
|
网络协议 算法 安全
OSPF路由协议一
一 OSPF路由协议 OSPF路由协议是用于网际协议(IP)网络的链路状态路由协议。该协议使用链路状态路由算法的内部网关协议(IGP),在单一自治系统(AS)内部工作。适用于IPv4的OSPFv2协议定义于RFC 2328 ,RFC 5340 定义了适用于IPv6的OSPFv3。 二 OSPF路由概述 OSPF(下称"协议"或"本协议")仅在单一自治系统内部路由网际协议(IP)数据包,因此被分类为内部网关协议。该协议从所有可用的路由器中搜集链路状态(Link-state)信息从而构建该网络的拓扑图,由此决定提交给网际层(Internet Layer)的路由表,最终路由器依据在网际协议数据包
111 0
|
网络协议 数据库 网络架构
OSPF路由协议二
一.OSPF邻接关系的建立 在OSPF协议中邻居关系就是指在两台路由器中进行完两次Hello报文交互之后,建立起来的关系叫邻居关系。 在OSPF协议中邻居关系就是指在两台路由器中进行完链路状态数据库(LSDB)同步之后,建立起来的关系叫邻居关系。
88 0
|
网络协议 网络架构
OSPF 路由协议三
一OSPF的基本概念 1.OSPF区域 为了适应大型网络,OSPF在AS内划分多个区域 每个OSPF路由器只维护所在区域的完整链路状态信息 2.区域ID 区域ID可以表示一个十进制的数字 也可以表示成一个IP 3.骨干区域Area 0 负责区域间路由信息传播 4.非骨干区域 AREA号的区域统统为非骨干
137 0
OSPF 路由协议三
|
网络协议 数据库 网络架构
OSPF路由协议
1、OSPF的基本概念 2、OSPF邻接关系的建立 3、OSPF的应用环境 4、O应用环SPF的基本配置命令
OSPF路由协议
|
网络协议 网络架构