OSPF
一:特征:
1,属于链路状态路由协议
2,增量更新(当链路状态变化时,才发送链路状态信息且发送变化的信息,如果链路状态没有变化,ospf每30分钟发送一次“所以的链路状态信息”)
3,衡量路径准确
二,ospf的三张表:
1,;邻居表(neighbors table):存放邻居关系
//邻居形成条件:物理直连;HEELO包协商通过(HELLO包发送时间,死亡时间,区域号,验证密码,末节区域标识)
2,拓扑表(topology table):存放从邻居处收到所有链路状态信息。
3,路由表(routing table):存放到达目地的网路的最好路径  路由表==转发数据库
三,最短路径优先算法:
路由器收到链路状态信息后,以本路由器为树根,以达到目的网路的路径为枝干,生成最小路径优先树之后,把“开销”最小的枝干,作为最好的路径,放入路由表。
四,OSPF的区域号
1,为了减少链路状态信息的发送对网路的影响,OSPF提出区域的概念。
2链路状态信息只在本区域内传输。
3,区域设计时,要提供骨干区域。最好只提供一个骨干区域。
4,区域设计时,可以同时存在多个骨干区域,但每个非骨干区域,要与骨干区域,有直接的物理连接。
5,区域与区域之间,通过路由器连接。
6,OSPF 是“分层结构”的路由协议(ospf区域是分层的)
五。LSA的跟新机制:
LSA:链路状态通知。
过程:路由器收到LSA后,查看拓扑表中是否存在该链路状态信息。
1)不存在:把该LSA加入拓扑表==》向邻居发送确认包==》把该LSA泛洪给其他邻居==》运行最短路径优先算法计算路由
2)存在:比较链路状态信息的“序列号”
  1》序列号相等:忽略该LSA 
  2》邻居信息的序列号大:等同不处理
  3》邻居序列号小:把自己的链路状态信息发送给邻居
六。OSPF的序列号:衡量链路状态信息的好坏
1,范围:0*80000001--0*7fffffff
2,发送链路状态信息时,在原序列号基础上加1
3 当序列号达到初始值时,ospf将持续一个小时,不发送链路状态信息。
七。OSPF的配置:
1,单区域配置:
(config)#router  ospf  进程号 (1--65535)
(config)#network  网路号/子网号/具体ip  匹配码  area 0
//进程号:1--65535,用于区分多个ospf,具有本地意义。
2,多区域配置
(config)#router ospf 进程号
(config-router)#network  网络号/子网号/具体ip  匹配码 area 区域号
调试OSPF
# show ip ospf //显示ospf配置
执行结果:进程号 路由器ID 区域号(area)
# show ip ospf interface 调查端口的ospf配置
执行结果:区域号 进程号 路由器ID网路类型
         链路开销,hello包发送时间,死亡时间
         邻居数量,邻居的ip地址,优先级(priority)
         DR的ip地址  BDR的ip地址
#show ip ospf neighbor 查看邻居信息
# show ip ospf neighbor detail 详细显示邻居信息
八,OSPF包类型;
1,HEELO包:建立和维护邻居关系。
1)router ID (路由器ID):代表路由器的ip地址
  默认:无环回口时,使用活动物理端口上的最大ip作为路由器ID
  建议:使用环回口,作为路由器ID
 (config)#int lo0
 (config-if)#ip address ip地址 掩码
 (config)#router ospf 进程号
 (config-router)#router-id ip地址
提示:OSPF路由器的ID,是在ospf进程启动是定义的为了使配置立即生效,使用:
 #clear ip ospf process  //重启ospf进程
默认:路由器用环回口作为路由器ID
2)HELLo包发送时间:10s
3)死亡时间(保持时间):在该时间内未收到邻居HELLO包,认为邻居有故障
   死亡时间==HELLO包时间*4
4)邻居信息:声明自己的邻居
5)区域ID:区域号(描述本台路由器所在区域)
6)路由器优先级:用于选举DR和BDR
7)DR的ip地址
8)BDR的ip地址
9)验证密码
10)末节区域标识
2,DBD包:数据库描述包,描述链路状态信息
3,request包:查询链路状态信息
4,update包:跟新链路状态信息。
5,ack包:确认包
九,OSPF的状态
1,down state(关闭状态):未收到对方HELLo包
2,init state(初始状态):路由器收到对方hello包,把对方加入邻居表
3,two-way state(双边状态):路由器互为邻居
 //成为邻居路由器中,没有DR和BDR,路由器之间的状态是:双边状态
   成为邻居路由器中,有DR和BDR,路由器之间的状态将进入“准启动状态”
4,exstart state(准启动状态):协商谁先发送链路状态信息
5,exchange state(交换状态):开始发送链路状态信息
6,loading state(加载状态):向邻居发送某链路状态的请求信息
7,full state(全状态):邻居相互发送链路状态信息之后,所处的状态。
 提示:两台ospf路由器之间的最终状态是:双边状态或全状态
