OSPF:Open Shortest Path First,最短路径优先
1)基本概念:
标准的LS型协议--共享拓扑
组播更新:224.0.0.5/6
触发更新,存在周期更新  30min
OSPF是跨层封装协议,协议号89

OSPF需要结构化部署:1、区域划分   2、IP地址规划            
链路状态型路由协议的距离矢量特征:在OSPF中,区域之内传拓扑,区域之间传路由
管理距离110,使用COST值作为度量值,有计算公式

2)OSPF数据包
hello:用于发现、建立和保活(10s)邻居关系。存在全网唯一的Router-ID,表示路由器建立邻居关系所用的身份标识,使用
  IP地址的方式表示
DbD:Database Description,携带着链路状态的目录
LSR:链路状态请求
LSU:链路状态更新--携带了真正的LSA
LSAck:确认

LSA:链路状态通告,就是OSPF中不同的拓扑或者路由信息 
LSDB:链路状态数据库,是所有LSA的集合   
              
3)OSPF状态机:
down:未开启OSPF协议。一旦启动协议并宣告之后,接口发出hello包,立即切换到下一状态
Init:初始化状态,若接收到的hello包中存在自己的Router-ID,则和对方一起进入下一状态
2-way:此状态表明邻居关系建立完成。
条件匹配:关注网络类型,点到点网络类型直接将进入邻接关系的建立,MA网络类型需要DR/BDR的选举,选举时间40s
Exstart:预启动,双方使用类hello的DBD包,进行主从关系选举-比较RID,大者优先进入下一状态
Exchange:准交换,交互真正的DBD报文,需要使用ACK确认
Loading:加载,使用LSR/LSU/LSAck获取未知的LSA信息
Full:邻接关系建立完成

4)OSPF的工作过程           
 启动配置完成后,本地基于224.0.0.5组播收发hello包,建立邻居关系,生成邻居表;
再进行条件的匹配,匹配失败将停留于邻居关系,仅hello包周期保活即可;
匹配成功者间可以建立邻接(毗邻)关系,需要DBD共享数据库目录,LSR/LSU/LSack来获取未知的LSA信息,当收集完网络中所有的LSA后,生成数据表--LSDB
LSDB建立完成后,本地基于SPF选路规则,计算本地到达所有未知网段的最短路径,然后将其加载到路由表中;完成收敛
收敛完成后--hello包周期保活  
-- 30min周期的DBD比对,若不一致将使用LSR/LSU/LSack重新获取
             
网络结构发生变化:
1、新增
2、断开
3、设备无法通信:hello 10s保活   dead time 40s,dead time 计时到后,邻居关系断开,删除所有从该邻接处学习到的所有LSA信息;

OSPF配置:
R1(config)#router ospf 1   //启动协议时需要配置进程号,进程号仅具有本地意义
R1(config-router)#router-id 1.1.1.1  //手工配置RID。不配置时,环回最大>物理接口最大
宣告:1、激活接口   2、发布拓扑或路由   3、区域划分
R1(config-router)#network 12.1.1.0 0.0.0.255 area 0
                                   反掩码
R1(config-router)#network 1.1.1.1 0.0.0.0 area 0
           
区域划分规则:
1、必须拥有骨干区域0,所有非骨干区域必须直连骨干区域              
2、必须拥有ABR--区域边界路由器              
              
反掩码:32位二进制,使用点分十进制的形式表示,由连续的0和连续的1构成;0表示固定位,1表示可变位              
              
              
使用ACK数据包直接确认称为显式确认            
R1#show ip route ospf
     2.0.0.0/32 is subnetted, 1 subnets
O       2.2.2.2 [110/2] via 12.1.1.2, 00:08:20, FastEthernet1/0
     3.0.0.0/32 is subnetted, 1 subnets
O IA    3.3.3.3 [110/66] via 12.1.1.2, 00:08:20, FastEthernet1/0
     23.0.0.0/24 is subnetted, 1 subnets
