2021-06-03 OSPF协议基本原理

协议概述

RIP协议存在的问题

存在最大15跳的限制,不能适应大规模组网的需求
周期性发送全部路由信息,占用大量的宽带资源
路由收敛速度慢
以跳数作为度量值
存在路由环路可能性

邻居关系、LSDB和路由表

邻居表:邻居表记录了建立了邻居关系的路由器
拓扑表:LSDB中包含了所有的链路状态信息,并需要实时同步
路由表:经过SPF算法计算出的路由存放再OSPF路由表(display ospf routing)

生成OSPF路由

在这里插入图片描述

分层结构

区域划分

骨干区和非骨干区

划分区域的优势

减少了区域内LSDB中链路状态信息的数量,降低了运行OSPF协议对路由器性能的要求
可以将相同的功能性或地理位置的路由器划分在一个区域内,以便于管理
隔离拓扑变化,减少路由震荡对整个自治系统的影响

OSPF路由类型

区域内路由

IR:所有接口都在同一区域

骨干路由器

BR:有接口在骨干区域

区域边界路由器

ABR:连接骨干区域和非骨干区域

自治系统边界路由器

ASBR:连接外部自治系统,并引入外部路由
在这里插入图片描述

网络类型

Route ID(针对接口)

一台路由器如果要运行OSPF协议,则必须存在Router ID(RID)RID是一个32比特无符号的整数,可以在一个自治系统中唯一的标识一台路由器。
RID可以手动配置,也可以自动生成。
如果没有通过命令指定RID,将按照如下顺序自动生成一个RID:
如果存在配置IP地址Loopback接口,则选择Loopback地址中最大的作为Router ID;
如果没有配置IP地址的Loopback接口,则从其他接口的IP地址中选择最大的作为Router ID(不考虑接口的up/down状态)

Router ID 的选取

在这里插入图片描述
如果想改变原来的DR/BDR,需要修改优先级,然后需要重置所有的ospf进程:
example:在接口下,ospf dr-priority 10, reset ospf process,同样R2也需要 reset ospf process。
修改Router ID:
ospf router-id xxxx
reset ospf process

OSPF网络模型

定义:对于不同的二层链路类型的网段,OSPF会生成不同的网络类型。不同的网络类型,DR/BDR选举,LSA细节,协议报文发送形式等会有所不同
用于改变建立DR/BDR方式

Broadcast

display ospf interface

广播网络,以太网默认的网络类型
组播发送协议报文
组播地址:
224.0.0.5:所有运行的OSPF的接口会监听
224.0.0.6:所有的DR/BDR的接口会监听
需要选举DR/BDR
hello-time 10s
dead-time 40s

NBMA(Non-Broadcast Multi-Access,非广播多点可达网络)

非广播多点可达,帧中继默认的网络类型
单播发送协议报文,需要手动指定邻居
需要选举DR/BDR
hello-time 30s
dead-time 120s

P2MP(Point-to-MutiPoint,点到多点)

点到多点网络,由其他网络类型手动更改(默认不存在)
模拟组播发送协议报文,可以自动发现邻居
不选举DR/BDR(这是模拟组播)
hello-time 30s
dead-time 120s

P2P(Point-to-Point,点到点)

点到点网络,PPP默认的网络类型
组播发送协议报文
不选举DR/BDR
hello-time 10s
dead-time 40s

报文和封装

OSPF报文类型与封装

OSPF报文类型作用
hello建立并维护邻居关系
Database Description (DD)数据库内容的汇总(仅包含LSA摘要)
Link State Request (LSR)请求自己没有的或者比自己更新的链路状态详细信息
Link State Update (LSU)链路状态更新信息
Link State Acknowledge (LSAck)对LSU的确认

OSPF报文直接封装在IP报文中,协议号为89

链路层帧头IP HeaderOSPF Packet链路层帧尾

邻居建立和状态迁移

邻接关系建立过程

OSPF的状态机
Down、Init、2-way、ExStart、Exchange、Loading、Full
1、Down:关闭状态(稳定状态)
2、Init:单方发现状态,收到对方的hello报文,但没有收到对方的hello确认报文(单项发现)
3、2-way:邻居状态(稳定状态)邻居双方互相发现,并确认了DR/BDR角色(双向发现)
当选举完毕,就算出现一台更高优先级的路由器,也不会替换成为新的DR/BDR
需要原DR/BDR失效,或者重置OSPF进程才会成为新的DR/BDR
2-way的前提
Router-id无冲突(两台直连路由器)修改Rouer-id需要重置OSPF进程使生效
掩码长度一致
区域id一致(一个网段的两个端口)
验证密码一致
hello-time一致
dead-time一致
排错命令:

