《TCP/IP 卷1》笔记:动态选路协议

动态选路协议

引言

前面讨论了静态选路,1)配置接口时,以默认方式生成路由表项,2)通过route命令增加表项,3)通过ICMP重定向命令生成表项。
本章讨论动态选路协议,用于路由器间的通信。RIP(routing information protocol)即选路信息协议。还有两种新的线路协议,OSPF和BGP。最后研究一种无分类域间选路技术。

动态选路

相邻路由器之间进行通信,告知对方每个路由器当前所连接的网络,就出现了动态选路。路由器之间必须采用选路协议进行通信。
动态选路是修改路由表的表目的一种选路策略。由路由守护程序执行。如果守护程序发现前往同一信宿存在多条路由,那么它将选择最佳路由放入内核路由表中。如果一条守护程序发现链路坏了,就会删除一条路由,绕过线路。
Internet是一组自治系统的方式组织,每个自治系统通常由单个实体管理。每个自治系统内的各个路由器之间的选路协议,称为内部网关协议IGP(Interior Gateway Protocol)或域内选路协议(intradomian routing protocol)
最常用的IGP是选路信息协议RIP。新的一种IGP是开放最短路径优先OSPF(Open Shortest Path First)协议。它意在取代RIP。
外部网关协议EGP(Exterior Gateway Protocol)或域内选路协议的分隔选路协议用于不同自治系统之间的路由器。BGP(Border Gateway Protocol)来取代EGP

Unix选路守护程序

routed和gated所支持的选路协议
unix上常常运行着routed路由守护程序,该程序只使用RIP通信。gated程序支持更多的协议。

RIP:选路信息协议

最广为使用也是最受攻击的选路协议。

报文格式
RIP报文
RIP协议报文格式
RIP协议报文格式

  • 命令字段:1表示请求,2表示应答,3和4舍弃不用,5轮询6轮询表项。请求表示要求其他系统发送其全部或部分路由表。应答则包含发送者全部或部分路由表
  • 版本字段:通常是1,第二版RIP此值是2
  • 地址系列:对于IP地址,其值是2
  • 32位IP地址
  • 度量:路由表项的优先级
  • 上线25个路由是因为:20*25+4=504,小于512字节。因此发送完整路由表常常需要多个报文

正常运行
看一下采取RIP协议的route程序正常运行的结果。RIP常用的UDP端口是520

  1. 初始化:启动一个守护程序时,先判断启动了哪些接口,挨个在接口发送请求报文,要求其他路由器 发送完成路由表。在点对点链路中发送给其他端。支持广播就以广播形式发送。命令字段是1,地址字段是0度量字段是16.这是请求全部路由表的特殊请求报文
  2. 接受请求:如果是特殊请求则发送全部路由表,否则处理每一个表项:如果有连接到指明地址的路由,则将度量设置成我们的值,否则就是度量为16。发送响应
  3. 接受响应,根据响应内容处理
  4. 定期选路更新。每过30s,发送全部的路由表给相连的路由器。
  5. 触发更新。每当一条路由的度量发送变化时,就进行更新。

每条路由都有与之相关的定时器。如果运行RIP的系统发现一条路由在3分钟内未更新,
就将该路由的度量设置成无穷大(16),并标注为删除。这意味着已经在6个30秒更新时间里
没收到通告该路由的路由器的更新了。再过60秒,将从本地路由表中删除该路由,以保证该
路由的失效已被传播开。

度量
RIP所使用的度量是以跳计算的。所有直连的接口跳数为1.
一个度量的例子

  • R1会在N1,N2发广播,它到N1和N2的跳数是1
  • R2会在N2,N3发广播,它到N2和N3的跳数是1
  • 所有相邻的路由器就知道了,到对应网络的跳数。R1->N3跳数是2,与R2到N1的跳数是2。
  • 在同一个自治系统中,每个路由器都在相连网络广播到不同网络的跳数,那么路由器设置到一个网络时选择跳数小的表目。
  • 跳数最大值是15,16表示不可达

问题

  • 度量的最大值为15限制了使用RIP的网络大小
  • RIP没有子网地址的概念,RIP无法区分非零部分是一个子网号还是主机地址。无法用子网掩码完全避免
  • 路由器或者链路发生故障,需要很长的一段时间才能稳定下来。这段时间内可能发送路由环路。

RIP版本2

RIP2版本格式

  • 路由域是一个选路程序的标识符,标识这个数据报的所有者。
  • 选路标记是为了支持外部网关协议而存在着。允许是一个EGP和BGP的自治系统号
  • 支持多播,减少同网络主机的负载

OSPF:开放最短路径优先

OSPF是另一个内部网关协议,克服了RIP的所有限制。RIP是采用距离向量的RIP协议,OSPF是一个链路状态协议。
在一个链路状态协议中,路由器并不与其邻站交换距离信息。它采用的是每个路由器主动地测试与其邻站相连链路的状态,将这些信息发送给它的其他邻站,邻站相互传播就建立起完整的路由表。
链路状态协议因为是主动的,所以收敛的更快,在链路故障后,能更快的稳定。
OSPF是直接使用IP,对于IP的首部有对应的protocol值。
OSPF优于RIP的特点

  1. OSPF可以对每个IP服务类型计算各自的路由集。这意味着对于任何目的,可以有多个路由表表项,每个表项对应着一个IP服务类型
  2. 给每个接口指派一个无维数的费用。通过吞吐率,RTT,可靠性来指派。给每个IP服务类型指派一个单独的费用
  3. 当对一个目的地址存在多个相同费率的路由时,OSPF在这些路由上平均分配流量,称之为流量平衡
  4. OSPF支持子网:子网掩码与每个通告路由相连。允许将一个任何类型的IP地址分割成多个不同大小的子网。到一个主机的路由是通过全1子网掩码进行通告的。默认路由IP地址0.0.0.0 网路掩码为全0进行通告
  5. 点对点链路不需要IP地址
  6. 采用简单的鉴别机制(加强安全防范)
  7. OSPF采用多播,减少负载。

