赞
踩
如何判断动态协议:1.选路好坏2.收敛速度3.占用资源大小
优点:选路佳,收敛快,占用资源小(相对的)
OSPF的分类:OSPFV1,OSPFV2 --- IPV4
OSPFV3 ---IPV6
相同点:
1.OSPF和RIP都是无类别的路由协议,都支持VLSM和CLDR传递路由信息时携带子网掩码
2.OSPF和RIPv2都是以组播的形式发送
RIP地址为224.0.0.9 OSPF地址为224.0.0.5和224.0.0.6
3.OSPF和RIP都支持等开销负载均衡
不同点:
RIP只能应用在小型的网络环境中,但是OSPF可以应用在中大型网络环境
OSPF为了适应中大型网络环境,需要进行结构化部署 --- 区域划分
如果一个网络中只包含一个OSPF区域,我们称这样的网络称为单区域OSPF网络
如果一个网络中包含多个OSPF区域,我们称这样的网络称为多区域OSPF网络
目的:区域内部传递拓扑信息,区域之间传递路由信息
区域边界路由器ABR:同时属于两个区域
要求:1.区域之间必须存在ABR
2.区域划分必须按照星型拓扑结构划分 -- 所有区域都需要围绕骨干区域进行划分为了方便管理,给OSPF的区域增加了编号标识 -- 区域ID --32位二进制构成(骨干区域的编号必须是区域0)
OSPF有五个数据包
1.hello包 -- 用来周期发现,建立和保活邻居关系的
OSPF的hello包默认是有10s为周期发送一个
OSPF的失效判定时间为4倍hello时间 -- 死亡时间(dead time)40s
RID--用来区分和标识OSPF网络中的路由器
1.OSPF网络唯一
2.格式统一(统一按照ip地址格式来定义)
RID的获取方法:
1.手动配置 -- 符合上述两个要求即可
2.自动生成 -- 先从环回地址中取最大ip作为RID,若没有环回地址,则取物理接口中最大的ip作为RID
hello包中携带RID
2.DBD包 -- 数据库(存储LSA)描述报文[类似菜单]
-- LSDB(链路状态数据库) -- 携带数据的DBD包
3.LSR包 -- 链路状态请求报文(根据DBD请求未知的LSA信息)
4.LSU包 -- 链路状态更新报文(真正携带LSA信息的报文)
5.LSACK包 -- 链路状态确认报文
OSPF存在每30m一次的周期更新
down状态 -- 启动OSPF,发送hello包,进入下一个状态
init状态 -- 初始化状态 -- 收到hello包中包含本地的RID,进入下一个状态
two-way -- 双向通讯状态 -- 标志着邻居关系的建立 (通过hello包)进行(条件匹配) -- 条件匹成功,进入下一个状态,匹配失败则停留在邻居关系,仅hello包保活
exsatrt -- 预启动状态 -- 通过未携带数据DBD包,进行主从关系选取,比较RID,大的为主,优先进行下一个状态(这个时候不用hello包是因为状态变化,不再是邻居关系)
exchange -- 准交换状态 -- 发送LSDB包(携带数据的DBD包),然后进入下一个状态(结束时发送LSACK包)
loading -- 加载状态 -- 此时来核对方发来的DBD包并与本地LSDB数据库的LSA信息进行对比,对于本机存在未知的LSA信息,使用LSR请求包向对端发送获取,邻居使用LSU回包,本机使用LSACK确认,然后进入下一个状态
full -- 转发状态 -- 标志着领接关系确认
领接状态主要是区分邻居状态(领接关系之间才能真正进行LSA交换,而邻居关系只能使用hello包进行包活)
3.OSPF的工作过程
①启动配置完成后,OSPF向本地所有的运行的协议的接口以组播形式发送hello包,hello包携带本地的RID信息及本地已知的邻居RID。
之后将收集到的邻居关系记录在一张表中 -- 邻居表
[R1]display ospf peer 查看ospf邻居表
②邻居表建立完成后进行条件匹配。
如果匹配失败则仅停留在邻居关系,仅使用hello包保活;
如果匹配成功,将开始建立领接关系。首先使用未携带的DBD包进行主从关系的选举。之后使用携带数据的DBD包共享数据库目录。之后,本地使用LSR/LSU/LSACK数据包获取未知的LSA信息。
完成本地数据库建立,生成--数据表 -- LSDB
[R1]display ospf lsdb
[R1]display ospf lsdb router 2.2.2.2 //查看一条LSDB的信息
③最后,基于本地的链路状态数据库,生成有向图及最短路径树,计算本地到达未知网段的路由信息。
将生成的路由添加的到路由表。
④收敛完成,hello包每10s进行一次周期发送。周期保活,每30m进行一次周期更新
最后查看路由表:(华为设备的OSPF协议的默认优先级为10 )
- [R1]display ip routing-table
- Route Flags: R - relay, D - download to fib
- ------------------------------------------------------------------------------
- Routing Tables: Public
- Destinations : 13 Routes : 13
-
- Destination/Mask Proto Pre Cost Flags NextHop Interface
-
- 1.1.1.0/24 Direct 0 0 D 1.1.1.1 LoopBack0
- 1.1.1.1/32 Direct 0 0 D 127.0.0.1 LoopBack0
- 1.1.1.255/32 Direct 0 0 D 127.0.0.1 LoopBack0
- 2.2.2.2/32 OSPF 10 1 D 12.0.0.2 GigabitEthernet
- 0/0/0
- 3.3.3.3/32 OSPF 10 2 D 12.0.0.2 GigabitEthernet
- 0/0/0
- 12.0.0.0/24 Direct 0 0 D 12.0.0.1 GigabitEthernet
- 0/0/0
- 12.0.0.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
- 0/0/0
- 12.0.0.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
- 0/0/0
- 23.0.0.0/24 OSPF 10 2 D 12.0.0.2 GigabitEthernet
- 0/0/0
- 127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
- 127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
- 127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
- 255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0

