CCNP 4 OSPF

OSPF:开放式最短路径优先协议

  • 无类别链路状态协议:跨层封装,协议号89;组播更新:224.0.0.5(all ospf)224.0.0.6(DR/DBR)存在触发更新和周期更新(30min);使用SPF算法;存在区域概念;

  • 工作过程

    • 激活协议后向所有的邻居发送hello包,建立邻居关系,生成邻居表之后和条件满足的邻居间建立邻接关系,交互LSA(链路状态通告);生成LSDB(链路状态数据库);之后基于数据库使用SPF算法计算达到所有未知目标的最短路径加到路由表中;注:ospf收敛的过程被称为LSA洪范或LSDB同步;
  • OSPF的状态机

    • 邻居关系
      — Down:一旦发出hello包将进入下一个状态
      — Init:收到hello包中存在本地RID进入下一状态
      — 2-way:邻居关系建立
    • 匹配条件
      — 点到点网络直接进入下一个阶段
      — MA网络先选DR/BDR;非DR/BDR间不能进入下一状态
    • 邻接关系
      — Exstart:使用hello的DBD包进行主从关系选举,主可以先行进入exchange状态
      — EXchange:使用DBD包进行拓扑目录的交互,需要ACK确认
      — Loading:使用LSR/LSU/LSACK获取未知拓扑信息;
      — Full:转发状态,邻接关系建立完成
  • OSPF的数据包

    • 数据包结构
      在这里插入图片描述
    • 数据包类型
      在这里插入图片描述
    • Hello :用于邻居的发现,邻居关系的建立:邻居和邻接关系的保活 Hello time 10s或30s dead time 40s或120s
      在这里插入图片描述
      邻居间hello包中必须完全一致的参数:hello和dead时间,区域ID,认证字段,末梢区域标示
    • DBD 数据库描述表:1,类hello包,不携带拓扑信息 2,拓扑目录在exstart状态时,两端MTU值不一致,将卡在该状态;
      在这里插入图片描述
      — I:为1表示本DBD包为本地第一个DBD
      — M:为0表示本地为最后一个DBD
      — MS:为1表示本地为主
      在exstart状态时,使用隐形确认:使用主的序列号来确认
    • LSR 链路状态请求
    • LSU(LSA)链路状态更新
    • LSACK 链路状态确认
  • 配置

  • r1(config)#router ospf 1 启动时需要配置进程号,仅具有本地意义;
    r1(config-router)#router-id 1.1.1.1 建议RID;手工—环回最大地址—接口最大地址
    宣告:1、激活 2、路由 3、区域划分
    r2(config-router)#network 2.2.2.2 0.0.0.0 a 0
    r2(config-router)#network 23.1.1.1 0.0.0.0 a 1

  • 区域划分的规则:

    • 星型结构
      ABR–区域边界路由器
  • 当启动完成后,邻居间发生hello包建立邻居关系,生成==邻居表==

r2#show ip ospf neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface
1.1.1.1           0   FULL/  -        00:00:34    12.1.1.1        Serial1/0
3.3.3.3           0   FULL/  -        00:00:30    23.1.1.2        Serial1/1
  • 邻居关系建立后,若条件匹配将使用DBD/LSR/LSU/LSack来交互学习整个网络的拓扑和路由信息;生成LSDB(数据库表)–所有LSA的集合

r2#show ip ospf database

  • 当数据库表同步完成后,路由器将使用数据库基于SPF算法计算到达所有未知目标的最短路径,然后将其加载到路由表中:
    O - OSPF, IA - OSPF inter area
    N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
    E1 - OSPF external type 1, E2 - OSPF external type 2
    O 通过本区域内的拓扑本地计算生成
    O IA 其他区域的路由,通过ABR导入
    O E1/2 其他非ospf协议或不同的进程产生的路由,然后通过ASBR重发布进入
    O N1/2其他非ospf协议或不同的进程产生的路由,然后通过ASBR重发布进入;但本地所在区域为NSSA区域;

  • 管理距离为110;度量为cost值;
    Cost值=开销值=参考带宽/接口的实际带宽
    默认的参看带宽为100M;
    OSPF的选路规则:整段路径所有链路cost值之和最小为最佳路径;支持等开销负载均衡,默认4条,最大6条,IOS版本12.4以上16条;

  • 注:当接口实际带宽大于参考带宽时,cost值为1;故可能导致选路不佳;建议修改参考带宽;

