OSPF学习笔记整理(一)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
第一部分 OSPF的一些基本概念
在链路状态路由协议中,路由器和路由器之间交换的是链路状态。而距离矢量路由协议中,路由器与路由器之间交换的是路由表。链路状态路由协议能够识别更多的网络信息,所以选出的路由比距离矢量路由协议选出的路由更优。在OSPF中,一共维护着三个数据库:所有的邻居,区域内所有的路由器(链路状态),到达目的地最佳路径。OSPF是通过链路状态表中整个区域的链路状态来计算出路由表的。
OSPF中的三张表:邻居表(adjacency database),拓扑表,路由表。
OSPF的网络在设计时应该设计为层次性的网络,这是一个强制要求。有两个级别的层次一个为主干区Transit area(backbone or area 0),另一个为非主干区域Regular areas(nonbackbone areas)。可以认为,在区域内部交换的是链路状态,而在区域和区域之间交换的则是路由信息。
OSPF区域的特点:
1. 减小路由表的条目;
2. 本地化拓扑结构,只在本区域传播,将拓扑变化影响减到最小;
3. 详细的LSA的洪泛将终结在区域的边界上;
4. 需要层次化的网络设计;
5. 一般情况下,所有的非主干区域都应该与主干区域相连,非主干区域之间是不会交换信息的;
ABR称为区域边界路由器,作用就是将非主干区域和主干区域连接起来。
链路状态数据结构(邻居表):
1. OSPF通过交换Hello包来发现邻居;
2. 通过检查Hello包中的一些选项或者变量后建立邻居关系的;
3. 在点到点的广域网环境中,邻居之间是全互联的;
4. 在局域网环境中,所有路由器只与DR和BDR形成邻接关系(adjacency),而其他的路由器(DROTHERs)之间则只是two-way的关系;
5. 路由更新和拓扑信息之在邻接关系的路由器之间进行传播;
所有的路由更新,以及链路状态信息都是通过网络中的DR和BDR传输的。也就是说,所有的DROTHER都会与DR还有BDR建立邻接关系(adjacency)。
SPF算法:在每个路由器的链路状态表中都应用Dijkstra’s SPF 算法。
1. 每个路由器上都会有一个链路状态数据库;
2. 每个路由器都会先将自己作为一个根,然后建立起一个SPF树;
3. 最优路径的计算是到达目的地的所有路径开销的总和;
4. 最优路径将被放到路由表中;
LSA的操作:
1. 首先,与自己的链路状态表对比一下,看看是否在其中;
2. 如果没有的话,把它加到自己的链路状态数据库中,同时发出一个确认包;
3. 如果有的话,比较顺序号,如果顺序号相同,则忽略。如果小于自己的,则给源发送一个LSU;
4. 然后洪泛传输自己的LSA给其他路由器;
5. 运行SPF算法,重新计算路由表;
PS:LSA传输的时候,每次只能传输一跳。
第二部分 OSPF包的类型
OPSF中几种包的类型:
1. Hello包,建立邻居关系;
2. 数据库的描述包;
3. 链路状态请求;
4. 链路状态的更新;
5. 链路状态的确认;
OSPF是通过发送Hello包来建立邻居关系的,OSPF的Hello包是通过多播向外发送的,所有运行OSPF的路由器都会接收这个多播包。 Hello包中的内容:Router ID、Hello和死亡时间间隔、邻居、区域ID、Router的优先级、DR的IP地址、BDR的IP地址、验证密码、stub区域标记。在OSPF 中,为红色字体的那些内容必需要相同才能形成邻居关系。
DROTHER之间的稳定状态是two-way状态,DR或BDR与DROTHER之间的稳定状态是full state状态。
所有路由器给DRs发送LSU的多播地址时224.0.0.6,DR给其他路由器发送LSU的多播地址是224.0.0.5。
LSA的顺序号:
1. 每一个记录在链路状态数据库中的LSA都包含一个顺序号;
2. 顺序号是一个4byte的数字从0X80000001到0X7fffffff;(如果到达最大号,网络可能会出现短暂的波动。也是***OSPF网络的一个方法)
3. OSPF的LSA在每隔30分钟回洪泛一次,来同步数据库信息。每次都将顺序号增加一;
4. 当同时收到两个LSA时,通过顺序号的高低来判断版信息的新旧;
第三部分 OSPF的基本配置(单区域)
Router(config)#router ospf process-id
Router(config-router)#network address inverse-mask area [area-id]
Router#show ip route ospf (显示所有通过ospf学习到的路由)
Router#show ip ospf interface (显示ospf的router ID,area ID,邻接关系等信息)
Router#show ospf (显示ospf的router ID,计时器等信息)
Router#show ospf neighbors [detail] (显示ospf邻居信息,包括DR和BDR的信息)
OSPF的Router ID:
1. 路由器了解OSPF网络是通过Router ID的;
2. 链路状态数据库是使用Router ID来区分的;
3. 默认的情况下,Router ID是使用在启用OSPF进程时路由器上活跃端口中IP地址最大的IP地址作为Router ID的;
4. 如果在路由器上设置了loopback端口,则由启用OSPF进程时路由器上活跃loopback端口中IP地址最大的IP地址作为Router ID的;
5. 可以使用router-id这个命令来更改OSPF的Router ID;
在链路状态路由协议中,路由器和路由器之间交换的是链路状态。而距离矢量路由协议中,路由器与路由器之间交换的是路由表。链路状态路由协议能够识别更多的网络信息,所以选出的路由比距离矢量路由协议选出的路由更优。在OSPF中,一共维护着三个数据库:所有的邻居,区域内所有的路由器(链路状态),到达目的地最佳路径。OSPF是通过链路状态表中整个区域的链路状态来计算出路由表的。
OSPF中的三张表:邻居表(adjacency database),拓扑表,路由表。
OSPF的网络在设计时应该设计为层次性的网络,这是一个强制要求。有两个级别的层次一个为主干区Transit area(backbone or area 0),另一个为非主干区域Regular areas(nonbackbone areas)。可以认为,在区域内部交换的是链路状态,而在区域和区域之间交换的则是路由信息。
OSPF区域的特点:
1. 减小路由表的条目;
2. 本地化拓扑结构,只在本区域传播,将拓扑变化影响减到最小;
3. 详细的LSA的洪泛将终结在区域的边界上;
4. 需要层次化的网络设计;
5. 一般情况下,所有的非主干区域都应该与主干区域相连,非主干区域之间是不会交换信息的;
ABR称为区域边界路由器,作用就是将非主干区域和主干区域连接起来。
链路状态数据结构(邻居表):
1. OSPF通过交换Hello包来发现邻居;
2. 通过检查Hello包中的一些选项或者变量后建立邻居关系的;
3. 在点到点的广域网环境中,邻居之间是全互联的;
4. 在局域网环境中,所有路由器只与DR和BDR形成邻接关系(adjacency),而其他的路由器(DROTHERs)之间则只是two-way的关系;
5. 路由更新和拓扑信息之在邻接关系的路由器之间进行传播;
所有的路由更新,以及链路状态信息都是通过网络中的DR和BDR传输的。也就是说,所有的DROTHER都会与DR还有BDR建立邻接关系(adjacency)。
SPF算法:在每个路由器的链路状态表中都应用Dijkstra’s SPF 算法。
1. 每个路由器上都会有一个链路状态数据库;
2. 每个路由器都会先将自己作为一个根,然后建立起一个SPF树;
3. 最优路径的计算是到达目的地的所有路径开销的总和;
4. 最优路径将被放到路由表中;
LSA的操作:
1. 首先,与自己的链路状态表对比一下,看看是否在其中;
2. 如果没有的话,把它加到自己的链路状态数据库中,同时发出一个确认包;
3. 如果有的话,比较顺序号,如果顺序号相同,则忽略。如果小于自己的,则给源发送一个LSU;
4. 然后洪泛传输自己的LSA给其他路由器;
5. 运行SPF算法,重新计算路由表;
PS:LSA传输的时候,每次只能传输一跳。
第二部分 OSPF包的类型
OPSF中几种包的类型:
1. Hello包,建立邻居关系;
2. 数据库的描述包;
3. 链路状态请求;
4. 链路状态的更新;
5. 链路状态的确认;
OSPF是通过发送Hello包来建立邻居关系的,OSPF的Hello包是通过多播向外发送的,所有运行OSPF的路由器都会接收这个多播包。 Hello包中的内容:Router ID、Hello和死亡时间间隔、邻居、区域ID、Router的优先级、DR的IP地址、BDR的IP地址、验证密码、stub区域标记。在OSPF 中,为红色字体的那些内容必需要相同才能形成邻居关系。
DROTHER之间的稳定状态是two-way状态,DR或BDR与DROTHER之间的稳定状态是full state状态。
所有路由器给DRs发送LSU的多播地址时224.0.0.6,DR给其他路由器发送LSU的多播地址是224.0.0.5。
LSA的顺序号:
1. 每一个记录在链路状态数据库中的LSA都包含一个顺序号;
2. 顺序号是一个4byte的数字从0X80000001到0X7fffffff;(如果到达最大号,网络可能会出现短暂的波动。也是***OSPF网络的一个方法)
3. OSPF的LSA在每隔30分钟回洪泛一次,来同步数据库信息。每次都将顺序号增加一;
4. 当同时收到两个LSA时,通过顺序号的高低来判断版信息的新旧;
第三部分 OSPF的基本配置(单区域)
Router(config)#router ospf process-id
Router(config-router)#network address inverse-mask area [area-id]
Router#show ip route ospf (显示所有通过ospf学习到的路由)
Router#show ip ospf interface (显示ospf的router ID,area ID,邻接关系等信息)
Router#show ospf (显示ospf的router ID,计时器等信息)
Router#show ospf neighbors [detail] (显示ospf邻居信息,包括DR和BDR的信息)
OSPF的Router ID:
1. 路由器了解OSPF网络是通过Router ID的;
2. 链路状态数据库是使用Router ID来区分的;
3. 默认的情况下,Router ID是使用在启用OSPF进程时路由器上活跃端口中IP地址最大的IP地址作为Router ID的;
4. 如果在路由器上设置了loopback端口,则由启用OSPF进程时路由器上活跃loopback端口中IP地址最大的IP地址作为Router ID的;
5. 可以使用router-id这个命令来更改OSPF的Router ID;
转载于:https://blog.51cto.com/xiaofeixia/163069