OSPF是以带宽作为cost值的评判标准
cost = 参考带宽/真是带宽 --华为设置的参考带宽默认值为100Mbps
- [R1-ospf-1]bandwidth-reference ?
- INTEGER<1-2147483648> The reference bandwidth (Mbits/s)
!如果修改了一台路由器的参考带宽,则所以的路由器参考带宽全都要修改成一样!
OSPF的交换过程可以用思科的图片来解释
网络结构发送突变:
a.新增一个网段:触发更新,直接发送携带LSA信息的LSU包进行更新,需要ACK确认
b.断开一个网段:触发更新,直接发送携带LSA信息的LSU包进行更新,需要ACK确认
c.无法沟通 -- hello包的10s保活和40s的死亡时间
例图如下:
①启动OSPF进程
[R3]ospf 1 router-id 3.3.3.3
②创建区域
[R3-ospf-1]area 1
③宣告
目的:激活接口,发布路由
以R3为例,在配置OSPF后,设备自动跳出状态显示,对应的R2也会自动进行OSPF交换
- //R3配置OSPF
- [R3]os
- [R3]ospf 1 r
- [R3]ospf 1 router-id 3.3.3.3
- [R3-ospf-1]area 1
- [R3-ospf-1-area-0.0.0.1]net
- [R3-ospf-1-area-0.0.0.1]network 23.0.0.0 0.0.0.255
- [R3-ospf-1-area-0.0.0.1]
- Nov 14 2021 22:24:42-08:00 R3 %%01OSPF/4/NBR_CHANGE_E(l)[0]:Neighbor changes eve
- nt: neighbor status changed. (ProcessId=256, NeighborAddress=1.0.0.23, NeighborE
- vent=HelloReceived, NeighborPreviousState=Down, NeighborCurrentState=Init)
- [R3-ospf-1-area-0.0.0.1]
- Nov 14 2021 22:24:42-08:00 R3 %%01OSPF/4/NBR_CHANGE_E(l)[1]:Neighbor changes eve
- nt: neighbor status changed. (ProcessId=256, NeighborAddress=1.0.0.23, NeighborE
- vent=2WayReceived, NeighborPreviousState=Init, NeighborCurrentState=2Way)
- [R3-ospf-1-area-0.0.0.1]
- Nov 14 2021 22:24:42-08:00 R3 %%01OSPF/4/NBR_CHANGE_E(l)[2]:Neighbor changes eve
- nt: neighbor status changed. (ProcessId=256, NeighborAddress=1.0.0.23, NeighborE
- vent=AdjOk?, NeighborPreviousState=2Way, NeighborCurrentState=ExStart)
- [R3-ospf-1-area-0.0.0.1]
- Nov 14 2021 22:24:42-08:00 R3 %%01OSPF/4/NBR_CHANGE_E(l)[3]:Neighbor changes eve
- nt: neighbor status changed. (ProcessId=256, NeighborAddress=1.0.0.23, NeighborE
- vent=NegotiationDone, NeighborPreviousState=ExStart, NeighborCurrentState=Exchan
- ge)
- [R3-ospf-1-area-0.0.0.1]

