OSPF (SPF)属于链路状态路由选择协议,并且是公有标准,理论上是没有网络规模限制的;支持网络的层次化设计,可以将网络分为2层。层,是通过“区域”的概念来进行区分的。划分区域以后,可以带来以下好处
.
OSPF (SPF)
属于链路状态路由选择协议,并且是公有标准,理论上是没有网络规模限制的;支持网络的层次化设计,可以将网络分为2层。
层,是通过“区域”的概念来进行区分的。
划分区域以后,可以带来以下好处:
1、节省区域中的每一个设备的系统资源
(大区域被划分以后,小区域中的数据库内容就会变少)
(同一个区域中的所有的路由器,数据库是完全相同)
2、增强 OSPF 网络的稳定性
(一个不稳定链路造成的不良影响,仅在同一个区域)
(中传播,不会影响到其他区域)
-骨干区域
-非骨干区域
所有的非骨干必须与骨干区域直接相连,才能正常通讯。
路由器因为区域的存在,也分为不同的类型:
-骨干路由器
所有链路都属于骨干区域的路由器;
-非骨干路由器
所有链路都属于非骨干区域的路由器;
-区域边界路由器(*) 【ABR:area border router 】
必须同时连接着骨干区域和非骨干区域;
-自治系统边界路由器【ASBR:】
具有引入外部路由能力的路由器,叫做OSPF的 ASBR。
-工作原理
1、建立邻居表
仅仅使用 hello 报文。
OSPF路由,仅仅在 OSPF 邻居路由器之间进行交换;
邻居状态: down init 2way Exstart(exchange start) exchange loading full 2、同步数据库 LSA-link state advertisement , 链路状态通告; 3、计算路由表(通过SPF算法,对LSA进行计算,从而获得最终的路由条目) -OSPF报文:hello:发现、维护邻居关系; dbd:database description ,数据库描述报文; lsu:link state update ,链路状态更新报文; lsr:link state request ,链路状态请求报文; lsack:link state ack ,链路状态确认报文;
-OSPF相关命令:
0、建立测试端口: [R1]interface loopback 0 [R1-loopback0]ip address 10.10.1.1 255.255.255.0 [R2]interface loopback 0 [R2-loopback0]ip address 10.10.2.2 255.255.255.0 1、配置OSPF [R1]ospf [process-id] // 不写的话,默认是1; [R1-ospf-1] area 0 // 进入区域0; [R1-ospf-1-area-0.0.0.0] network 192.168.12.1 0.0.0.0 //精确宣告 192.168.12.1所在的链路 gi0/0/0的IP地址为192.168.12.1; 那么 gi0/0/0,则启用 OSPF 1 : #可以发送 ospf 1 的包; #可以接收 ospf 1 的包; #可以将该端口的IP地址中的 网络部分,放入 OSPF 1 的包; 中,传输出去,给邻接路由器。 2、验证 display ospf [1] peer brief //查看OSPF邻居表的简要信息; display ospf [1] peer //查看OSPF邻居表的详细信息; display ospf [1] brief //查看本地设备上的 OSPF 1 的相关信息; display ip routing-table //查看路由表中的OSPF路由 (确定路由的类型和属性)
OSPF邻居建立影响因素:
1、确保最小范围内链路是互相 Ping通 的;(交换)
R1:Ping R2 ;
R2:Ping R1 ;
2、确保设备端口可以发送报文;
#network要宣告正确的网络范围;
#确保接收OSPF报文的端口不能是“被动端口- silent-interface”
(华为设备上的 OSPF 的 silent-interface , 既不能发,也不能收包)
ospf 1
silent-interface gi0/0/0
3、确保设备端口可以接收报文;
#network要宣告正确的网络范围;
#确保 ACL 是允许 OSPF 流量的;
#确保接收OSPF报文的端口不能是“被动端口- silent-interface”
(华为设备上的 OSPF 的 silent-interface , 既不能发,也不能收包)
R1:
acl name Deny-OSPF advance
rule 5 deny ospf source 192.168.12.2 0.0.0.0 destination 224.0.0.5 0.0.0.0
interface gi0/0/0
traffic-filter inbound acl name Deny-OSPF
4、确保 OSPF Hello 包中的关键参数一致;【比较hello中的参数】
直接建立邻居关系的路由器,RID一定不能相同;
[R1]ospf 1 router-id x.x.x.x // 指定 OSPF 1 使用的 RID <R1> reset ospf 1 process // 重启 OSPF 1,才能生效; #区域ID必须相同; [R1]ospf 1 [R1-OSPF-1]area 0 [R1-OSPF-1-area-0.0.0.0]undo network 192.168.12.1 0.0.0.0 [R1-OSPF-1]undo area 0 [R1-OSPF-1]area 1 [R1-OSPF-1-area-1]network 192.168.12.1 0.0.0.0 #认证必须成功; #子网掩码必须得相同(特殊情况下) #hello 时间,必须相同; [R1]interface gi0/0/0 [R1-gi0/0/0]ospf timer hello 20 // 更改hello时,dead跟随变化之间倍数关系是 4 倍; #dead 时间,也必须相同; [R1]interface gi0/0/0 [R1-gi0/0/0]ospf timer dead 41 //更改dead时,hello不变; #特殊标记位,必须完全相同; #DR优先级,不能全为0;(特殊情况下) [R1]interface gi0/0/0 [R1-gi0/0/0]ospf dr-priority 0 #3层MTU,必须完全相同;
验证命令:
display ospf peer brief //查看 OSPF 的邻居表
display ospf interface gi0/0/0 //查看OSPF的接口;
路由协议 - 路由宣告方式
1、network : 凡是以该方式进入协议的,我们称之为内部路由
在 LS 路由协议中,内部路由,有细分为:区域内和区域间;
2、import-route : 凡是以方式进入协议的,我们称之为外部路由
(redistribute) 在 LS 协议中,外部路由分为 type 1 和 type 2 ,默认是2
OSPF 普通区域 LSA - link state advertisment 5类LSA -表示的是“外部路由”; -传输范围是没有区域限制的,可以传输到OSPF的整个网络;
OSPF 特殊区域
-指的是那些不允许 5 类 LSA 存在的区域;
-分类 # stub 区域 : 末节区域 该区域中是不允许存在4、5类LSA的,所以该区域的所有路由器 都没有外部路由,那么,为了与外部路由进行数据互通, 所以,stub 区域的 ABR ,向 stub 自动产生了一个默认路由。 并且属于 OSPF 的 inter-area 。 -配置命令: #需要在该区域的每一个路由器配置; #配置如下: ospf 1 area 34 stub # totally stub 区域 : 完全末节区域 该区域中不允许存在3、4、5类LSA(仅保留一个特殊的3类LSA,表示默认路由) 可以减小 stub 区域中的数据库的大小; 同时,还可以减少其他区域的不稳定,对该区域造成的不良影响。 #需要在该区域的边界路由器配置; #配置如下: ospf 1 area 34 stub no-summary # nssa 区域:not so stub area , 允许接受以类型7的LSA发送的外部路由信息,并且ABR要负责把类型7的LSA转换成类型5的LSA。 ABR不会自动向NSSA区域内发送一条指向自己的默认路由, #需要在该区域的每一个路由器配置; #配置如下: ospf 1 area 34 nssa # totally nssa 区域: 完全 NSSA 区域 过滤3,4,5类lsa,ABR会产生缺省的3类lsa,该区域能引入外部路由 7类LSA在这里还是7类LSA,出本area后就变成5类而传播了 #需要在该区域的边界路由器配置; #配置如下: ospf 1 area 34 stub no-summary
LSA的类型:
1类LSA - router lsa ,
任何一个 OSPF 路由器,都会在任何一个区域中产生一个1类LSA。
相当于 路由器在 特定区域中的 自我介绍。
基于 1 类 LSA 计算出来的路由,我们称之为 intra-area 路由。
2类LSA -
3类LSA - summary-network
只有ABR才会产生;作用是在不同区域之间实现路由的传递;
基于 3 类 LSA 计算出来的路由,我们称之为 inter-area 路由。
3类LSA的产生:
ABR 会将非骨干区域中的路由,变成3类LSA的形式,发送到骨干区域
骨干区域中的 ABR会将在区域0中收到的3类LSA,继续下发给其他的 非骨干区域; ARB还可以将区域0中的路由,变成3类LSA的形式,发送非骨干区域 3类LSA在传输过程中,每经过一个 ABR,“通告路由器”都会变化 一次。
4类LSA - 该LSA仅仅是为了配合5类LSA计算外部路由而存在的;
是与ASBR在同一个区域中的 ABR 产生的;
传输过程,与3类LSA类似,每经过一个 ABR,“通告路由器”都会变化一次。
5类LSA - as external lsa
只有 ASBR 可以产生,作用是表示外部路由,可以传输到 OSPF 网络
的任何地方。
并且在传输过程中,LSA 是不会产生任何变化的。