BGP:边界网关协议

BGP是一种不同自治系统的路由器之间进行通信的外部网关协议。
BGP系统与其他BGP系统之间交换网络可达性信息。这些信息包括数据到达这些网络必须经过的自治系统AS中的所有路径。再构造一幅自治系统连接图,然后删除选路环,制订选路策略。
一个自治系统的流量分为本地流量和通过流量。本地流量就是起始或终止于自治系统的流量。其他为通过流量。
自治系统有以下几种类型:

  1. 残桩自治系统,它与其他自治系统只有单个连接
  2. 多接口自治系统,它与其他系统有多个连接,单拒绝传送通过流量
  3. 转送自治系统,它与其他自治系统有多个连接,在一些策略准则之下,可以传送本地流量和通过流量

BGP运行使用基于策略的选路。策略由管理员指定。选路策略与政治、安全与经济因素有关
BGP使用TCP作为传输层协议。两个运行BGP系统之间建立一条TCP连接,交换BGP路由表,更新时发送更新信号。
BGP是一个距离向量协议,但是不使用跳数,而是列举到每个目的地址的路由。通过定期发送keeplive报文给其邻站来检测TCP连接对端的链路或主机失败,频率是30s

CIDP:无类型域间选路

每个C类网络都需要一个路由表表项。CIDR是一个防止Internet路由表膨胀的方法,它也称为超网。
CIDR的基本观点是采用一种分配多个IP地址的方式,使其能将路由表中的许多表项总和成更少的数目。比如给一个站点采用总和的方式分配16个C类地址,,或者一个Internet提供商给16个站点分配各自的IP地址,也可以总和。对于16个站点只需要一个路由表表目
使用总和必须满足三个特性:

  1. 为进行选路要对多个IP地址进行总和,这些IP地址必须具有相同的高位地址比特
  2. 路由表和选路算法必须扩展成根据32bit ip地址和32bit掩码做出选路决策
  3. 必须扩展选路协议使其除了32bit地址外,还要32bit掩码。OSPF和RIP2都可以

CIDR使用一种技术,使用最佳匹配的是最长掩码匹配。因为掩码越长说明越精确。一个C类地址194.0.0.0~195.255.255.255。他们的高7bit为相同。则在其他自治系统中可以使用IP地址194.0.0.0和254.0.0.0掩码来表示一个路由表目。比如16个C类网络号194.0.16.0到194.0.31.255.那么这些网络号的路由表目只需要194.0.16.0.0ip地址和255.255.240.0掩码一条来表示这些网络号。
“无类型”的意思是现在的选路决策是基于整个32bit IP地址的掩码操作,不关系是什么类型IP地址。
CIDR是针对C类地址提出的。这种变化使得Internet路由表增长速度缓慢下来。但对于现存的选路没有帮助。

小结

有两种基本的选路协议。IGP和EGP,分别适用于自治系统内部和自治系统之间通信。
常用的IGP协议是RIP,而OSPF是正在广泛使用的新IGP协议。CIDR是一种新技术,用于减少Internet路由表的大小
你可能还会遇到一些其他的OSI选路协议。域间选路协议(IDRP)最开始时,是一个为
了使用OSI地址而不是IP地址,而进行修改的BGP版本。IntermediateSystemtoIntermediate
System协议(IS-IS)是OSI的标准IGP。可以用它来选路CLNP(无连接网络协议),这是一
种与IP类似的OSI协议。IS-IS和OSPF相似。
动态选路仍然是一个网间互连的研究热点。对使用的选路协议和运行的路由守护程序进
行选择,是一项复杂的工作。[Perlman1992]提供了许多细节。

习题

10.1在图10-9中哪些路由是从路由器kpno进入gateway的?

网络图
10-9
:1)140.252.101.0 2)140.252.104.0这两不是,其他都是

10.2假设一个路由器要使用RIP通告30个路由,这需要一个包含25条路由和另一个包含5条路
由的数据报。如果每过一个小时,第一个包含25条路由的数据报丢失一次,那么其结果
如何?

:一般是30s通告一次。每过一小时丢一个问题不大吧。如果路由表目丢失,那么就发送给默认的路由表目。

10.3OSPF报文格式中有一个检验和字段,而RIP报文则没有此项,这是为什么?
:OSPF直接使用IP协议。是IP协议的上层协议,与UDP一层,IP协议只校验自己的首部和,所以需要OSPF自己校验和。RIP使用UDP协议,UDP协议自带了校验和。

10.4像OSPF这样的负载平衡,对于传输层的影响是什么?
:传输层发送的顺序与接收的顺序不能保证一致。

10.5查阅RFC1058关于实现RIP的其他资料。在图10-8中,140.252.1网络的每个路由器只通
告它所提供的路由,而它并不能通过其他路由器的广播中知道任何其他路由。这种技术
的名称是什么?

:叫做最少知道原则。哈哈我是编的

10.6在3.4节中,我们说过除了图10-7中所示的8个路由器外,140.252.1子网上还有超过100个主
机。那么这100个主机是如何处理每30秒到达它们的8个广播信息呢(图10-8)?

:如果收到的RIP协议报中的路由与本机的路由表中不相同。比如:新增了一条路由表目,则路由守护程序进行路由表的相应增加,如果表目的度量变化了,也进行相应的修改。如果超过6*30s没有收到一条路由表的表目信息,则对该表目的度量标记为16,表示不可达

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值