r1(config)#router ospf 1
r1(config-router)#auto-cost reference-bandwidth ?
<1-4294967> The reference bandwidth in terms of Mbits per second 全网一致

成为邻接关系的条件

  • 网络类型:
    1.点到点
    2.BMA
    3.NBMA帧中继 mgre
  • 在点到点网络中直接建立邻接关系,在MA网络进行DR/BDR选举(40s);DR/BDR和其他设备均为邻接关系,非DR·BDR间为邻居关系;
  • 选举的规则:
  1. 比较接口优先级;点到点网络优先级级默认为0(不参选):MA网络优先级默认为1;范围0-255, 大优;
  2. 若优先级均相同,对比RID;值最大为DR,此大为BDR;
  3. 非抢占行
  • 干涉选举
  1. 修改DR优先级最大,BDR次大

r1(config)#interface fastEthernet 0/0
r1(config-if)#ip ospf priority 3
注:OSPF的选举是非抢占的,故必须重启所有设备的进程;
Clear ip ospf process

  1. 修改BR优先级最大,BDR次大,其他设备优先级为0:无需重启进程
  • OSPF接口网络类型:OSPF在不同的网络接口下存在不同的工作方式

r1#show ip ospf interface loopback 0
r1#show ip ospf interface s1/1
r1#show ip ospf interface fastEthernet 0/0

接口类型: OSPF的工作方式
Loopback                  LOOPBACK  无hello包,32位主机路由发送
点到点(HDLC/PPP)  POINT_TO_POINT hello 10s、dead 40s;不选DR,自动建邻
BMA(以太网)           BROADCAST hello 10s、dead 40s;选DR,自动建邻
NBMA(帧中继)
  • 真实物理接口:

NON_BROADCAST
Hello 30, Dead 120;非自动建邻(不使用组播广播发送hello
包);只能使用单播建立邻居关系;

r1(config)#router ospf 1
r1(config-router)#neighbor 123.1.1.2
r1(config-router)#neighbor 123.1.1.3

单播建立邻居关系后,发现自动进行DR/BDR选举,因为是MA网络;注:在非全连网状结构拓扑中,将可能由于DR位置问题,导致无法正常收敛
解决方法:

  1. 修改中心点为DR
  2. 使用子接口
  3. 修改工作方式
r2(config-router)#int s1/2
r2(config-if)#ip ospf network ?  
  broadcast            Specify OSPF broadcast multi-access network
  non-broadcast        Specify OSPF NBMA network
  point-to-multipoint  Specify OSPF point-to-multipoint network
  point-to-point       Specify OSPF point-to-point networ
  r2(config-if)#ip ospf network point-to-point 
  • 点到点子接口

    POINT_TO_POINT
    hello 10s、dead 40s;不选DR,自动建邻
  • 多点子接口

NON_BROADCAST
Hello 30, Dead 120;非自动建邻(不使用组播
广播发送hello包);只能使用单播建立邻居关系;

总结

  • 在非NBMA网络中,不建议修改工作方式;
  • 在NBMA网络中,若拓扑结构为全连网络,那么可以单播见邻即可;
  • 若非全连网状,那么可以将no-broadcast修改为 point-to-point 或者point-to-multipoint
  • point-to-point 工作方式:默认存在于帧中继的点到点子接口;可以修改本地工作方式,但若对端仅存在一条PVC,那么建议对端修改;若对端非一条PVC,那么修改本地和对端均为 point-to-multipoint ;
  • point-to-multipoint 工作方式:hello 30s dead 120s;自动建邻,不选DR/BDR;计算路径时已传递过来LSA的邻居为下一跳,自动生成达到该网段所有直连子接口的32位主机路由;