O IA    23.1.1.0 [110/65] via 12.1.1.2, 00:08:20, FastEthernet1/0              
              
字母问题:
O       本区域内通过LS计算所得的路径             
O IA    区域之间通过ABR引入的 
O E1/2  从其他路由协议或者其他OSPF进程通过重发布技术引入的路由
O N1/2 从其他路由协议或者其他OSPF进程通过重发布技术引入的路由同时本地是NSSA区域            
              
管理距离110,使用COST值作为度量值,有计算公式
COST=参考带宽÷接口带宽  默认参考带宽位100M  
当接口带宽大于参考带宽时,COST取1,会导致选路不佳
可以修改参考带宽--必须全网一致

5)成为邻接关系的条件--关注网络类型
基于网络类型------点到点     MA多路访问
在点到点网络中,邻居关系必须成为邻接关系,否则无法正常收敛
在MA网络若全网均为邻接关系,那么将可能出现大量重复性的LSA洪泛;
为避免该现象,将进行DR/BDR的选举;所有的非DR/BDR间不得建立成为邻接关系;
选举规则:1、先比较接口优先级----- 默认1;大优;0标识不参选,点到点接口默认为0;
          2、优先级相同,比较设备的RID,数值大优;

角色关系:
DR与DROTHER之间是邻接关系
DR与BDR之间是邻接关系
DROTHER与DROTHER邻居关系(2WAY)
BDR与DROTHER之间是邻接关系

干涉选举的方法:
1、修改DR最大优先级,BDR次大
r1(config)#interface fastEthernet 0/0
r1(config-if)#ip ospf priority 3
注:DR选举非抢占,故修改优先级后必须重启设备的OSPF进程
r1#clear ip ospf process
Reset ALL OSPF processes? [no]: yes

2、修改DR最大优先级,BDR次大;剩余所有设备优先级修改为0;
   不需要重启设备的进程;切记不得将所有设备优先级修改为0,至少必须存在DR;

2、OSPF虚链路---非骨干区域间的ABR到骨干区域的ABR处授权--建立一条虚链路
r2(config)#router ospf 1
r2(config-router)#area 1 virtual-link 4.4.4.4
              中间的穿越区域   对端的ABR的RID
因为没有新的网段出现,故选路正常;为了避免周期的信息对中间区域的影响,故停止虚链路间的所有周期行为-----不可靠

3、多进程双向重发布
   一台设备上若同时运行多个进程,那么不同进程拥有不同的RID,生成各自的数据库,当数据库不共享;仅将各自计算所得路由加载于同一张路由表内;若多个进程工作于同一个接口上,仅最新启动的进程生效;

在解决不规则区域时,让连接两个非骨干区域的ABR设备,将不同区域宣告到本地的不同进程下,之后使用重发布技术,进行路由共享即可;
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协议基于LSU来共享LSA信息;
LSA--链路状态通告----拓扑或者路由信息  
在不同的条件下发出不同类别的LSA;
详细查看某条LSA:
r1#show ip ospf database router 1.1.1.1
                      类别名  link-id/番号
无论哪种类别的LSA均存在以下参数:
  LS age: 142      老化时间,周期1800归0,也可触发归0;最大老化3609s
  Options: (No TOS-capability, DC)
  LS Type: Router Links        类别名,此处为1类
  Link State ID: 1.1.1.1        link-ID,在目录中的编号
  Advertising Router: 1.1.1.1    通告者的RID
  LS Seq Number: 80000004   
  Checksum: 0x65F9
  Length: 60
  Number of Links: 3

传播范围            通告者               携带信息
LSA1 router         本区域           本地区域所有设备       本地的直连拓扑
LSA2 network        本区域               DR                  MA网段部分的拓扑
LSA3 Summary        整个OSPF域           ABR                O IA 域间路由
LSA4 asbr-summary   除ASBR所在区域外     ABR                 ASBR位置
                    的整个OSPF域
