TCP/IP详解 第十章 动态选路协议

何时使用动态选路协议

在小型网络中一般使用静态选路,在配置接口时,以默认方式生成路由表项(直连),通过route命令添加路由表项,或者通过ICMP重定向报文生成路由表项。
但是在网络环境复杂或者以上的方法无法满足的时候就会使用动态选路协议了

动态选路协议是用于路由器之间的通信
包括RIP,OSPF, BGP, 无分类域间选路

路由器上有个路有守护进程,用来运行选路协议,与其相邻的一些路由器进行通信。该守护进程根据它从相邻路由器接收到的信息,更新内核中的路由表

这时候 路由表是由路由守护进程动态的增加或删除,而不再是通过route命令

选路机制

守护进程发现前往同一信宿(路由或主机)存在多条路由,那么它以某种方式进行筛选,选择最优路线,并增加到路由表中。
如果路由守护发现某一条链路已经断开,它可以删除该路由或者增加另一条路由以绕过此问题

IGP

Internet采用的是自治系统的方式组织的。每个自治系统通常由单个管理。通常是一所大学或者一家公司定义为自治系统。骨干网也是一个自治系统

每个自治系统都可以选择该自治系统中各个路由之间的选路协议。
这种协议称为IGP(内部网关协议或域内选路协议)
IGP 是一系列协议的分类名称
IGP中最常用的是RIP协议

EGP / BGP

而外部网管协议是EGP, EGP有新版和旧版分别,同名。用于不同自治系统之间的路由器。
新EGP是骨干网和连接到骨干网的区域性网络使用的边界协议BGP

Unix选路守护程序

常常是routed路由守护程序,只提供RIP,这是一种小型到中型的网络选路协议
另一个是gated支持IGP和EGP
在这里插入图片描述

RIP选路信息协议

描述文件RFC1058

报文格式

报文包含在UDP数据报中
在这里插入图片描述

RIP数据报格式
在这里插入图片描述
命令字段:

  1. 请求,要求其他系统发送全部或部分路由表项
  2. 应答 包含发送者的全部或部分路由表
  3. 舍弃不用
  4. 舍弃不用
  5. 轮询(非正式命令)
  6. 轮询表项(非正式命令)

版本字段:
1代表第一版,2代表第二版
地址系列字段为2表示是IP地址。
度量是以跳计数

数据报长度

RIP报文长度为20字节。可以发送最多25条路由。总长度就是20*25+4=504字节,小于512字节。经常,发送完整的路由表需要多个报文

运行过程

RIP常用的UDP端口为520

初始化:

路由守护进程启动时,先判断启动了那些接口,然后再这些端口上发送请求报文,要求其他路由器发送完整的路由表过来。如果是点对点,则对其他终端发,如果网络支持广播就以广播形式发送。(520端口,报文命令字段1,地址系列为0,度量字段为16)这种报文是要求对方提供完整路由表的特殊报文。

接受到请求时:

如果企业接受到了路由请求报文,也就是上面说的这个报文。则会将完整的路由表发送过去。否则,会处理请求中的每一项:如果有连接到指名地址的路由,则将度量设置成我们的值。否则就设置成16,16是代表无穷大的意思。然后发送响应报文

接受到响应:

根据响应报文对路由表进行更新。

定期选路更新:

每30秒,路由器会将完整的路由表发给相邻的路由器。广播或点对点。

触发更新:

每当一条路由的度量发生变化,就对它进行更新。然后发送该表项给相邻的路由器

异常处理

如果运行RIP的系统发现有一条路由3分钟内未更新,就将该路由的度量设置成16,并标注为删除。也就是说在6个30秒更新时间内没收到通告该路由的路由更新了。在过60秒就在本地路由表中删除该路由。

度量

以跳计算。直接连接接口为1跳
在这里插入图片描述
R1跟N1, N2为1跳
R2跟N3,N2为1跳
R2跟R1为2跳
数值最大跳数为15,16表示无路由到达该IP地址

RIP缺点

  1. RIP没有子网地址的概念。这样有可能会出错
  2. 当路由器或者链路法神故障时,如果故障发生超过3分钟。有可能发生路由环路(数据报不停的在网路中传输。导致瘫痪)。
    实现RIP时,必须采用很多措施来防止路由环路。
  3. 度量最大值为15,限制了使用RIP网络的大小。

RIP2