邻居:处于双边状态的路由器间关系
邻接:某路由器与DR或BDR之间的邻居关系,即为邻接关系。
十,OSPF汇总
1特性:
1),默认:自动汇总是关闭的;
2)支持手动汇总(配置在ABR或ASBR上)
//ABR:边界路由器,即连接ospf区域的路由器
  ASBR:自治系统边界路由器,即连接外部外环境(非ospf环)与ospf环境的路由器。
3)ospf区域间汇总的配置:在ABR上配置
(config-router)#area 区域号 range 汇总ip 汇总掩码
4)外部环境路由的汇总配置:在ASBR上配置
 (config-router)#summary-address 汇总ip 汇总掩码
十一,网路类型
1,点对点网路(point-to-point):DDN帧中继的点对点子接口。
特性:(1)不选举DR和BDR
      (2)使用组播地址:224.0.0.5 组播数据包
      (3)自动检测该类型(不需要配置)
2,广播网路(通过交换机把路由器连接到一起)
 特性:(1)选举DR和BDR
  //DR:指定路由器,负责网路中所以所以链路状态信息的收集和发布。
   BDR:备份指定路由器,负责网络中所有链路状态信息的收集
(2)通过HELLO包中的“优先级”和“路由器ID”选举DR和BDR
  //先通过“优先级”选举DR和BDR,如果路由器的优先级相同,在通过“路由器ID”选举。
优先级的配置:
(config-if0#ip ospf priority 优先级
优先级:0-255 默认值:1;该值越大越优先;优先级为0的路由器,只能充当DROTHER(非DR和BDR)
 //由于“优先级”配置在路由器的端口上,所以,同一台路由器同时充当多个角色。
(3)DR和BDR不抢占
(4)路由器使用组播地址244.0.0.6向DR组播数据包
 (5)DR使用224.0.0.5向路由器组播数据包
    广播网路类型的配置:
(config-if)#ip ospf network broadcast
3,点对点广播网路(point-to-point)
帧中继的点对点子接口;点对点的物理端口
配置(config-if)ip ospf network point-to-nultipoint
4,点对多点,非广播网络(point-to-multipoint nonvroadcadt)
特性:cisco私有属性
手工配置邻居关系:
(config-router)#neighbor 邻居ip priority
(config-rf)ip ospf network point-to-multipoint non-broadcast
十二,ospf路由器的角色。
1,内部路由器(internal router):路由器所有端口在同一区域
2,边界路由器(ABR):连接ospf区域的路由器
3,自治系统边界路由器(ASBR):连接ospf环境和非ospf环境的路由器。
4,骨干路由器(backbone router):一个或多个端口在骨干区域内的路由器
十三,LSA的类型
1,LSA1:用于通告区域内的链路状态信息
2,LSA2:DR使用该类型包,通知链路状态信息
3,LSA3:用于通告区域间信息
4,LSA4:用于通告ASBR的存在
5,LSA5:用于通告外部环境的路由
十四,ospf路由代码类型:
1,代码O:ospf区域内路由
2,代码O IA:ospf区域间路由
3,代码O E1:外部路由
4,代码O E2:外部路由
提示:O E1路由度量:本路由器到ASBR的路由度量加ASBR到外部路由的度量
      O E2路由度量:ASBR到外部路由的度量  默认:O E2
十五,ospf学习外部路由
在承载多种路由的路由器上配置
(config)#router ospf 进程号
(config-router)#redistribute rip subnets
 //把外部的rip路由发送ospf环境
调试命令:#debug ip ospf events
//调试ospf事件
十六,ospf区域类型:
1,骨干区域:区域号为0的区域,用于实现区域间通信
//建议:最好只有一个骨干区域
2,存根区域(末节区域):不接受“外部路由”的区域
(1)特性
1》不接收外部路由
2》该区域内不能有ASBR存在
3》该区域要在ABR最好只存在一个
4》该区域正常接收ospf区域间路由
5》该区域不能有“虚链路”通过
(2)配置:在存根区域所有路由器上(包括ABR)
(config-router)#area  区域号  stub
3,完全存根区域(完全末节区域)
(1)特性
1》不接受外部路由和ospf区域中间路由
2》该区域内不能有ASBR存在
3》该区域要在ABR最好只存在一个
4》该区域不能有“虚链路”通过
5》cisco私有属性
(2)配置:
1)在该区域ABR上:(config-router)#area 区域号 stub no-summary
2)在该区域的所有内部路由器上
(config-router)#area 区域号 stub
十七:ospf虚链路
1,应用场合:
1)某非骨干区域通过另一个非骨干区域,连接在骨干区域上
2)ospf环境中,同时存在多个骨干区域
2,配置:
在虚链路穿过区域的ABR上:
(config-router)#area 区域号 virtual-link 路由器ID
//区域号:指虚链路穿过的区域号
//路由器ID:虚链路另一端的路由器ID
调试:
#show ip ospf virtual-link 查看虚链路
十八:ospf默认路由
路由器通过ospf协议把默认路由发给邻居路由器
(config)#ip router 0.0.0.0 0.0.0.0 下一跳ip/本路由器端口
//配置一条指向外网的默认路由
(config-router)default-information originate metric 度量