ospf rip eigrp
分类 IGP 无类 链路状态 IGP 无类 距离矢量 IGP 无类 混合
封装 IP 89 udp520 IP 88
更新地址 224.0.0.5-6 224.0.0.9 224.0.0.10 也可以neighbor指单播
更新方式 定时(30分)完整 完整(30秒定时触发 增量 触发
老化(60分)触发
AD 110 120 汇总5 外部170 内部90
度量 带宽 跳数 5个K值(默认带宽 延时)
##########################################################################################
◆LSA 分为7类
链路状态协议传递的不是路由,而是LSA(链路状态描述信息)包括路径和拓扑。
- 一个区域内的LSA是同步,一致的。
- LSA放到LSDB,同步后运行SPF算法形成SPF树,根据SPF树生成路由表
◆链路状态协议的结构
- 邻居表 通过hello包形成和维护
邻居数据库
包含自己承认的邻居名单
- 拓扑表
LSDB
包含所有路由器及其所连接的网络;对比eigrp只有邻居通告的路由信息
同一区域内LSDB内容同步
- 路由表
转发数据库
达到目的的最佳路径列表
◆链路状态协议的结构:去适应大型网络,隔离大量的LSA泛洪
网络分层
- 链路状态协议需要对网络分层
- 层次包括 2层:骨干 区域 0。。 传递路由
非骨干区域 。。 接入终端 路由汇总给骨干。
◆区域特点:
- 减少路由条目 手动汇总
- 拓扑变化只影响自己的区域
- LSA在自己区域泛洪
- 层次化设计
◆区域术语:
非骨干区域必须和骨干区域相连,防环;区域之间类似于距离矢量的方法来选路,通过骨干区 域知道非骨干区域
ABR 区域边界路由器,即连接区域0和非骨干区域的路由(连接非骨干区域的路由器不能称为 ABR)一个路由器同时属于两个区域,属于不同区域的是接口。对比BGP一个路由器只能属 于一个区域
ASBR 把外部路由重分布到ospf内的路由器 除了特殊区域 ofpf stub
OSPF 邻居 :
hello更新时间10秒,死亡时间40秒 前提- 点到点网络和广播
hello更新时间40秒,死亡时间120秒 前提- NBMA ;点到多点;点到多点非广播
路由器交换hello信息建立邻居
hello包内容:hello & dead 时间必须一致
area ID 必须一致
认证密码 必须一致
stub 区的flag 字段 普通区域和stub不能称为邻居
接口MTU 必须一致 ,除非配置接口忽略MTU.ip ospf mtu ignor
MA网络中,接口掩码必须一致。
帧中继网络,隔离组播也会无法形成邻居关系
ACL过滤数据包 导致无法建立邻居
除此之外还包含 router ID唯一标识路由器;neighbor;
邻接:邻接关系同步LSA .。邻居关系,不同步LSA
是否形成邻接 由OSPF网络类型决定的
- 点到点广域网
邻居之间形成完全邻接状态
- 局域网链路
与DR BDR 形成完全邻接状态 MA网络
点到多点 点到多点非广播 相邻设备形成邻接关系
与其他路由器只形成邻居关系,双向状态Drothers
- 路由更新和拓扑信息只在形成邻接关系的路由器之间传递
- 一旦形成邻接,将同步LSA
- LSA将在一个区域内泛洪
◆OSPF算法 SPF算法
10~8 / 接口带宽(路由入方向的接口) 单位 bps 例如100M链路的cost值就是1
◆LSA 序号
- 每个LSA 在LSDB中都有一个序号
- 序号编排方案是一个4字节的数字,从0X80000001 到 0X7FFFFFFF
- 每隔30分 路由的LSA泛洪一次,保证数据库同步,每次泛洪,序号 +1
- 最终,一个LSA会从 0X7FFFFFFF 循环回 0X80000001。若发生这种情况,这个LSA会被始发路由 器将老化时间设置为60分,并从LSDB中清除。
- 当路由器遇到两个一样的LSA,必须确定哪个最新,即序号高的最新。
◆LSA序号和生存时间
查看LSA序号 :show ip ospf database
◆链路状态协议的结构:LSA
路由器收到一条LSA,如何判断本地是否已经存在这条LSA?
通过LSA头部信息,包括3个信息,完全一致才是同一条LSA
show ip ospf database
1,类型 1--7类: router--1类
2,通告路由器: ADV ROUTER
3,LSA名字: Link-ID
判断一条LSA是否是最新的,出来用序号区别外,还可以用老化时间和校验和区分!!
############################################################################################################# OSPF 包类型 ####################
HELLO 建立和维持邻居关系 网络类型决定10秒还是30秒
DBD LSA的头部消息 6个消息 3个区分是否同一个LSA. ; 3区别是否是最新的LSA
LSA类型,通告路由器,link-ID; 序号生存时间 校验和
link-state request 也是LSA头消息
link-state update 完整LSA消息
link-state ACK
其中只有LSU需要ACK确认
LSU 来确认 LSR
DBD 自己确认自己
OSPF 包头格式
version number | type | packet length | router ID | area ID | check sum | authentication type | authentication | date |
version v2--IPv4; v3--IPv6
type 1-5 5种包类型
routerID 标识路由器
area-ID 基于接口。。。。ISIS 区域基于路由器
校验和 确定包么有被篡改
认证类型 0:不认证,默认 1:明文 2:MD5
authentication 根据类型 空 密码 散列值
DATE 若是DBD:本地所有的LSA头
LSR:想要的LSA头
LSU:完整LSA
ACK:收到的LSA头
hello包:包括内容
router ID
★ hello dead 时间
neighbor 收到的hello包含自己routerID
★ areaID
router priority
DR IP address
BDR IP address
★ authentication password
★ stub area flag
◆ OSPF路由器ID
- 每个运行ospf的路由器都有一个routerID
- 在LSDB中,通过routerID识别不同路由器
- 默认,routerID是路由器活动接口IP最高的
- 若配置loop back 则他将成为routerID,若有多个loop back 则选IP最高的
- 配置 进程下 router-ID x.x.x.x
- 建议用loop back 口做routerID
routerID 配置多少就是多少 没配置 就是loop back IP 最大的 没有loop back就选活动接口IP最大的
改变routerID 要重启进程才能生效clear IP ospf process ;这个过程会重新收敛,会造成断网。
routerID相同将不能形成邻居关系。不相邻路由器,或不同区域路由器routerID一样可以建立邻居但会影响路由传递。
◆DR BDR选举
- 利用组播交换hello (优先级字段)
- 优先级最高当选DR,次高为BDR
- 优先级相同,用routeID比较
◆优先级
- 接口下 命令 ip ospf priority number
- 不同接口可能被分配不同值
- 默认 1 。范围 0 - 255
- 优先级为 0 将永远不参与DR BDR选举
- 一个路由器不是DR 或BDR,就是DRother
- DR BDR 非抢占,但可以设置为 0 主动弃权,同时BDR变为DR,不会出现更高优先级的成为DR,剩 下的选举BDR
- 选举时间40秒
◆ DR/BDR选举完成后,DRrother只和DR、BDR形成邻接关系。
所有路由器组播hello包到地址224.0.0.5 以便他们能跟踪其他邻居的信息,即DR将泛洪LSU到 224.0.0.5
Drother 只组播LSU到all drother地址224.0.0.6。只有DR BDR监听这个地址
所有Drother泛洪 LSU 到224.0.0.6,这个地址只有DR BDR能接收,Drother将丢弃这个组播地址,然后DR 泛洪 LSU 到224.0.0.5,这个地址所有路由器都能收到 ,这样DR BDR和所有drother的通信。
当有链路断了 泛洪老化时间为3600秒 序号+1的LSA
当DR当掉,BDR不存在情况下 ,Drother发的更新,其他路由器需要40秒dead时间才能知道,所以Drother需要40秒才能收敛
在有BDR的情况下,Drother的更新224.0.0.6也会被BDR收到,当BDR 4秒没收到DR关于DRother的更新,BDR就会接替DR,泛洪224.0.0.5。所以其他路由器只需4秒就能收敛。
########################################################################################
◆ 过程
172.16.5.1 172.16.5.3
RA-----------down state---------RB
-----hello 224.0.0.5-->RB->init state
<----单播包含RA的信息----- 触发更新
two-way state---单播包含RB的信息-》RB 也进入two-way state
two-way state 使用HELLO中的优先级字段后routerID选举DR BDR 40秒时间,所以two-way会卡40 秒,如果不需要选DR BDR 就瞬间进入下一状态。
exstart state
选举master,master不一定是DR,因为DR使用优先级选举,master使用routerID
使用DBD报文中的routerID
RA/|\----------I will start exhange 携带自己routerID------------->RB
<--NO,I will start exchange 携带自己routerID(地址高于RA)--
Exchange state
<-------------here is a summary of my LSDB------------------
-------------here is a summary of my LSDB------------------>
Loading state相互请求自己所需
LSR ----------RA需要的路由------------->
<---------RA需要的路由-------------LSU
LSACK---------------------------------->
FULL state 然后运行SPF生成路由表
DBD报文,如何实现自己确认自己?
DBD字段包括3位
init是否是初始 more是否有后续报文 master是否是主
第一个DBD的flag字段3位都为1 即flag=7(init=1,more=1,master=1),随机生成一个序号。对端也是发送flag=7的DBD
比较routerID后 用对端序号发给对端 flag= 2(init=0,more=1,master=0).对端收到200的序号
对端发送序号位201 flag=3(init=0,more=1,master=1) ,直到主传到最后一个报文时 flag = 1 init=0,more=0,master=1(最后一个报文不携带任何数据,只用来确认传输完成,此报文不需要确认)
确认完成!!!
#######################3
实验:
一,相邻路由器的routerID不能一致,一致不能建立邻居关系
二,同一区域的routerID不能一致,否则出现路由震荡
三,用debug和抓包工具,观察邻居建立过程
show ip route ospf
show ip ospf neighbor
show ip ospf interface
步骤
1,配置IP和loopback
2, R1 R2 启用ospf进程。相同routerID 提示routerID重复。无法建立邻居
3,修改R2routerID,注意此时马上就会选举出DR,不需要等待40秒,因为计时从接口宣告进OSPF进程就开始计时,DR是在tow-way状态选举,但是不是在这个状态开始计时。
配置R3 routerID与R1相同。此时R2 show ip ospf database 观察路由震荡现象(AGE=3600 然后有恢复正常,然后有置为3600)。需要等待40秒
4,更正R3 routerID,clear ip ospf process
修改优先级,接口下 ip ospf priority 10 注意:DR BDR选举是一个网段选举一个
观察邻居建立过程
只看R1 R2 当掉R3
步骤,
1, R2 int f0/0 shut down
2, 使用gns wareshark 抓包
3,R1 R2 debug ip ospf events
4,R1 R2 接口no shut
5, 等待40秒邻居才会起
6,先观察debug信息
接口up---sent hello 224.0.0.5---two-way----DR BDR---交换DBD--exchange--LSR--LSU--FULL
看抓包报文 注意交换DBD时没有ACK确认,只有LSU才会ACK确认
############################################################################################################### OSPF 网络类型 ##########################################
#####################################################
OSPF网络类型起因:对比eigrp只需要一种网络类型,只有在低速链路调整eigrp进程占用比
为了更快收敛,更高效。针对不同的2层链路规定了不同网络类型。
2层网络类型 以太网 PPP HDLC NBMA 帧中继(点到点,点到多点)
类型都是基于接口的,修改要在接口下
网络类型 | 2层链路 | DR/BDR | 手动建邻居 | 更新地址 | hello时间 | 备注 |
P-to-P | ppp HDLC 帧中继点到点子接口 | 不选 | 不用 自动建邻居 | 224.0.0.5 | hello=10秒 dead=40秒 | |
broadcast | 以太网 | 选举 | 不用 | 224.0.0.5 224.0.0.6 | hello=10 dead-40 | |
NBMA | 帧中继主接口和多点子接口 | 选举 | 手动 | 单播 | hello=30 dead=120 | |
P-to-m | 不选 | 自动 | 224.0.0.5 | hello=30 dead=120 | ||
p-to-m NB | 不选 | 手动 | 单播 | hello=30 dead=120 | 有32位主机路由,本地宣告的接口地址都以32位主机路由通过出去 |
注:上述OSPF与2层对应关系是默认的,可以在2层链路上任意修改OSPF网络类型。通常2层的PPP HDLH 帧中继子接口和以太网的对应OSPF网络类型不需要修改。但是帧中继主接口和多点子接口就要根据拓扑修改OSPF网络类型!!!!
上述 hello时间相同的可以建立邻居,但是不能学习对端路由
以下修改hello时间后,就可以建立邻居 之后也可学习到对端路由
NBMA BROADCAST
点到点 点到多点
点到点 点到多点NB
######################
总结:hello时间相同的可以互相建邻居。但是不能学习路由。;选举DR BDR的类型通过修改hello时间后可以学习路由;不选DR BDR通过修改hello时间可以学到对端路由!!
######################## 点到点链路 ##################
- 通常一个串行接口运行PPP已经HDLC
- 在frame relay 或 ATM中的点到点子接口
- 没有 DR/BDR的选择
- ospf 自动监测这个接口类型
- ospf 使用组播地址224.0.0.5 发送协议包
1, R1 R2 启用S口IP 和loopback
2, 启用OSPF 1 area 0
3, debug ospf events hello 224.0.0.5
show ip os nei 自动建邻居 没有DR BDR
sho ip os int s0/0 hello wait time
############### 广播型多路访问 ##################
- 一般都是在局域网技术总 比如以太网 令牌环等
- 选择DR BDR
- 所有路由器只和DR BDR 邻接
- 去往DR BDR使用组播224.0.0.6
- DR 去往DRouther 使用224.0.0.5
上拓扑R2 R3之间
1, 启用IP
2, 启用ospf
3, show ip os nei 需要等待一段时间。才能看到邻居 看到DR BDR
4, show ip ospf int f2/0 网络类型
R2 s1/0 ip ospf network broadcast 改成广播类型 R1默认。此时可以建邻居。但是一个选举DR 一个不选举 所有学不到对方路由,因为不同网络类型show ip ospf database 对链路的描述不同:
sho ip ospf database 11.1.1.1
sho ip ospf database 22.1.1.1
########### NBMA #################
1, R1 R2 接口下 ip ospf network non-broadcast
2, show ip os int s1/0 查看网络类型
3, show ip os nei 不能自动建邻居
4,手动建邻居 ospf进程下 R1 neighbor 12.1.1.2 指邻居只在一边配置就可以
R2 neighbor 12.1.1.1
之后no 掉 neighbor 邻居也不会当掉
sho ip os nei 选举DR BDR
5, sho ip os int s1/0 hello=30
debug ip os event 单播发送报文
############ 点到多点 ############
1, R1 R2 no 掉 neighbor 12.1.1.x
2, 接口下 ip ospf network point-to-multipoint
3, 重启接口 shut---> no shut
4, 自动建立邻居
5,组播224.0.0.5
6,sho ip os int s1/0 类型 hello=30
7, sho ip os nei 没有DR BDR
######## 点到多点 非广播 ##########
1,接口下 ip os network point-to-multipoint non-broadcast
2, 重启接口
3,sho ip os nei 没有建邻居
需要手动建立
单播 neighbor 12.1.1.2 也只一边配置就可以
sho ip os nei 没有DR BDR
4, sho ip os int s1/0 hello=30 类型依然显示点到多点
5,sho ip ro os 自动产生一条 32位 主机路由
所有点到多点网络都会产生
###########################
NBMA
##########################
- 一个单一的接口与多个站点互联
- NBMA网络支持多路路由,但不支持广播功能
拓扑
全互联
部分互联
星型
NBMA 网络中选DR
- ospf默认认为NBMA像其他广播链路一样
- DR BDR需要和其他路由器全互联,但是NBMA网络并不总是全网状结构
DR要与其他路由器直连 ,因为TTL值是1 跨跳无法通信
为保证hub路由器为DR 需要把邻居优先级置0
neighbor 12.1.1.2 priority 0
- 需要选举DR BDR
- ospf 邻居不自动发现其他路由器
在NBMA网络中运行ospf
RFC2328定义
NBMA
point-to-multipoint
思科附加了
point-to-multipoint non-broadcast
broadcast
point-to-point
###############################
####### 回顾帧中继 ############
###############################
2层协议
使用的DLCI号2层地址,只本地有效
有链接协议。PVC要先建立,通过DLCI号标识。show fram-relay pvc (状态active正常;inactive对方有问题;delete可能两端故障)。本地DTE,运营商DCE.。DLCI号由DCE分配 DTE DCE,通过LMI信令标准保证通信,LMI有3种标准:Cisco标准;ansi;q933a
PVC--->DLCI(active;inactive;delete)
/|\---DCE----DLCI---->DTE
DCE DTE 通过LMI标准维持
LMI 种类1,Cisco
2,ansi
3, q933a
4. PVC建立以后,还要有map表项才能传递数据。
map 产生方法 1:IARP 用本地DLCI请求对方IP
2:手动映射
命令: fram-relay map ip(对端IP)dlci(本地dlci号)
实验:
GNS中注意是串口线
R4:frame-relay switching
int s0/1
enacapsulation frame-relay
frame-relay intf-type dce
frame-relay lmi-type cisco
frame-relay route 102 interface s0/0 201
frame-relay route 103 interface s0/0 301
no shut
int s0/2
enacapsulation frame-relay
frame-relay intf-type dce
frame-relay lmi-type cisco
frame-relay route 201 interface s0/1 102
no shu
int s0/3
encap frame-relay
frame-relay inth-type dce
frame lmi-type cisco
frame route 301 int s0/1 103
no shu
R1: Int s0/0
encap frame-relay
ip add 123.1.1.1 255.255.255.0
no shu
R2: int s0/0
encap fram
ip add 123.1.1.2 255.255.255.0
no shu
R3: Int s/0
ip add 123.1.1.3 255.255.255.0
no shu
R4: show frame-relay route
R1: show frame-relay pvc
show frame-relay map
R1 R2 R3 loopback 11.1.1.1 22.1.1.1 33.1.1.1
R1 R2 R3 开启ospf
手工指邻居 进程下 nei 123.1.1.2 123.1.1.3
sho ip os nei
7. 此时 R2 R3不通。
sho ip ro 有路由
sho fram map 发现没有对应的2层封装
注:帧中继,NBMA网络中,必须要有 每一个spoken点(分支节点之间)映射
R2 接口下 frame-relay map ip 123.1.1.3 201
R3 接口下 frame-relay map ip 123.1.1.2 301
R2 R3通信过程:
R2 2层封装201--》R4:sho fram route (201 s0/1 102)-->R1 102是本地 目标IP是33.1.1.1,查路由表目标的吓一跳是123.1.1.3,sho fram route 2层封装103,103对应2层转发表项从s0/3出去到301--》R3 33.1.1.1是本地
8. 必须控制保证DR是hub点 ,即拓扑中保证R1是hub点!!!
R2 R3 接口下 ip ospf priority 0
因为:2层,spoken分支通过hub点学习到彼此。3层,DRther通过DR学习到彼此
总结:帧中继网络,默认NBMA的ospf网络类型。1,需要手动指邻居neighbor。。;
2,手动映射2层吓一跳,fame map ip ...DLCI..
3, 保证DR为hub点
◆ 解决上述3个问题,可以把ospf网络类型修改为 点到多点
R1 R2 R3 接口下 ip ospf netw point-to-multi
点到多点网络下 1,自动形成邻居 不用手动neighbor
2,2层下一条 指向的是对端直连123.1.1.1(NAMA指向123.1.1.3)
到达spoken端有32位主机路由,所以123.1.1.2和.3能互相通信
3, 不选举DR BDR
########################################
########## 点到多点 非广播 环境 #############
########################################
上述帧中继网络中,把默认NBMA修改成 点到多点 报文使用的是224.0.0.5组播通告,
当有特殊要求:用点到点的上述3种优点,又不能通过广播包时
模拟点到多点非广播关键
1,R1 R2 R3 关闭IARP :接口下 no frame-relay inverse-arp
2,手动指2层映射 R1:famy-relay map ip 123.1.1.2 102
frame-relay map ip 123.1.1.3 203
R2: fam map ip 123.1.1.1 201
R3: fram map ip 123.1.1.1 301
R1 R2 R3 接口下 ip os net point-to-point no-broadcast
需要手动指邻居 neighbor 123.1.1.x
与点到多点的唯一区别是不能通过组播地址224.0.0.5自动建立邻居,要手动指。其他都一样。
########################################3
######### 点到点 #####################3
#######################################
点到多点子接口:
恢复接口配置 default int s0/0
R1: int s0/0.1 point-to-point
ip add 12.1.1.1 255.255.255.0
no shut
frame-relay interface-dlci 102
int s0/0.1 po-to-po
ip add 13.1.1.1 255.255.255.0
fram-re int-dlci 103
R2 int s0/0
encap fram
no shu
int s/0.1
ip add 12.1.1.2 255.255.255.0
fram int-dlci 201
R3 int s0/0
encasulation frame-relay
no shut
int s0/0.1
ip add 13.1.1.3 255.255.255.0
fram-re int-dlci 301
R1 R2 ping直连 r1 r3
R1 : int s0/0.1
ip ospf 1 area 0
int s0/0.2
ip os 1 area 0
R2 R3 int s0/0.1
ip os 1 area 0
sho ip os nei
sho ip os int s0/0.1
特殊网络类型 loopback :只有loopback口才能成为的网络类型,而且都以32位主机路由器宣告出去
通过修改网络类型(只能改成点到点网络类型),可以 以实际掩码位数通告出去
Int lo0
ip ospf network poingt-to-point
############### 以上 网络类型 介绍结束 ###################################################
###############################################
########## LSA 类型 #########################
###############################################
注意点:
1, 每种LSA的传播范围
2, 每种LSA由谁产生,也就是说由通告的
3, 每种LSA所包含的内容
4, 每种LSA命名方式
要清LSA要一起清,否则可能会有重新学习的问题
◆ LSA头部信息
老化时间 | 可选项 | 类型 |
链路状态ID Link-ID | ||
通告路由器ADV Router | ||
序列号 | ||
校验和 | 长度 |
类型:指明是哪种LSA
Link-ID :每一条LSA都有一个LINK-ID,区分不同路由器发出的LSA
ADV-Router:指通告路由器的routerID
◆LSA 类型
LSA TYPE | Description |
1 | 路由器LSA |
2 | 网络LSA |
3 & 4 | 汇总LSA |
5 | 自制系统外部LSA |
6 | 组播ospf LSA |
7 | 定义NSSA区域 |
8 | 外部属性LSA FOR border gateway protocol(BGP) |
9 10 11 | 非透明LSA |
LSA包含的信息:1,路由信息。2,拓扑信息
其中只有1类 2类包含拓扑信息。。
#########################
#### 1类 路由器LSA ######
#########################
- 一个路由器LSA(TYPE 1)产生于区域中每一个运行ospf的路由器
- 内容包括直连 链路的属性
- 链路标识,链路的IP前缀和链路类型
- 每个路由器为起源,包含起源这个路由器的router ID
- 只在本区域泛洪;不穿越ABR
实验:GNS3搭建
◆1类LSA实验
目的:通告show os data router 11.1.1.1可以画出拓扑图并描绘出路由信息。
R1 R2
1,启用接口IP和loopback口
2,启用OSPF area 0
3,接口下 ip ospf netw po-to-po
4, R2 查看LSA类型 sho ip ospf database
5, 查看一条LSA内容
sho ip ospf database 类型名 linkID
例如查看一类LSA show ip ospf database router 11.1.1.1
###################################
###### 2类 LSA ####################
###################################
- 只会在MA网络中产生(以太,帧中继主接口,帧中继子接口,需要选举DR BDR的网络)
- 由MA网络中的DR产生
- 只在本区域泛洪
- 由DR接口IP命名
◆2类LSA实验
R1 R1 默认是MA类型网络,需要等时间选举DR BDR
- sho ip os database 查看LSA类型 “net link state ”
linkID: DR接口IP
通告路由器: DR的routerID
查看详细LSA: show ip ospf database network(类型名) 12.1.1.2(link-ID)
包含内容:本MA网络中的所有路由器(Attached router)
本MA网络的掩码(network mask)
此时,对比查看一类LSA内容:show ip os data router 11.1.1.1,发现对12.1.1.2的描述变成transit network,而且没有掩码 也不知道到MA网络中域DR相连的路由器,此时需要看2类LSA才能得知。
###################################
####### 3类LSA ####################
###################################
区域间路由 summary
- 用于通告一个区域的信息给其他区域
描述链路的网络号和掩码
- 起源于 ABR。(每穿过一个区域,都把通告路由器修改为被穿过的ABR routerID)
- 泛洪于整个自制系统
- 内容包括,默认下,没有路由的自动汇总,类型3LSA通告每个子网(一条路由信息 前缀,掩码,下一 条,cost)
- 使用通告的网段前缀命名
即,ABR路由器将区域1 的1类,2类和其他路由信息转换为 3类LSA,传给区域0,修改通告路由器后,再传给其他区域。每经过一个ABR都要重新修改起源路由器。区域间传递路由类型距离矢量协议来传递路由。
◆3类LSA实验
启用R1 R2 R3
R1 R2 AREA0 R2 R3 AREA1
show ip ospf database
show ip os dat summary 23.1.1.0
show ip ospf border routers
注意cost值!!!
###################################
####### 4类LSA ####################
###################################
- 汇总LSA 在自治系统中向其他区域通告ASBR的位置
- 起源于ABR
- 泛洪除了ASBR所在区域的其他所有区域,整个自治系统
- 包含 ASBR的routerID
R3:sho ip ospf da 是没有4类LSA的
R1: sho ip os da 可以看到 summary ASB LINK State
sho ip os da asbr-summary 33.1.1.1查看具体内容 去往33.1.1.1的接口IP和metric
###################################
####### 5类LSA ####################
###################################
- 外部LSA 用于通告自治系统外部的网络
- 起源于 ASBR
- 泛洪整个自治系统
- 通告路由器,在整个自治系统中不改变
- 需要 类型4LSA 找到ASBR
- 默认不自动汇总
◆5类LSA实验
1, 启用R1 R2 R3 R5
2, R1 R2 R3ospf R3 R5 EIGRP
3, R3上 eigrp重分布进ospf
4, R1 sho ip ro
5, 整个ospf区域都可以看到 5类LSA sho ip os database
sho ip os da external 55.1.1.1
其中 R2通过 1类 2类LSA得知R3位置,但是R1的55.1.1.1的下一跳指向R3,而又无法知道R3位置,此时需要 4类LSA
LSA类型 | 传播范围 | 由谁产生 | 包含内容 | 命名方式 |
1 | 本区域内 | 每个路由器都会产生 | 1,路由信息:stub network(前缀,掩码,下一条) 2,拓扑信息:another router(相连路由器的routerID,相连的本地接口) 3, transit network DR的IP和相连本地IP,但不知道掩码 | 本地routerID命名 sho ip os da router |
2 | 本区域 | MA网络中的DR | transit network可以补充1类LSA中的掩码 | 由DR接口IP命名 network |
3 | 自制系统(所有OSPF区域) | ABR 每穿过一个ABR,通告路由器都会变成穿过的ABR的routerID | 一条路由信息(前缀,掩码,下一条,cost) | 通告路由的前缀 summary |
4 | 自制系统(所有OSPF区域) | ABR | 指明ASBR位置 | ASBR 的routerID asb-summary |
5 | 自制系统(所有OSPF区域) | ASBR 穿越ABR时,不改变通告路由器 | 外部路由信息前缀,掩码,下一条,cost) | 通告路由的前缀 External |
O: 1类或2类 lsa
OIA: 3类 lsa
OE1: 5类
OE2:5类
OSPF路由选择顺序
AD(前缀掩码相同,下一跳不同时)先比较AD,然后才比较类型
AD不变的情况下 比较类型 O>OIA>OE1>OE2
类型相同时,比较cost
cost相同 ,就负载均衡
特例》:OE1.。cost相同时还要比较去往ASBR的距离
◆计算OE1 OE2 路由成本
OE1路由时要计算到ASBR沿途的cost值
OE2路由只外部路由是到达ASBR的cost
########################################################################################### OSPF 的超载保护(限制非本地产生的LSA的数目)
- 其他路由器产生的过度LSA可以消耗本地路由器的资源
- 这个功能可以限制非本地产生的LSA数目
router(config-router)#max-lsa (设置允许接收最大外部路由数目) threshold-percentage (设置达到最大数目的比例开始警告,默认75%) warning-only (设置超载后的动作为警告) ignore-time 分钟(超载后默认1分钟后,down掉邻居关系,这个是设置down多长时间后重启邻居关系,默认5分钟)ignore-count (设置重启邻居关系的次数,默认5次)reset-time 分钟(清零时间,默认10分钟。例如重复down5次后,10分钟没有超载,就把之前计算的4次清零,当再次超载时从1开始计算)
########################################################################################### OSPF 成本度量的修改方法
成本,发送数据包的接口成本 10的8次方/ 带宽 M
接口下(路由的入方向) ip ospf cost 1-65535之间
设置参考带宽,默认10^8.。范围 1 - 4294967m/秒
进程下 auto-cost reference-bandwidth 1-4294967
########################################################################################### 路由汇总
- 减小路由表大小
- 减少拓扑变化对网络的影响
- 减少LSA 3类和5类,7类 的泛洪,节省CPU资源
3类 域间汇总
5 ,7类 区域×××总
配置:
域间汇总 ABR
area area-id range address mast [advertise默认 | not-advertise] [cost xxx]
域×××总 ASBR
summary-address ip-address mast [not-advertise] [tag xxx]
汇总特点:
生成指向null 0 的路由
汇总抑制明细
当所有明细都消失,汇总自动消失
汇总自动生成度量值,是所有明细中最小的
对比eigrp中,汇总还可以限制eigrp查询范围
汇总一条不精确,172.16.0.0/19 包括1-32条路由
使用两条,可以更精确
举例:
实验:
◆实验一 汇总特点
1,配置IP
2,启用ospf 注意区域
3,R1 Lo0 11.1.1.1
lo1 11.1.2.0
lo2 11.1.3.1
ip ospf network po-to-point(去除32位主机路由)
ip ospf cost 10
R3 sho ip ro 显示OIA 的两条R1 loopback(R2看到的两条是O 的R1 loopback,而且显示为O的不能 汇总)
R2 : 进程下 area 1 range 11.1.0.0 255.255.0.0
R3 : sho ip ro
◆实验2 使用not-advertise控制路由
R1: 在启用lo3 11.1.0.1
R2: 进程下 area 1 range 11.1.0.0 255.255.254.0 not-advertise
R3: sho ip ro (只收到 11.1.2和.3两条明细)
◆区域×××总
R5: loopback 55.1.0.1
55.1.1.1
55.1.2.1
R4:重分布进ospf
sho ip ro (默认OE 2)
summary-add 55.1.0.0 255.255.252.0
R1: sho ip ro
R4: summary-add 55.1.0.0 255.255.252.0 tag 500
R1: sho ip ro 55.1.0.0 查看tag
tag 的应用:
route-map test
match tag 500
####################################汇总介绍结束 ##########################################
################### OSPF 路由器宣告默认路由 ##############################################
- ospf利用5类 LSA 向内部注入一条默认路由
- 默认不注入默认路由;需要使用配置 default-information originate;
另外本地必须有一条默认路由0.0.0.0才能生效。
使用always可以没有0.0.0.0默认路由也可下发:
进程下 default-information originate always
默认是OE 2 可以metric-type修改 default-information originate always metric-type 1
默认开销 1 可以metric修改
default-information originate always metric-type 1 metric 10
route-map:(需求,当本地有一条远端路由时才下发缺省)
R1: default-information originate always metric-type 1 metric 10 route-map test
route-map test
match ip address prefix-list test
ip prefix-list teset permit 100.1.1.0/24
R2: sho ip ro 看不到缺省
R1: 可以本地产生一条,或者从外部学到一条
ip roure 100.1.1.0 255.255.255.0 null 0
R2: sho ip ro 就可以看到默认了
######################## OSPF 特殊区域 ###################################################
末节stub 以及 完全末节区域totally stub
◆Stub区域 拒绝4 类 5类
- 如果有个多个ABR,到达区域外部(AS外)有可能选择次优的路径,但是 是可以接受的。
- 末节区域中的路由器都要配置成末节(因为stub在hello包中定义)
- 末节和完全末节区域 不能存在ASBR
- 这个区域不能是区域0
- 虚链路不能穿越末节区域
STUB区域,不收外部LSA 所以不会有LSA5 LSA4。由ABR产生一条3类缺省到stub区域,到达外部网络。
命令 area X stub
◆totally stub区域 拒绝3,4,5类
思科私有
因为stub区域去往其他区域和外部网络都是通过ABR,所以只要区域内路由器能到达ABR就可以了。所以
totally stub 阻止外部LSA
阻止汇总LSA
只有一条缺省到达ABR
配置 ABR 配置 stub no-summary 区域内其他只需配置为 stub
命令 area x stub no-summary
◆修改默认路由发送到存根区域的成本 ,默认是 1
area area-id default-cost cost
sho ip ospf border-routers
sho ip os da summ 0.0.0.0
########## 次末节区域NSSA ##################
- 继承了末节区域的特点
- 但是 ASBR 允许在这种区域
- ASBR 向次末节区域中发送 7类LSA
- ABR 将 7类LSA 转换为 5类LSA
- ABR 向次末节区域发送默认路由
- 是 RFC 标准
NSSA 区域试验
area 2 配置为nssa
命令 R3 R4进程下 area 2 nssa
R4 sho ip os da 可看到 type 7 external LSA
R3 sho ip os da 7类 转换为 5类
并且ASBR不会自动产生默认路由通过nssa区域的ABR到达其他区域,
需要手动在nssa区域的ABR上添加命令 area X default-information-originate
注:NSSA区域必须配在ASBR上
在area2 是nssa基础上,在R2 启用loopback100 并把直连重分布到ospf,此时R4是学不到R2的loopback100的,因为虽然R4所在区域是nssa,但是R2并不是ASBR。所以,nssa是配置在ASBR上的。
若果要让R4学到R2的loopback,R3 上:ospf进程下,area 2 nssa default-information-originate
Totally NSSA
stub | 拒绝4类,5类 | ABR产生3类默认 |
totally stub思科私有 | 拒绝3类,4类,5类 | ABR产生3类默认 |
nssa | 拒绝4类,5类。7类代替5类 | ABR不能自动产生默认7类 |
totally nssa思科私有 | 拒绝3类,4类,5类。包含7类 | ABR产生3类默认路由 |
##############################
◆Totally NSSA feature:
ABR路由器 no-redistribute 因为会自动产生缺省路由,所以可以把重分布路由器干掉
进程下 area x nssa no-summary no-redistribute
translatie type7 suppress-fa 用于抑制forward address地址
◆ forward address:作为nssa区域的ABR,它要把7类Lsa转换为5类lsa泛红到相连的区域,而这条5类lsa的实际转发路由器是ASBR。所以在转发5类lsa中,会携带forward address字段指明实际的路由器
forward address:地址的选举,是ASBR最后一次宣告进ospf进程的地址
forward address:作用,5类LSA中的forward address可达时,5类lsa携带的路由才能放到路由表。
external 路由的forward-address有地址的情况:
1,在有NNSA区域时,从普通区域看 external 路由的forward-address是ASBR最后一次宣告进ospf的地址。
2,把ASBR的外网接口(下图总R4的 f1/0)也宣告进ospf,forward-address是产生这条路由的路由器出接口地址。优化下一跳
################################################################################################################# 虚链路 #############################
◆功能一:解决没有连接到骨干区域,只与普通区域相连的通信
如下图,area0和area1可以正常通信;但是area2不能与任何其他区域通信
在R2 R3打通隧道
R2:router os 1
area 1 vitual-link 33.1.1.1(router-id)
R3: router os 1
area 1 vitual-link 22.1.1.1
sho ip os neighbor detail 查看虚链路邻居
sho ip os virtual-link
虚链路LSA不想其他LSA 30分钟更新一次,虚链路LSA只最初更新一次,只要不发送变化,老化时间永远不变sho ip os da (DNA)
功能二。解决不连续的区域0
如图,R1 R4不能通信;R2 与R4的loopback不能通信;R3 R1的loopback不能通信
原因:ABR收到的OIA路由,必须通过相连的区域0学
所以上图中,R2的外部区域路由必须通过R1学;同理R3的OIA路由必须通过R4学
R2 R3打通虚链路
R2 : router os 1
area 1 virtual-link 33.1.1.1
R3 : router os 1
area 1 virtual-link 22.1.1.1
#################################################################################################################### 认证 ####################
- ospf支持两种认证
明文
MD5
- 路由器生成并校验每个ospf数据包。接收路由器验证每一个源路由器发送到本地的更新数据包
- 配置密钥,每个邻居路由器必须有相同的密钥
◆回顾EIGRP,RIP认证步骤
1,配置密钥
1.1 配置钥匙链
1.2 key-ID
1.3 密码
2,开启认证,接口下
3,调用认证,接口下
◆ospf 认证步骤
1,开启认证
两种,1,进程下开启
2,接口下
2,调用,接口下
注意:在有普通区域没有连接到骨干区域时,骨干区域开启认证,而非骨干区域不开启的话,虚链路是无法建立的。如下图
R2 R3建立虚链路。R1开启认证area0认证,R3也要开启 area0 认证,虚链路才能建立
配置明文认证
■设置密码,接口下
router(config-if)#
ip ospf authentication-key passwork
在相邻路由器之间分配一个相同的密码
两种开启认证方式(接口下,进程下)
■接口开启认证,
router(config-if)
ip ospf authentication [ message-digest | null ]
指定认证类型
■ospf进程下开启认证
router(config-router)#
area area-id authentication [ message-digest ]
启动区域认证,整个区域的密码要一致
配置MD5认证
■设置密码
router(config-if)#
ip ospf message-digest-key key-id md5 key
分配一个密钥ID和密钥,邻居路由器要一致
两种开启认知方式(接口下,进程下)
■接口下开启认证
router(config-if)
ip ospf authenticatication message-digest
■ospf进程下开启认证
router(config-router)#
area area-id authentication message-digest
启动区域认证,整个区域的密码要一致
如果两端只开启认证,但并没有在接口下调用也是可以起来的。相对eigrp和rip就起不来!!!
MD5认证更换密码,可以再启用一个keyID,然后no掉原来的key,邻居关系不会down!!
◆虚链路认证
R1 R2 区域0 开启区域0认证
R2 R3 区域1 开启区域1认证
R3再开启loopback 1 宣告进区域2
R2 R3开启虚链路
R3要和area0 通信 虚链路也要做认证
R3进程下,area 1 virtual-link 22.1.1.1 authentication 开启认证
area 1 virtual-link 22.1.1.1 authentication-key xxx 配置密码
###########################################################################################