OSPF
IGP 适用于中到大型网络
LS 链路状态协议
无类协议,支持VLSM/CIDR
在三层协议中封装协议号89
OSPF的传递特点:
每台路由器都有整网的路由,且知道每条路由所对应的接偶口
同一区域内的所有路由器都有相同的LSDB
注意:多区域中必须有 area0骨干区域,单区域中可以不是area0
划分区域的影响:(优化了整体网络)
减少了路由条目数量(同一区域内不可以汇总路由,只有区域间和域外才能汇总)
注意:如果同一台路由器属于多个区域,有多张LSDB表
将拓扑表变根限制在同一个区域内
LSA传递是基于泛洪
ABR区域边界路由器,一个属于Area0,一个是非Area0区域
OSPF的邻建立:
point-to-point
MA (DR BDR Drothers)
SPF的特点:
同区域内每台路由器拥有相同的LSDB
每台路由器在收敛完毕后都会以自己为根计算路由条目
cost 计算公式 10^8/BW(bit/s) 计算出结果然后每段相加
路由表加条目
LSA的 传递:
当一台路由器收到一个LAS后
LSA-----判断本地有没有这个LSA―(有)――查看跟自己的序列号一样不―(相同)――直接无视
| |
没有 比自己高 | 比自己低
| | |
加入LSDB 重复左边操作 给发送者发送LSU同步LSDB
|
send LSAck
|
泛洪
|
本地通过SPF算法加入路由表
注意:OSPF发送LSU即支持周期性发送也支持触发更新
LSA报文没30min更新一次,60min内LSDB中的LSA没有被更新就会被丢弃
序列号:最小 0x80000001
最小 0x7FFFFFFF
当前使用的是棒棒糖型(序列号)
OSPF的报文:
1.hello 周期10/30s hold time 时间为40s (4倍)
2.DBD DBD包含本地LAS的摘要,双方进行交换(采用隐式确认)
3.LSR LSR包含需要的LSA摘要(显式确认,发送LSU)
4.LSU LSU包含完整的LSA报文
5.LSAck 基于LSU中的每条LSA发送LSAck
OSPF的确认:
显式确认:发送专门的ACK确认
隐式确认:把收到的DBD发送给发送者,但用的是对方的序列号
注意 :隐式确认是基于序列号的确认机制,只有OSPF支持
OSPF的封装:
二层帧 IP OSPF的载和 FCS
OSPF的载和内容:
version type packet长度 router ID area0 校验和 认证(0/1/2) data
version : OSPF有两个版本,V2用来支持IPv4,V3用来支持IPv6
type :五种,hello DBD LSR LSU LSAck
RID:1.手工配置 2.双up下loopback IP最大 3.双up端口下,物理IP最大(既可以标识路由器,也可以标识LSA)
data:DBD中不仅有data,还有MTU字段
Hello报文:
RID
hello and dead (必须相同,EIGRP没有这个要求)
10s/30s取决于网络的,跟带宽没有关系,跟EIGRP不同
neighbors :存放RID
Area ID
router priority (不一定都有优先级)
BR
BDR
认证
相同区域类型
OSPF的邻接建立过程:
Down 初始状态,接口被宣告进EIGRP,没有发送任何的报文
lnit 通过接口发送了一份hello报文
Two-way 通过接口收到了一份hello报文,里面的neighbor字段包含自身的RID(当时MA网络时,在这个时候开始选举DR和BDR,而点对点网络直接进入下一步)
Exstart 交互三个不带LSA包头的DBD选择Master/Slave(主/从)
Exchange 有Master发起的带有LSA报头的DBD信息交互
Loading 交互LSR、LSU以及LSAck实现LSDB的同步
Full 一旦LSDB同步,邻接关系达到Full
Area 0 = 0.0.0.0
1 = 0.0.0.1
255 = 0.0.0.255
256 = 0.0.1.0
debug命令:
debug ip ospf packet
debug ip ospf adj
修改MTU:
进入接口
ip mtu 1492
清除进程:
clear ip ospf process
建立邻接关系时无视MTU影响的命令:
进入接口
ip ospf mtu-ignore
注意:一端设置和两端设置命令一样,建议两端设置
修改hello时间后dead时间自动改为四倍,但修改dead时间后hello时间不会自动 减小四倍,EIGRP不具备这个特点
当把loopback宣告进OSPF时,不管宣告的是几位的,OSPF都会默认是/32位的,因为OSPF默认下把loopback接口认为是末节主机
禁止这个特点的命令:
interface loopback 0
ip ospf network point-to-point
注意:当输入这个命令后loopback就不会被认为是末节主机了
在MA网段建立OSPF邻接关系是DR和BBR的选举原则:(选举时间为40s,取决于wait时间)
1.参与该MA网段的路由器接口的OSPF优先级,越高越好(0-255),默认为1
2.该MA网段所连接的路由器的RID,越高越好
DR和BDR的关系:
1.DR和BDR无法被抢占
2.DR挂了BDR会立即抢占成为新的DR,而新的BDR通过在所有DRother之间重新选举得出(二次选举不需要等40s)
3.DR和BDR都是接口级别的概念,每个网段的DR和BDR都通过相同的机制单独选举
4.在以太网环境中建议拥有DR和BDR实现备份,而在FR环境中,只能是Hub节点成为DR,任何Spoke节点都不能成为DR和BDR
5.如果一个MA网段没有DR和BDR,没有任何的邻接关系也不会有任何的LSA传递
修改OSPF的优先级:
进入接口
ip ospf priority 0
注意:当输入这个命令之后路由器不会建立邻接关系,因为选举不出DR和BDR,路由器会停在Two-way状态
一台运行OSPF的路由器,只要在一个接口开启了OSPF的进程,则该接口会立即监听发往224.0.0.5的组播流量,而仅当一个节点成为DR或BDR时,该接口才会同时监听发往224.0.0.5和224.0.0.6的组播流量
在一个MA网段内,所有的路由器发送的DR和BDR的报文的目的地址都是.6而DR将LSA整合之后以.5的地址发送的网段内所有的其他路由器
在点到点网段不会存在.6的地址,因为没有DR和BDR
ASBR系统边界路由器(路由重分发)
LSA:
Router LSAs:
传递范围:只能在一个Area内传递,不能穿越ABR
通告者:每台属于区域内的路由器都会基于该区域通告一条1类LSA
包含的内容:拓扑信息,其中描述该路由器所有宣告进该区域的链路的前缀,掩码,网络类型及其度量值
Link_ID:通告该LSA的路由器RID
ADV Router:通告该LSA的路由器RID
查看命令:show ip ospf database
show ip ospf database router
注意:串口会在Link count 中自动多生成一条stub
Network LSAs:
传播范围:同一类LSA
通告者:MA网段中的DR
包含的内容:纯拓扑信息,包含了该MA网段直连的所有路由器的RID信息,该MA网段的掩码
Link-ID:该MA网段DR接口的IP地址
ADV Router:该DR的RID
查看命令:show ip ospf network
Summary network LSAs:
传播范围:除了该区域外的整个OSPF路由选择域
通告者:ABR
包含的内容:一条3类LSA包含一条OSPF域间路由 (O IA)
Link-ID:3类LSA路由器的前缀
ADV Router:ABR的RID,,3类LSA在OSPF路由选择域内传递的时候为了保证可达性,没跨越一个ABR都会自动改写成为该ABR的RID
查看命令:show ip ospf database summary
Summary ASB LSAs:
传递范围:除了ASBR所在的区域外的整个路
通告者:和ASBR在同一个区域的ABR路由器
包含的内容:纯拓扑信息,描述了ASBR所在的位置
Link-ID:ASBR的RID
ADV Router:通告者ABR的RID,并且该值每跨越一个ABR都会自动改变,同3类LSA
查看命令:show ip ospf database asbr-summary
External LSA:
传递范围:整个OSPF路由选择域
通告者:ASBR
包含的内容:纯路由信息,一条OSPF域外路由对应一条5类LSA
Link-ID:域外路由的路由前缀
ADV Router:ASBR的RID,该LSA在OSPF域内传递的时候,ADV Router 不会发生任何的改变,形成的路口为(0 E2 0E1),默认下为0 E2
Seed Metric:
种子度量值,对于OSPF而言,如果将BGP路由重分发进入,则Seed Metric 默认为1,如果将其他的外部路由重分发进入,默认为20
修改0 E1的命令:
在ASBR上做重分发的时候修改
router ospf 110
redistribute eigrp 90 subnets
metric-type 1
OSPF的汇总:
域间汇总:需要在ABR上部署,实现对3类LSA的汇总传递
域外汇总:需要在ASBR上部署,实现对5类LSA的汇总传递
域间汇总的命令:
router ospf 110
area 0 range 202.10.8.0 255.255.255.0
所有的ABR上都要配置
域外汇总命令:
router ospf 110
summary-address 192.168.8.0 255.255.255.0
两者都会生成Null0
LSDB的过载保护:
注意:只有12.4以上的版本才有
进入进程
max-lsa 4 负载的条数
warning-only 默认为75%时报错,建议修改为100%,仅仅会报错
ignore-time 默认为5分钟down邻居,最小可修改为1分钟
ignore-count 邻居次数超过限制就不会再建立,一般设置为3次
resent-time down完邻居重新建立后等待时间,默认3分钟,3分钟内没有过载就会把ignore count清零
修改度量值:
int f0/0
ip ospf cost 66
router ospf 110
auto-cost reference-bandwidth 10000Mbits(注意单位)
注意:第二种修改是修改OSPF计算公式中的分子大小
OSPF的stub区域:
需要的条件:
建议只有一个ABR
能正常建立邻接关系
区域内不能有ASBR
不能是area0区域
不允许有虚链路
只能是末节区域
实现的目的:
保证stub收不到任何4,5类报文
主动向区域内下放缺省路由
配置命令:
router ospf 110
area 1 stub
注意:区域内的路由器都要配置stub,路由会以O* IA显示,Metric=65
总结:如果一个OSPF区域属于stub区域,该区域内的ABR会将入区域方向的4,5类LSA同时过滤,同时该ABR会主动向区域内发送一个O* IA的0.0.0.0/0的3类缺省路由,Seed Metric=1
修改Seed Metric的命令:
router ospf 110
area 1 default-cost 36 (默认为1)
注意:修改命令是在ABR上修改
OSPF的Totally stub区域:
配置命令:(在ABR上配置)
router ospf 110
area 1 stub no summary
不仅能阻止4.5类LSA报文,还能阻止3类LSA报文
总结:在stub区域基础上ABR路由器会同时将3,4,5类入向传递的LSA过滤,同时会主动向该区域注入一条0.0.0.0/0的O* IA缺省路由,Seed Metric=1
OSPF的Not-So-Stuby-Area区域(次末节区域)(NSSA区域)
优势:允许区域内部重在ASBR,但是它不会主动向区域内下放缺省路由
当NSSA区域内的路由器既属于ABR又属于ASBR时,它产生路由在NSSA区域内以7类LSA传递,在其他区域一4,5类LSA传递
NSSA区域内的ABR能把区域外的5类LSA翻译为7类LSA下放到NSSA区域,路由以 O NA格式显示
NSSA区域内ASBR产生的路由以7类LSA在该区域内传递
NSSA的ABR会阻止4,5类LSA报文传递进入该区域
查看路由器的角色:
show ip ospf border-routers
一台路由器只要可以产生5类LSA,则该路由器就是ASBR
给NSSA区域下放缺省路由的命令:
area 2 nssa default-information-originate
当给区域配置了下放缺省路由的命令后就没必要下放明细路由
禁止NSSA区域中ABR路由下放到该区域的命令:
router ospf 110
area 2 nssa default-information-originate no redistributi
修改 O NA的命令:
area 2 nssa default-information-originate metric-type 1
修改Seed Metric的命令:
area 2 nssa default-information-originate metric 36 metric-type 1
修改forward address 为0.0.0.0的命令(在ABR上修改)
area 2 nssa traslate type 1 suppress-fa
注意:NSSA中的forward address 是为了告知外部路由器数据传送的真正方向,修改forward address可增加安全性
OSPF的Totally NSSA区域:
router ospf 110
area 2 nssa no summary
优点:
同时过滤3,4,5类LSA报文
主动下放0.0.0.0/0的缺省路由
总结:在NSSA区域可以拥有ASBR,并且重分发进入的OSPF的路由是以7类LSA形式存在的,该类型的LSA只能存在NSSA区域,并且该区域所有的ABR会通过比较RID选举出一个转换器(最大的RID),该转换器会将内部传递给外部的NSSA的LSA报文转换为5类LSA,并且通告给其他的区域,所有该区域的ABR都会过滤重外部进入该区域的4,5 类LSA,但是该区域的任何ABR都不会主动向内部下放缺省路由,为了实现内部路由器的外网可达性,需要在该区域ABR上手工下放缺省路由,O N2 forward address 0,0,0,0
Seed Metric=1
在Totally NSSA区域中,基于NSSA区域的特性,ABR会主动阻止3,4,5类LSA进入该区域,并且ABR会主动向该区域下放缺省路由 O* NA forward address 0.0.0.0/0 Seed Metric=1
路由器的加表优先级:
O >O IA >O E1/O E2 = O N1/ O N2
不规则区域:
远离骨干区域的非骨干区域
被分割的Area0区域
对不规则区域的三种临时解决方案:
在出现问题的ABR上(没有和Area0直连的ABR上),使用双OSPF进程,并且执行单点双向重分发
缺点:影响次优路由的选择
在出现问题的ABR上建立一个Tunnel链路,连接到离其最近的Area0中的ABR路由器上,在这两台ABR上对Tunnel配置IP地址为同一个IP子网段,并且将其宣告进OSPF的区域0中
建立Tunnel的命令:
interface tunnel 3
tunnel source 3.3.3.3 源地址
tunnel destination 1.1.1.1 目的地址
interface tunnel 3
ip add 2.2.2.2 255.255.255.0
注意:不要宣告源和目的地址进入OSPF进程,因为会引起路由翻动,把源目的地址以静态路由的方式写入路由表
3.使用Virtual-Link在出现问题的ABR上以及离他最近的Area0中的ABR上部署
注意:Virtual-Link不能跨越骨干区域,不能跨越特殊区域
配置命令:router ospf 110
area 2 virtual-link 1.1.1.1(RID) area 2 为自身现在所处的区域
show ip ospf virtual-link
注意:只能在同区域的两台路由器上建立Virtual-Link
OSPF的认证:
ospf既支持明文认证,也支持密文认证
基于链路级的认证
(1)链路级明文认证
interface s1/1
ip ospf authentication-key cisco
ip ospf authentication
(2)链路级密文认证
interface s1/1
ip ospf message-digest-key 12 md5 cisco
ip ospf authentication message-digest
注意:两段都需要配置
2. 基于区域级的认证
(1)区域级明文认证
interface s1/1
ip ospf authentication-key cisco
router ospf 110
area 0 authentication
(2)区域级密文认证
interface s1/1
ip ospf message-digest-key 12 md5 cisco
router ospf 110
area 0 authentication message-digest
注意:区域内的路由器都要配置
3.虚链路的认证
(1)Virtual-Link明文认证
router ospf 110
area 0 virtual-link 1.1.1.1 authentication-key cisco
area 2 virtual-link 1.1.1.1 authentication 1.1.1.1为路由器的RID
(2)Virtual-Link密文认证
router ospf 110
area 2 virtual-link 1.1.1.1 message-digest-key 1 md5 cisco
area 2 virtual-link 1.1.1.1 authentication message-key
注意:不管是明文还是密文,只有在建立邻接关系的时候才有用,在建立邻接后才配置,就没什么卵用了
OSPF的网络类型
Loopback 无论接口掩码多少,都以/32位主机路由出现
Point-To-Point 建立邻接关系的数量只能有一个,支持组播,没有DR,Hello时间为10s,一般用在Serial/ISDN BRI中
Broadcast 以太网接口,支持组播,有DR,Hello时间为10s
NBMA 主要用在FR主接口/FR多点子接口,不支持组播,有DR,Hello时间为30s
配置:interface s1/1
ip ospf network non-broadcast
router ospf 110
neighbor 1.1.1.2 (一定要指定单播地址,因为不支持组播,只需要在一端配置)
5. Point-To-Multipoint(点到多点)
支持组播发送,没有DR,Hello时间为30s,本地路由表会自动生成直连邻居接口的/32为主机路由
show ip ospf interface s1/1
show ip route ospf
6. Point-To-Multipoint Non-Broadcast (点到多点非广播)
不支持组播发送,没有DR,会自动生成一条/32位的主机路由Hello时间为30s
注意:1.其中3.5.6为思科私有的网络类型
2.修改命令为 interface s1/1 ip ospf network ......
3.直连链路两端网络类型必须一致,但有个特例(一端是点到点,一端是点到多点,配置时需要修改hello时间)
4.其中4.5.6配置完成后show ip ospf interface s1/1看到的网络类型都是Non-Broadcast,所以需要查看用show run-config
在FR环境中部署OSPF
网络类型为NBMA
(1)为了建立邻居需要在Hub节点上手工指定neighbor
(2)为了保证路由传递没有问题,需要手工修改接口的OSPF优先级,保证Hub为DR,Spoke什么都不是
(3)为了保证Spoke节点所连接的下游网段的PC可以互访,需要在Spoke节点手工FR映射
网络类型为Broadcast
(1)由于支持组播发送,所以不需要指定neighbor,但前提是FR开启了伪广播功能
(2)需要修改接口的优先级,改变DR的位置
(3)需要手工配置FR的映射,实现Spoke节点的互访
网络类型为Point-To-Point Non-Broadcast
(1)需要手工指定neighbor建立邻居
(2)不需要修改优先级,因为没有DR
(3)不需要手工FR映射,因为有/32位的主机路由
Point-To-Multipoint
(1)不需要手工指定neighbor
(2)不需要修改优先级
(3)不需要手工映射
向OSPF中注入缺省路由:
router ospf 110
default-infromation originate 注意:路由器中必须有一条全零的缺省路由才行
ip route 0.0.0.0 0.0.0.0 null 0 创建缺省路由
router ospf 110
default-information originate always
OSPF的被动接口
router ospf 110
passive-interface f0/1
注意:OSPF设置为被动接口后,既不能发,也不能收,跟EIGRP一样
OSPF关闭ARP的映射:
no frame-relay inverse-arp
no arp frame-relay
只有两个命令同时使用才能关闭ARP的映射