OSPF开放式最短路径优先
OSPF协议是IETF组织建议使用的内部网关协议
OSPFv1用于实验、OSPFv2用于IPv4、OSPFv3用于IPv6
OSPF使用区域概念,减少路由器CPU、内存占用,构建层次化网络
宣告OSPF从接口上发出Hello数据包
OSPF特性:
1、OSPF属于IGP,是Link-State协议,基于IP Pro 89
2、采用SPF算法(Dijkstra算法)计算最佳路径、无环
3、快速响应网络变化
4、以较低频率(每隔30分钟)发送定期更新,被称为链路状态刷新
5、网络变化时是触发更新、组播发送
6、支持等价的负载均衡、备份路径
7、支持验证、安全性
……
ospf的五种协议报文
hello报文:周期发送,建立邻居,维护neighbour、选举DR/BDR,缺省时间间隔是10秒
DD报文:描述本地LSA的摘要,DBD有序号(邻接才能双方交换DD报文,交换LSA并达成LSDB的同步)
LSR报文:向对端请求本端没有或对端的更新的LSA
LSU报文:向对方发送其需要的LSA
LSack报文:收到LSU之后、进行确认
邻居与邻接区别:邻居关系仅仅交互hello 邻接关系是交互LSA
1、p2p邻居就是邻接关系(以组播224.0.0.5发送协议报文)
2、MA网络有一些只能到邻居 有一些是邻接(在MA网络中DR、BDR为full状态,而DROTHER 到达two-way状态)
组播:224.0.0.5、224.0.0.6只用于BDR监听DR,224.0.0.6称为 AllDRouters(DR只针对路由器接口)
OSPF报文格式:
OSPF头部报文格式:
OSPFhello报文格式:
OSPF的链路状态描述报文格式:
OSPF的链路状态请求报文格式:
LSA类型
LSA1:每个路由器产生、描述路由器链路状态和开销,在本区域传输(提供网络号和metric值 LSA2提供掩码的结合起来传输)
LSA2:由DR产生,描述本网段所有路由器的链路状态,在本区域传输(不能穿过ABR(MA网络中))
LSA3:由ABR产生,描述区域内某个网段的路由,通告给其它区域(穿越ABR就会标识为这个ABR的router-id)
LSA4:由ABR产生,描述ASBR的路由,通告给相关区域(告诉其它区域ASBR所在的位置)
LSA5:由ASBR产生,描述到AS外部的路由,通告给所有的区域(除Stub、NSSA)
LSA7:由NSSA区域内的ASBR产生,描述到AS外部的路由,仅在NSSA区域内传播
LSA4和LSA5结合起来的、有LSA5产生才叫ASBR
LSA5不属于任何区域 通告者是不会发生改变
SPF算法:每一条LSA都标记了生成者、其它路由器只负责传输、不对其修改
1、每一个OSPF区域,所有路由器有同样的LSDB
2、每一台OSPF路由器,在计算时都以自己为树根,计算一棵SPF树
3、从本路由器出发,到特定目标网络的整体开销最小的那个路径,成为最佳路径
4、那么这条最佳路径,就成为OSPF这个协议,提交给路由表,到达这个目标网络的路由
最长匹配,AD比较,Metric比较
先比较最长匹配如(10.2.2.0/24,10.0.0.0/8,将选10.2.2.0/24,而不管路由协议的AD),然后比较AD,最后比较Metric
触发更新
周期泛洪:30分钟泛洪一次 60分钟老化时间60分钟收不到更新LSA就数据库中删除该LSA
本台路由器收到LSU查看数据库中没有LSA添加到本地的数据库中,向源端发送LSACK,然后再向邻端泛洪、若本地发现有这条LSA条目了,判断lsa是否是最新,比序列号大的是最新的LSA
IGP引入到OSPF中是E1、cost是不发生改变的,BGP引入到OSPF中是E2、cost是发生改变的
OSPF的选路原则:O > OIA> OE1>OE2
DR的选举方式:(DR针对的是接口不是路由器)
1、优先级越大,越可能成为DR(default=1) 在接口下修改优先级 ip ospf priority
特别注明:OSPF的优先级是针对某个特定的MA接口而言的,不是针对整个路由器的
2、较大的Router-ID。(Router-ID最大的成为DR,次大的成为BDR。其余的统统都是DR-other)
DR、BDR特点:
1、DR不抢占 BDR不抢占 (防止篡改路由表不稳定)
2、当DR Down BDR直接选举为DR,不需要重新选举DR
3、DR/BDR/DROTHER是接口概念
4、不同网段分别选DR,BDR
Router-ID选举方式:
1.手工指定(任意 唯一性)
2.loopback口最大的ip地址
3.物理接口最大的ip地址(必须活跃的物理接口)
Router-ID:建议全网唯一,不然会导致问题
同一个路由器可以启用不同的进程,但不同的进程分属与不同的as,不能互相同步信息
同一个路由器不同的进程不能使用相同的router-id
OSPF的路由汇总:注意路由汇总要精确
生成的汇总路由包含范围过大,则很可能形成路由黑洞
生成的汇总路由包含范围过小,则很可能丢失部分明细路由
域内汇总:不能做,因为每台路由器在同一区域都有相同的数据库,都有明细
划分区域的主要目的:
1.减小路由表的条目,进而减少每个路由器的内存中的路由,及其内存消耗,提高转发效率
2.将topology变化本地化
3.减少LSA泛洪范围,防止某个区域中的路由抖动,影响到别的区域。(减少爱波及的范围)
ospf的特殊区域:设计特殊区域是为了减少LSA条目 泛洪
stub区域规则:
1、过滤LSA4/5,stub主动下放LSA3的默认路由,cost的值是1
2、建立邻居区域要匹配(这个区域所有路由器都要配置stub)
3、配置stub区域不能出现ASBR
4、不能把area 0 配置stub区域
stub 过滤LSA4/5、下放默认路由(LSA3)seed cost=1
totally stub 过滤LSA3/4/5、下放默认路由(LSA3)seed cost=1
NSSA 过滤LSA4/5将LSA7转换为LSA5、不下放默认路由(default LSA7)seed cost=1
totally NSSA过滤LSA3/4/5、下放默认路由(no-summary LSA3)cost=1
totally stub 减少路由表条目 cisco私用 在ABR上配置area 1 stub no-summary 区域里面只
虚拟链路的产生:area 【穿越区域】 virtual-link 192.100.0.2【对端的route-id】
1.在大型网络工程中,由于历史原因,导致网络扩展不佳,迫于网络扩容的原因,被迫新建OSPF区域。
2.在大型网络中,处于网络冗余考虑,避免因为个别物理链路的中断,导致整个OSPF区域的全网中断
3.导致OSPF的Area0区域出现双BackBone
解决办法:虚链路(配置简单)、GRE(配置复杂)、不同进程间的重分布(配置复杂)
第一种做法:需要先写一条静态的默认路由,再用命令下发
ip route 0.0.0.0 0.0.0.0 Serial 0
default-information originate
第二种做法:不需要写一条静态的默认路由,直接下发
router ospf 100
default-information originate always
log adjcency-changes detail 日志管理
ospf的重分布需要加上subnet
距离矢量选路依据是邻居、链路状态选路依据自己的LSDB
单区域的OSPF还不如静态路由
OSPF配置
ospf 110 router-id 1.1.1.1 建立进程号 router-id
peer 10.1.1.2 配置邻居
log-peer-change 开启邻居变化日志信息
filter-policy import 对接收的路由信息进行过滤的规则
filter-policy export 对发布的路由信息进行过滤的规则
import-route static 重分布静态
default-route-advertise 下放默认路由
asbr-summary 10.1.0.0 255.255.252.0 ASBR地址汇总
area 0 区域零
network 2.2.2.0 0.0.0.255 反掩码(0表示严格匹配,1表示任意匹配)
area 1
abr-summary 10.1.0.0 255.255.252.0 ABR地址汇总
当网络中出现两台核心时,ospf的cost一定要做修改,不然路径等价负载会出现丢包现象。
修改cost值不在ospf进程打 bandwidth-reference 不然你改cost的值就会出现麻烦
reset ospf 110 process 重启ospf110 进程
display ospf 显示ospf全局信息、包括router-id、area、abr、asbr
display ospf error 显示接收报文时记录的所发生的错误
display ospf interface 查看接口信息、包括cost、type、state、dr等
display ospf peer 查看与邻居router之间的关系
display interface brief 查看接口的计数