解决OSPF不规则区域问题

  1. 远离骨干的非骨干区域
  2. 不连续骨干区域
  • 解决方法

  • tunnel :在两台ABR上创建tunnel,然后将其宣告到OSPF协议中;缺点:1.选路不佳 2. 周期hello和更新均对中间区域进行影响

隧道tunnel
R3(config)#interface tunnel 0 创建tunnel
R3(config-if)#ip address 172.16.1.2 255.255.255.0 给tunnel配置地址
R3(config-if)#tunnel source e0/1 隧道源
R3(config-if)#tunnel destination 12.1.1.1 隧道目标 (接口地址是真实地址,不是tunnel地址)
R3(config-if)#ip ospf 100 aear 0 宣告

  • 虚链路—OSPF自带 在两台ABR上配置,使未连接骨干的ABR得知骨干的存在,之后将域间路由进行交互;
    取消周期的更新和邻居保活;
    优点:选路佳、占用中间区域资源少;
    缺点:不可靠

r2(config)#router ospf 1
r2(config-router)#area 1 virtual-link 4.4.4.4
穿越区域 对端ABR的RID

  • 多进程双向重发布
    不同的进程拥有不同的RID和数据库,不同进程间的数据库是不共享的;且计算所得路径同时放置于路由表中;若多个进程同时工作于一个接口,那么仅最先工作进程生效;

r4(config)#router ospf 1
r4(config-router)#redistribute ospf 2 subnets
r4(config-router)#exit
r4(config)#router ospf 2
r4(config-router)#redistribute ospf 1 subnets

OSPF的数据库表

  • OSPF使用LSA进行更新; LSA(LSU)—链路状态通告
    数据库表就是所有LSA的集合—LSDB–链路状态数据库
    OSPF协议存在12种不同类别的LSA,每种LSA所携带的信息是不一样的;
查看LSA的明细:
            r1#show ip ospf database router 1.1.1.1
                     类别名  link-ld
  无论何种LSA,均携带以下参数
  LS age: 183  老化时间,正常1800周期归0,触发马上归0;最大老化3609;
  Options: (No TOS-capability, DC)
  LS Type: Router Links  类别,此处为1类;
  Link State ID: 1.1.1.1     在目录中的番号
  Advertising Router: 1.1.1.1  通告者的RID
  LS Seq Number: 80000003   序列号,棒棒糖序列号
  Checksum: 0x67F8
  Length: 60
  Number of Links: 3
类别               传播范围           通告者              携带信息
LSA1 router          本区域      本区域内所有路由器       本地直连拓扑
LSA2 network        本区域             DR               MA部分的拓扑        
LSA3 Summary      整个OSPF域        ABR              O IA域间路由
LSA4 asbr-summary  除ASBR所在区域    ABR              ASBR的位置
    ASBR所在区域,通过1类告知
LSA5 External       整个OSPF域        ASBR             OE 域外路由
LSA7 nssa-external     NSSA区域        ASBR             ON 域外路由

类别              link id(番号)                     通告者
LSA1 router        通告者的RID                  本区域内所有路由器      
LSA2 network      DR的接口ip地址                   DR
LSA3 Summary     O IA路由目标地址       ABR,在经过下一个ABR时修改
LSA4 asbr-summary  ASBR的RID           ABR,在经过下一个ABR时修改
LSA5 External      OE 路由目标地址                  ASBR
LSA7 nssa-external   ON路由目标地址                  ASBR

OSPF的优化

目的:减少LSA的更新

  1. 特殊区域–优化非骨干区域
    条件:不能为骨干区域,不能存在虚链路
  • 不能存在ASBR
  1. 末梢区域–拒绝4.5类LSA;产生一条3类缺省

r3(config)#router ospf 1
r3(config-router)#area 1 stub 该区域内所有设备均需配置

  1. 完全末梢区域–在末梢区域的基础上进一步拒绝3类的LSA,仅保留一条3类的缺省先将该区域配置为末梢区域,然后仅需要在ABR上定义为完全末梢即可

