CCNA2.0笔记_OSPF v2

OSPF(开放最短路径优先)协议概述:

 - 链路状态路由协议
 - 无类路由协议
 - 要点:RouterID、区域ID
 - 触发更新 、以传播 LSA 代替路由表更新
 - 快速响应变更(比距离矢量路由协议快)
 - 邻居发现--使用Hello包发现邻居并简历相邻关系,通过组播地址发送给所有参与SPF计算的路由器
  -组播地址:224.0.0.5、224.0.0.6
 - OSPF采用SPF算法计算到达目的的最短路径
      -链路(Link):路由器接口
      -状态(State):描述接口以及其与邻居路由器之前的关系
 - 三张表:
     -邻居表   //show ip ospf neighbor
     -拓扑表  //show ip ospf database
     -路由表    //show ip route

OSPF Area:
  -为了适应大型的网络,OSPF在AS内划分多个区域
    区域0:主干区域
    其他区域:正常区域;所有正常区域与主干区域直连 (也可以通过虚链路穿透)
  -每个OSPF路由器只维护所在区域的完整链路状态信息

  

OSPF Router-ID:
  -Router-ID:用于在一个OSPF区域中唯一标识一台路由器
  -OSPF Router-ID的设定可以通过手工配置的方式,或者通过自动选取的方式
  -自动选取的机制是:若配置有loopback口,则选取最大的loopback口地址,若无,则选取活跃物理接口中IP地址最大的作为Router-ID

OSPF ProcessID(仅本地有效):
  一、OSPF单进程
  
  -OSPF ProcessID,范围为1-65535,仅本地有效,用来在本地区分不同的OSPF进程
  -上图意思是,对于R1而言,它并不关心它的直连OSPF邻居-R2使用的是什么OSPF进程号
  -虽然OSPF ProcessID本地有效,但是仍然建议,除非有特殊需求,否则全网使用一致的OSPF进程ID,这将方便网络管理和维护

  二、OSPF多进程
  
  -一台路由器可创建多个OSPF进程,使用OSPF ProcessID进行区分,不同的进程相互独立;
  -上图R2使用OSPF进程20与R1建立邻居关系,使用OSPF进程30与R3建立OSPF邻居关系;
  -这两个OSPF进程相互独立,R2通过OSPF进程20/10从R1/R3学习到的OSPF路由(严格的说,应该是LSA),默认不会直接更新给R3/R1;
  -R2这两个OSPF进程虽然彼此隔离,但是都可以为R2自身贡献路由,例如R1更新过来一条路由1.1.1.0,R3更新过来一条3.3.3.0,那么在R2的全局路由表里都是能看到这两条路由的。这两条路由不会互相灌进对方的OSPF进程(造成的直接结果是R1没有R3的路由,R3没有R1的路由),除非 -- 路由重发布;
  -有一点要注意:如果R1及R3都向R2更新同一条路由。R2会根据COST来选,如果等价,R2会以"先到先得"的原则,谁的路由先过来,就优选谁;

//*什么情况下需要用到多OSPF进程呢?一般而言,一台路由器创建一个OSPF进程,可以实现网络的需求,但是在一些特殊的、复杂的环境当中,单一的OSPF进程可能无法满足要求,因此在一台路由器上创建多个OSPF进程,这样一来的直接好处是,这台路由器从原先的角色--OSPF interArea Router,变成了一台ASBR,它可以在进程之间重发布、可以过滤路由或LSA、可以操控路由、可以做基于route-map的策略、可以做路由汇总等等。

OSPF度量值(Metric):
  -OSPF使用路径开销(Cost)作为度量值;默认情况下,该值的计算结果取决于接口的带宽
  -在每一个运行OSPF的接口上,都维护者一个接口Cost
  -接口Cost=100M/接口带宽,其中100M为OSPF的参考带宽
  -路径开销是指到达目标的所有路径开销之和
  

  修改接口的Cost值

Router(config)#interface fa0/1
Router(config-if)#ip ospf cost number(取值范围1~65535)  

