查看: 6305|回复: 5

[转帖]路由协议原理介绍

[复制链接]
发表于 2007-11-16 14:27:19 | 显示全部楼层 |阅读模式
路由协议原理介绍(单播,组播,RIP,OSPF)
单播路由协议配置      
   
        1.IP路由
路由就是通过互联的网络把信息从源地址传输到目的地址的活动。路由发生在0SI网络参考模型中的第三层即网络层。
在因特网中进行路由选择要使用路由器,路由器根据所收到的报文的目的地址选择一条合适的路由(通过某一网络),将报文传送到下一个路由器,路由中最后的路由器负责将报文送交目的主机。
         路由表
路由器转发分组的关键是路由表。每个路由器中都保存着一张路由表,表中每条路由项都指明分组到某子网或某主机应通过路由器的哪个物理端口发送,然后就可到达该路径的下一个路由器,或者不再经过别的路由器而传送到直接相连的网络中的目的主机。路由表中包含了下列关键项:
        目的地址:用来标识IP 包的目的地址或目的网络。
        网络掩码:与目的地址一起来标识目的主机或路由器所在的网段的地址。将目的地址和网络掩码“逻辑与”后可得到目的主机或路由器所在网段的地址。例如:目的地址为129.102.8.10,掩码为255.255.0.0 的主机或路由器所在网段的地址为129.102.0.0。掩码由若干个连续“1”构成,既可以以点分十进制表示,也可以用掩码中连续“1”的个数来表示。
        输出接口:说明IP 包将从该路由器哪个接口转发。
        下一跳IP 地址:说明IP 包所经由的下一个路由器。
        本条路由加入IP 路由表的优先级:针对同一目的地,可能存在不同下一跳的若干条路由,这些不同的路由可能是由不同的路由协议发现的,也可以是手工配置的静态路由。优先级高(数值小)将成为当前的最优路由。
根据路由的目的地不同,可以划分为:
        子网路由:目的地为子网
        主机路由:目的地为主机
另外,根据目的地与该路由器是否直接相连,又可分为:
        直接路由:目的地所在网络与路由器直接相连
        间接路由:目的地所在网络与路由器不是直接相连为了不使路由表过于庞大,可以设置一条缺省路由。凡遇到查找路由表失败后的数据包,就选择缺省路由转发。


2.        静态路由配置
        静态路由简介
        静态路由
静态路由是一种特殊的路由,它由管理员手工配置而成。通过静态路由的配置可建立一个互通的网络,但这种配置问题在于:当一个网络故障发生后,静态路由不会自动发生改变,必须有管理员的介入。
在组网结构比较简单的网络中,只需配置静态路由就可以使路由器正常工作,仔细设置和使用静态路由可以改进网络的性能,并可为重要的应用保证带宽。
静态路由还有如下的属性:
        可达路由,正常的路由都属于这种情况,即IP 报文按照目的地标示的路由被送往下一跳,这是静态路由的一般用法。
        目的地不可达的路由,当到某一目的地的静态路由具有“reject”属性时,任何去往该目的地的IP 报文都将被丢弃,并且通知源主机目的地不可达。
        目的地为黑洞的路由,当到某一目的地的静态路由具有“blackhole”属性时,任何去往该目的地的IP 报文都将被丢弃,并且不通知源主机。
其中“reject”和“blackhole”属性一般用来控制本路由器可达目的地的范围,辅助网络故障的诊断。
         缺省路由
缺省路由是一种特殊的路由,可以通过静态路由配置,某些动态路由协议也可以生成缺省路由,如OSPF。简单地说,缺省路由就是在没有找到匹配的路由表入口项时才使用的路由。
即只有当没有合适的路由时,缺省路由才被使用。在路由表中,缺省路由以到网络0.0.0.0(掩码为0.0.0.0)的路由形式出现。如果报文的目的地址不能与路由表的任何入口项相匹配,那么该报文将选取缺省路由。如果没有缺省路由且报文的目的地不在路由表中,那么该报文被丢弃的同时,将向源端返回一个 ICMP报文报告该目的地址或网络不可达。
3        RIP路由配置
     RIP路由协议简介