LSA5 External       整个OSPF域           ASBR                 O E  域外路由
LSA7 nssa-external  NSSA区域内           ASBR                 O N  域外路由
                 离开该区域后转换回5类

Link-ID                       通告者
LSA1 router         通告者的RID                本地区域所有设备
LSA2 network        DR的接口IP地址                 DR
LSA3 Summary        O IA路由,目标网络号       ABR,在经过下一跳ABR时,修改为本地
LAS4 asbr-summary   ASBR的RID                  ABR,在经过下一跳ABR时,修改为本地
LSA5 External       O E 路由,目标网络号             ASBR(不修改)
LSA7 nssa-external  O N路由,目标网络号              ASBR(不修改)

二、减少LSA的更新量
【1】手工汇总 ----减少骨干区域LSA量
【2】特殊区域 ----针对非骨干区域

【1】手工汇总
1)域间路由汇总---只能在ABR上配置
r1(config)#router ospf 1
r1(config-router)#area 2 range 5.5.4.0 255.255.252.0
              通过该区域的1/2类LSA计算所得路由才能汇总成功

2)域外路由汇总---ASBR上配置
r4(config)#router ospf 1
r4(config-router)#summary-address 99.1.0.0 255.255.252.0

注:以上汇总均会自动生成空接口防环路由;

给各个路由器及接口配IP地址

R1路由器:

r2(config)#interface fastEthernet 0/0
r2(config-if)#ip address 172.16.1.1 255.255.255.0
r2(config-if)#no shutdown
r2(config-if)#exit
R2、R3...R12全部配完地址
注意:R4为ISP 使用公网地址

建立MGRE环境  在area0 里建立

注:点到点的工作方式,仅适用于一个网段两个节点的网络;
故在MGRE环境下若适用tunnel口默认的工作方式,那么一个网段内若存在两个以上节点将出现邻居关系翻滚;

解决:
1、所有节点修改 BROADCAST
r1(config)#interface tunnel 0
r1(config-if)#ip ospf network broadcast
注:若MGRE环境下,不同接口处于不同的网络类型;若hello time一致将建立邻居关系,当工作机制的不同导致LSA更新出现问题;必须所有节点处于相同的工作方式

注2:MGRE环境下,若构建的OSPF工作环境不是一个全连结构(网段内所有设备间均建立邻居关系),那么一旦使用broadcast工作方式,就必须将DR固定在中心站点位置,否则将出现DR位置混乱,导致网络无法正常收敛;
2、所有节点修改为点到多点模式;
点到多点为cisco为OSPF协议额外设置的工作方式
r1(config)#interface tunnel 0
r1(config-if)#ip ospf network point-to-multipoint

点到多点的工作:hello time30;无DR选举;生成访问各个节点的精确路由;

缺省条目:
R3(config)#ip route 0.0.0.0 0.0.0.0 172.16.3.2
R5(config)#ip route 0.0.0.0 0.0.0.0 172.16.4.2
R6(config)#ip route 0.0.0.0 0.0.0.0 172.16.5.2
R7(config)#ip route 0.0.0.0 0.0.0.0 172.16.6.2

R3:(中心站点)
R1(config)#int tun 1
R1(config-if)#ip address 10.1.1.1 255.255.255.0
R1(config-if)#tunnel source s2/0
R1(config-if)#tunnel mode gre multipoint
R1(config-if)#ip nhrp map multicast dynamic
R1(config-if)#ip nhrp network-id 100

R5:(分支站点)
R5(config)#int tun 1
R5(config-if)#ip address 10.1.1.2 255.255.255.0
R5(config-if)#tunnel source s2/1
R5(config-if)#tunnel mode gre multipoint
R5(config-if)#ip nhrp nhs 10.1.1.1 
R5(config-if)#ip nhrp map 10.1.1.1 172.16.3.1
R5(config-if)#ip nhrp network-id 100