<R2>dis ospf statistics error

在这里插入图片描述
2-way状态表示路由器之间变成了邻居状态

在这里插入图片描述
4、Exstart (第一个DD报文)
1)交换开始状态
2)发送第一个DD报文
不发送LSDB摘要
仅用于确定LSA传递的主从
3)DD报文置位符
I:Init位,置位则表示此报文是第一个DD报文
M:more位,置位则表示还有后续DD报文
MS:master位,置位则表示本端为主

当RTA接受RTB为master时,seq按照RTB的序列号发送时确定。且ms=0,最后状态变成Exchange

5、Exchange状态(带摘要的DD报文,)
交换状态,发送后续DD报文,用于通告LSDB摘要
RTA和RTB交换LSA摘要信息。
6、loading或full
Loading:读取状态,进行LSA的请求、加入和确认
Full:邻接状态(稳定状态),两端LSDB同步
Full的前提
1)两端MTU一致,否则邻居状态卡在Exstart、Exchange
2)两端网络类型一致,

将收到的LSA摘要和本地的LSDB比较,发现在LSDB缺少部分LSA,同步过来,更新自己的LSDB,变成FULL状态
如果LSA一样,那么直接变成FULL状态
在这里插入图片描述

LSDB更新

1)更新流程
1、收到LSA更新,在本地LSDB中查询此LSA和本地LSA进行序列号对比
2、查到此LSA,则把收到的LSA和本地LSA进行序列号对比
3、如本地LSA序列号大,则丢弃更新,否则加入LSDB
2)广播网络中的更新,只由DR发起更新
在这里插入图片描述
在这里插入图片描述

优化OSPF网络

OSPF网络类型及选举优先级配置

1、配置OSPF接口的网络类型

[R2-GigabitEthernet0/0]ospf network-type ?
  broadcast  Specify OSPF broadcast network
  nbma       Specify OSPF NBMA network
  p2mp       Specify OSPF point-to-multipoint network
  p2p        Specify OSPF point-to-point network

2、配置OSPF接口的路由器优先级

[R2-GigabitEthernet0/0]ospf dr-priority ?
  INTEGER<0-255>  Router priority

配置OSPF接口开销

1、配置OSPF接口的开销值

[R2-GigabitEthernet0/0]ospf cost ?
  INTEGER<1-65535>  Cost Value

2、配置OSPF接口的参考宽带

[R2-ospf-1]bandwidth-reference ?
 INTEGER<1-4294967>  The reference bandwidth (Mbits/s)

缺省情况下,带宽参考值为100Mbps,因此百兆和千兆以太网的接口开销都被计算为1

OSPF开销计算

参考带宽
1、计算开销的基准带宽值
2、默认参考带宽是100M
3、建议把网络中最高的链路带宽设置为参考带宽
计算方法
1、链路带宽大于等于参考带宽 cost=1
2、链路带宽小于参考带宽 cost=参考带宽/链路带宽(Mb),不足1的按1算

配置OSPF报文定时器

1、配置OSPF的Hello定时器

[R2-GigabitEthernet0/0]ospf timer hello ?
  INTEGER<1-65535>  Second(s)

2、配置OSPF的邻居失效时间

[R2-GigabitEthernet0/0]ospf timer dead ?
  INTEGER<1-2147483647>  Second(s)

在这里插入图片描述
3、报文定时器默认值

网络类型Hello定时器(s)邻居失效时间(s)
Broadcast1040
P2P1040
NBMA30120
P2MP30120

配置OSPF引入缺省路由

[R2-ospf-1]default-route-advertise ?
  always                  Always advertise default route
  cost                    Cost of default route
  permit-calculate-other  Calculate default route advertised by other
  route-policy            Specify the routing policy
  summary                 Advertise a default route in a Type-3 LSA (only
                          available in VPN)
  type                    Type of Type-5 LSA
  <cr>

在OSPF视图下
此命令用于将默认路由引入到OSPF路由区域
always:如果本机没有配置默认路由,使用此参数可产生一个描述默认路由的LSA发布出去
cost:该默认路由的度量值
type:该LSA的类型
[R2-ospf-1]default-route-advertise #要求已经存在的默认路由引入到OSPF

OSPF 实验

实验拓扑

在这里插入图片描述

实验需求