RIP(Routing Information Protocols,路由信息协议)是使用最广泛的距离向量协议,RIP协议报文承载在UDP协议上,它的端口号是520。RIP使用“跳数”来计算到目的网络的距离。RIP规定最大跳数为15,若跳数为16 则表示网络不可达。
距离向量协议要求网内各个节点向自己所有的邻接点广播它对网内其它节点的可达性(用距离来衡量),并通过逐级扩散的方式使这种可达性信息在网内传播,从而使各个节点能推算出自己到网内其它非邻接节点的路由。
RIP 每隔30 秒钟发送一次路由刷新报文,如果在180 秒内收不到从某一网络邻居发来的路由刷新报文,则将该网络邻居的所有路由标记为不可达。如果在300 秒之内收不到从某一网上邻居发来的路由刷新报文,则将该网上邻居的路由从相应协议路由表中清除。为提高性能,防止产生路由环,RIP 支持水平分割(Split Horizon)和毒性逆转(Poison Reverse)。RIP 还可引入其它路由协议所得到的路由。
路由信息协议主要包含两个版本RIP-1、RIP-2,其中版本2中增加支持明文认证和MD5 密文认证,并支持可变长子网掩码。由两个主要的文档中正式定义:RFC 1058和1723。RFC 1058(1988)描述了RIP的第一版实现,RFC 1723(1994)是它的更新,允许RIP分组携带更多的信息和安全特性。
RIP协议的主要工作机制:
        初始化时,在每个运行RIP协议的接口上发送请求报文,运行RIP协议的相邻结点收到请求后,把整个路由表作为响应发送给请求者。
        接收到响应后,刷新本地的路由信息表中的内容。并向相邻的所有结点广播触发更新报文。
        每30秒路由器就把完整的路由表发送给相邻的路由器。
        为每一条路由条目关联相关的定时器,利用超时机制维护路由信息的实时性和有效性。
我们的产品的RIP功能特点主要有:
        支持触发更新
        支持RIP-v1、RIP-v2版本
        支持简单明文认证和MD5认证
        保持路由
       
4 OSPF路由协议概述
OSPF即开放最短路径优先协议(Open Shortest Path First),它是Internet Engineering Task Force(IETF)的IGP(88年成立,专门研究域内路由协议)工作组于90年代初提出的。OSPF协议的最新版本是1998年公布的OSPFv2 (RFC 2178)。
OSPF是一种基于链路状态的路由协议,它要求各结点发送自己的链路状态(Link StateAdvertisement-LSA)到同一层次区域(area)的所有其它结点。LSA中包括结点的邻接情况,所使用的测度等,这样区内各结点便逐渐掌握了全网的拓扑情况,并以此使用Dijkstra最短路径算法(也称为SPF算法)来产生最短路径树,它代表了从该结点到区内其他各结点的最短路径。以IP报文的形式交换OSPF协议路由信息。
OSPF把一个大型网络分割成多个小型网络的能力被称为分层路由,这些被分割出来的小型网络就称为“区域”(Area)。由于区域内部路由器仅与同区域的路由器交换LSA信息,这样LSA报文数量及链路状态信息库表项(LSDB)都会极大减少, SPF计算速度因此得到提高。多区域的OSPF必须存在一个主干区域,主干区域负责收集非主干区域发出的汇总路由信息,并将这些信息返还给到各区域。
其特性如下:
        适应范围——支持各种规模的网络,最多可支持几百台路由器。
        快速收敛——在网络的拓扑结构发生变化后立即发送更新报文,使这一变化在自治系统中同步。
        无自环——由于OSPF根据收集到的链路状态用最短路径树算法计算路由,从算法本身保证了不会生成自环路由。
        区域划分——允许自治系统的网络被划分成区域来管理,区域间传送的路由信息被进一步抽象,从而减少了占用的网络带宽。
        等值路由——支持到同一目的地址的多条等值路由。
        路由分级——使用4 类不同的路由,按优先顺序来说分别是:区域内路由、区域间路由、第一类外部路由、第二类外部路由。
        支持验证——支持基于接口的报文验证以保证路由计算的安全性。
        组播发送——支持组播地址。