R6:(分支站点)
R6(config)#int tun 1
R6(config-if)#ip address 10.1.1.2 255.255.255.0
R6(config-if)#tunnel source s2/2
R6(config-if)#tunnel mode gre multipoint
R6(config-if)#ip nhrp nhs 10.1.1.1 
R6(config-if)#ip nhrp map 10.1.1.1 172.16.3.1
R6(config-if)#ip nhrp network-id 100

R7:(分支站点)
R7(config)#int tun 1
R7(config-if)#ip address 10.1.1.2 255.255.255.0
R7(config-if)#tunnel source s2/3
R7(config-if)#tunnel mode gre multipoint
R7(config-if)#ip nhrp nhs 10.1.1.1 
R7(config-if)#ip nhrp map 10.1.1.1 172.16.3.1
R7(config-if)#ip nhrp network-id 100

分支站点R5,R6,R7开启伪广播

R5(config)#int tun 1
R5(config-if)#ip nhrp map multicast 172.16.3.1

R6(config)#int tun 1
R6(config-if)#ip nhrp map multicast 172.16.3.1

R7(config)#int tun 1
R7(config-if)#ip nhrp map multicast 172.16.3.1

全部启用OSPF协议(除了R4以外)

OSPF的接口网络类型----OSPF协议在不同网络类型下的接口上,不同的工作方式;

r1#show ip ospf interface lo0  查看OSPF协议在某个接口上的工作方式

OSPF接口工作方式:
网络类型               OSPF接口工作方式
环回接口               LOOPBACK            无hello,使用主机路由发送
点到点(HDLC/PPP)     POINT_TO_POINT      hello time 10s   不选DR   
BMA   (以太网)       BROADCAST           hello time 10s   选DR
NBMA  (MGRE)         POINT_TO_POINT      hello time 10s   不选DR

举例R3
R3(config)#router ospf 1
R3(config-router)#router-id 3.3.3.3
R3(config-router)#network 172.16.1.2 0.0.0.0 area 1
R3(config-router)#network 172.16.2.2 0.0.0.0 area 1
R3(config-router)#network 10.1.1.1 0.0.0.0 area 0(讲隧道口宣布到area 0区域内)
R3(config-router)#network 3.3.3.3 0.0.0.0 area 1(R3的环回依旧在area 1区域内)
R5、R6、R7的OSPF协议都得宣告隧道地址  不能宣告实际地址。

在R3---R7(除R4)的环境中 因为启用OSPF协议 所以需要把隧道接口改为’点到多点‘

举例R3
R3(config)#interface tunnel 0
R3(config-if)#ip ospf network point-to-multipoint

在R9 与 R12上启用重发布来连接不规则区域:

R12(config)#router ospf 1
R12(config-router)#router-id 12.12.12.12
R12(config-router)#network 172.16.8.2 255.255.255.0
R12(config)#router eigrp 90
R12(config-router)#no auto-summary
R12(config-router)#network 100.1.1.1 0.0.0.0
R12(config-router)#network 12.12.12.12
R12(config)#router ospf 1---(重发布)
R12(config-router)#redistribute eigrp 90 subnets---(重发布)

切记:OSPF协议中缺省路由的导入只能通过专用命令

r2(config-router)#default-information originate

注:默认进入路由为类型2,种子度量为1;

r2(config-router)#default-information originate  ?

metric       OSPF default metric

metric-type  OSPF metric type for default routes

R9(config)#router ospf 1
R9(config-router)#router-id 9.9.9.9
R9(config-router)#network 172.16.10.2 255.255.255.0
R9(config)#router ospf 2
R9(config-router)#network 172.16.11.1 0.0.0.0 area 4
R9(config-router)#network 9.9.9.9 0.0.0.0 area 4
R9(config)#router ospf 1---(重发布)
R9(config-router)#redistribute ospf 2 subnets---(重发布)
R9(config)#router ospf 2---(重发布)
R9(config-router)#redistribute ospf 1 subnets---(重发布)

配置NAT:

R3、R5-7均按如下方法配置:
R3(config)#access-list 1 permit 172.16.0.0 255.255.252.0(R1、R2汇总)
R3(config)#ip nat inside source list 1 int s2/0 overload
R3(config)#int s2/0
R3(config-if)#ip nat outside
R3(config-if)#int f0/0
R3(config-if)#ip nat inside
R3(config-if)#int f1/1
R3(config-if)#ip nat inside

骨干区域汇总------减少路由条目

OSPF的不规则区域
【1】远离骨干的非骨干区域 ----ABR必须同时工作于区域0,才能进行区域间的路由共享
【2】不连续骨干---从X区域获取到的路由信息不得发往编号为X的区域;即便X区域连接
了本区域不同的ABR;---水平分割

解决方案:
1、普通tunnel---在两台ABR上建立隧道,然后将其宣告于OSPF协议中
缺点:周期的保活和更新,触发的信息均需要通过中间的穿越区域,对中间区域影响较大;
      选路不佳;
      OSPF协议若通过不同的区域学习到的相同的路由,优选区域0;若均为非骨干,比较度量值;

R3(config)#router ospf 1
R3(config-router)#area 1 range 172.16.0.0 255.255.252.0

R6(config)#router ospf 1
R6(config-router)#area 2 range 172.16.8.0 255.255.248.0

R7(config)#router ospf 1
R7(config-router)#area 3 range 172.16.16.0 255.255.252.0

域外(OE2)路由器
R12(config)#router ospf 1
R12(config-router)#summary-address 172.16.16.0 255.255.252.0

R9因为 我在图中配了 俩个环回 不能汇总  所以不需要减少

非骨干区域----减少LSA的更新量、
area 1区域内:没有ASBR区域边界路由器(所以需要totally-stub,完全末梢区域--仅保留一条3类的缺省)

优化之后,3类只剩下一条缺省:

R3(config)#router ospf 1
R3(config-router)#area 1 stub no-summary
R1(config-router)#area 1 stub
R2(config-router)#area 1 stub

area 2区域内:有ASBR区域边界路由器(所以需要完全NSSA--在NSSA的基础上进一步拒绝3的LSA,自动产生3类缺省)
优化之后,它应该会删除3、4、5类LSA,然后只保留一条3类缺省,并多出一条7类LSA

R6(config)#router ospf 1
R6(config-router)#area 2 nssa no-summary
R11(config)#router ospf 1
R11(config-router)#area 2 nssa
R12(config)#router ospf 1
R12(config-router)#area 2 nssa

area 3区域内:有ASBR区域边界路由器(所以需要完全NSSA--在NSSA的基础上进一步拒绝3的LSA,自动产生3类缺省)
优化之后,它应该会删除3、4、5类LSA,然后只保留一条3类缺省,并多出一条7类LSA:

R7(config)#router ospf 1
R7(config-router)#area 3 nssa no-summary

R8(config)#router ospf 1
R8(config-router)#area 3 nssa

R9(config)#router ospf 1
R9(config-router)#area 3 nssa

此时area 3被设置为了NSSA区域,R9拥有了缺省路由,那么我们就可以在R9上的OSPF的进程2中下放缺省,这样才可以出去。

R9(config)#router ospf 2

R9(config-router)#default-information originate--强制下发缺省

此时R10就会有缺省

