OSPF原理
OSPF的三张表
邻居表:记录邻居状态和关系
拓扑表:链路状态数据库
路由表:记录有SPF算法计算的路由
OSPF路由类型
区域内路由器(IR):所有接口都在同一个区域
骨干路由器(BR):所有接口在骨干区域
区域边界路由器(ABR):连接骨干区域和非骨干区域
自治系统边界路由器(ASBR):连接外部自治系统,并引入外部路由
OSPF的网络类型
定义:对于不同的二层链路类型,OSPF会生成不同的网络类型,不同的网络类型,DR/BDR选举,LSA细节,协议报文发送形式等会有所不同
类型:
1.Broadcast:广播网络,以太网默认的网络类型
组播发送协议报文224.0.0.5所有运行OSPF的接口会监听; 224.0.0.6所有DR/BDR的接口会监听
需要选举DR/BDR
Hello-time 10秒
dead-time 40秒
2.NBMA:非广播多点可达,帧中继默认的网络类型
单播发送协议报文,需要收到指定邻居
需要选举DR/BDR
Hello-time 30秒
dead-time 120秒
3.P2MP:点到多点网络,由其他网络类型手动更改
模拟组播发送协议报文,可以自动发现邻居
不选举DR/BDR
Hello-time 30秒
dead-time 120秒
4.P2P:点到点网络,ppp默认的网络类型
组播发送协议报文
不选举DR/BDR
Hello-time 10秒
dead-time 40秒
OSPF邻接建立过程
Ⅰ.DOWN:关闭状态(稳定状态)
Ⅱ.Init:单方发现状态,收到对方的hello报文,但没有收到对方的hello确认报文
Ⅲ.Attemp:只会出现在NBMA网络中,发出了Hello包,但未收到对方的Hello包
Ⅳ.2-way:邻接状态(稳定状态)
邻居双方互相发现,并确认了DR/BDR角色,当选举完毕,就算出现一台更高优先级的路由器,也不会替换成为新的DR/BDR需要原DR/BDR失效,或者重置OSPF进程才会成为新的DR/BDR
前提-------route-id无冲突(修改route-id需要重置OSPF进程才能生效)、掩码一致、区域id一致、验证码一致、hello-time一致、dead-time一致
Ⅴ.Exstart:交换开始状态
发送第一个DD报文,不传输LSDB摘要,仅用于确定LSA传递的主从
DD报文置位符:I—init位,置位则表示此报文是第一个DD报文、M—more位,置位则表示还有后续DD报文、MS—master位,置位则表示本端为主
Ⅵ:Exchange:交换状态,发送后续DD报文,用于通告LSDB摘要
Ⅶ:Loading:读取状态,进行LSA的请求、加入和确认
Ⅷ:FULL:邻接状态(稳定状态)
两端LSDB同步
FULL的前提:两端网络类型一致(邻居状态FULL,但无法学习路由),两端MTU一致(邻居状态卡在Exstart、Exchange)
LSDB更新
更新流程:1.收到LSA更新,在本地LSDB中查询该LSA,未查到则加入LSDB 2.查询到此LSA,则把收到的LSA和本地LSA进行序列号对比 3.如本地LSA序列号大,则丢弃更新,否则加入LSDB
广播网络的更新:只由DR发起更新
OSPF开销计算
参考带宽:计算开销的基准带宽值,默认带宽是100M,建议把网络中最高的链路带宽设置为参考带宽
计算方法:链路带宽大于等于参考带宽cost=1
链路带宽小于参考带宽cost=参考带宽/链路带宽
实验
实验需求:
1.按照图示配置IP地址
2.R1,R2,R3运行OSPF使内网互通,所有接口(公网口除外)全部宣告进Area0;要求使用环回口作为Route-id
3.业务网段不允许出现协议报文
4.R5模拟互联网,内网通过R1连接互联网,在E1上配置默认路由引入到OSPF
5.R1上配置EASY IP,只允许业务网段访问互联网
6.要求业务网段访问互联网流量经过R3,R2,R1
R1配置
[H3C]sysname R1
[R1]int g0/1
[R1-GigabitEthernet0/1]ip ad 100.1.1.1 24
[R1-GigabitEthernet0/1]int g0/0
[R1-GigabitEthernet0/0]ip ad 100.2.2.1 24
[R1-GigabitEthernet0/0]int g0/2
[R1-GigabitEthernet0/2]ip ad 202.1.1.1 24
[R1-GigabitEthernet0/2]int l0
[R1-LoopBack0]ip ad 1.1.1.1 32
[R1]ospf router-id 1.1.1.1
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 100.2.2.1 0.0.0.0
[R1-ospf-1-area-0.0.0.0]network 100.1.1.1 0.0.0.0
[R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
[R1]ip route-static 0.0.0.0 0 202.1.1.5
[R1]ospf router-id 1.1.1.1
[R1-ospf-1]default-route-advertise
[R1]acl basic 2000
[R1-acl-ipv4-basic-2000]rule permit source 192.168.1.0 0.0.0.255
[R1]int g0/2
[R1-GigabitEthernet0/2]nat outbound 2000
[R1]int g0/0
[R1-GigabitEthernet0/0]ospf cost 1000
[R3]ospf
[R3-ospf-1]silent-interface g0/2
R2配置
[H3C]sysname R2
[R2]int g0/0
[R2-GigabitEthernet0/0]ip ad 100.1.1.2 24
[R2-GigabitEthernet0/0]int g0/1
[R2-GigabitEthernet0/1]ip ad 100.3.3.2 24
[R2-GigabitEthernet0/1]int l0
[R2-LoopBack0]ip ad 2.2.2.2 32
[R2]ospf router-id 2.2.2.2
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]network 100.1.1.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]network 100.3.3.2 0.0.0.0
R3配置
[H3C]sysname R3
[R3]int g0/0
[R3-GigabitEthernet0/0]ip ad 100.2.2.3 24
[R3-GigabitEthernet0/0]int g0/1
[R3-GigabitEthernet0/1]ip ad 100.3.3.3 24
[R3-GigabitEthernet0/1]int g0/2
[R3-GigabitEthernet0/2]ip ad 192.168.1.254 24
[R3]ospf router-id 3.3.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]network 100.2.2.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]network 100.3.3.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]network 192.168.1.254 0.0.0.0
[R3]int g0/0
[R3-GigabitEthernet0/0]ospf cost 1000
INTERNEL配置
[H3C]sysname INTERNEL
[INTERNEL]int g0/0
[INTERNEL-GigabitEthernet0/0]ip ad 202.1.1.5 24
[INTERNEL-GigabitEthernet0/0]int l0
[INTERNEL-LoopBack0]ip ad 100.1.1.1 32