r3(config)#router ospf 1
r3(config-router)#area 1 stub no-summary

  • 存在ASBR
  1. NSSA–拒绝4.5类的LSA,不自动产生3类缺省;5类在NSSA区域内被转换为7类转发;离开该区域后还原为5类

r1(config)#router ospf 1
r1(config-router)#area 2 nssa

  1. 完全的NSSA----在NSSA的基础上,进一步拒绝3/4/5类LSA,5类转7类;自动产生缺省指向ABR;先将该区域配置为NSSA,然后仅需要在ABR上定义为完全即可

r1(config)#router ospf 1
r1(config-router)#area 2 nssa no-summary

  • 汇总 --优化骨干区域
  1. 域间路由汇总–在ABR上操作

r3(config)#router ospf 1
r3(config-router)#area 1 range 4.4.4.0 255.255.254.0
通过该区域内的1/2类LSA计算所得路由才可以汇总

  1. 域外路由汇总—在ASBR上操作

r5(config)#router ospf 1
r5(config-router)#summary-address 99.1.0.0 255.255.252.0 域外路由可以为5、7类

OSPF的扩展配置

  1. 认证
  • 接口认证–在邻居间相连的接口上配置
    (1)接口明文

r1(config)#int s1/1
r1(config-if)#ip ospf authentication
先开启明文认证需求,开启后本地hello包中认证类型字段已经变化,邻居间必须一致
r1(config-if)#ip ospf authentication-key cisco 配置明文密码

(2)接口密文

r2(config)#int s1/1
r2(config-if)#ip ospf authentication message-digest
r2(config-if)#ip ospf message-digest-key 1 md5 cisco
邻居间必须完全一致

  • 区域认证
    例:在R1上开启关于0区域的明文或密文认证;之后实际是将R1上工作于区域0的接口修改认证类型字段为明文或密文;之后的密码还需要到各个接口上逐一配置;

r3(config)#router ospf 1
r3(config-router)#area 0 authentication
r3(config-router)#area 0 authentication message-digest

【3】虚链路认证

r3(config)#router ospf 1
r3(config-router)#area 1 virtual-link 4.4.4.4 authentication 明文
r3(config-router)#area 1 virtual-link 4.4.4.4 authentication-key cisco

r3(config-router)#area 1 virtual-link 4.4.4.4 authentication message-digest 密文
r3(config-router)#area 1 virtual-link 4.4.4.4 message-digest-key 1 md5 cisco

  1. 加快协议收敛速度 10s 40s 30s 120s 邻居间必须一致

r1(config)#int s1/1
r1(config-if)#ip ospf hello-interval 5
修改本端的hello time,本端dead time 自动4倍关系匹配
r1(config-if)#ip ospf dead-interval 20 修改本端的dead time,本端hello time不变化的;

  1. 被动接口—用于同用户相连的接口,只接收不发送路由协议信息

r2(config)#router ospf 1
r2(config-router)#passive-interface fastEthernet 0/0

  1. 缺省路由
  • 3类的缺省—由特殊区域自动产生 末梢、完全末梢、完全NSSA
    5类的缺省----在一台路由器上,必须已经拥有缺省条目的前提下,进行重发布

r2(config)#router ospf 1
r2(config-router)#default-information originate
若一台设备上不存在缺省路由,那么也可以强制向网内重发布缺省
r2(config)#router ospf 1
r2(config-router)#default-information originate always

  • 注:进入的条目为类型2;
    类型1,在内网传递时携带内部的度量值
    类型2,在内网传递时不携带内部的度量值

r2(config)#router ospf 1
r2(config-router)#default-information originate metric-type 1
r2(config-router)#default-information originate always metric-type 1

  • 7类的缺省—边界路由器所在位置处于NSSA区域内,且该路由器上已经拥有缺省路由;

r5(config)#router ospf 1
r5(config-router)#area 2 nssa default-information-originate 默认进入为类型2;
r5(config-router)#area 2 nssa default-information-originate metric-type 1 修改为类型1

猜你喜欢

转载自blog.csdn.net/heibaikong6/article/details/86760076