发布时间:2025-06-24 18:40:37 作者:北方职教升学中心 阅读量:201
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类LSAN ------ 代表是否支持7类LSAP ------ 代表是否支持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 : 3Destination/Mask Proto Pre Cost Flags NextHop Interface 1.1.1.0/24 OSPF 10 1 D 12.1.1.1 GigabitEthernet0/0/0 1.1.2.0/24 OSPF 10 1 D 12.1.1.1 GigabitEthernet0/0/0 1.1.3.0/24 O_ASE 150 1 D 12.1.1.1 GigabitEthernet0/0/0OSPF 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 ospfRoute Flags: R - relay, D - download to fib------------------------------------------------------------------------------Public routing table : OSPF Destinations : 3 Routes : 3 OSPF routing table status : <Active> Destinations : 3 Routes : 3Destination/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之间先比较种子度量值,再比较沿途累加度量值;