OSPF (SPF) 属于链路状态路由选择协议,并且是公有标准,理论上是没有网络规模限制的;支持网络的层次化设计,可以将网络分为2层。 层,是通过“区域”的概念来进行区分的。 划分区域以后,可以带来以下好处: 1、节省区域中的每一个设备的系统资源 (大区域被划分以后,小区域中的数据库内容就会变少) (同一个区域中的所有的路由器,数据库是完全相同) 2、增强 OSPF 网络的稳定性 (一个不稳定链路造成的不良影响,仅在同一个区域) (中传播,不会影响到其他区域) -骨干区域 -非骨干区域 所有的非骨干必须与骨干区域直接相连,才能正常通讯。 路由器因为区域的存在,也分为不同的类型: -骨干路由器 所有链路都属于骨干区域的路由器; -非骨干路由器 所有链路都属于非骨干区域的路由器; -区域边界路由器(*) 【ABR:area border router 】 必须同时连接着骨干区域和非骨干区域; -自治系统边界路由器【ASBR:】 具有引入外部路由能力的路由器,叫做OSPF的 ASBR。

-工作原理 1、建立邻居表 仅仅使用 hello 报文。 OSPF路由,仅仅在 OSPF 邻居路由器之间进行交换;

   邻居状态:
     down
			 init
			 2way
			 Exstart(exchange start)
			 exchange
			 loading
			 full 			
     
  2、同步数据库 
          LSA-link state advertisement , 链路状态通告;
  
  3、计算路由表(通过SPF算法,对LSA进行计算,从而获得最终的路由条目)
		
		
 -OSPF报文:
hello:发现、维护邻居关系;
	dbd:database description ,数据库描述报文;
	lsu:link state update ,链路状态更新报文;
	lsr:link state request ,链路状态请求报文;
	lsack:link state ack ,链路状态确认报文;		

-OSPF相关命令:

  0、建立测试端口:
        [R1]interface loopback 0 
        [R1-loopback0]ip address 10.10.1.1 255.255.255.0			

        [R2]interface loopback 0 
        [R2-loopback0]ip address 10.10.2.2 255.255.255.0  
  
  1、配置OSPF
    [R1]ospf [process-id]   // 不写的话,默认是1;
		[R1-ospf-1] area 0  // 进入区域0;
		[R1-ospf-1-area-0.0.0.0] network 192.168.12.1 0.0.0.0 
		                           //精确宣告 192.168.12.1所在的链路		
							gi0/0/0的IP地址为192.168.12.1;
							那么 gi0/0/0,则启用 OSPF 1 :
							#可以发送 ospf 1 的包;
							#可以接收 ospf 1 的包;
							#可以将该端口的IP地址中的
						 网络部分,放入 OSPF 1 的包;
						中,传输出去,给邻接路由器。
  2、验证
      display ospf [1] peer brief //查看OSPF邻居表的简要信息;
	   display ospf [1] peer   //查看OSPF邻居表的详细信息;
	   display ospf [1] brief //查看本地设备上的 OSPF 1 的相关信息;
	   display ip routing-table //查看路由表中的OSPF路由 
	                                 (确定路由的类型和属性)

OSPF邻居建立影响因素: 1、确保最小范围内链路是互相 Ping通 的;(交换) R1:Ping R2 ; R2:Ping R1 ;

2、确保设备端口可以发送报文; #network要宣告正确的网络范围;
#确保接收OSPF报文的端口不能是“被动端口- silent-interface” (华为设备上的 OSPF 的 silent-interface , 既不能发,也不能收包) ospf 1
silent-interface gi0/0/0

3、确保设备端口可以接收报文; #network要宣告正确的网络范围; #确保 ACL 是允许 OSPF 流量的; #确保接收OSPF报文的端口不能是“被动端口- silent-interface” (华为设备上的 OSPF 的 silent-interface , 既不能发,也不能收包) R1: acl name Deny-OSPF advance rule 5 deny ospf source 192.168.12.2 0.0.0.0 destination 224.0.0.5 0.0.0.0 interface gi0/0/0 traffic-filter inbound acl name Deny-OSPF