RPI2是RIP的扩充,由RFC1388定义。主要是利用那些RIP数据报中必须为0的那些字段来加入额外的信息。如果忽略这些,俺么RIP和RIP2可以互换。
在这里插入图片描述
选路域:指出了该数据报的所有者。它可以是一个进程号,允许单个路由器上运行多个RIP实例。每个实例对应1个进程号
路由标记(选路标记):为了支持外部网关协议而存在。它携带一个EGP和BGP的自治系统号。
子网掩码:对应IP地址。
下一站IP地址:指名下一跳IP地址(不是目的IP)。如果为0则表明发往目的地址的报文应该发给发送RIP报文的系统。
RIP2提供了一种简单的鉴别机制。 报文的前20字节中的地址系列设为0xffff,路由标记为2.其余16字节包含1个明文口令。
支持多播(RIP不支持)

OSPF第二版

开放最短路径优先 另一个内部网关协议。
RFC1247描述
OSPF是链路状态协议:
路由器并不与响铃路由器交换距离协议,而是主动测试与相邻的路由器测试其状态。并将这些信息发送给其他相邻的路由器,其他相邻的路由将这些信息传播出去。每个路由器都接受这些信息以此来完善路由表

与RIP不同点

  1. OSPF直接使用IP协议,而不是UDP或者TCP
  2. OSPF能够对每个IP服务类型计算各自的路由集,也就是意味着可以有多个路由表项。
  3. 给每个接口指派一个无维数的开销。可以通过吞吐率,往返时间, 可靠性或其他性能指标进行指派,可以给每个IP服务类型指派一个单独的费用
  4. 当对同一个IP地址存在多个相同开销的路由时,OSPF会平均分配流量。
  5. 支持子网:子网掩码与每个通告路由相连。这样允许一个任何类型的IP地址分割成不同大小的子网(变长子网)。到一个主机的路由是全1子网掩码,到默认路由就是全0(IP地址0.0.0.0,掩码也是全0)
  6. 点对点之间不需要每端都有IP地址。 也就是无编号网络。
  7. 采用多播而不是广播
    OSPF逐渐替代RIP

BGP

边界网关协议
替代EGP
RFC1267描述第三版协议,RFC1268描述如何在Internet中使用
RFC1467描述第四版
BGP之间交换的信息包括数据到达这些网络所必须经过的自治系统AS中所有的路径。这些信息足以构造一幅自治系统的连接图。然后根据这连接图删除选路环,制定选路策略

将IP数据报分为本地流量和通过流量

  1. 本地流量是指数据在从本自治系统发出。或者本自治系统最终接受处理的IP数据报
  2. 其他的称为通过流量

Internet使用BGP的目的是减少通过流量

自治系统分类
  1. 残桩自治系统(stub AS):与其他自治系统只有单个连接。只有本地流量
  2. 多接口自治系统(multihomed AS):与其他自治系统有多个连接,但拒绝传送通过流量
  3. 转送自治系统(transit AS):与其他自治系统有多个连接,在一些策略规则下可以传送本地流量和通过流量

Internet的拓扑结构就是这3个AS任意相连
stub AS和multihomed AS用EGP,不用BGP

BGP允许自治系统管理员制定选路策略。
BGP基于TCP传输。两个BGP通过TCP建立连接,然后交换路由表。当路由表发生变化时再发送更新信号
BGP是距离向量协议。但他列举了每个目的地址的路由(到达目的地址的序列号)
系统标识为16bit数字
BGP定期发送keepalive报文给相邻站检测TCP连接对端的链路或主机失败。报文发送间隔为30秒。应用层的keepalive和TCP的keepalive是独立的东西

CIDR

无类型域间选路
是一个防止Internet路由表膨胀的方法。也称为超网。RFC1518RFC1519对他进行定义和描述.RFC1467对开发状况进行小结

CIDR的基本观点

将路由表中的多项总和成更少的数目。
比如,8个不同的站点通过同一个Internet服务商的同一个连接点接入Internet的。那就将这8个不同IP地址路由表进行总和。那么对与这8个站点。只需要单个路由表项即可

采用这种方法的条件:

  1. IP地址必须具有相同的高位地址比特
  2. 路由表和选路算法必须拓展成根据32bitIP地址和32bit子网掩码做出选路决策
  3. 必须扩展选路协议使其除32bit地址外,还要有32bit掩码。OSPF和RIP-2都行

另一种技术,使最佳匹配总是最长的匹配。
”无类型“的意思是选路决策是基于整个32BitIP地址的掩码操作,而不管是A类还是B类还是C类
这个是一个短期解决方案。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章