条件匹配:
指定路由器 -- DR (DR与其他路由器为邻接关系,其他的路由器为邻居关系)
备份指定路由器 -- BDR (与其他路由器为邻接关系,其他的路由器为邻居关系)
剩余的路由 -- DR other
DR和BDR虽然是指定路由器或备份指定路由器,但其实是一个接口的概念
DR和BDR的选举规则:
1.先比较优先级,优先级大的为DR,次大的为BDR
默认初始优先级为1,优先级取值范围为0-255
如果优先级设置为0,则代表该接口放弃DR和BDR选举
- //R1的G0/0/0进行配置优先级
- [R1]interface G0/0/0
- [R1-GigabitEthernet0/0/0]OS
- [R1-GigabitEthernet0/0/0]ospf D
- [R1-GigabitEthernet0/0/0]ospf dr-priority ?
- INTEGER<0-255> Router priority value
- [R1-GigabitEthernet0/0/0]ospf dr-priority
2.当优先级相同时,则比较RID,RID大的路由器对应的接口为DR,次大为BDR
DR/BDR的选举是非抢占模式 -- 一旦DR和BDR选举完毕后,不会因为新加入的设备而重新选举,选举时间为40s
以之前的配置为例,此时DR为12.0.0.1而BDR为12.0.0.2,原因:先配置的是12.0.0.1网段,先入为主的原则,所以12.0.0.2为次网段
- [R1]display ospf peer
-
- OSPF Process 1 with Router ID 1.1.1.1
- Neighbors
-
- Area 0.0.0.0 interface 12.0.0.1(GigabitEthernet0/0/0)'s neighbors
- Router ID: 2.2.2.2 Address: 12.0.0.2
- State: Full Mode:Nbr is Master Priority: 1
- DR: 12.0.0.1 BDR: 12.0.0.2 MTU: 0
- Dead timer due in 36 sec
- Retrans timer interval: 5
- Neighbor is up for 00:42:46
- Authentication Sequence: [ 0 ]
reset ospf 1 process 重启ospf进程(重启必须是相邻接口同时重启,并且在用户视图下)
此时DR已经变化(从12.0.0.1变成12.0.0.2)
- //R1重启前
- [R1]display ospf peer
-
- OSPF Process 1 with Router ID 1.1.1.1
- Neighbors
-
- Area 0.0.0.0 interface 12.0.0.1(GigabitEthernet0/0/0)'s neighbors
- Router ID: 2.2.2.2 Address: 12.0.0.2
- State: Full Mode:Nbr is Master Priority: 1
- DR: 12.0.0.1 BDR: 12.0.0.2 MTU: 0
- Dead timer due in 40 sec
- Retrans timer interval: 5
- Neighbor is up for 00:02:31
- Authentication Sequence: [ 0 ]
- <R1>reset ospf 1 process // 重启过程
- //R1重启后
- <R1>display ospf peer
- OSPF Process 1 with Router ID 1.1.1.1
- Neighbors
- Area 0.0.0.0 interface 12.0.0.1(GigabitEthernet0/0/0)'s neighbors
- Router ID: 2.2.2.2 Address: 12.0.0.2
- State: Full Mode:Nbr is Master Priority: 1
- DR: 12.0.0.2 BDR: 12.0.0.1 MTU: 0
- Dead timer due in 33 sec
- Retrans timer interval: 5
- Neighbor is up for 00:00:30
- Authentication Sequence: [ 0 ]