4、确保 OSPF Hello 包中的关键参数一致;【比较hello中的参数】 # 直接建立邻居关系的路由器,RID一定不能相同; [R1]ospf 1 router-id x.x.x.x // 指定 OSPF 1 使用的 RID <R1> reset ospf 1 process // 重启 OSPF 1,才能生效; #区域ID必须相同; [R1]ospf 1 [R1-OSPF-1]area 0 [R1-OSPF-1-area-0.0.0.0]undo network 192.168.12.1 0.0.0.0 [R1-OSPF-1]undo area 0 [R1-OSPF-1]area 1 [R1-OSPF-1-area-1]network 192.168.12.1 0.0.0.0 #认证必须成功; #子网掩码必须得相同(特殊情况下) #hello 时间,必须相同; [R1]interface gi0/0/0 [R1-gi0/0/0]ospf timer hello 20 // 更改hello时,dead跟随变化之间倍数关系是 4 倍; #dead 时间,也必须相同; [R1]interface gi0/0/0 [R1-gi0/0/0]ospf timer dead 41 //更改dead时,hello不变; #特殊标记位,必须完全相同; #DR优先级,不能全为0;(特殊情况下) [R1]interface gi0/0/0 [R1-gi0/0/0]ospf dr-priority 0 #3层MTU,必须完全相同;

验证命令: display ospf peer brief //查看 OSPF 的邻居表 display ospf interface gi0/0/0 //查看OSPF的接口;

路由协议 - 路由宣告方式 1、network : 凡是以该方式进入协议的,我们称之为内部路由 在 LS 路由协议中,内部路由,有细分为:区域内和区域间; 2、import-route : 凡是以方式进入协议的,我们称之为外部路由 (redistribute) 在 LS 协议中,外部路由分为 type 1 和 type 2 ,默认是2

	OSPF 普通区域
    
    
    LSA - link state advertisment		
	 
	5类LSA
        -表示的是“外部路由”;
        -传输范围是没有区域限制的,可以传输到OSPF的整个网络;

OSPF 特殊区域 -指的是那些不允许 5 类 LSA 存在的区域;

	-分类
	    # stub 区域 : 末节区域
						 该区域中是不允许存在4、5类LSA的,所以该区域的所有路由器
						 都没有外部路由,那么,为了与外部路由进行数据互通,
						 所以,stub 区域的 ABR ,向 stub 自动产生了一个默认路由。
						 并且属于 OSPF 的 inter-area 。
		    -配置命令:
			   #需要在该区域的每一个路由器配置;
				#配置如下:
				     ospf 1 
					      area 34
						    stub 
	    # totally stub 区域 : 完全末节区域
						该区域中不允许存在3、4、5类LSA(仅保留一个特殊的3类LSA,表示默认路由)
						可以减小 stub 区域中的数据库的大小;
						同时,还可以减少其他区域的不稳定,对该区域造成的不良影响。
					#需要在该区域的边界路由器配置;
					#配置如下:
				     ospf 1 
					      area 34
						    stub  no-summary


        # nssa 区域:not so stub area ,
               允许接受以类型7的LSA发送的外部路由信息,并且ABR要负责把类型7的LSA转换成类型5的LSA。 
								 ABR不会自动向NSSA区域内发送一条指向自己的默认路由,
								  #需要在该区域的每一个路由器配置;
				#配置如下:
				     ospf 1 
					      area 34
						    nssa 

        # totally nssa 区域: 完全 NSSA 区域 
								过滤3,4,5类lsa,ABR会产生缺省的3类lsa,该区域能引入外部路由
								7类LSA在这里还是7类LSA,出本area后就变成5类而传播了
								#需要在该区域的边界路由器配置;
								#配置如下:
									 ospf 1 
											area 34
											stub  no-summary

LSA的类型: 1类LSA - router lsa , 任何一个 OSPF 路由器,都会在任何一个区域中产生一个1类LSA。 相当于 路由器在 特定区域中的 自我介绍。 基于 1 类 LSA 计算出来的路由,我们称之为 intra-area 路由。

2类LSA -

3类LSA - summary-network 只有ABR才会产生;作用是在不同区域之间实现路由的传递; 基于 3 类 LSA 计算出来的路由,我们称之为 inter-area 路由。 3类LSA的产生: ABR 会将非骨干区域中的路由,变成3类LSA的形式,发送到骨干区域

			骨干区域中的 ABR会将在区域0中收到的3类LSA,继续下发给其他的
            非骨干区域;

            ARB还可以将区域0中的路由,变成3类LSA的形式,发送非骨干区域				

            3类LSA在传输过程中,每经过一个 ABR,“通告路由器”都会变化
			一次。

4类LSA - 该LSA仅仅是为了配合5类LSA计算外部路由而存在的; 是与ASBR在同一个区域中的 ABR 产生的; 传输过程,与3类LSA类似,每经过一个 ABR,“通告路由器”都会变化一次。

5类LSA - as external lsa
只有 ASBR 可以产生,作用是表示外部路由,可以传输到 OSPF 网络 的任何地方。 并且在传输过程中,LSA 是不会产生任何变化的。