OSPF及实验的更多相关文章

  1. CCNP第四天 OSPF综合实验(1)

    ospf综合实验(1) 本实验主要考察ospf中的接口上的多种工作方式 实验如图所示: 所用拓扑为CCNP标准版,如图: --------------------------------------- ...

  2. 自制OSPF配置实验大全

    OSPF综合实验(gns模拟器)   注意点: Ospf实验推荐用gns制作 //图中的交换机可以视觉忽略或缩小成一个点.(^ v^) Ospf 实验拓扑图 ​ 目录 OSPF综合实验... 1 Os ...

  3. OSPF 高级实验

    一.环境准备 1. 软件:GNS3 2. 路由:c7200 二.实验操作 实验要求: 1.理解 OSPF 虚链路原理及何时需要使用虚链路. 2.掌握 OSPF 虚链路配置方法. 3.掌握 OSPF 的 ...

  4. OSPF 基础实验

    一.环境准备 1. 软件:GNS3 2. 路由:c7200 二.实验操作 实验要求: 1.掌握多区域的 OSPF 配置方法. 2.区别不同区域的路由. 3.掌握 OSPF 的路由汇总配置. 4.掌握  ...

  5. OSPF配置实验(一)

    单区域OSPF 命令: R1(config)#router ospf 1        //启动OSPF进程 R1(config-router)#router-id 1.1.1.1        // ...

  6. ACL与OSPF综合实验

    OSPF与ACL 综合实验   拓扑图如下: 分析: 配置基本配置: R1: R2: R3: 2.配置OSPF: R1: R2: R3: IT: 设置IT的ip 并划分到ospf2区域 3.配置ACL ...

  7. OSPF 大实验

    实验拓扑如图所示: 公司A网络如实验拓扑所示,请根据如下需求对网络进行部署: 1) 按照拓扑所示配置OSPF多区域,另外R3与R6,R4与R6间配置RIPv2.R1,R2,R3,R4的环回接口0通告入 ...

  8. OSPF综合实验

    实验要求: 1.R4为ISP,其上只能配置IP地址,R4与其他所有直连设备间使用共有IP 2.R3--R5/6/7为MGRE环境,R3为中心站点 3.整个OSPF环境IP地址为172.16.0.0/1 ...

  9. OSPF 综合实验

    实验拓扑 实验需求 1.按照图示配置好 IP 地址,PC1 网关指向为 R8 2.OSPF 划分为 4 个区域,其中 192.168.0.0/24,192.168.1.0/24,192.168.2.0 ...

随机推荐

  1. layui上传同一张图片第二次时choose没有反应

    将上传文件的input的val设置为空 $("#test11").parent().find("input").val('');

  2. python读文件出现错误解决方法

    python读文件经常会出现 UnicodeDecodeError: 'gbk' codec can't decode byte 0xbd in position 764: illegal multi ...

  3. [源码解析] Flink的Slot究竟是什么?(1)

    [源码解析] Flink的Slot究竟是什么?(1) 目录 [源码解析] Flink的Slot究竟是什么?(1) 0x00 摘要 0x01 概述 & 问题 1.1 Fllink工作原理 1.2 ...

  4. java基本数据类型总结 类型转换 final关键字的用法

    java基本数据类型总结 Java数据类型总结 数据类型在计算机语言里面,是对内存位置的一个抽象表达方式,可以理解为针对内存的一种抽象的表达方式.接触每种语言的时候,都会存在数据类型的认识,有复杂的. ...

  5. Dockerfile文件万字全面解析

    阅读目录 目录 阅读目录 用法 格式 Parser directives escape 环境替换 .dockerignore file FROM RUN CMD LABEL MAINTAINER EX ...

  6. java23种设计模式——三、工厂模式

    源码在我的github和gitee中获取 工厂模式 工厂模式介绍 工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式.著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在J ...

  7. 服务发现Eureka、zookeeper、consul

    Spring Cloud为开发人员提供了工具,以快速构建分布式系统中的某些常见模式(例如,配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,领导选举,分布式会话,群集状态). ...

  8. JS - 对金额数字实现千分位格式化处理

    添加千分位处理: function fmoney(s, n) { n = n > 0 && n < = 20 ? n : 2; s = parseFloat((s + &q ...

  9. Urule开源版系列4——Core包核心接口之规则解析过程

    Urule运行规则文件,是如何进行的,通过一个请求doTest来探一下 com.bstek.urule.console.servlet.respackage.PackageServletHandler ...

  10. Unity3D中可重载虚函数的总结

    重载虚函数:Unity3D中所有控制脚本的基类MonoBehaviour有一些虚函数用于绘制中事件的回调,也可以直接理解为事件函数,例如大家都很清楚的Start,Update等函数,以下做个总结. A ...