5.OSPF的拓展配置
①手工认证(keyID设置为1,这个接口的邻接表必须key值相同)
- [R1-GigabitEthernet0/0/0]ospf a
- [R1-GigabitEthernet0/0/0]ospf authentication-mode ?
- hmac-md5 Use HMAC-MD5 algorithm
- keychain Keychain authentication mode
- md5 Use MD5 algorithm
- null Use null authentication
- simple Simple authentication mode
- [R1-GigabitEthernet0/0/0]ospf authentication-mode md5 ?
- INTEGER<1-255> Key ID
- <cr> Please press ENTER to execute command
- [R1-GigabitEthernet0/0/0]ospf authentication-mode md5 1 ?
- STRING<1-255>/<20-392> The password (key)
- cipher Encryption type (Cryptogram)
- plain Encryption type (Plain text)
- [R1-GigabitEthernet0/0/0]ospf authentication-mode md5 1 c
- [R1-GigabitEthernet0/0/0]ospf authentication-mode md5 1 cipher 123456
-
- //此时R1的g0/0/0接口已经设置了密钥,而他的领接表由于没有密钥,不能OSPF连接
- Nov 15 2021 13:52:40-08:00 R1 %%01OSPF/3/NBR_CHG_DOWN(l)[17]:Neighbor event:neig
- hbor state changed to Down. (ProcessId=256, NeighborAddress=2.2.2.2, NeighborEve
- nt=InactivityTimer, NeighborPreviousState=Full, NeighborCurrentState=Down)
- [R1-GigabitEthernet0/0/0]
- Nov 15 2021 13:52:40-08:00 R1 %%01OSPF/3/NBR_DOWN_REASON(l)[18]:Neighbor state l
- eaves full or changed to Down. (ProcessId=256, NeighborRouterId=2.2.2.2, Neighbo
- rAreaId=0, NeighborInterface=GigabitEthernet0/0/0,NeighborDownImmediate reason=N
- eighbor Down Due to Inactivity, NeighborDownPrimeReason=Hello Not Seen, Neighbor
- ChangeTime=2021-11-15 13:52:40-08:00)

②手工汇总(汇总其实是区域汇总,OSPF区域之间传递路由信息)
OSPF区域之间传递路由信息,可以进行汇总,所以OSPF的手工认证是区域激活,在区域0的R1上配置两个换回路由192.168.0.1 24 和192.168.1.1 24,在ospf上宣告,此时R2和R3都是没有汇总,此时在R2上进行汇总,汇总在area0上,此时在R2上配置为[R2-ospf-1-area-0.0.0.0]abr-summary 192.168.0.0 255.255.254.0,此时掩码必须是反掩码!!!(注意路由黑洞),此时R3上显示为汇总成功,即:区域0的汇总通过R2传导到区域1
③沉默接口
[R1-ospf-1]silent-interface g0/0/1
④加快收敛 -- 减少计时器
修改在接口上,邻居之间的hello时间必须一致,否则将无法建立邻居关系
hello时间修改以后,死亡时间自动修改为四倍hello时
- //在R1的G0/0/0口上设置hello时间
- [R1-GigabitEthernet0/0/0]ospf timer hello
- [R1-GigabitEthernet0/0/0]ospf timer hello ?
- INTEGER<1-65535> Second(s)
⑤缺省路由
如果在R3旁边配置一个路由器,此时R3被称为边界路由器
在边界路由器上下发缺省信息(OSPF要求边界路由器自身必须有缺省路由才能发缺省)
[R1-ospf-1]default-route-advertise
没有缺省路由时,可以添加always来强制下发缺省信息
[R1-ospf-1]default-route-advertise always
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。