动态选路协议
引言
第9章学了静态选路。在配置接口时,通过route命令增加表项(通常从系统自引导程序文件),或是通过ICMP重定向生成表项(出错时)。
但是静态选路受制于三种情况:
- 网络很小
- 与其他网络只有单个连接点
- 没有多余路由
如果上述三种情况不能全部满足,通常使用动态选路。
动态选路
当相邻路由器之间进行通信,以告知对方每个路由器当前所连接的网络,这时就出现了动态选路。
路由器上有一个进程——路由守护程序,它运行选路协议,并与其相邻的一些路由器进行通信。
第9章所描述的选路方式称为选路机制:内核搜索路由表,查找现有的线路。
路由守护程序将选路策略加入到系统中,选择(最佳)路由并加入到内核的路由表中;如果发现一条链路断开,它可以删除或增加另一条路由来解决。路由是路由守护程序动态地增加或删除的。
Internet是以一组自治系统(AS,Autonomous System)的方式组织的,每个自治系统通常由单个实体管理。
每个自治系统可以选择该自治系统中各个路由器之间的选路协议。这种协议我们称之为内部网关协议IGP(Interior Gateway Protocol)或域内选路协议(intradomain routing protocol)。
- 最常用的IGP是RIP(Routing Information Protocol),新的开放最短路径优先OSPF协议,则意在取代RIP。
外部网关协议EGP或域内选路协议的分隔选路协议用于不同AS之间的路由器。
Unix选路守护程序
routed程序——RIP
gated程序——IGP、EGP
RIP:选路信息协议
最广为使用的选路协议。
报文格式
RIP报文包含在UDP数据报中。
命令字段1表示请求,2表示应答。
请求表示要求其他系统发送其全部或部分路由表。应答则包含发送者全部或部分路由表。
RIP报文最多可以通告25条路由。
运行
- RIP常用的UDP端口号是520.
- 定期选路更新:每过30秒,所有或者部分路由器会将其完整路由表发送给相邻路由器。
- 触发更新:每当一条路由的度量发生变化时,就对它进行更新,不需要发送完整路由表。
度量
- RIP所使用的度量是以跳(hop)计算的,所有直接连接接口的跳数为1.
- 跳数最大为15,被限制了网络的规模。
缺陷
- 没有子网地址的概念
- 在路由器或链路发生故障后,需要很长的一段时间才能稳定下来,一般需要几分钟。
OSPF:开放最短路径优先(Open Shortest Path First)
OSPF是除RIP外的另一个内部网关协议,它克服了RIP的所有限制。
- 与采用距离向量的RIP协议不同的是, OSPF是一个链路状态协议。距离向量的意思是,RIP发送的报文包含一个距离向量(跳数)。每个路由器都根据它所接收到邻站的这些距离向量来更新自己的路由表。
- 在一个链路状态协议中,路由器并不与其邻站交换距离信息。它采用的是每个路由器主动地测试与其邻站相连链路的状态,将这些信息发送给它的其他邻站,而邻站将这些信息在自治系统中传播出去。每个路由器接收这些链路状态信息,并建立起完整的路由表。
- 链路状态协议总是比距离向量协议收敛更快。收敛的意思是在路由发生变化后,例如在路由器关闭或链路除故障后,可以稳定下来。
- OSPF直接使用IP,不使用TCP或UDP。
BGP:边界网关协议
- BGP是一种不同自治系统的路由器之间进行通信的外部网关协议。
- BGP系统与其他BGP系统之间交换网络可到达信息。这些信息包括数据到达这些网络所必须经过的自治系统AS中的所有路径。这些信息足以构造一幅自治系统连接图。然后,可以根据连接图删除选路环,制订选路策略。
- BGP使用TCP作为其传输层协议。
- BGP是一个距离向量协议,但是与(通告到目的地址跳数的)RIP不同的是,BGP列举了到每个目的地址的路由(自治系统到达目的地址的序列号)。这样就排除了一些距离向量协议的问题。采用16 bit 数字表示自治系统标识。
CIDR:无类型域间选路
无类型域间选路(CIDR)是一个防止Internet路由表膨胀的方法,它也称为超网(supernetting)。
CIDR的基本观点是采用一种分配多个IP地址的方式,使其能够将路由表中的许多表项总和成更小的数目。例如,给单个站点分配16个C类地址,以一种可以用总和的方式来分配这16个地址,这样这16个地址可以参照Internet上的单个路由表表项。
例如:172.168.0.0/16