OSPF协议的优点
        通过设置区域Area,分层路由等使OSPF协议能支持更大型的网络拓扑结构。
        相对于RIP等使用基于VD算法的路由协议,OSPF区域之间及不同区域之间所占用的通信量带宽极大地减少,避免了广播风暴。
        收敛速度快,当路由发生变化时,SPF能更快达到新的稳定状态。
        使用链路状态的算法,杜绝了路由自环的弊端。

         OSPF 协议路由的计算过程

OSPF 协议路由的计算过程可简单描述如下:
        每个支持OSPF协议的路由器都维护着一份描述整个自治系统拓扑结构的链路状态数据库LSDB(Link State Database)。每台路由器根据自己周围的网络拓扑结构生成链路状态广播LSA ( Link StateAdvertisement),通过相互之间发送协议报文将LSA 发送给网络中其它路由器。这样每台路由器都收到了其它路由器的LSA,所有的LSA放在一起便组成了链路状态数据库。
        由于LSA 是对路由器周围网络拓扑结构的描述,那么LSDB 则是对整个网络的拓扑结构的描述。路由器很容易将LSDB 转换成一张带权的有向图,这张图便是对整个网络拓扑结构的真实反映。显然,各个路由器得到的是一张完全相同的图。
        每台路由器都使用SPF 算法计算出一棵以自己为根的最短路径树,这棵树给出了到自治系统中各节点的路由,外部路由信息为叶子节点,外部路由可由广播它的路由器进行标记以记录关于自治系统的额外信息。显然,各个路由器各自得到的路由表是不同的。
        此外,为使每台路由器能将本地状态信息(如可用接口信息、可达邻居信息等)广播到整个自治系统中,在路由器之间要建立多个邻接关系,这使得任何一台路由器的路由变化都会导致多次传递,既没有必要,也浪费了宝贵的带宽资源。为解决这一问题,OSPF 协议定义了“指定路由器”DR(DesignatedRouter),所有路由器都只将信息发送给DR,由DR 将网络链路状态广播出去。这样就减少了多址访问网络上各路由器之间邻接关系的数量。
OSPF 协议支持基于接口的报文验证以保证路由计算的安全性;并使用IP 多播方式发送和接收报文。
         OSPF 的协议报文

OSPF 有五种报文类型:
        HELLO 报文(Hello Packet):
最常用的一种报文,周期性的发送给本路由器的邻居。内容包括一些定时器的数值、DR、BDR(Backup Designated Router)以及自己已知的邻居。
        DD 报文(Database Description Packet):
两台路由器进行数据库同步时,用DD 报文来描述自己的LSDB,内容包括LSDB 中每一条LSA 的摘要(摘要是指LSA 的HEAD,通过该HEAD 可以唯一标识一条LSA)。这样做是为了减少路由器之间传递信息的量,因为LSA的HEAD 只占一条LSA 的整个数据量的一小部分,根据HEAD,对端路由器就可以判断出是否已有这条LSA。
        LSR 报文(Link State Request Packet):
两台路由器互相交换过DD 报文之后,知道对端的路由器有哪些LSA 是本地的LSDB 所缺少的,这时需要发送LSR 报文向对方请求所需的LSA。内容包括所需要的LSA 的摘要。
        LSU 报文(Link State Update Packet):
用来向对端路由器发送所需要的LSA,内容是多条LSA(全部内容)的集合。
        LSAck 报文(Link State Acknowledgment Packet)
用来对接收到的LSU 报文进行确认。内容是需要确认的LSA 的HEAD(一个报文可对多个LSA 进行确认)。
回复

使用道具 举报

发表于 2007-12-24 14:17:35 | 显示全部楼层
真详细,支持楼主,辛苦了
回复

使用道具 举报

发表于 2007-12-26 15:22:31 | 显示全部楼层
恩,很详细,谢谢楼主了
回复

使用道具 举报

发表于 2008-3-28 10:32:55 | 显示全部楼层
常见的都写出来!!谢谢LZ
回复

使用道具 举报

发表于 2008-5-29 22:47:00 | 显示全部楼层
哈哈 来学习了 正在学习网络呢
回复

使用道具 举报

发表于 2008-7-15 17:36:04 | 显示全部楼层
很基础的知识,谢谢分享了~~
顶起`~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | CSNA会员注册

本版积分规则

快速回复 返回顶部 返回列表