1、按照图示配置 IP 地址
2、R1,R2,R3 运行 OSPF 使内网互通,所有接口(公网接口除外)全部宣告进 Area 0;要求使用环回口作为 Router-id
3、业务网段不允许出现协议报文
4、R5 模拟互联网,内网通过 R1 连接互联网,在 R1 上配置默认路由并引入到 OSPF
5、R1 上配置 EASY IP,只允许业务网段访问互联网
6、要求业务网段访问互联网流量经过 R3,R2,R1

实验解法

1、省略
2、R1,R2,R3 运行 OSPF 使内网互通,所有接口(公网接口除外)全部宣告进 Area 0;要求使用环回口作为 Router-id
步骤 1:创建 OSPF 进程,手动指定环回口地址为 Router-id,把所有内网接口宣告进 Area 0

[R1]ospf router-id 1.1.1.1
[R1-ospf-1]a 0
[R1-ospf-1-area-0.0.0.0]network 10.1.1.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 10.2.2.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
[R2]ospf router-id 2.2.2.2
[R2-ospf-1]a 0
[R2-ospf-1-area-0.0.0.0]network 10.1.1.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network  10.3.3.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
[R3]ospf router-id 3.3.3.3
[R3-ospf-1]a 0
[R3-ospf-1-area-0.0.0.0]network 10.2.2.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network  192.168.1.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0

3、业务网段不允许出现协议报文
步骤 :把 R3 连接业务网段的 g0/2 口配置为静默接口,防止协议报文冲击业务网段

[R3-ospf-1]silent-interface g0/2

4、R5 模拟互联网,内网通过 R1 连接互联网,在 R1 上配置默认路由并引入到 OSPF
步骤 1:在 R1 上配置默认路由,下一跳指向为 202.1.1.5

ip route-static 0.0.0.0 0 202.1.1.5

步骤 2:在 R1 上把默认路由引入到 OSPF
因为 R1 上已经配置了默认路由,所以引入在 OSPF 中引入默认路由时,不需要带 always 参数

[R1-ospf-1]default-route-advertise

在其他路由器上验证:

<R2>dis ip routing-table

Destinations : 22       Routes : 23

Destination/Mask   Proto   Pre Cost        NextHop         Interface
0.0.0.0/0          O_ASE2  150 1           10.1.1.1        GE0/0
<R3>dis ip routing-table

Destinations : 25       Routes : 26

Destination/Mask   Proto   Pre Cost        NextHop         Interface
0.0.0.0/0          O_ASE2  150 1           10.2.2.1        GE0/1

5、R1 上配置 EASY IP,只允许业务网段访问互联网
步骤 1:在 R1 上创建基本 ACL,只允许业务网段 192.168.1.0/24

[R1]acl basic 2000
[R1-acl-ipv4-basic-2000]rule per source 192.168.1.0 0.0.0.255

步骤 2:在 R1 的公网接口上,配置 EASY IP,使内网可以访问互联网

[R1-GigabitEthernet0/0]nat outbound 2000

效果测试:在 PC4 上 PING R5的地址,PING 通说明可以访问互联网

<H3C>ping  202.1.1.5
Ping 202.1.1.5 (202.1.1.5): 56 data bytes, press CTRL_C to break
56 bytes from 202.1.1.5: icmp_seq=0 ttl=253 time=5.000 ms
56 bytes from 202.1.1.5: icmp_seq=1 ttl=253 time=1.000 ms
56 bytes from 202.1.1.5: icmp_seq=2 ttl=253 time=1.000 ms

6、要求业务网段访问互联网流量经过 R3,R2,R1
要想使流量经过 R2,就需要通过修改链路 Cost,使 R1-R3 的 Cost 比 R1-R2-R3 的 Cost 大,这里把 R1-R3 的 Cost 修改为 1000,来影响 OSPF 选路(改路由器进接口方向的cost,推荐两边相同)
步骤 1:把 R1 和 R3 相连的接口的 Cost 修改为 1000

[R1-GigabitEthernet0/2]ospf cost 1000
[R3-GigabitEthernet0/1]ospf cost 1000

测试:查看 R1,R2,R3 的路由表,确认默认路由和 192.168.1.0/24 网段的路由是经过 R1,R2,R3

[R1-GigabitEthernet0/2]dis ip routing-table
192.168.1.0/24     O_INTRA 10  3           10.1.1.2        GE0/1
<R2>dis ip routing-table
192.168.1.0/24     O_INTRA 10  2           10.3.3.3        GE0/1
[R3]dis ip routing-table
Destination/Mask   Proto   Pre Cost        NextHop         Interface
0.0.0.0/0          O_ASE2  150 1           10.3.3.2        GE0/0
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值