//OSPF路由器在接口上使用cost值来决定最佳路径

  配置loopback接口地址

//用于产生路由器的Router ID
Router(config)# interface loopback 0
Router(config-if)# ip address IP地址 掩码

  开启OSPF路由进程

//本路由器的进程号,用于标识同一路由器上的多个OSPF进程(仅本地有效)
Router(config)# router ospf 进程号 

  指定OSPF协议运行的接口和所在的区域

//宣告特定的网络到OSPF区域
Router(config-router)# network 网络号 反向掩码(通配符掩码)  area  区域号

 *通配符是一个用于决定哪些IP地址位该精确匹配(0代表精确匹配)哪些地址位被忽略的32位数值,通常用于处理访问控制列表(ACL)、OSPF和EIGRP等路由协议的网络通告。

OSPF建立邻居关系需满足条件:
  -Area-id:两个路由器必须在共同的网段上,它们的端口必须属于该网段上的同一个区,且属于同一个子网
  -验证(Authentication OSPF):同一区域路由器必须交换相同的验证密码,才能成为邻居
  -Hello Interval和Dead Interval: OSPF协议需要两个邻居路由器的这些时间间隔相同,否则就不能成为邻居路由器
  -stub区域标记:两个路由器可以在Hello报文中通过协商Stub区域的标记来成为邻居

OSPF工作流程

  

  1、OSPF网络中,直连的路由器之间建立邻接关系(建立邻居表)
  

  2、OSPF将LSA泛洪到区域中的所有OSPF路由器,从而使这些路由器了解该OSPF网络内的链路状态信息,以创建 OSPF 链路状态数据库(建立拓扑表)
  

  3、使用 SPF 算法计算到每个目的地的最短距离,并将其置于路由表中(建立路由表) 
  

宣告方式:
  一、网段宣告

OSPF单区域配置命令:

   

 单区域存在的问题
  LSA泛洪严重,OSPF路由器的负担很大
  区域内部动荡会引起全网路由器的SPF计算
  LSDB庞大,资源消耗过多,设备性能下降,影响数据转发
  每台路由器都需要维护的路由表越来越大,单区域内路由无法汇总

OSPF多区域配置命令:
  

  R1

R1(config)#interface GigabitEthernet0/0
R1(config-if)#ip address 10.64.0.1 255.255.255.0
R1(config-if)#ip ospf cost 10
R1(config)#router ospf 9
R1(config-router)#network 10.64.0.0 0.0.0.255 area 0

  R2

R2(config)#interface GigabitEthernet0/0
R2(config-if)#ip address 10.64.0.2 255.255.255.0
R2(config)#interface GigabitEthernet0/1
R2(config-if)#ip address 10.2.1.2 255.255.255.0
R2(config)#router ospf 8
R2(config-router)#network 10.64.0.0 0.0.0.255 area 0
R2(config-router)#network 10.2.1.0 0.0.0.255 area 1

  R3

R3(config)#interface GigabitEthernet0/1
R3(config-if)#ip address 10.2.1.1 255.255.255.0
R3(config)#router ospf 5
R3(config-router)#network 10.2.1.0 0.0.0.255 area 1

 多区域的优点
  减少了LSA洪泛的范围,有效地把拓扑变化控制在区域内,达到网络优化的目的
  在区域边界可以做路由汇总,减小了路由表
  充分利用OSPF特殊区域的特性,进一步减少LSA泛洪,从而优化路由
  多区域提高了网络的扩展性,有利于组建大规模的网络

  二、接口宣告

//查看邻居列表
Router#show ip ospf neighbor
//查看链路状态数据库
Router#show ip ospf database
//查看OSPF接口
Router#show ip ospf interface  
//查看ospf路由条目
Router#show ip route ospf
//查看OSPF的配置
Router#show ip ospf
//查看当前路由协议
Router#show ip protocols
//查看到达网络192.168.1.0的路由信息
Router#show ip route 192.168.1.0
原文地址:https://www.cnblogs.com/airoot/p/4305032.html