OSPF动态路由协议
从0到熟练,史上最详细的讲解!!!!!!!!
ospf:开放式最短路径优先协议;
ospf使用范围:IGP(内部网关协议);
ospf算法特点:链路状态型路由协议,采用SPF算法;
ospf传递路由时会传递网络掩码;
ospf的协议封装:基于IP协议封装(跨层封装),协议号为89;
ospf的特点:
1:ospf是一种典型的链路状态型路由协议,既传递路由信息,又传递拓扑信息;
2:ospf传递的信息称作LSA,LSA链路状态通告,其中包含路由信息和拓扑信息;
路由LSA:描述本路由器上接口的路由信息
拓扑LSA:描述路由器之间的连接状态
3:ospf协议的更新方式:触发更新(网络稳定不发信息,网络发生变化发送信息)+30分钟的链路状态刷新;ospf路由学习方式是先传递再计算(先将所有的路由信息学习下来);一条LSA最多存活30分钟,30分钟之后就会重新刷新;
4:ospf更新地址:组播更新和单播更新;224.0.0.5(本地组播地址) 224.0.0.6(本地组播地址,只DR可以支持);TTL值为1,所以在建立邻居邻接关系时只能是在直连之间建立;当一个路由器运行ospf后,就会加入到224.0.0.5这个组播组;只有DR和BDR才会加入到224.0.0.6这个组播组;
5:支持路由认证
6:支持手工汇总
7:支持区域划分
8:ospf比较消耗设备资源
ospf区域划分:
区域划分的意义:通过区域划分,将一些复杂的大的LSA限制在单个区域;减少LSA的数量;减少LSA的传播范围;为了提高ospf在大型网络中的性能;
ospf在单个区域中会传递路由信息和拓扑信息,但是在区域与区域之间只传递路由信息;
ospf的区域划分是基于接口的(链路);一条链路的两端属于某一个区域;
ospf的区域标记:使用32个二进制: 1.十进制 2.类似于IP地址(A.B.C.D)
ospf区域分类: 骨干区域:区域标记为0或者0.0.0.0
非骨干区域:区域标记不等于0或者0.0.0.0
ospf区域设计原则:
1:ospf网络中必须存在并且唯一的骨干区域(单区域除外)
2:若存在非骨干区域,非骨干区域必须与骨干区域直接相连;
ospf中路由器的角色:
1:骨干路由器:一个路由器的所有接口全在骨干区域
2:非骨干路由器:一个路由器的所有接口全在非骨干区域
ABR:区域边界路由器,一个路由器属于骨干区域和非骨干区域的边界那么这个路由就是ABR
ASBR:自治系统边界路由器,如果一个路由器属于OSPF网络与非OSPF网络边界并且将非OSPF路由引入到OSPF网络中,那么这个路由器叫做ASBR;
OSPF的消息数据包和邻居状态机制:
注意:ospf消息数据包和邻居状态机制是发生在同一过程;
ospf消息数据包
ospf的消息数据包有5个:HELLO DBD LSR LSU LSACK
在这5个包中除了hello包之外,其他包都需要进行确认;因为只有hello包是周期性发送的,能够保证其可靠性;
DBD的确认方式:DBD使用序列号进行确认,从的序列号设置和主的序列号一致,主的序列号加一;所以DBD是使用DBD进行确认的;
LSR链路状态请求:LSR使用LSU进行确认;由LSU中的标识一条LSA的三个头部信息进行确认的(Link-State Advertisement Tpye(lsa的类型),Link State ID,Advertising Router)
LSU:LSU使用LSACK进行确认;LSACK直接将你所请求的LSU的头部信息再次发送给你;
LSACK:LSACK使用隐式确认;
Hello包:
Hello:周期性发送,周期时间为10s或者30s(根据不同的网络类型,默认的时间不同),死亡时间为40s;
目的:建立并维持OSPF的邻居关系**(当邻居关系建立之后充当保活功能)**
Hello数据包结构:
Options字段:E位,N位特殊区域标识;
-
DR:指定路由器,只发生在MA网络中,所有的路由器只和DR进行LSA的交互,他们之间不会进行LSA交互;为了减少邻接关系的数量,减少LSA的传播次数;
DR的选举是先比优先级再比Router ID;越大越优
DR是一个接口的概念;DR的默认优先级默认为1,范围:0-----255;如果优先级为0代表该接口不参与选举;
BDR:备份指定路由器,其实就是DR的备份;只有当DR出现故障时,BDR才会成为DR;注意:DR和BDR的抢占是关闭的
选举过程:在选举过程中先选举BDR,选举完BDR后由于没有DR则该BDR直接成为DR;之后再选举一个BDR;
Source OSPF Router(Router id):用来标识该路由器在整个OSPF网络中的唯一性,ospf是链路状态型路由协议;
1.可以手工指定,手工指定最优先;
2.如果没有手工指定选择换回接口中ip最大的一个;
3.如果没有手工指定也没有环回接口那么使用最大的物理接口的ip地址;
- 在点对点和以太网的结构中,默认hello时间为10s,死亡时间为(40s);
hello时间:发送hello包的间隔;
死亡时间:死亡计时器,邻居关系的超时计时器;如果连续40s都没有收到邻居的正确hello报文时会认为邻居关系down掉了;
OSPF邻居关系建立条件:
ospf要建立邻居关系那么他们的Router ID必须不同;
Area ID:发送Hello包的接口所属的区域,在ospf邻居关系建立过程中区域ID必须保持一致;
ospf邻居关系建立认证类型(Auth Type)和认证数据(Auth Data)必须匹配
Network Mask:网络掩码,如果在点对点的结构中(p---p)网络掩码没有要求;但如果在非点对点网络中(MA网络)网络掩码必须一致,否则邻居关系建立不了;
hello时间和死亡时间必须保持一致;
特殊区域标识必须一致;
必须同时使用单播或者组播;
更新源检测(双方的IP地址必须在同一段网络);
MTU值保持一致;
DBD包:
DBD的报文有两种:主从选举DBD报文和LSA目录DBD报文;
华为在发送DBD报文时默认不携带MTU值,里面看到的就是0;其他的厂商默认携带MTU值;
注意:如果包含了MTU值,那么就会进行MTU的匹配;如果MTU不匹配那么邻居状态机制就会卡在exstart状态;
DB Description:
第一个bit:R(保留字段)
第二个bit:I(初始化,代表我是第一个DBD报文)
第三个bit:M(更多位,代表后续还会发送别的DBD报文)
第四个bit:MS(主从位,1代表主,0代表从)
注意:默认在进行主从选举的时候谁都不想当从,默认自己就是主;在比较了之后如果是主就还是1,如果为从就改为0;
主从选举比router-id,大的为主,小的为从;
DD Sequence:序列号;(在ospf所有的消息数据包里面除了DBD有序列号以外其余的都没有序列号);
LSR包:
LSR:链路状态请求;根据LSA目录向对方请求LSA信息;请求某条LSA信息;
由Link-State Advertisement Tpye(lsa的类型),Link State ID,Advertising Router三个参数标识一条LSA;
LSU包:
LSU包其中包含着我们请求的具体的LSA信息;
LSACK包:
对收到的LSU信息进行确认;
OSPF邻居状态机制
OSPF的邻居状态机制有---------Down init attempt(尝试,过渡) two-way exstart exchange Loading full
attempt(尝试,过渡)状态只会在nbma网络中出现,华为中一般不出现;
two-way状态和full状态是一个稳定的持久的状态;
Down
代表不存在是一个关闭的状态;1:没有激活ospf;2:在ospf邻居建立过程中出现了某些故障(比如邻居关系建立条件不匹配)就会退回Down状态;
Init
初始化状态,最开始的状态;一旦开始发送hello报文就会进入初始化状态;
Two-way(邻居状态)
-------双向通信状态,一旦接收到包含自己router-id的对方的hello报文就会进入Two-way状态;
如上:AR1接收到AR2的hello报文,其中包含自己的router-id(91.1.1.1),那么此时AR1就会立刻进入到two-way状态;
- 当进入Two-way状态后,就要判断是否进行DR和BDR的选举;
DR,BDR的选举时间:40s;
DR和BDR的选举于网络类型有关;
p2p p2mp bma nbma:p2p和p2mp都属于点对点的网络,不进行DR和BDR的选举;bma和nbma都属于MA网络,进行DR和BDR的选举;
MA网络中进行DR(指定路由器)和BDR(备份指定路由器)的选举,首先比较优先级(0-255,越大越优),当优先级相同时再比较router-id越大越优;
DR的抢占是关闭的;DR和BDR是一个接口的概念,当其优先级为0时代表不参与选举;
只有DR和BDR才会监听224.0.0.6这个组播组;
当DR和BDR选举完成时,所有的其他路由器只会将LSA等信息发向DR和BDR(即向224.0.0.6这个组播组发);其他的路由器之间是不会互发的,当DR和BDR接收完所有的信息后,只有DR会向其他路由器发送所有的LSA信息;
exstart
-------预启动状态;该状态已经建立了邻居关系(two-way),但没有LSA信息发送;我们要进行主从的选举和LSA目录的发送;一旦发送DBD报文就会进入exstart状态;
-
注意:为了防止LSA的重复学习(即对方的LSA与自己的LSA有重复),在发送LSA信息之前双方会发送自己的LSA目录(即LSA的名称和头部信息)
-
为什么不能直接发送LSA信息:
1.再AR1和AR2双方都有许多的LSA信息,它们之间学习LSA需要进行ACK的确认;所以我们要先进行主从的选举我们要在两个交互LSA的双方进行master(主)和slave(从)的选举;因为只有两方,所以必然有一方是主,有一方是从;注意主从的选举与DR和BDR的选举没有关系;比如AR1成为了主,它是用来控制LSA的学习的过程的;由于主想向从学,从也想向主学所以有很多的LSA都需要学习,由主来控制最多只有一个等待需要ACK确认的信息;它担心发了很多的LSA,有些LSA没有进行ACK确认,主来控制最多我们只能等最多只能有一个等待需要被ACK确认LSA信息,当这个确认了之后我们才能够发新的LSA信息;
也就是说当发送了一条LSA信息后只有当对方发送了ACK(确认)之后才能发新的;
主从选举比router-id,大的为主,小的为从;
exchange
---------预交换状态,到该状态就意为着主从选举的完成,进行LSA目录的发送;
此时我们可能会发送LSR(链路状态请求),针对发送的LSA目录进行请求;对方根据我们请求的LSR信息发送LSU,一旦我们收到该LSU信息就会立即进入Loading状态;
该状态绝对不会有LSA的发送;
- 进入exchange状态的标志:
主从选举完成,发送LSA目录,并进行部分的链路状态请求(LSR)
Loading
loading------------加载状态;学习LSA的状态;互相学习LSA;发送LSU标志进入Loading状态;
FULL
full-------邻接状态;此时LSA的同步完成;当自己的请求列表和重传列表全部清空时就会进入FULL(邻接)状态;
-
在路由器中,会针对方发过来的LSA目录中需要学习的LSA信息生成一个请求列表,里面是自己需要向对方学习的LSA信息;该路由器会将该请求列表发送给对方,对方会将需要自己学习的LSA信息放在重传列表中;随着双方的不断请求和不断发送,每学习一条就会删除一条LSA请求目录和一条对方的重传目录,当自己的请求目录和对方的重传目录清空后就代表自己将对方的LSA已经学完了;
此时对方会进行相同的操作,保证对方也将自己的LSA信息学习完成;
判断邻居状态建立过程中卡在某一状态的原因:
Down------关闭状态,正常情况下看不到;只有在它们曾经建立过邻居或者邻接,但是突然邻居关系建立条件不匹配或者死亡计时器超时此时就会出现Down状态;如果看见持续的Down那么就是邻居关系建立条件不匹配;
我给对方发送了一个hello包而对方没有给我发hello包或者对方给我发的hello包中邻居关系不匹配,此时不可能一直初始化状态(Init),会等待一个死亡计时器(40s或者120s)之后会将初始化状态(Init)回退到Down状态;此时的另一端如果是主机或者交换机那么是不可能建立邻居关系的;此时在Down状态还会10s一个hello包,这就浪费资源的行为;针对这种情况我们可以将连接主机的接口做为被动接口,也可以发慢速hello包120s一个;当对方给我发送了一个正常的hello包后就会恢复发送hello包的间隔;
Init------初始化状态;不是一个持久的状态;初始化状态在一个死亡计时器中,如果邻居建立不起来就会退回Down状态;
two-way-----双向通信状态;在选取DR和BDR的网络中一直选不出来DR和BDR就会一直卡在two-way状态;建立邻接关系的前提是至少有一个DR;
exstart-----预启动状态;MTU值不匹配;华为MTU值默认关闭;对MTU大的一方不影响;
exchange-----预启动;也是MTU值不匹配;
Loading-----加载状态;卡在该状态有两种原因:一是该设备接收不了这么多的LSA(LSA不同步),二是可能为了保护设备做了LSA的限制;
FULL------正常工作的状态;
OSPF的基本配置
1:创建进程 [r1]ospf 100 router-id 91.1.1.1 ---------启动ospf进程并指定router-id;
-
router-id:手工指定最优,如果没有手工指定则为逻辑接口(环回接口)最大的ip地址;如果即没有手工指定也没有逻辑接口则选择最大的物理接口的ip地址;
在华为中:若不满足以上条件,则创建router-id固定为0.0.0.0,当路由器出现逻辑接口或者物理接口时这个接口会自动成为router-id,该接口可以是关闭状态(只要有ip就行,不用满足双up;如果一台路由器启用了多个ospf进程可以用同一个router-id(不过不是很推荐,容易出现问题);
在思科中:如果不能满足以上几点则该设备无法启用ospf;在使用逻辑接口或者物理接口时接口必须双up;该接口可以不通告到ospf中;当同一个路由器上启多个ospf进程时router-id必须不同;
2:通告
通告的方式有两种:
1):在ospf进程里面通告
[r1-ospf-100]area 0 -----创建并进入区域
[r1-ospf-100-area-0.0.0.0]network 12.1.1.0 0.0.0.255 -----通告该区域的网段,在通告时是用反掩码来进行通告;
2):直接在接口里面通告
[r2]interface LoopBack 0
[r2-LoopBack0]ip a 2.2.2.2 24
[r2-LoopBack0]ospf enable 100 area 0 ---------100为ospf的进程,0为区域
3:我们可以进入接口开启mtu的检测
[r1-GigabitEthernet0/0/0]ospf mtu-enable ---------开启mtu的检测;
修改mtu值:
[r1-GigabitEthernet0/0/0]mtu ?
<46-1600> MTU value
[r1-GigabitEthernet0/0/0]mtu 1400 --------如果mtu值不一致则两个接口就无法建立邻居关系;
ospf中3张表
1.邻居表:
[r2]display ospf peer ----------查看ospf邻居表
OSPF Process 100 with Router ID 92.1.1.1
Neighbors
Area 0.0.0.0 interface 12.1.1.2(GigabitEthernet0/0/0)'s neighbors
Router ID: 91.1.1.1 Address: 12.1.1.1
State: Full Mode:Nbr is Slave Priority: 1
DR: 12.1.1.1 BDR: 12.1.1.2 MTU: 1400
Dead timer due in 31 sec
Retrans timer interval: 5
Neighbor is up for 00:03:06
Authentication Sequence: [ 0 ]
State: Full-----表示r2与邻居91.1.1.1的邻居状态
Mode:Nbr is Slave ------表示自己的邻居91.1.1.1为从;
Priority: 1 ------表示邻居91.1.1.1的优先级;
Retrans timer interval: 5 ----表示重传间隔5s;我给对方发送一个需要进行确认的报文(比如:DBD,LSU,LSR等),如果对方一直没有回复那么我们5s之后再次发送该报文;
Neighbor is up for 00:03:06 -----表示建议邻居有多长时间了
Authentication Sequence: [ 0 ] -----表示认证编号,这里认证编号为0意味着不认证;
0----代表不认证;
1----代表明文认证;
2----代表md5认证;
[r2]display ospf peer brief ------查看ospf邻居摘要表
OSPF Process 100 with Router ID 92.1.1.1
Peer Statistic Information
----------------------------------------------------------------------------
Area Id Interface Neighbor id State
0.0.0.0 GigabitEthernet0/0/0 91.1.1.1 Full
----------------------------------------------------------------------------
该条信息表示:在ospf进程100,router-id为92.1.1.1的路由器上,在area0区域通过接口g0/0/0与router-id为91.1.1.1的路由器建立了邻接关系;
2,链路状态数据库目录表
[r2]display ospf lsdb ------查看ospf的链路状态数据库目录表
OSPF Process 100 with Router ID 92.1.1.1
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 92.1.1.1 92.1.1.1 1241 36 80000009 1
Router 91.1.1.1 91.1.1.1 1242 36 8000000E 1
Network 12.1.1.1 91.1.1.1 1242 32 80000001 0
[r2]
[r2]display ospf lsdb router ----查看具体的机类LSA信息;router(1类lsa);
OSPF Process 100 with Router ID 92.1.1.1
Area: 0.0.0.0
Link State Database
Type : Router
Ls id : 92.1.1.1
Adv rtr : 92.1.1.1
Ls age : 1399
Len : 36
Options : E
seq# : 80000009
chksum : 0xc0ac
Link count: 1
* Link ID: 12.1.1.1
Data : 12.1.1.2
Link Type: TransNet
Metric : 1
Type : Router
Ls id : 91.1.1.1
Adv rtr : 91.1.1.1
Ls age : 1400
Len : 36
Options : E
seq# : 8000000e
chksum : 0xbeac
Link count: 1
* Link ID: 12.1.1.1
Data : 12.1.1.1
Link Type: TransNet
Metric : 1
[r2]
3.ospf的路由表
[r1]display ip routing-table protocol ospf ----查看ospf路由信息表
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : OSPF
Destinations : 1 Routes : 1
OSPF routing table status : <Active>
Destinations : 1 Routes : 1
Destination/Mask Proto Pre Cost Flags NextHop Interface
2.2.2.2/32 OSPF 10 1 D 12.1.1.2 GigabitEthernet
0/0/0
OSPF routing table status : <Inactive>
Destinations : 0 Routes : 0
[r1]
OSPF的LSA详解
在osfp中常见的LSA有6种:1 2 3 4 5 7类lsa;
在ABR路由器中的环回建议通告到area 0中;
描述lsa是通过三个东西唯一标识的:
1:Type:LSA的类型 2:link-ID : 链路状态标识符 3:ADV router : 产生的路由器
不同类型的LSA信息的链路状态标识符不一样;
通告的路由器是指该LSA信息是那个路由器产生的;
如果3个标识一样那么就表示为同一条LSA;
1类LSA(Router)
1类lsa:router -LSA (路由器的lsa);
功能:它是本路由器针对某个区域产生的路由器信息和拓扑信息;1类LSA传递的就是路由信息和拓扑信息;
-
理解:一个路由器针对一个区域只产生一个1类lsa;其中就包含了本路由器路由信息和拓扑信息;如上图AR1中,AR1针对区域1只产生一条1类LSA,其中就包含AR1中的路由信息和拓扑信息(路由器怎么连接的,对端是谁);
如上路由器AR2是一个ABR,包含两个区域,那么AR2就会产生2条1类LSA,2条1类lsa是不同的;一条是针对区域1的,一条是针对区域0的;在区域1中产生的是针对area 1中的路由信息和拓扑信息的1类LSA;
在区域0中产生的是针对area 0中路由信息和拓扑信息的1类LSA;
如图在AR1中,AR1针对区域1只产生一条LSA:
如图在AR2中,AR2针对区域1和区域0,AR2会产生两条LSA,针对area 0会产生一条,针对area 1会产生一条:
传播范围:路由器针对某区域产生的1类LSA只在该区域内传播(也可以说终止于ABR);
- 理解:AR1针对area 1产生的1类lsa可以传递给AR2,但是不能穿过AR2(ABR)传递给AR3或其他路由器;AR2针对area 0产生的一条1类lsa可以传递给AR3,AR4但是不能穿过AR4传递AR5;
link-ID:产生者的router id;
ADV-router:产生者的router id;
[r2]display ospf lsdb ro
[r2]display ospf lsdb router 92.2.2.2 ----查看lsdb中的link-ID为92.2.2.2的1类LSA;可以通过这条命令查看详细的LSA信息;
OSPF Process 100 with Router ID 92.2.2.2
-----ospf100中router ID为92.2.2.2的路由器产生的1类lsa
Area: 0.0.0.0
Link State Database
Type : Router ---类型
Ls id : 92.2.2.2 ---产生者的router ID
Adv rtr : 92.2.2.2 ---产生者的router ID
Ls age : 223
Len : 60
Options : ABR E
seq# : 80000003
chksum : 0x2348
Link count: 3
* Link ID: 2.2.2.2
Data : 255.255.255.255
Link Type: StubNet
Metric : 0
Priority : Medium
* Link ID: 93.3.3.3
Data : 23.1.1.1
Link Type: P-2-P
Metric : 48
* Link ID: 23.1.1.0
Data : 255.255.255.0
Link Type: StubNet
Metric : 48
Priority : Low
Area: 0.0.0.1
Link State Database
Type : Router
Ls id : 92.2.2.2
Adv rtr : 92.2.2.2
Ls age : 268
Len : 36
Options : ABR E
seq# : 80000004
chksum : 0x97d3
Link count: 1
* Link ID: 12.1.1.1
Data : 12.1.1.2
Link Type: TransNet
Metric : 1
Ls age : 223 ---------链路状态通告的老化时间;ospf中除了触发更新还有30分钟的链路状态刷新;所以正常来说一条lsa到了1800s后就要进行周期刷新,刷新之后这条lsa要重新产生;正常来说lsa的存活时间是1800s,虽然ospf是30分钟的链路状态刷新,但是由于某些原因30分钟后这条lsa还存在,那么就意味者lsa的存活时间会超过1800s;这里的Ls age是lsa的存活时间,而lsa的老化时间是两倍的周期链路状态刷新时间60分钟;也就是说一条lsa最大的存活时间是3600s,到了3600s就要被强制老化;
Len : 60 -------长度,表示这条lsa的大小;
Options : ABR E ---- 可选项,其中ABR表示该路由器的角色;
seq# : 80000003 ----序列号,ospf的序列号;用于lsa的新旧比较;
chksum : 0x2348 ----校验和,用于对lsa的校验,也用于lsa的新旧比较;针对同一条lsa当序列号一样时,比较校验和大的;
Link count: 3 -----链路统计,其中的3代表有3部分;
Link Type: StubNet ----表示该部分为路由信息;
在1类lsa中包含的信息类型有以下4种( Link Type的类型):
1.stubnet(末节网络)------路由信息
2.transnet(传输网络 仅限于MA网络)----拓扑信息
3.point-to-point ---拓扑信息
4.virtual link (虚链路)---拓扑信息
一:Link Tpye为StubNet的路由信息时:
Link ID: 2.2.2.2 ------网络号,ospf可以识别环回接口,直接将它以32位主机路由传递;
Data : 255.255.255.255 ------网络掩码
Metric : 0 ----开销值,华为规定环回接口默认开销值位0;思科规定环回接口的默认开销值为1;
串行链路开销值的计算:
在思科中链路带宽的标准为T1,T1==1.544M ------100/1.544==64
在华为中链路带宽的标准为E1,E1==2.048M ------100/2.048==48
二:Link Tpye为拓扑信息时:
拓扑信息描述的是拓扑的连接方式;
1:p-2-p
* Link ID: 93.3.3.3
Data : 23.1.1.1
Link Type: P-2-P
Metric : 48
该拓扑信息是92.2.2.2产生的,它发现自己通过P-2-P的方式连接着某一个人;此人的router ID就是Link ID(93.3.3.3);Data描述的是自己通过那个接口连接对方的; 这里就是通过点对点(p-2-p)的方式用接口(23.1.1.1)连接对方路由器(93.3.3.3);
2:TransNet(传输网络)
* Link ID: 12.1.1.1
Data : 12.1.1.2
Link Type: TransNet
Metric : 1
是在一个非点对点的网络中,Link ID显示的是该网络中DR的接口,Data表示自己通过那个IP(接口)连接到这个网络中;
1类LSA的特性:在单个区域中产生一条1类LSA,若存在MA网络,1类LSA不完整,需要配合2类LSA生成路由信息和拓扑信息;
2类LSA(network )
2类LSA:network;
2类LSA不是一定会出现的,2类LSA只针对在MA网络中;之前的1类LSA在MA网络中是不完整的,2类LSA就是对1类LSA进行补充的;
功能:用于在MA网络中,描述本网络路由器的数量以及MA网络的网络掩码;
传播范围:只能在本区域内传输,终止于ABR;2类LSA只能由MA网络中的DR产生;
ADV router:表示DR所在路由器的router-ID;产生者的router ID
Link ID:表示该网络中DR的IP地址;
[r3]display ospf lsdb network 34.1.1.2 ----查看link ID为34.1.1.2的2类LSA
OSPF Process 100 with Router ID 93.3.3.3
Area: 0.0.0.0
Link State Database
Type : Network
Ls id : 34.1.1.2
Adv rtr : 94.4.4.4
Ls age : 970
Len : 32
Options : E
seq# : 80000002
chksum : 0x6c8b
Net mask : 255.255.255.0 -----掩码
Priority : Low
Attached Router 94.4.4.4
Attached Router 93.3.3.3
Attached Router 94.4.4.4
Attached Router 93.3.3.3 -----着两项表示该MA网络中存在几台路由器,路由器的router ID为多少;
通过1类和2类LSA就可以得到本区域的路由信息和拓扑信息;
3类LSA(summary)
功能:用于在区域之间传递路由信息;在不同区域之间只能是传递路由信息的;
将本区域的路由信息传递到其他区域此时就会产生3类LSA;
特性:在穿越不同区域时,由其他ABR重新产生(ADV router是变化的);
3类LSA只能是ABR产生;
Link-id:传递路由信息的网络号,没有网络掩码;
ADV router:默认为所在区域ABR的router ID;
理解:如下图
-
当area 1中的路由去area 0时,由area 1和area 0的ABR(AR2)产生,此时ADV router就是AR2的router ID;当area2中的路由去area 0时由ABR(AR4)产生,此时ADV router就是AR2的router ID;当area 0中的路由去往area 1时由area 0和area 1之间的ABR(AR2)产生,此时ADV router就是AR2的router ID;当area 0 中的路由去area 2时,由area 0和area 2之间的ABR(AR4)产生,此时ADV router就是AR4的router ID;
-
3类LSA在传递的过程中由新的ABR重新产生;从一个区域传递到另一个区域时,由它们之间的ABR重新产生;
意思就是:AR2针对12.1.1.0这条路由产生1条3类LSA,传递到area 0,当需要传递到area 2时该条3类LSA需要由area 0于area 2的ABR(AR4)重新产生;
如下图:AR2针对12.1.1.0 产生一条3类LSA;该条3类LSA是针对area 0的:
当传递到ABR(AR4)需要向area 2传递时,针对area 2,AR4会重新产生一条3类LSA:
总结:也就是说3类LSA在区域间传递时,ADV router会发生改变;
4类LSA(summary ASBR LSA)
4类LSA:summary ASBR LSA;
功能:用于通告ASBR的位置;
Link ID:所通告的ASBR的router ID;
ADVrouter:ASBR所在区域的ABR的router ID;
如下:在area0,area 1中不知道ASBR的位置,而4类LSA就是用来通告ASBR的位置的;
4类LSA的产生是在除了ASBR所在区域的其他区域;因为ASBR所在区域的路由器通过1,2类LSA是可以知道ASBR的位置的,所以ASBR所在的区域不需要4类LSA;
4类LSA的产生只能由ASBR所在区域的ABR产生;所以上图中只有AR4可以产生4类LSA;
[r4]display ospf 100 lsdb asbr 95.5.5.5 -----产看Link ID为95.5.5.5的4类lsa
OSPF Process 100 with Router ID 94.4.4.4
Area: 0.0.0.0
Link State Database
Type : Sum-Asbr
Ls id : 95.5.5.5
Adv rtr : 94.4.4.4
Ls age : 51
Len : 28
Options : E
seq# : 80000003
chksum : 0x4040
Tos 0 metric: 1
Area: 0.0.0.2
Link State Database
[r4]
注意:4类LSA在进入其他区域时跟3类LSA一样也要由其他的ABR重新产生;
7类LSA(NSSA LSA)
在area 2上做了特殊区域(NSSA区域),该区域会产生7类LSA,7类LSA只在本区域内传播;向其他区域传播时由ABR将7类LSA转化为5类LSA;
功能:在NSSA区域中,传递外部路由。
Link ID :传递路由的网络号;
ADV router:产生该LSA的router id;
[r5]display ospf lsdb nssa 6.6.6.0
OSPF Process 100 with Router ID 95.5.5.5
Area: 0.0.0.2
Link State Database
Type : NSSA
Ls id : 6.6.6.0
Adv rtr : 95.5.5.5
Ls age : 1594
Len : 36
Options : NP
seq# : 80000001
chksum : 0xe64d
Net mask : 255.255.255.0
TOS 0 Metric: 1
E type : 2
Forwarding Address : 5.5.5.5
Tag : 1
Priority : Low
[r5]
Options : NP -----N位代表是否支持7类;
TOS 0 Metric: 1 -----度量值,默认种子度量值为1;
E type : 2 -----代表7类LSA的类型;7类LSA有类型1,类型2;默认类型为2;1类型默认累加沿途的度量值,2类型默认不累加沿途的度量值;
Forwarding Address : 5.5.5.5
----转发地址(FA地址);有FA地址和没有FA地址的逻辑是不一样的,在5类LSA中默认没有FA地址;
不管是5类LSA还是7类LSA如果没有转发地址,它的路由逻辑是去找产生该LSA的router id;
说白了这条LSA是95.5.5.5产生的,在这个特殊区域area 2里面的其他路由器要去学习6.6.6.0这个网段,如果没有FA地址就永远去找95.5.5.5这个路由器,如果能找到就能学习到达6.6.6.0这个网段;如果携带了FA地址,那么我们要学习到这条路由就必须要找到FA地址;换而言之,如果我们这个路由表里面没有到达5.5.5.5的路由,这条LSA我们学到了也用不了,这条路由就加不了表;
如果有了FA地址就不看ADV router;FA地址是优于ADV router;我们默认的7类LSA是一定有FA地址的,5类LSA大多数没有;
注意:7转5的LSA是默认携带FA地址的,它是不用找ADV router的,所以它不需要4类LSA;
FA地址:
FA地址:转发地址,出现在5/7类LSA中,在7类LSA中默认存在FA地址,在5类LSA中默认不存在转发地址;
当5类或者7类LSA中携带了FA地址,则计算路径开销值时计算的是当前路由器到达FA地址的开销值之和+种子度量值(若FA地址不可达,7则路由不能加表);
-
注意: 1.7类LSA只能出现在本NSSA区域 2.7类LSA默认携带FA地址,外部路由metric计算,包括路径的逻辑加表都是以FA地址为准,若FA地址不可达,则路径不能加表; 3.同时7转5的过程中会产生4类LSA(在其他的非area0产生),默认该4类LSA没有意义(除非接收到的5类LSA不携带FA地址,那么此时就使用4类LSA计算外部路由度量值) 1.默认7类LSA产生FA地址,5类LSA不产生(7转5的5类LSA携带LSA地址) 2.7类LSA产生规则:默认产生的FA地址为产生7类LSA的ASBR最大环回接口地址;若连接其他协议的接口也运行了OSPF并且网络类型为BMA,则产生的7类LSA中FA地址为连接其他接口对应的下一跳地址;若网络类型为P2P,则FA地址依然为环回接口中IP地址最大的; 3.5类LSA的FA地址规则:默认不产生,若连接其他协议的接口运行了OSPF协议并且网络类型为BMA,则FA地址为重发布之前路由器的下一跳地址,若网络类型为P2P,则不会产生FA地址;
在进行7转5的过程中过滤FA地址:
5类LSA(External)
在将5类LSA之前,我们需要在ospf的边界再添加一个路由器,并开启RIP协议,并使用重发布技术将路由导入;
5类LSA:external LSA;
功能:在整个ospf网络中传递外部路由;把原本不属于ospf网络中的路由传递到ospf中;
传播范围:在整个ospf域中传输;
Link ID:外部路由的网络号;
ADVRouter:ASBR的router ID;进行重发布的路由器的router ID;产生者的router ID;
[r5]display ospf 100 lsdb ase 6.6.6.0 ------查看Link id为6.6.6.0的5类LSA
OSPF Process 100 with Router ID 95.5.5.5
Link State Database
Type : External
Ls id : 6.6.6.0 ---网络号
Adv rtr : 95.5.5.5 ---ASBR的router ID,产生者的router id;
Ls age : 1344
Len : 36
Options : E
seq# : 80000001
chksum : 0x62ed
Net mask : 255.255.255.0 ---掩码
TOS 0 Metric: 1
E type : 2
Forwarding Address : 0.0.0.0
Tag : 1 ---路由标记,没有属性意义;
Priority : Low
[r5]
TOS 0 Metric: 1 ----这里的开销值不正常,因为rip和ospf的路由计算方式不一样,这里是强行将路由引入的;原本的开销值不适应ospf协议;所以当rip路由引入ospf协议时会给一个默认的度量值,这个度量值叫做种子度量值;华为中的种子度量值为1,这个值可以根据需求进行改变;
Forwarding Address : 0.0.0.0 ------转发地址,正常的5类LSA的转发地址为0.0.0.0;
E type : 2 ----5类LSA的类型,5类LSA有两个类型(类型1和类型2);默认为类型2;
类型1和类型2的区别:
类型1的LSA在传递的过程中会计算累加沿途的度量值,类型2的5类LSA进入ospf时不计算不累加沿途的度量值;
5类LSA的传递类型我们可以在重发不的时候进行改变:
LSA的路由的优先级
在ospf网络中,通过1/2/3类LSA学习到的路由加表默认优先级为10,通过重发布引入的路由默认优先级为150;
LSA的新旧比较
如果一台路由器收到了多条相同的LSA,那么我们此时就需要选出最优的一条LSA加表;
如果一条LSA的age是3600s,那么这条LSA是无敌的,最优的;
1:序列号
序列号 有3个空间:直线型(ISIS),循环型,棒棒糖型;
序列号使用了32个二进制来表示的:
使用十六进制书写:OX8000 0001;第一次产生的LSA并不是从0X0000 0001开始的,二是从0X8000 0001开始的;触发跟新之后就会变成OX8000 0002 , .......以此类推;
OX8000 0001 ---最小
0X8000 0002
.
.
.
OX0000 0001 -----棒棒糖的把与头的交界处;上面是棒棒糖的把;下面是棒棒糖的头;
.
.
.
.
OX7FFF FFFE ---最大
当这条LSA的序列号为OX7FFF FFFF时,产生该LSA的路由器就会重新发送一条age为3600s的lsa将该条LSA老化然后再重新发送;
2.校验和
可能会出现某些特殊的原因导致lsa的序列号一致,此时我们就需要比较校验和;
校验和越大越优;
3.LSA老化时间
如果出现了序列号和校验和都一样那么我们就需要比较老化时间;
如果两条LSA的LSA age之差小于15分钟,则越小越优;如果大于15分钟,则无法比较认为都是最新的,如果出现这种情况那么就意味着这个网络面临着崩溃的风险;
ospf中的计时器
ospf中接口的属性:
[r2]display ospf interface Serial 4/0/0 -------查看ospf中接口s4/0/0的属性
OSPF Process 100 with Router ID 92.2.2.2
Interfaces
Interface: 23.1.1.1 (Serial4/0/0) --> 23.1.1.2
Cost: 48 State: P-2-P Type: P2P MTU: 1500
Timers: Hello 10 , Dead 40 , Poll 120 , Retransmit 5 , Transmit Delay 1
Cost: 48 ------开销值;
State: P-2-P -------接口的状态信息;
接口的状态信息分为两种:
1:一种是点对点的,不进行DR和BDR选举的;凡是不进行DR和BDR选举的,不管你的接口是什么类型这里的状态信息都是P-2-P;
2:第二种该接口就是需要进行DR和BDR选举的,那么这里显示的接口的状态;接口状态可能是DR,BDR,DRouther;
State------这个状态不是ospf的网络类型,说的是这个物理接口运行ospf的状态;它只分两种:选DR的和不选DR的;
Type: P2P ------这个就是ospf的网络类型;
Waiting time:等待DR或BDR的选举时间;永远保持与dead时间一致;
Hello 10 , Dead 40 --------hello时间和死亡时间,默认值分别为10s,40s;可以进行修改;
Poll 120 -------轮巡时间,默认120s,该接口进入DOWN状态后,我们不能发送10s一个的高速hello包,而是按照Poll时间间隔来发送的;
Retransmit 5 ------重传时间,默认为5s;在ospf发送的消息数据包里面,如果需要进行确认,那么我们就需要进行重传,重传间隔就是Retransmit时间;可以进行修改;一直重传到邻接关系断掉为止;
Transmit Delay 1 --------传输延时,默认为1s;可以修改;延时时间补的是LSA从产生者发出再到接收者接收之间的时间,比如:产生者的lsa的age为50s,但是向外发送时的age = 50s + Transmit Delay;
[r2]display ospf interface GigabitEthernet 0/0/0 ------查看ospf中接口g0/0/0的属性
OSPF Process 100 with Router ID 92.2.2.2
Interfaces
Interface: 12.1.1.2 (GigabitEthernet0/0/0)
Cost: 1 State: BDR Type: Broadcast MTU: 1500
Priority: 1
Designated Router: 12.1.1.1
Backup Designated Router: 12.1.1.2
Timers: Hello 10 , Dead 40 , Poll 120 , Retransmit 5 , Transmit Delay 1
[r2]
(1):
hello时间的修改:修改hello时间dead时间会自动按照4倍的时间进行变化:
[r2-Serial4/0/0]ospf timer ? ----进入需要修改hello时间的接口;
dead Interval after which a neighbor is declared dead
hello Time between HELLO packets
ldp-sync Specify LDP-OSPF synchronization timer interval
poll Interval for sending Poll Hello packet in the NBMA network
retransmit Retransmit interval
[r2-Serial4/0/0]ospf timer hello ?
INTEGER<1-65535> Second(s)
[r2-Serial4/0/0]ospf timer hello 5 -----修改hello时间为5s;
(2):
dead时间的修改:修改dead时间hello时间不会发生改变
[r2-Serial4/0/0]ospf timer dead 20 ------修改dead时间
[r2-Serial4/0/0]display ospf interface Serial 4/0/0
OSPF Process 100 with Router ID 92.2.2.2
Interfaces
Interface: 23.1.1.1 (Serial4/0/0) --> 23.1.1.2
Cost: 48 State: P-2-P Type: P2P MTU: 1500
Timers: Hello 10 , Dead 20 , Poll 120 , Retransmit 5 , Transmit Delay 1
[r2-Serial4/0/0]
注意:hello时间和dead时间的修改如果导致两端的hello时间和dead时间不一致则会让邻接关系建立失败;
(3):
Retransmit时间的修改:
[r2-Serial4/0/0]ospf timer retransmit 10 ----修改指定接口的重传时间;
[r2-Serial4/0/0]display ospf interface Serial 4/0/0
OSPF Process 100 with Router ID 92.2.2.2
Interfaces
Interface: 23.1.1.1 (Serial4/0/0)
Cost: 48 State: P-2-P Type: P2P MTU: 1500
Timers: Hello 10 , Dead 20 , Poll 120 , Retransmit 10 , Transmit Delay 1
[r2-Serial4/0/0]
(4):
Transmit Delay时间的修改:
[r2-Serial4/0/0]ospf trans-delay 2 ----修改指定接口的延迟时间;
[r2-Serial4/0/0]display ospf interface Serial 4/0/0
OSPF Process 100 with Router ID 92.2.2.2
Interfaces
Interface: 23.1.1.1 (Serial4/0/0)
Cost: 48 State: P-2-P Type: P2P MTU: 1500
Timers: Hello 10 , Dead 20 , Poll 120 , Retransmit 10 , Transmit Delay 2
[r2-Serial4/0/0]
OSPF的网络类型
ospf针对不同的物理接口的特性,它的ospf的工作模式不同,所以也就导致ospf不同的接口有着不同的工作方式;
lookback
loopback(环回网络类型):它是一个特殊的,因为在ospf中我们看不到一个接口的网络类型为环回网络类型的;如果将一个环回接口通告到ospf中,ospf能够识别是一个环回接口;它会将这个接口以32位主机路由的方式传递给对方或者通告到路由协议里面去,这个就是环回网络类型的体现,其他的网络类型没有这个体现;
但是在华为的设备中我们是看不到这个网络类型的;
在华为中我们看到的网络类型(Type)是P2P;但实质上这个接口的工作状态是loopback类型;
环回网络类型体现在:
1:网络类型在华为中显示为P2P,在思科中显示loopback;
2:在向外传递该路由时是以32位主机路由的方式向外传递;
3:环回网络类型是没有hello时间和dead时间的,因为它不需要和别人建立邻居传递路由,不会发送hello包,
注意:不能将一个物理接口的网络类型更改为环回类型,环回类型只是属于环回接口;
-
loopback接口默认OSPF网络类型为P2P,但是生成路由的网络掩码为32位,并且cost位0;
不过,在很多时候我们要还原真实的网络掩码,在思科中,我们必须将环回接口的网络类型修改为P2P;在华为中,我们要将环回接口的网络类型修改为BMA;
在华为中修改环回接口网络类型:
当我们修改了环回接口的网络类型后就会发现传递的就是24位的正常路由了:
1:P2P
P2P点对点的网络类型的物理接口有:HDLC(高级数据链路控制协议),PPP(点对点协议),GRE,MGRE(在思科中的MGRE接口网络类型默认为NBMA,在华为中为P2P),FR点对点子接口;
hello时间:默认hello时间为10s;
是否选举DR:不会进行DR和BDR的选举;
是否自动建立邻居:可以自动建立邻居;
2:广播型多路访问(BMA)
对应物理接口:以太网,显示的类型是Broadcast;
hello时间:默认10s;
是否进行DR和BDR的选举:会选举DR和BDR;
是否自动建立邻居:可以自动建立邻居;
特性:在MA网络中会进行DR和BDR的选举;在进行DR和BDR选举的网络中它的1类LSA是不完整的需要2类LSA进行补充,2类LSA补充掩码和MA中所有路由器的router ID;
3.非广播型多路访问(NBMA)
非广播的多路访问网络是不支持广播的,不能发送广播或者组播报文;
多路访问指的是在这个网络中有多个用户通过一个交换机连接,此时的交换机不是以太网交换机,可能是帧中继交换机或者ATM交换机;
对应的物理接口:FR-帧中继(帧中继的物理接口和帧中继的多点子接口默认的网络类型都是NBMA) ,ATM-异步传输网络,思科中的MGRE接口;
在华为中目前我们所学的没有任何一个接口的网络类型默认为NBMA;
是否进行DR和BDR的选举:会进行DR和BDR的选举;
如上图:当我们将AR2的s4/0/0的网络类型修改为NBMA之后,就会断开与AR3建立的邻居;说明NBMA网络类型不能自动建立邻居:
[r2-Serial4/0/0]display ospf interface s4/0/0
OSPF Process 100 with Router ID 92.2.2.2
Interfaces
Interface: 23.1.1.1 (Serial4/0/0)
Cost: 48 State: DR Type: NBMA MTU: 1500
Priority: 1
Designated Router: 23.1.1.1
Backup Designated Router: 0.0.0.0
Timers: Hello 30 , Dead 120 , Poll 120 , Retransmit 10 , Transmit Delay 2
[r2-Serial4/0/0]
不过可以通过单播邻居来进行邻居的建立:
[r2]ospf 100
[r2-ospf-100]peer 23.1.1.2 ----在AR2中指定AR3的物理接口的ip;
[r3]ospf 100
[r3-ospf-100]peer 23.1.1.1 ----在AR3中指定AR2的物理接口ip;
[r2]display ospf peer brief ---指定之后查看邻居表;
OSPF Process 100 with Router ID 92.2.2.2
Peer Statistic Information
----------------------------------------------------------------------------
Area Id Interface Neighbor id State
0.0.0.0 Serial4/0/0 93.3.3.3 Full
0.0.0.1 GigabitEthernet0/0/0 91.1.1.1 Full
----------------------------------------------------------------------------
[r2]
4.点对多点(P2MP)
物理接口:无
hello时间:30s
是否选举DR:不选举
是否自动建立邻居:自动
特性:会将物理接口ip地址以32位主机路由的形式传递进入OSPF;
实验:关于网络类型的实验:
如上图实验:该实验的结构是在hub-spoke的结构中启用ospf网络,在这个实验中我们要干涉DR与BDR的选举并且不能让该网路中出现BDR;
在华为中,隧道默认的开销值为1562;
配置完了之后分别查看AR1,AR3,AR4的ospf邻居表:
由上表可知:在这个hub-spoke网络结构中,只有AR1与AR3通过隧道成功建立了邻接关系;而AR4的邻居关系状态一直卡在Init;出现这个原因是因为:在华为中隧道默认的网络类型为P2P;
在华为中隧道默认的开销值为1562;
所以这里明显是不正确的,我们此时需要修改隧道的网络类型,但是在华为中设备中网络类型不能修改为NBMA:
方法1:我们可以将接口网络类型更改为Broadcast;3个隧道接口网络类型都要改为Broadcast;
最后,我们需要修改DR的优先级来干涉DR和BDR的选举,将HUB端设置为DR,将spoke端DR优先级设置为0(意思是spoke端不参与DR的选举);
此时我们查看AR1(hub端)的路由表:可知AR1可以正常学习到AR3和AR4的路由;又由于AR1是HUB端,会将自己的路由分别发送给spoke端;
方法2:将接口的网络类型改为P2MP:
所有的隧道接口的网络类型都要更改;此时就不需要DR与BDR;P2MP网络类型是专门针对hub-spoke网络的;
不同的网络类型之间是否可以建立邻接/邻居关系
邻接关系的建立和网络类型没有直接的关系;
不同的网络类型之间是否可以建立邻居首先去看hello时间和dead时间,如果hello时间和dead时间一致我们就需要去看双发是否可以自动建立邻居;如果不考虑两边是否可以自动建立邻接,那么hello时间和dead时间一致是一定可以建立邻接关系的;第二步,看路由能否加表,如果双方都要进行DR和BDR的选举那么我们学习到的路由就可以加表,如果有一方进行DR和BDR的选举,一方不进行DR和BDR的选举,那么双方可以建立邻接关系但是路由不会加表;
p2p与BMA能否建立邻接/邻居关系:
p2p和BMA可以建立邻接/邻居关系;
如上图,当我们启用了ospf协议后查看邻居表如下:可知它们之间可以建立邻接关系;
当我们查看它们之间的路由表时会发现它们之间不能互相学习路由:这是因为它们一端是P2P一端是BMA,在SPF算法运算时会运算失败,不能描绘出它们之间的拓扑信息,就会导致路由加表失败;
OSPF中的认证
所有的路由认证都是为了增加路由传递的安全性;
如果两边的认证类型和认证数据不一致会导致邻居关系建立失败;
1.ospf中的链路认证:
[r1-GigabitEthernet0/0/0]ospf authentication-mode ? -----选择ospf认证类型
hmac-md5 Use HMAC-MD5 algorithm ----密钥化哈希认证
keychain Keychain authentication mode
md5 Use MD5 algorithm ----MD5密文认证
null Use null authentication ----不认证
simple Simple authentication mode ----简单的明文认证
[r1-GigabitEthernet0/0/0]ospf authentication-mode simple ?
STRING<1-8>/<32> The password (key)
cipher Encryption type (Cryptogram) ----密码本地密文表示
plain Encryption type (Plain text) ----密码本地明文表示
<cr> Please press ENTER to execute command
[r1-GigabitEthernet0/0/0]ospf authentication-mode simple p
[r1-GigabitEthernet0/0/0]ospf authentication-mode simple plain huawei
[r1-GigabitEthernet0/0/0]ospf authentication-mode md5 ---使用md5认证
[r1-GigabitEthernet0/0/0]ospf authentication-mode md5 1 ? ---1为keyid编号,keyid编号需要保持一致;
STRING<1-255>/<20-392> The password (key)
cipher Encryption type (Cryptogram)
plain Encryption type (Plain text)
[r1-GigabitEthernet0/0/0]ospf authentication-mode md5 1 c
[r1-GigabitEthernet0/0/0]ospf authentication-mode md5 1 cipher ?
STRING<1-255>/<20-392> The password (key)
[r1-GigabitEthernet0/0/0]ospf authentication-mode md5 1 cipher huawei
2.ospf中的区域认证;
区域认证一般是针对非骨干区域,不过也可以针对骨干区域;我在某一个区域里面想增加网络的安全性就可以使用区域认证,在区域认证中的每一个路由器都要进行认证;
[r1-ospf-100-area-0.0.0.0]authentication-mode ? ----进入需要认证的区域选择认证方式;
hmac-md5 Use HMAC-MD5 algorithm
keychain Keychain authentication mode
md5 Use MD5 algorithm
simple Simple authentication mode
[r1-ospf-100-area-0.0.0.0]authentication-mode simple ?
STRING<1-8>/<32> The password (key)
cipher Encryption type (Cryptogram)
plain Encryption type (Plain text)
<cr> Please press ENTER to execute command
[r1-ospf-100-area-0.0.0.0]authentication-mode simple plain huawei
[r1-ospf-100-area-0.0.0.0]display this
[V200R003C00]
#
area 0.0.0.0
authentication-mode simple plain huawei
network 1.1.1.1 0.0.0.0
network 12.1.1.1 0.0.0.0
#
return
[r1-ospf-100-area-0.0.0.0]
注意:当区域认证和接口认证(链路认证)同时存在时接口认证生效;
OSPF中LSA的限制
OSPF中LSA的限制方法有:1.划分区域 2.特殊区域 3.LSA汇总 4.LSA过滤
限制LSA是为了提高OSPF的使用效率;
1.区域划分
区域划分就是我们划分的骨干区域与非骨干区域,限制LSA在区域内的传输;
2.特殊区域
在ospf中通过设置特殊区域来减少特定的LSA,来提高ospf的工作效率;
2.1stub区域(末梢区域/末节区域)
stub区域:在某一区域里面去限制5类和4类LSA,这种区域就叫做stub区域;
不能将area 0区域设置为stub区域;
除了骨干区域(area 0),其余任何区域上都可以做stub区域;
如果一个区域被设置成了stub区域,那么这个区域就不能出现5类LSA;
- 一个区域被做成stub区域后,该区域的边界设备会自动产生一个在该区域内传输的3类缺省LSA;目的就是为了能够和其他的网络通信;
stub区域的特性:
1.stub区域不能出现4,5类LSA;stub区域不能进行重发布,不能存在ASBR设备;
2.stub区域边界路由器(ABR)会自动产生3类缺省LSA,保证stub区域路由器能够与外网保持通信;
3.特殊区域不能使用虚链路
4.stub区域不能为骨干区域
5.如果设置stub区域,那么在该区域中的所有路由器都必须设置;
在ospf邻居关系建立发送的hello包中,option字段中有一个E位,它代表是否支持5类LSA;默认为1(支持5类LSA),当做了stub区域后就会变成0;如果双方的E位(即特殊区域标识)不一致,那么就会导致邻居关系建立失败;
如上,将area 1区域做成stub区域:
[r1]ospf 100
[r1-ospf-100]area 1
[r1-ospf-100-area-0.0.0.1]stub -----进入对应ospf进程的区域,直接敲stub;
[r2]ospf 100
[r2-ospf-100]area 1
[r2-ospf-100-area-0.0.0.1]stub
[r1]display ospf lsdb summary 0.0.0.0 ------查看做了stub区域后产生的3类缺省
OSPF Process 100 with Router ID 91.1.1.1
Area: 0.0.0.1
Link State Database
Type : Sum-Net
Ls id : 0.0.0.0 ---网络号
Adv rtr : 92.2.2.2
Ls age : 1801
Len : 28
Options : None
seq# : 80000002
chksum : 0x28d2
Net mask : 0.0.0.0 ---掩码
Tos 0 metric: 1 ---开销值
Priority : Low
[r1]
Tos 0 metric: 1 ----开销值,这个开销值就是是种子度量值;在华为中默认的缺省种子度量值为1;
2.2Totally stub(完全的末节区域)
Totally stub(完全末节区域):该区域就是在stub区域的基础上完全干掉3类LSA,只保留1条3类LSA的缺省;
我们只需要在边界设备上进一步过滤3类LSA,因为3类LSA是由边界产生的;
[r2]ospf 100
[r2-ospf-100]area 1
[r2-ospf-100-area-0.0.0.1]stu
[r2-ospf-100-area-0.0.0.1]stub no-summary ----该条命令只需要在边界(AR2)做即可;
2.3NSSA区域(非完全末节区域)
NSSA区域首先它是一个末节区域,但是这个末节区域有点特殊;我们做末节区域的原因是不想接收4/5类LSA,因为怕自己接收不了这么多4/5类LSA;但是这个路由器自己又要进行重发布,那么普通的末节区域是不行的,所以我们创建了一个新的特殊区域NSSA(非完全末节区域)区域;
如上图:在area 2中我们不允许4/5类LSA产生,但是我们又需要将RIP 100的路由引入,那么我们就可以将area 2区域做成NSSA区域;
我们不允许产生4/5类LSA,但我们又要进行重发布,所以我们重发布进来的LSA就不能再以5类LSA的形式引入;可是我们终究还是要传递外部路由,所以创造出一种新的LSA ------------------ 7类LSA;
-
7类LSA再NSSA区域中传递外部路由;
NSSA区域特性:
1.过滤4/5类LSA
2.边界ABR自动产生7类缺省LSA(默认度量值为1)
3.允许进行重发布(允许出现ASBR),产生7类LSA
注意:如果要做NSSA区域那么该区域的所有路由器都需要配置在发送hello包中,option字段中有一个N位,代表是否支持7类LSA;正常情况下不允许出现7类LSA,默认N位为0;做了NSSA区域后N位为1;
[r4]ospf 100
[r4-ospf-100]area 2
[r4-ospf-100-area-0.0.0.2]nssa ----在AR4的area 2做成nssa区域
[r5]ospf 100
[r5-ospf-100]area 2
[r5-ospf-100-area-0.0.0.2]nssa ----在AR5的area 2做成nssa区域
将area 2做成特殊区域后查看AR5的lsdb:可知产生7类LSA,并且没有4/5类LSA:
当我们将area 2做成NSSA区域后,area 2区域可以通过7类LSA学习到外部路由;但是,在整个ospf网络中area 0,area 1也需要去学习外部路由,不过7类LSA是不能进入到普通区域的,就意为着其他区域不能学习到重发布引入的路由了;普通区域不允许7类,但是允许4/5类LSA,那么此时我们就需要在边界ABR(AR4)上将7类LSA转化成5类LSA,其他区域就可以收到这个5类LSA;所以,我们查看AR4的lsdb,其中既有7类LSA又有5类LSA,这些5类LSA是7类转化来的;
LSA在转化的时候只有7转5,没有5转7;
- 注意:
1.7类LSA只能出现在本NSSA区域
2.7类LSA默认携带FA地址,外部路由metric计算,包括路径的逻辑加表都是以FA地址为准,若FA地址不可达,则路径不能加表;
3.同时7转5的过程中会产生4类LSA(在其他的非area0产生),默认该4类LSA没有意义(除非接收到的5类LSA不携带FA地址,那么此时就使用4类LSA计算外部路由度量值)
在进行7转5的过程中过滤FA地址:
不能7转5的情况:
注意在某些情况下LSA不支持7类转5类:
如上图,area 2区域做成了NSSA区域;在NSSA区域(area 2)和area 0区域之间的路由器AR4上进行重发布,重发布的路由是分别向area 0和NSSA(area 2)进行重发布;重发布进入NSSA区域的为7类LSA,重发布进入area 0区域为5类LSA;注意,此时NSSA区域中的7类LSA是不能转化为5类LSA发给其他区域的,否则到达某一网段会出现多条路径,可能会产生错误的选路;
此时,重发布进入NSSA区域的7类LSA中的option字段中没有P位了;---------P位代表该7类LSA是否支持7转5;
在option字段中有3个字段:E N P,
E ------ 代表是否支持5类LSA
N ------ 代表是否支持7类LSA
P ------ 代表是否支持7转5;
[r4]display ospf lsdb nssa 7.7.7.0 ----查看重发布进入NSSA区域的7类LSA
OSPF Process 100 with Router ID 94.4.4.4
Area: 0.0.0.0
Link State Database
Area: 0.0.0.2
Link State Database
Type : NSSA
Ls id : 7.7.7.0
Adv rtr : 94.4.4.4
Ls age : 1097
Len : 36
Options : None -------没有P位,代表不能7转5;
seq# : 80000001
chksum : 0x76aa
Net mask : 255.255.255.0
TOS 0 Metric: 1
E type : 2
Forwarding Address : 45.1.1.1
Tag : 1
Priority : Low
[r4]
如果路由重发布的点在NSSA区域与非NSSA的边界,那么重发布进入NSSA区域的7类LSA不支持7转5;
NSSA中特殊的路由重发布
我们将RIP 200进行重发布之后,在NSSA区域(area 2)中有多条路由并指向NSSA区域与area 0的边界AR4; 但是,由于做了NSSA区域之后会自动产生一条指向边界(AR4)的7类缺省,所以其实在这个特殊情况下我们并不需要将路由重发布进入NSSA区域(area 2);
[r4]ospf 100
[r4-ospf-100]area 2
[r4-ospf-100-area-0.0.0.2]nssa ?
default-route-advertise Originate Type 7 default into NSSA area
flush-waiting-timer Flush waiting timer
no-import-route No redistribution into this NSSA area
no-summary Do not send summary LSA into NSSA
set-n-bit Set n bit in DD packet in NSSA area
suppress-forwarding-address Suppress forwarding address for Translated Type-5
LSAs
translator-always Set NSSA translator role always
translator-interval Configure NSSA translator interval value
zero-address-forwarding Allow zero forwarding address for Type-7 LSAs
<cr> Please press ENTER to execute command
[r4-ospf-100-area-0.0.0.2]nssa no-import-route -----使用该条命令不将路由重发布到NSSA区域中;
注意:该条命令只适用于特殊情况,只有当在NSSA区域与非NSSA区域(骨干区域与非骨干区域)边界点进行重发布时才能使用;表示路由仅仅重发布到正常区域里面,不能重发布到NSSA区域里面;
2.4完全的非完全的末节区域
该区域是在NSSA区域的基础上继续过滤3类LSA,产生3类的缺省LSA;
在NSSA区域的边界上去做;
配置:
[r4]ospf 100
[r4-ospf-100]area 2
[r4-ospf-100-area-0.0.0.2]nssa no-summary
当我们在AR5上查看LSDB时会发现有两条LSA的缺省,一条3类的缺省,一条7类的缺省;但是在路由加表时只有3类的缺省路由会加表;3类LSA优于7类LSA:
3.LSA的汇总
在汇总的时候,只有路由信息可以汇总,拓扑信息不能汇总;
所以:1类LSA和2类LSA是不能汇总的; 我们可以做3类LSA,5类LSA和7类LSA的汇总;
3类LSA的汇总
位置:在产生该3类LSA的路由器上;
3类LSA是ABR产生的,只能在ABR上做;
如上图:再在AR1上做几个环回,在通告进入ospf中;
查看AR3的路由表:
接下来我们在需要进行汇总的区域的边界上做3类LSA的汇总:
配置:
[r2]ospf 100
[r2-ospf-100]area 1 ------进入需要进行路由汇总的区域area 1;
[r2-ospf-100-area-0.0.0.1]abr-summary ?
IP_ADDR<X.X.X.X> IP address
[r2-ospf-100-area-0.0.0.1]abr-summary 1.1.0.0 255.255.252.0 ----将几个环回进行汇总;
[r2-ospf-100-area-0.0.0.1]
做完汇总后我们再次查看AR3的路由表会发现只剩下一条汇总的环回路由:
5类LSA的汇总
位置:在产生该LSA的ASBR上做;
我们在AR7上做几个可汇总的环回;
5类LSA属于整个OSPF网络,汇总时不能在某个区域做,在ospf进程中做;
汇总前AR4上查看路由:
在AR4上配置:
[r4]ospf 100
[r4-ospf-100]asbr-summary 200.1.0.0 255.255.252.0 -----进行5类LSA的汇总
做完之后会发现只剩下一条汇总路由:
7类LSA的汇总
位置:在产生该LSA的ASBR上做;
7类LSA的汇总直接在ospf进程中做:
在AR6上做两个可以汇总的环回;
在汇总前查看LSA:
在AR5上进行配置:
[r5]ospf 100
[r5-ospf-100]asbr-summary 6.6.4.0 255.255.252.0
汇总后查看7类LSA:
7转5类LSA的汇总
位置:在产生7转5的ASBR上做;
7转5类LSA的汇总在在NSSA区域与非NSSA区域的边界上做,在AR4上进行汇总;
查看AR4的LSDB:我们将6.6.4.0和其他网段一起汇总成6.6.0.0;
配置:
[r4]ospf 100
[r4-ospf-100]asbr-summary 6.6.0.0 255.255.0.0
[r4-ospf-100]
汇总后查看LSDB:
[r4]display ospf lsdb nssa 6.6.4.0 ------查看汇总前7类LSA
OSPF Process 100 with Router ID 94.4.4.4
Area: 0.0.0.0
Link State Database
Area: 0.0.0.2
Link State Database
Type : NSSA
Ls id : 6.6.4.0
Adv rtr : 95.5.5.5
Ls age : 1123
Len : 36
Options : NP
seq# : 80000001
chksum : 0xf740
Net mask : 255.255.252.0
TOS 0 Metric: 2
E type : 2
Forwarding Address : 5.5.5.5
Tag : 1
Priority : Low
[r4]display ospf lsdb ase 6.6.0.0 ---查看7转5汇总后的5类LSA;
OSPF Process 100 with Router ID 94.4.4.4
Link State Database
Type : External
Ls id : 6.6.0.0
Adv rtr : 94.4.4.4
Ls age : 345
Len : 36
Options : E
seq# : 80000001
chksum : 0xd681
Net mask : 255.255.0.0
TOS 0 Metric: 3
E type : 2
Forwarding Address : 0.0.0.0
Tag : 1
Priority : Low
由上可知:在7转5类LSA的汇总后,会自动将FA地址过滤
LSA在汇总的开销值
3类/5类/7转5类LSA在汇总的过程中可以指定汇总路由的开销值,如果不指定路由的开销值,那么汇总路由的开销值就是明细路由中开销值最大的一个;
[r2]ospf 100
[r2-ospf-100]area 1
[r2-ospf-100-area-0.0.0.1]abr-summary 1.1.0.0 255.255.252.0 ?
advertise Advertise this summary (default) ----该参数表示传递该LSA,不选参数默认为它;
cost Set cost ----该参数表示指定汇总cost值;
not-advertise Do not advertise this summary ----该参数表示不传递(过滤)该LSA;
<cr> Please press ENTER to execute command
[r2-ospf-100-area-0.0.0.1]abr-summary 1.1.0.0 255.255.252.0 cost 20 ----指定汇总路由的开销值为20;
[r2-ospf-100-area-0.0.0.1]
4.LSA的过滤
我们做LSA的过滤是针对3/5/7类LSA进行过滤;
3类LSA的过滤:
位置:在产生该3类LSA的路由器上;
配置:
[r2]ospf 100
[r2-ospf-100]area 1
[r2-ospf-100-area-0.0.0.1]abr-summary 1.1.0.0 255.255.252.0 ?
advertise Advertise this summary (default) ----该参数表示传递该LSA,不选参数默认为它;
cost Set cost ----该参数表示指定汇总cost值;
not-advertise Do not advertise this summary ----该参数表示不传递(过滤)该LSA;
<cr> Please press ENTER to execute command
[r2-ospf-100-area-0.0.0.1]abr-summary 1.1.0.0 255.255.252.0 not-advertise
[r2-ospf-100-area-0.0.0.1]
[r2-ospf-100-area-0.0.0.1]abr-summary 1.1.2.0 255.255.255.0 not-advertise -----指定过滤具体的某一条LSA;
过滤后在AR3上查看路由表:发现就没有通往AR1环回的路由了:
5类LSA的过滤
[r4]ospf 100 [r4-ospf-100]asbr-summary 200.1.0.0 255.255.252.0 not-advertise -----进行5类LSA的过滤
7类LSA的过滤
[r5]ospf 100 [r5-ospf-100]asbr-summary 6.6.4.0 255.255.252.0 not-advertise -----进行7类LSA的过滤
7转5类LSA的过滤
[r4-ospf-100]asbr-summary 6.6.0.0 255.255.0.0 not-advertise ------进行7转5类LSA的过滤
OSPF不规则区域的解决方法
不规则区域有两种情况:1.存在多个area 0区域 ; 2.非骨干区域没有直接靠在骨干区域之上;
解决方法:
1:OSPF双进程重发布
2:virtual link -----虚链路
3:Tunnel 隧道方式
1:OSPF双进程重发布
在AR5上启用两个ospf进程,将两个OSPF进程进行双向重发布;
[r5]ospf 100
[r5-ospf-100]area 3
[r5-ospf-100-area-0.0.0.3]undo network 56.1.1.1 0.0.0.0 ------去掉在ospf100area3中的通告
[r5]ospf 200 router-id 5.5.5.5 ------创建新的sopf进程200
[r5-ospf-200]area 3 ------创建区域3
[r5-ospf-200-area-0.0.0.3]network 56.1.1.1 0.0.0.0 ---将接口通告
[r5]ospf 100 -----进行ospf进程的双向通告
[r5-ospf-100]import-route ospf 200
[r5-ospf-100]q
[r5]ospf 200
[r5-ospf-200]import-route ospf 100
重发布之后查看AR1的路由表:发现现在就可以学习到area 3的路由了:
2.虚链路
如上:虚链路用来解决不规则区域,将area 0与area 3使用虚链路连接起来,虚链路属于area 0,实际上就是将area 0区域延申;在AR4与AR5路由器上打一条虚链路;在做虚链路时只能穿越一个区域,上图就是穿越area 2区域,在AR4与AR5之间打虚链路;
- 注意:
1.虚链路只能穿越一个区域;
2.穿越的区域不能为特殊区域;
3.虚链路的两端必须至少存在一个ABR;
4.虚链路属于area 0;
配置:在双方都需要配置
[r4]ospf 100
[r4-ospf-100]area 2 -----进入该路由器需要穿越的区域
[r4-ospf-100-area-0.0.0.2]vlink-peer 95.5.5.5 -----指定对端的router-id
[r5]ospf 100
[r5-ospf-100]area 2
[r5-ospf-100-area-0.0.0.2]vlink-peer 94.4.4.4
[r5]display ospf vlink -----在AR5上查看虚链路
OSPF Process 100 with Router ID 95.5.5.5
Virtual Links
Virtual-link Neighbor-id -> 94.4.4.4, Neighbor-State: Full
Interface: 45.1.1.2 (GigabitEthernet0/0/0)
Cost: 1 State: P-2-P Type: Virtual
Transit Area: 0.0.0.2
Timers: Hello 10 , Dead 40 , Retransmit 5 , Transmit Delay 1
GR State: Normal
[r5]
Cost: 1 ------开销值,它的值是由路由器与路由器之间的开销值来决定的;可以通过修改接口开销值来改变;
3.隧道方式
使用简单的Tunnel隧道将这两个区域的边界连接起来,再将tunnel接口通告到ospf中;
接下来,我们使用AR4与AR5的环回地址来搭建tunnel隧道:
在隧道的双方都需要配置:
[r4]interface Tunnel 0/0/0
[r4-Tunnel0/0/0]ip a 100.1.1.1 24
[r4-Tunnel0/0/0]tunnel-protocol g
[r4-Tunnel0/0/0]tunnel-protocol gre
[r4-Tunnel0/0/0]source 4.4.4.4
[r4-Tunnel0/0/0]destination 5.5.5.5
[r4-Tunnel0/0/0]ospf 100
[r4-ospf-100]area 0
[r4-ospf-100-area-0.0.0.0]network 100.1.1.1 0.0.0.0 ----将隧道通告到区域0中
[r5-Tunnel0/0/0]ip a 100.1.1.2 24
[r5-Tunnel0/0/0]tunnel-protocol gre
[r5-Tunnel0/0/0]source 5.5.5.5
[r5-Tunnel0/0/0]destination 4.4.4.4
[r5]ospf 100
[r5-ospf-100]area 0
[r5-ospf-100-area-0.0.0.0]network 100.1.1.2 0.0.0.0 ----将隧道通告到区域0中
在AR4与AR5上将隧道接口地址通告到area 0区域就意味着将area 0区域延申到AR5上;在建立隧道前我们需要保证隧道双方可以通信;
在使用隧道解决不规则区域的时候尽量将隧道通告到area 0中;
注意:如果我们使用AR4与AR5的环回建立隧道会出现AR4与AR5的邻居翻滚现象,刚建立好邻居又断开一直循环;
原因:AR4的环回属于area 0区域,AR5的环回属于area 2区域;在进行隧道搭建的时候我们使用的是到达4.4.4.4的3类LSA进行搭建,当我们搭建完毕时我们相当于将area 0区域延申到AR5上,此时AR5上就又会收到到达4.4.4.4的1类LSA,因为1类永远优于3类所以通过1类LSA学习到的路由将加表;但是我们在搭建隧道时使用的是3类LSA学习到4.4.4.4的路由,所以在AR5上隧道将丢失目标,隧道崩溃,隧道崩溃后又可以通过3类LSA学到4.4.4.4的路,隧道又搭建成功,一直循环;
解决方法:
1.将AR4的环回通告到area 2中;
[r4-ospf-100-area-0.0.0.0]undo network 4.4.4.4 0.0.0.0
[r4-ospf-100-area-0.0.0.0]q
[r4-ospf-100]area 2
[r4-ospf-100-area-0.0.0.2]network 4.4.4.4 0.0.0.0
查看ospf邻居表,发现现在就可以正常建立邻居了:
2.建立隧道时使用物理接口建立;
OSPF中LSA的网络号相同而掩码不同的传递问题
在ospf中路由的传递路由信息的是:3类LSA,5类LSA和7类LSA;
如上图:20.1.1.1/16和20.1.0.1/24向外传递时的3类LSA中的LSA标识相同,就会认为是同一条LSA但实际上不是,那么我们该怎么解决这两个路由信息的传递问题:
分两种情况
1.如果先进入的网络掩码较短,掩码较短的正常进入;当网络掩码较长的进入时它的link-id为传递路由网络号对应的定向广播地址;
比如:20.1.0.1/24进入时,它的link-id为:20.1.0.255
2.如果先进入的是掩码较长的,先正常进入;当网络掩码较短的进入时,先针对之前掩码较长的LSA发送3600s的LSA进行LSA删表,将较长掩码的LSA删除;之后让掩码较短的正常进入(link-id不变,但是序列号为之前掩码较长的序列号加一),然后再让网络掩码较长的使用定向广播地址进入;
ospf路由选路
同种路由协议之间只能改开销值,不能改优先级;优先级只有在自己的协议和其他协议进行选路时使用;优先级的调整是针对不同协议之间的,同种路由协议之间只能修改开销值;
1.修改优先级
在ospf中1类和3类LSA默认的优先级都为10,重发布进入的路由的优先级默认为150;可以进行修改;
修改前:
[r2]display ip routing-table protocol ospf
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : OSPF
Destinations : 3 Routes : 3
OSPF routing table status : <Active>
Destinations : 3 Routes : 3
Destination/Mask Proto Pre Cost Flags NextHop Interface
1.1.1.0/24 OSPF 10 1 D 12.1.1.1 GigabitEthernet
0/0/0
1.1.2.0/24 OSPF 10 1 D 12.1.1.1 GigabitEthernet
0/0/0
1.1.3.0/24 O_ASE 150 1 D 12.1.1.1 GigabitEthernet
0/0/0
OSPF routing table status : <Inactive>
Destinations : 0 Routes : 0
[r2]ospf 100
[r2-ospf-100]preference ?
INTEGER<1-255> Preference value
ase AS external link states
route-policy Route policy
[r2-ospf-100]preference 100 ----在AR2路由器上针对所有的1类和3类LSA进行修改
[r2-ospf-100]preference ase 200 ----在AR2上对5类LSA进行修改
7类LSA修改与5类LSA修改一样;
修改后:
[r2-ospf-100]display ip routing-table protocol ospf
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : OSPF
Destinations : 3 Routes : 3
OSPF routing table status : <Active>
Destinations : 3 Routes : 3
Destination/Mask Proto Pre Cost Flags NextHop Interface
注意:优先级的修改都是本地生效,将AR2上的LSA进行优先级的修改只在AR2路由器上生效;当AR2的路由向外传递时不影响其他路由器的优先级;
2.修改cost值
方法一:我们可以修改参考带宽;
默认的参考带宽是100兆;
在ospf中cost值的计算是: 参考带段/实际带宽
修改cost值可以通过来调整参考带宽来实现,通过调大参考带宽来提高路由的精确率;
-
[r2]ospf 100
[r2-ospf-100]bandwidth-reference ?
INTEGER<1-2147483648> The reference bandwidth (Mbits/s)
[r2-ospf-100]bandwidth-reference 1000000 ---修改参考带宽为100000兆;
Info: Reference bandwidth is changed. Please ensure that the reference bandwidth
that is configured for all the routers are the same.
[r2-ospf-100]注意:在ospf网络中,如果在一台路由器上调整了参考带宽,就需要在整个网络的所有路由器上都要调整参考带宽;要确保整个网络中所有路由器计算开销值的方式都一样;
修改后查看路由表:可知cost值变为1000;
注意:参考带宽的修改是不针对环回接口改变的;上面我们将AR2的参考带宽修改为1000000,但是当我们在AR1上查看AR2的环回路由时会发现cost值并没有改变:
方法二:直接调整接口的开销值
如果要影响选路就要去调整每一条链路指定的开销值
[r2]in lo0
[r2-LoopBack0]ospf cost ?
INTEGER<1-65535> Cost value <1-65535>
[r2-LoopBack0]ospf cost 99 ----修改环回的开销值为99
[r2-LoopBack0]
修改完毕后在AR1中查看AR2环回的开销值:此时就会发现开销值变为了100;
查看修改的接口的具体情况:
2.OPSF的LSA的比较
1类LSA与1类LSA比较
-------- 优先选举开销值较小的,若一致则负载均衡;
1类LSA与1类LSA比较开销值,如果一样负载均衡,不一样则选择开销值小的加表;
实验图:
AR7会收到两条关于192.168.1.1/24路由的1类LSA;具体加表那条路由比较开销值,小的加表,相同负载均衡;
如果将AR8的lo0开销值改大:加表的就是AR6的路由
[r8]in lo0
[r8-LoopBack0]ospf cost 10 ----修改环回接口的开销值
3类与3类LSA的比较
-----------优先选举开销值较小的,若一致则负载均衡(若在两个3类LSA中,一个为area 0中学习的,一个为在非area 0中学习的,永远学习在area 0中的3类LSA)
在ospf设计时强行做的一个规定为了防环:若在两个3类LSA中,一个为area 0中学习的,一个为在非area 0中学习的,永远学习在area 0中的3类LSA
注意:在区域与区域之间路由从area 0传递到非area 0不能再从非area 0传递到area 0;
实验图:
在AR10上会收到两条关于192.168.1.1/24路由的3类LSA;对两条3类LSA进行比较加表;
5类2类型LSA与5类2类型LSA比较
---------------------1.优先比较种子度量值(种子度量值越小越优);2.若种子度量值一致,则比较沿途累加的度量值,沿途累加度量值越小越优;(注意:5类7 2类型的LSA沿途经过的cost是计算的,但是不显示出来)
实验图:
5类1类型与5类1类型LSA比较
--------------比较种子度量值和沿途累加度量值总和,越小越优;
实验图:
1类LSA与3类LSA进行比较
-------------1类LSA永远优于3类LSA
3类LSA与5类LSA比较
---------3类LSA永远优于5类LSA
5类1类型与5类2类型比较
-------------1类永远优于2类;
7类1类型一样永远优于7类2类型;
5类1类型与7类1类型
当总度量值一致时,负载均衡,若总度量值不一致,越小越优(它们的比较仅仅关注总度量值,总度量值=种子度量值+沿途累加度量值) ;
注意:在7类LSA中携带了FA地址,计算沿途累加度量值时,计算的是到达FA地址的度量值;
5类2类型与7类2类型
1.先比较种子度量值,越小越优;
2.当种子度量值一致时,比较沿途累加度量值,越小越优;
2.当种子度量值与沿途累加度量值一致时,则负载均衡;
总结
华为中:在OSPF协议中,LSA之间的选路与优先级无关;
1:域内优于域间;
2:域间由于域外;
3:类型1优于类型2;
4:类型1之间比较仅仅关注总度量值;
5:类型2之间先比较种子度量值,再比较沿途累加度量值;