属于IGP的范畴
无类路由,支持CIDR
封装在三层,协议号89
SPF最短路径树算法
链路状态数据结构
邻居表
• 也被称为邻接数据库
• 包含已经被识别的邻居列表
•命令 Show ip ospf neighbor
Topology table: 拓扑表
• 通常被称为LSDB(链路状态数据库)
• 包含所有路由器的和它们在一个区域内附属链路或网络信息
• 在一个区域里,所有的路由器都会有相同的LSDB
• 命令Show ip ospf database
Routing table: 路由表
• 通常叫转发数据库
• 包含到每个目的地最优的路径列表
• 命令Show ip route ospf
链路状态数据结构:网络分层
• Transit area (backbone or area 0) 传输区域/骨干区域
• Regular areas (nonbackbone areas) 非骨干区域
ospf区域层次化的要求:
区域0作为骨干区域在中间,普通区域要直接连接到区域0上
ospf路由器类型
1.内部路由器:所有运行ospf的接口都在一个区域内
2.骨干路由器:至少有一个接口在区域0中(有区域0的数据库)
3. ABR–区域边界路由器:连接区域0和一个或多个普通区域的路由器(有两个区域的数据库,并把两个区域的数据库来回传递)
连接两个普通区域的路由器不叫ABR(因为它不会把区域1和区域2的数据库来回传递
4. ASBR–自治系统边界路由器:连接了外部路由域(不运行ospf的环境),并做了重分布进ospf的路由器
注意:
OSPF邻居建立过程
1,down 处于等待
2,init 收到了链路上一个包含自己 router-id 的hello
3,2-way 双方互相收到认可 双向通信意味着邻居状态建立完成,如果是MA或者NBMA,这一过程将选举 BDR,产生DR/BDR
4,exstart 准备开始交互LSDB,这一过程中将进行主从选举,选举规则为 router-id 大的为主,检查接口MTU,若MTU不一致则会一端卡在exstart状态、一端卡在exchange状态,无法继续下去(在MTU小的一端做忽略检查的操作,即可跳过MTU检查),收到 DD报文中 I 位置 0 的报文,代表 exstart 完成,将邻居置为 exchange
5,exchange 开始存储对端发送过来的 目录(LSA头部),同时发送本路由器的第一个DD,M位用于标识本地是否还有更多 数据库描述需要发送
6,loading 当收到对方 M 位置 0 的DD报文,则认为对方描述发送完毕,代表正在进行数据库同步,发送 LSR ,请求本地需要的那些 LSA , 以LS Ack对对方发送过来的 LSU进行确认,同时以LSU响应对方的 LSR;
7,full 代表完全邻接关系建立完毕
R1(config)#router ospf 1 //创建ospf进程(此进程只影响本地计算)
R1(config-router)#router-id 1.1.1.1 //创建routerid(此ID会影响邻居的建立,此号码在同一区域内唯一)
R1(config-router)#network 1.2.1.0 0.0.0.255 area 0 //宣告网络(接口下宣告比network优先级高)
接口下宣告
R2(config-router)#int s1/2
R2(config-if)#ip ospf 1 area 2
验证
建立邻居关系所必要匹配的参数:
router-id 不能冲突
hello间隔 一致
死亡间隔 一致
active neighbor字段互相认可
area ID 一致
在MA/NBMA网络中 router priority (路由器优先级)可能会影响邻接关系的建立,另外掩码必须一致
DR/BDR字段,要结果一致
认证类型及认证必须一致
接口MTU可能会导致邻接关系异常(R3(config-if)#ip ospf mtu-ignore //在mtu较小的一端做)
计时器:
·Hello Intervals:10S/30S
·Dead Interval:4*Hello =40S 不同于其它协议的三倍于Hello时间
下面这三种网络类型的hello时间是30S/120S
NON_BROADCAST
POINT_TO_MULTIPOINT
POINT_TO_MULTIPOINT NON_BROADCAST
OSPF ·的5种报文
1.Hello 用于建立邻居
Hello服务的几个目的:
1、发现邻居路由器的方法
2、建立邻居之前,通告设备之间认可的参数
3、在邻居之间担当keepalive角色
4、确保路由器之间的双向通信
5、在广播网络或者NBMA(非广播多路访问)上选定DR和BDR
OSPF的Router-ID
接口状态类型
1,失效(Down)初始化的接口状态。接口不起作用。
2,点到点(P-to-P) 适用于P-to-P/P-to-MP/V-Link等网络类型接口。
3,等待(Waiting)适用于广播/NBMA等网络类型的接口。在此状态下试图去识别DR/BDR。
4,指定路由器(Designated Router,DR)此状态下的接口为所连接网络的DR并和所在MA网络上的其他路由器建立邻接关系
5,备份指定路由器(Backup Designated Router,BDR)此状态下的接口为所连接网络的BDR并和所在MA网络上的其他路由器建立邻接关系
6,DRother:既不是DR也不是BDR的OSPF路由器接口,只能和DR/BDR建立邻接关系
7,LoopBack:此状态下的接口不能发送数据包,但可以通过路由器的LSA通告出去。 作为stub网络来处理(按照32位主机路由去通告,IOS11.3后,可以使用命令ip ospf network point-to-point来更改)
默认物理接口的OSPF网络类型
物理接口 OSPF 网络类型
HDLC P2P
PPP P2P
Ethernet MA
FR点到点子接口 P2P
FR物理接口 NBMA
FR多点子接口 NBMA
R1(config)#int tunnel 0 //进入tun接口
R1(config-if)#ip ospf network ? //调整接口类型
broadcast Specify OSPF broadcast multi-access network
non-broadcast Specify OSPF NBMA network
point-to-multipoint Specify OSPF point-to-multipoint network
point-to-point Specify OSPF point-to-point network
验证
R1#show ip ospf interface brief
单播指定邻居
R3(config-if)#router ospf 1
R3(config-router)#neighbor 10.2.134.1 //指定邻居
思科可单项指定,华为需双向指定
DR 选举规则
R1(config-if)#int s1/0
R1(config-if)#ip ospf priority 0 //接口下修改优先级0 放弃选举
R3(config-router)#interface Serial1/2
R3(config-if)#ip ospf priority 255 //接口下修改优先级255直接选举为DR
– 默认优先级为1,priority = 0 表示不参与选举,取值范围是0-255
LSA Sequence Number
LSA每30分钟泛洪同步一次,泛洪一次序列号加一
累加到最大值时,LSA将到达最大生存时间1小时
更大的序列号决定了哪个是最新的LSA
LSA 的交互原则:
1,比较LSA实例的序列号。拥有最大的序列号的LSA就是最新的LSA。
2,如果LSA实例的序列号相同, 那么将会比较它们的校验和。拥有最大的无符号校验的LSA就是最新的LSA。
3,如果LSA实例的校验和也相同,那么将进一步比较它们的老化时间。
4,如果这些LSA的老化时间之间的差别多于15min(称做MaxAgeDiff那么拥有较小的老化时间的LSA将是最新的LSA。
5,如果上述的条件都无法区分最新的LSA,那么这两个LSA就被认为是相同的。
LSA条目承载在LSU(链路状态更新包)中
收到LSU后,查看该LSA条目是否存在于本地的LSDB中:
1.没有,则添加进自己的数据库中,返回确认包(ACK),并向其他邻居洪泛该LSA,再本地运行SPF算法,计算新的路由表
通告路由器不同,则认为是新的LSA,所以收下来放入LSDB中
2.有,还要另外判断该LSA的序列号和本地的是否相同:
LSA变化一次,则LSA的序列号+1
(1)相同,认为是同一个LSA,则直接忽略
(2)不相同,则比较序列号高低:
比本地小:说明是旧的LSA,则返回自己的更新
比本地高:则添加进自己的数据库中,返回确认包(ACK),并向其他邻居洪泛该LSA,再本地运行SPF算法,计算新的路由表
LSA 1:
•通告者:all ospf router
•范围:仅在区域内泛洪,并不穿越
•内容:Link Type :1、Stub Network Link ①该网段没有ospf邻居;②该网段只有一个ospf邻居③Loopback接口,即不超过一个邻居的状态 2、Point-To-PointLink① P2P的网络类型② 点到多点网络类型,即无DR时 3、Transit Link① 广播网络类型② NBMA网络类型,即有DR 4、Virtual Link虚链路
•Link ID:是产生者的router-id
•ADV router:是产生者的router-id
R2#show ip ospf database router
LSA 2:
•通告者:DR的接口
•范围:仅在区域内泛洪,并不穿越
•内容:标识出了MA环境中的邻居列表和掩码
•Link ID:是DR接口的IP地址
•ADV router:是产生者的router-id
R2#show ip ospf database network
LSA 3:
•通告者:ABR
•范围:泛洪到整个ospf区域
•内容:描述区域间路由的前缀,掩码,mertic,默认情况下路由不被汇总
•Link ID:区域间的路由的前缀
•ADV router:ABR RID
R2#show ip ospf database summary
R3#show ip ospf border-routers 查看ABR/ASBR
Mertic计算
ABR通过将一个区域中的一类LSA、二类LSA进行汇总计算,生成三类LSA,其中Metric值是ABR到目标网段的COST,总的cost为本路由器到ABR的cost+ABR到目标网段的cost,在跨越另一个区域的时候由该区域的ABR重新计算,通告者发生变化
OSPF ABR的环路防止机制 (深入了解ABR)
由骨干区域传入普通区域的3类LSA,不能再由普通区域传入骨干区域!!–Upward
ABR可以将其所连接的普通区域的区域内部路由注入到Area0 (LSA1\LSA2)
ABR可以将骨干区域内部路由及区域间的路由注入到非骨干区域 (LSA1\2\3)
ABR从非骨干区域收到的Type-3 LSA不能用于区域间路由的计算
针对三类LSA的过滤
R1(config)#ip prefix-list denyA1toA0 seq 20 deny 4.0.0.0/8 ge 9 le 32
R1(config)#ip prefix-list denyA1toA0 seq 25 permit 0.0.0.0/0 le 32
R1(config)#router os 1
R1(config-router)#area 0 filter-list prefix denyA1toA0 in 拒绝Area1的路由进入Area 0
R1(config)#ip prefix-list denyA2out seq 10 deny 15.0.0.0/24
R1(config)#ip prefix-list denyA2out seq 15 permit 0.0.0.0/0 le 32
R1(config)#router os 1
R1(config-router)#area 2 filter-list prefix denyA2out out阻止Area2的路由泛洪到其它区域
In 用于拒绝某条三类LSA进去该区域
out用于某条三类LSA离开该区域
LSA 4:
•通告者:ABR RID-changed
•范围:整个OSPF区域(除本区域)
•内容:ASBR所在的位置 (达到ASBR的RID)
•Link ID:ASBR RID
•ADV router:ABR RID
用于计算到达 ASBR 的距离,在跨越另一个区域的时候由该区域的ABR重新计算,通告者发生变化
R2# show ip ospf database asbr-summary
LSA 5:
•通告者:ASBR RID-unchanged
•范围:整个OSPF区域(除NSSA)
•内容:描述外部路由的前缀,掩码,FA地址,TAG,mertic(默认种子度量值思科为20,华为1)
•Link ID:外部路由的前缀
•ADV router:ASBR RID
外部路由,不属于某个区域,在所有可存在区域以外部路由形式存在;
R2#show ip ospf database external
TAG:打上的一个标记,仅仅存在于外部路由
FA地址 下一跳地址
LSA 7: NSSA
•通告者:ASBR RID-unchanged
•范围:整个NSSA区域
•内容:描述外部路由
•Link ID:外部路由的前缀
•ADV router:ASBR RID
描述外部路由,不属于某个区域,在所有可存在区域以外部路由形式存在;
R3#show ip ospf database nssa-external
OSPF 路由类型
•O - OSPF 域内路由
•O IA - OSPF inter area 域间路由
•O E2 - OSPF external type 2 普通区域引入的外部路由类型2
OE2 默认为20,而且传递到邻居不会变化
•O E1 - OSPF external type 1 普通区域引入的外部路由类型1
OE1默认为20,会随着邻居的传递而变化
•O N2 - OSPF NSSA external type 2 NSSA区域引入的外部路由类型2
ON2 默认为20,而且传递到邻居不会变化
•O N1 - OSPF NSSA external type 1 NSSA区域引入的外部路由类型1
ON1默认为20,会随着邻居的传递而变化
O > O IA > OE/N1 > O E/N2
OSPF路由的选路原则:
1.区域内 > 区域之间 > type 1 > type 2
2.type1 = 外部开销值+ 内部开销值 .cost值越小越优先
如果cost值相同,来自于同一个区域,则路由负载。
3.type2 = 外销开销值 (不累加,默认)
先比较外部开销值,cost值越小越优先。
如果外部开销值相同,则比较内部开销值,cost值越小越优先。
如果内部开销值也相同,则比较区域号ID大的。
如果来自于同一个区域,则路由负载。
负载的条件:
2、修改OSPF中COST值计算公式的分子
注意:这里改动的值是以10的六次方为单位的。
例如:在COST公式中修改分子,本例修改分子为10的九次方
R1(config-router)#auto-cost reference-bandwidth 1000 (Mbps10的六次方)
默认路由
OSPF协议,不允许将默认路由重分布进来,也不允许汇总成默认路由
R3(config-router)#default-information originate // 以五类LSA的形式向域内注入一条默认路由,默认度量值为 1,可以干涉,但前提是本设备上必须已经存在一条默认路由;
【always】 参数,强制注入默认路由,无论本地是否存在默认路由
浮动动态默认路由:
通过OSPF根据默认路由存在状态,决定是否下发默认路由
R1(config-router)#default-information originate metric ?
<0-16777214> OSPF metric
路由汇总
对区域间路由进行汇总
在ABR上对三类LSA进行汇总,将区域内的一类LSA、二类LSA形成的路由,汇总后传递到另一区域形成三类LSA
R3(config-router)# area 1 range 55.1.1.0 255.255.255.0 ?
advertise Advertise this range (default)
cost User specified metric for this range // 可以指定汇总路由的开销值
not-advertise DoNotAdvertise this range // 把路由抑制在本设备,不传递出去;实际上是抑制了三类LSA的形成 //
对外部路由进行汇总
汇总后,在R3本地会产生一条特殊的指向Null0的路由用来防环
这条路由称为discard-route,可以用以下命令去掉:
router ospf 110
no discard-route internal
在ASBR上对五类LSA进行汇总
R2(config-router)#summary-address 22.1.0.0 255.255.252.0 ?
not-advertise Do not advertise or translate
nssa-only Limit summary to NSSA areas // 仅仅通告进NSSA区域
tag Set tag // 路由标记用于路由操控
本地也会产生指向Null0特殊路由来防环
用以下命令可以去掉:
router ospf 110
no discard-route external
• 汇总路由的COST可手动修改,默认继承明细最小;
• 明细最后一条消失,汇总路由才会消失;
• 本地会生成一条指向NULL0的路由,防环;
• 汇总路由将抑制明细路由。
OSPF 特殊区域
stub area 末节区域
不允许出现五类LSA,同时ABR会生成一个三类LSA,向stub区域注入一条默认路由
应用场景:适用于有多个ABR的区域,同时不需要引入外部路由;
R1(config)#router ospf 110
R1(config-router)#area 2 stub
在区域内所有的路由器上配置,没有配置stub的设备不能与配置stub的设备建立邻居
totally stub area 完全末节区域
与 stub area 对比,进一步阻止了其它的三类 LSA,仅仅保留由 ABR 形成的注入默认路由的一条
应用场景:通常用于仅仅存在一个ABR的情况,同时本区域又不需要引入外部路由;
router ospf 110
area 2 stub no-summary
在 stub area 的基础上,在ABR上增加一个参数即可 [ no-summary ]
末节区域和完全末节区域的使用规则:
必须所有路由器都配置为 stub
区域内不允许存在ASBR
区域 0 不允许成为任何种类的特殊区域
特殊区域不能承载虚链路【虚链路被认为是区域 0 的一部分】
NSSA
在NSSA区域中,外部路由以七类LSA的形式注入
应用场景:不需要接收来自其它区域引入的外部路由,但是同时本区域又需要引入外部路由
NSSA区域的ABR,同时兼任骨干区域和其它普通区域的ASBR,为了让以特殊形式引入到NSSA区域的外部路由能够被其它区域设备识别,ABR将执行将七类LSA转换为五类LSA
R3(config-router)#area 1 nssa
NSSA区域的ABR默认情况下,不会自动向NSSA区域下发默认路由(华为自动下发),手工下发的默认路由以七类LSA的形式注入,为了防止存在多个ABR可能出现的环路,NSSA区域的ABR不允许将七类LSA注入的默认路由执行七转五;
手工下发的命令是:
R3(config-router)#area 1 nssa default-information-originate // 仅仅适用NSSA区域的ABR
totally not so stubby area 完全的不那么完全的末节区域
和NSSA相比,进一步阻止了其它的三类LSA进入,但是会形成一条默认路由,自动以三类LSA注入
R3(config-router)#area 1 nssa no-summary
在 nssa area 的基础上,在ABR上增加一个参数即可 [ no-summary ]
特性
R1(config-router)#redistribute connected subnets nssa-only // ABR上的重分布,仅将外部引入nssa区域
R1(config-router)#area 2 nssa no-summary no-redistribution // 不允许重分布路由进入NSSA区域
R1(config-router)#area 2 nssa no-redistribution // 不允许外部路由进入NSSA
R1(config-router)#area 2 nssa translate type7 ?
always Always translate LSAs on this ABR // 强制本ABR总是执行 7 - 5 //
suppress-fa Suppress forwarding address in translated LSAs // 抑制转发地址,通常用于转发地址不可达的情况下;
FA转发地址
通常为0.0.0.0
非0的时候
1、 从NSSA重分布进来的路由
地址为NSSA区域的ASBR的最大的地址
该地址以O或者OIA出现在路由表中,如果以其他路由出现会影响装载路由表
2、 普通区域
接口使能了ospf,不是点到点或者点到多点,没有passive并且转发地址是真正的优化的下一跳
该地址以O或者OIA出现在路由表中,如果以其他路由出现会影响装载路由表
OSPF的认证
明文认证:链路 区域 虚链路
密文认证(MD5):链路 区域 虚链路
OSPF虚链路认证
•当区域0开启认证后,虚链路也要开启认证,虚链路会被认为是区域0的一部分
Link:用于同一链路上的路由器之间,在接口下做
第一步:接口下配密码
int s1/0
ip ospf authentication-key cisco //配明文密码
第二步:接口下启用认证
ip ospf authentication //启动明文认证
int s1/0
ip ospf message-digest-key 1 md5 cisco //配密文密码
ip ospf authentication message-digest //启动密文认证
注意:在MD5验证中,两边的KEY号必须一致
Area:
第一步:接口下配密码
int s1/0
ip ospf message-digest-key 1 md5 cisco //配密文密码
第二步:进程下启用
router ospf 110
area 0 authentication Message-digest //启动密文认证
注意:区域内的所有路由器都要开启认证。两台路由器相连的链路的密码要匹配。
Virtual-Link:
router ospf 110
area 2 virtual-link 2.2.2.2 message-digest-key 1 md5 wolf //配密码
area 2 virtual-link 2.2.2.2 authentication message-digest //启动MD5认证
在有虚链路的情况下,如果Area0启动认证,起了Virtual-Link的两台路由器上也要启动区域认证。
虚链路:虚链路的用法
1.被分割的区域0:或者原来相连的区域0中的链路断开导致——用虚链路做备份
因为区域1通过区域0学习到的3类LSA不会再传回区域0,因此两个区域0之间没有相互的路由,但区域1有到达左右两个区域0的路由
需要通过区域1将两个区域0用虚链路连接起来
2.远离区域0的普通区域:
因为区域4与区域1和区域0的路由不能相互传递(中间不是ABR)
需要通过区域1将区域4和区域0用虚链路连接起来
虚链路的特点–按需电路
1.可以跨路由器单播的发hello建立邻居
2.一旦邻居建立,hello包就不发了,没有带宽的占用
3.以一个区域作为传输区域
4.通过虚链路邻居传递过来的LSA是不老化的(age不变)
5.ospf每30分钟的泛洪不会往虚链路上去发
最简单的方法,只需在区域的两台边界路由器上配就可以了
R1:
router ospf 110
area 1 virtual-link 2.2.2.2
(中转区域) (对方Router-ID)
·注意:虚链路只在建邻居时发送hello包,当邻居关系建立后,不再发送hello包。并且LSA是触发更新且不老化的。这个特性被称为DNA(DoNotAge)。
验证
show ip ospf virtual-links
替代虚链路的方法
使用tunnel接口(类似于虚链路)
tunnel接口是正常的hello和保活
要保证源和目的可达即可
.tunnel接口用实际IP
同时适用于分割的区域0或普通区域远离骨干区域0这两种情况
将tunnel宣告进区域0
OSPF特性
OSPF Graceful Restart
两种模式: Restarting Mode 重启模式:路由处理器的切换OSPF路由器处
理器在执行NSF恢复,这可能是由于RP崩溃或者软件升级引起。重启路由器,
指由管理员或由于故障触发进行协议重启的路由器,它必须具备GR capable能
力。
• Helper Mode辅助模式:邻居路由器在重启,该路由器帮助不间断恢复。 GR Restarter的邻居,能协助重启的GR Restarter保持路由关系的稳定,它必须具备GR aware能力
为了防止LSA在重启设备上超时,时间不能超过LSA刷新时间的1800S
为了准备优雅重启,重启路由器需要执行下面的行为:重启路由器必须确保其转发表在重启过程被维持。
必须修改OSPF进程下列方式,直到它重新确立之前所有的完整邻接
• •重启的路由器不能产生1、5、7类LSA,这样ospf域内的其他路由器将使用该设备重启之前的LSA。本路由器不会修改、冲刷任何本设备产生的LSA
• •重启的路由器运行路由计算以便返回OSPF虚链路操作。然而重启路由器不会装载ospf路由到转发表中,它会维持GR之前的转发表
• •如果重启之前该设备是DR,那么它依旧会选择本设备作为DR(通过helper发送的Hello报文得)
Router(config)# router ospf 4
Router(config-router)# nsf cisco
Router(config)# router ospf 10
Router(config-router)# nsf ietf restart-interval 200 不得超过1800
show ip ospf
OSPF Graceful Shutdown
以破坏性最小的方式临时性的关掉ospf进程,使得一端处于init状态
接口下
R2(config-if)#ip ospf shutdown
进程下
R2(config)#router ospf 110
R2(config-router)#shutdown
OSPF无环备份快速重路由
保护路由器预先计算每个前缀的修复路径,然后装载到路由表,当被保护的主路径失效时,保护路由器把流量从主路径切换到存贮的修复路径,而不需要其他路由器重新计算拓扑或者意识到网络发生变化了,非常类似MPLS FRR
R3(config)#router ospf 100
R3(config-router)#fast-reroute per-prefix enable area 0 prefix-priority high
OSPF Prefix-suppression
进程下
Device(config-router)# prefix-suppression
将不在通告除了环回口,辅助地址、passive接口之外的路由
接口下
(config-if)#ip ospf prefix-suppression — 接口使能抑制
(config-if)#ip ospf prefix-suppression disable—
OSPF GTSM
•OSPF发送出去的报文拥有TTL 255,丢弃小于配置的TTL阀值的报文
•全局配置时仅仅针对正常的OSPF接口,对虚链路和shamlink必须单独配置
Router(config-router)# ttl security all interfaces [hops]— 所有接口使能TTL 检查,小于配置的跳数的报文将 被丢弃(包括hello 包)。同时发送出去的报文的TTL 值为配置的跳数
Router(config-if)#ip ospf ttl-security hops 1—1 不会显示,那么如果邻居没有修改GTSM, 那么更新过来的报文的TTL 为1-1=0 ,那么数据将被丢弃则邻居丢失
用来限制路由器所能学习到的LSA的数量
Router(config-router)#max-lsa maximum-number [threshold-percentage] [warning-only] [ignore-time] [ignore-count] [reset-time]
定义一个百分比值,当收到LSA的条数超过我指定的值,进行相应的操作,用于限定路由器所能收到的LSA条数
maximum-number 所允许收到LSA的最大条数
[threshold-percentage] maximum-number的百分比,超过这个值就会发出警告,默认75%
[warning-only] 只发送警告,不做其它动作,默认是关闭的
[ignore-time] 超过最大值后进入ignore状态的时间,默认5分钟,5分钟后恢复
[ignore-count] 超过多少次后,一直进入ignore状态
[reset-time] 一直进入ignore状态后多长时间重置所有邻居
负载均衡
·OSPF只支持等价的负载均衡。(默认为4条)
router ospf 110
maximum-paths 6 //(最多16条)
OSPFv3
• OSPFv3协议号仍然为89,在IPv6 Next Header里标识。
• 通过包头的TYPE字段来标识5种包类型;
• 以组播地址发送协议报文,而IPv6 Hop Limit为1;Virtual-Link则通过单播发送更新;
– AllSPfRouters:FF02::5
– AllDRouters:FF02::6
–IPv6中,除了virtual link之外,都使用link-local地址
Hello报文的option字段
V6位
表示这个路由器或链路是不是在路由IPv6。如果清零,这个路由器或链路不应该纳入IPv6路由计算。
E位
描述AS-external-LSA的泛洪方式。在Hello包中,当且仅当这个区域能够处理AS-external-LSA的时候,E位设置为1(例如在非stub区域中),否则为0。如果E位设置不正确,邻接关系就不能形成。
MC位
这一位描述路由器是否运行了MOSPF(请忽略)。
N位
描述了路由器对Type-7 LSA的处理。当且仅当一个接口的所属区域为NSSA区域时设置为1。
R位
路由器位。指出该公告者是否一个路由器。如果清零,则说明该公告者并不能路由数据。所以经过该公告者的路由不能纳入路由计算。如果多宿主机希望分享OSPF路由信息,但又不希望转发数据时,可以使用。
DC位
描述路由器对按需电路(demand circuits)的处理。
对比ospfv2报文,缺少了认证类型和认证数据字段,该功能交给了IPv6的下一个头部字段
Instance ID 1字节。缺省值为0。允许在一个链路上运行多个OSPFv3的实例。每个实
例应该具有唯一的Instance ID。Instance ID只在本地链路上有意义。如果接收到的OSPF包的Instance ID和本接口的Instance ID不同,则丢弃这个包
OSPFv3的LSA
OSPFv3的LSA头仍然保持20字节,但是内容变化了。在LSA 头中,OSPFv2的LS age、Advertising Router、LS Sequence Number、LS checksum和length字段都没有变化,但是部分字段发生变化。 Options字段从LSA头中删除了,转移到router-LSA、network-LSA、inter-area-router-LSA、 link-LSA的body中。长度从8位扩展为24位,并且一些位的定义有变化
Router-LSA
• LS Type:0x2001;泛洪范围:区域。
• 每个Router-LSA包含若干链路描述(linkdescription),每个链路描述都描述了路
由器的一个接口信息。
• 可以使用多个Router-LSA描述信息,通过Link-State ID区分多个不同的Router-LSA。
• 此类LSA 同ospfv2 相比并不含前缀信息
Router-LSA的Flag字段
•W位
–为1时,mospf使用。
•E位
–为1时,表示这个路由器是一个ASBR。
•V位
–为1时,表示这个路由器是跨越本区域的一个virtual link的一个端点。
•B位
–为1时,表示这个路由器是一个ABR. Sh ipv6 ospf border
Router-LSA的Type字段
Network-LSA
• LS Type:0x2002;泛洪范围: 区域。
• Attached Router:
–本链路所有路由器的Router ID
• 具有2个或更多路由器的Broadcast 或NBMA网络都需要由DR建立一个Network-LSA。
• 一个Network-LSA列出了这个链路上所有相连的路由器。
• 取消了IPv6中无关紧要的掩码
Inter-Area-Prefix-LSA
• 域间前缀LSA
• LS类型值为0x2003,泛洪范围:区域。
• 在IPv4中,Inter-Area-Prefix-LSA称为Type 3 Summary-LSA。
Inter-Area-Router-LSA
• 域间路由器LSA
• LS类型值为0x2004,泛洪范围:区域。
• 在IPv4中,Inter-Area-Router-LSA 称为Type 4 Summary-LSA。
• 描述如何到达外部路由器所在区域的ABR(非外部路由区域的设备可以观察到)
• ABR向一个区域内始发一条区域间路由器LSA,用来通告一个在该区域外的ASBR路由器。对于所通告的每一个ASBR,ABR都需要始发单独的区域问路由器LSA
AS-External-LSA
• 外部路由LSA
• LS类型值为0x4005,泛洪范围:AS
• 每个AS-external-LSA描述到达自治系统外部的一个前缀的路径。
• Forwarding address
• 可选的128位Pv6地址。当前面的F位为1时存在。表示到达目的的数据应该转发到这个地址。在公告路由器不是最优的下一跳的时候可以使用
Link-LSA 8类LSA
•每个连接的 物理链路产生一个Link-LSA
•链路(Link) 泛洪范围
•作用:
– 向该链路上其他路由器通知本地的Link-Local地址,即到本地的下一跳地址;
– 收集本路由器在该链路上配置的所有的IPv6前缀,并通知该链路上其他路由器
– 链路LSA提供了这条链路始发的网络LsA有关的一组可选位的集合
•Rtr Pri: 该路由器在该链路上的优先级(Router Priority用于选举DR);
•Options: 提供给Network LSA的Options;
•Link Local Interface Address: 路由器与该链路相连的接口上配置的LinkLocal地址(Link Local 地址只出现在Link LSA 中);
•Prefix: 该LSA中携带了多少(有可能多个)IPv6地址Prefix;
•其他
Intra-Area-Prefix-LSA
LS类型为0x2009。
具有区域泛洪范围
Referenced LS type
表明这个LSA是参考一个Router-LSA,还是一个Network-LSA。
1表示参考一个router-LSA,2表示参考一个Network-LSA。
Referenced Link State ID
当这个LSA是参考一个Router-LSA时,设置为0。
当这个LSA是参考一个Network-LSA时,设置为该链路的DR的Interface ID。
Referenced Advertising Router
当这个LSA是参考一个Router-LSA时,设置为这个路由器的Router ID。
当这个LSA是参考一个Network-LSA时,设置为该链路的DR的Router ID。
配置 IPv6 ospf(这种配置方式,只能使能IPv6的路由,不能兼容IPV4)
R1(config)#ipv6 router ospf 1
R1(config-router)#int l0
R1(config-if)#ipv6 ospf 1 area 2 //接口下宣告ipv6的ospf
R1(config-router)#int e0/1
R1(config-if)#ipv6 ospf 1 area 2 instance 6//接口下宣告ipv6的ospf 实例为6(实例参数用于在MA环境中 ,且相同实例参数才能建立邻居)
OSPFv3 配置方式; 可以支持IPv4前缀的传递
R2(config)#router ospfv3 1 //创建ospfv3的进程
R1(config-rtr)#router-id 22.1.1.1
R2(config)#int l0
R2(config-if)#ospfv3 1 ipv6 area 0 //宣告ospfv3 ipv6的进程
R2(config-if)#ospfv3 1 ipv4 area 0 //宣告ospfv3 ipv6的进程