静态路由:手动配置的路由 静态路由协议缺点:1.不能随着拓扑的变化而自动变化;2.配置量在中大型网络中很大 动态路由:由网络路由协议根据拓扑或流量改变而自动调整的路由 动态路由协议 优点:1.随拓扑变化而变化 2.在中大型网络中配置量较少 缺点:1.对资源占用(设备的CPU/内存/带宽)2.安全问题 3计算错误 动态路由协议的优势: 1)防环 2)占用资源少 3)选择路径佳 4)收敛速度快
基于AS进行分类 IGP(内部网关路由协议—AS内部)—— RIP/OSPF/EIGRP/ISIS EGP(外部网关路由协议—AS之间)—— EGP(V1/2)/BGP(V1 ~ 4+) IGP 【1】更新时是否携带子网掩码 – 有类别(不带) 无类别(带) 【2】特征 – DV距离矢量-RIP/EIGRP LS 链路状态-OSPF/ISIS
距离矢量:邻居间直接共享路由表 – 传闻性协议 – 更新量少 –- 选路 链路状态:邻居间共享拓扑 --本地计算 –更新量大—收敛速度受更新量影响—防环、选路
OSPF:开放式最短路径优先协议 V1/V2/V3 (这里介绍V2 V3为IPV6环境使用) 无类别链路状态路由协议—基于拓扑信息进行收敛 组播更新:224.0.0.5 6 使用cost作为度量 支持触发更新,每30min周期更新—因为更新量大 为了在中大型网络中工作需要结构化的部署: 1、区域划分(链路状态协议的距离矢量特征) 2、良好的IP地址规划
两种更新方式: 触发更新 仅对变化量进行更新 周期更新 基于时间周期进行更新—更新量大注:若一个协议希望实现增量更新(即仅触发无周期);需要条件:1) hello机制(作用:周期保活) 2) ACK确认机制
跨层封装与iPv4报头,协议号为89;存在5种不同类型的数据包
Hello包 :邻居、邻接的发现,建立;周期保活 hello time 10s或30s ;dead time为hello time 4倍DBD 包 :数据库描述包 –数据库目录LSR 包 :链路状态请求LSU 包 :链路状态更新 – 携带具体的LSA信息LSack 包 : 链路状态确认包LSA (链路状态通告 )—— 路由或者拓扑信息 在不同条件下产生不同类型的拓扑或路由信息;
(标准7个,还存在第八个)
Down : 一旦本地发出hello包,进入下一状态机Init 初始化:接收到的hello包中,若存在本地的RID,那么进入下一状态;2way 双向通讯:邻居关系建立的标志 条件: 1.点到点网络类型直接进入下一状态 2.MA网络,将进行DR/BDR选举(40s),非DR/BDR间不得进入下一状态Exstart:预启动 使用未携带目录信息的DBD包,进行主从关系选举,RID数值大为主,优先进入下一状态Exchange:准交换 使用真正的DBD包进行数据库目录的交互,需要ack确认;Loading 加载: 通过对端的数据库目录,比对本地,就本地未知的LSA信息;使用LSR来进行请求,对端使用lSU进行应答,最终需要ack进行确认;–获取未知的LSAFull转发:邻接关系建立的标志启动OSPF协议后,本地基于所有激活接口使用组播224.0.0.5进行周期的hello收发;接收到的hello包若存在本地的RID,那么建立邻居关系,生成邻居表; 表中所有邻居存在条件,条件匹配失败将停留于邻居关系,仅hello包周期保活即可; 条件匹配成功,需要进一步建立为邻接关系;邻接关系间,需要使用DBD包来进行数据库目录共享,使用LSR/LSU/LSACK来获取本地未知的LSA信息,补全本地的LSDB(链路状态数据库—所有LSA的集合)生成数据表; 数据库同步完成后,本地其余SFP算法,基于数据库生成有向图,合成最短路径树,最终将所有未知网段的路由加载于本地的路由表中;–收敛完成,hello包周期保活,每30min再周期比对一次数据库目录; 网络结构突变:
1.新增网段 – 直连新增网段的设备,使用更新包告知本地所有邻接,之后扩散到全网,需要ACK确认;2.断开网段-直连断开网段的设备,使用更新包告知本地所有邻接,之后扩散到全网,需要ACK确认;3.无法沟通 — dead time到时间时,断开邻居,删除邻居;且通过该邻接获取的LSA将不再被使用;区域划分规则: 1、星型结构拓扑 – 区域0 为骨干,大于0为非骨干;非骨干必须连接骨干区域; 2、区域间必须存在ARB—区域边界路由器
启动配置完成后,邻居间收发hello包建立邻居关系,生成邻居表: Hello包中的内容: 邻居间hello包中必须完全一致的参数;否则无法建立邻居关系; -1.hellotime dead time -2.区域ID (ABR) -3.认证 -4.末梢区域标记(特殊区域) -5.在华为设备的hello包中,还存在本地接口ip地址的的子网掩码,邻居间接口掩码不一致将无法建立邻居关系
[r2]display ospf peer 查看邻居关系 [r2]display ospf peer brief 摘要表格邻居关系建立后,邻居间基于条件决定是否建立邻接关系;邻接关系将使用DBD包来沟通; 关于DBD的一些问题:
1.接口MTU,在cisco体系中,邻居间接口的MTU值默认被检测,华为默认不检测;OSPF协议要求直连接口上邻居间的MTU值必须完成一致; [r1]interface GigabitEthernet 0/0/1 [r1-GigabitEthernet0/0/1]ospf mtu-enable 开启华为MTU检测 2.关于DBD的标记位 I 为1标识本地发出的第一个DBD包 M 为1标识不是本地的最后一个DBD包 MS 为1代表主 为0 代表从3.使用序列号进行隐性确认 DBD的隐性确认,基于序号进行的,从使用主的序号来对主进行确认。邻接关系建立后,邻居间使用真正DBD来获取对端邻接的LSDB目录,之后使用LSR/LSU/LSack来获取本地未知的LSA信息;生成LSDB(数据库表);
<r2>display ospf lsdb 查看数据库表OSPF的收敛方法: 1.LSA洪泛 2.LSDB同步
数据库同步完成后,本地基于LSDB生成有向图,再转换为最短路径树;之后计算本地到达所有未知网段的路径,将其加载于本地的路由表中; 在cisco系统中,使用不同的字母来代表不同条件下产生的路由; O本地所在区域计算所得 O IA 为其他区域产生计算所得路由,通过ABR共享进入本区域 O E1/2 为其他协议或进程计算所得路由,通过ASBR重发布进入 O N1/2 为其他协议或进程计算所得路由,通过ASBR重发布进入,同时本地为NSSA区域
<r1>display ospf routing优先级为10;cost的参考带宽为100M; COST=参考带宽/接口带宽 Ospf选择cost值之和最小的路径为最短路径;若接口带宽大于参考带宽,cost值为1,将可能导致选路不佳,建议修改参考带宽,修改时全网设备必须修改为一致:
[r1]ospf 1 [r1-ospf-1]bandwidth-reference ? INTEGER<1-2147483648> The reference bandwidth (Mbits/s) [r1-ospf-1]bandwidth-reference 1000邻居关系成为邻接关系的条件; 在MA网络中,由于节点数量不限制,故两两间均为邻居,若不加管制将出现大量的重复更新;距离矢量协议(RIP/EIGRP)均存在水平分割机制来解决;但OSPF协议无法使用接口水平分割(从此口进不从此口出),因此ospf选择了DR/BDR选举方式来解决,在MA网段中存在一个DR和一个DBR,其他设备非DR/BDR,非DR/BDR之间不建立邻接关系,仅维持邻居关系,避免重复更新; 选举规则: 1、比较接口优先级,0-255默认为1;数值大优 为0标识不参选 2、若接口优先级一致,比较参选设备的RID,数值大优;
[r1]interface GigabitEthernet 0/0/0 [r1-GigabitEthernet0/0/0]ospf dr-priority ? INTEGER<0-255> Router priority valueOSPF的接口网络类型 = ospf接口工作方式
网络类型ospf工作方式Loopback华为虽然标记为点到点,实际为环回的特殊工作 无hello包收发,直接学习32位主机路由点到点点到点 网络,10s hello time后 ,直接建立邻接关系,不进行DR选举(串线上的PPP/HDLC;普通GRE)BMA (以太网)Broadcast ,10s hello time 进行DR/BDR选举,最终建立邻接关系NBMA (MGRE)默认为点到点的工作方式,该方式只能建立一个邻居;故在NMBA环境下将无法和所有节点建立关系; NMBA环境下将无法和所有节点建立关系的解决方法:修改接口的工作方式 [r1]interface Tunnel 0/0/0 [r1-Tunnel0/0/0]ospf network-type broadcast 该网段所有接口修改为broadcast;切记:若一端为点到点,另一端为broadcast,由于hello time均为10s,将建立邻居关系,但无法正常工作;因此一旦修改任何一个的ospf类型,就必须保障该网段所有节点类型一致; NBMA拓扑结构:
1.星型—中心到站点2.部分网状结构,除去星型3.全连网状结构注意:在星型和部分网状结构中,若使用broadcast工作方式,必须考虑dr的位置;建议直接固定放置于中心站点; 若为全连网状结构,可以不用dr位置;
1)远离了骨干的非骨干区域 2)不连续骨干区域 注:一台ABR设备若未连接到骨干区域,将被定义为非法ABR,不得进行区域间信息共享;
解决方案:
1、Tunnel: 在非法ABR与合法ABR间建立一条隧道,之后将该隧道链路宣告于OSPF协议中;
在OSPF协议,若接收到去往相同目标的多条路由;先优选从骨干区域传递过来的路由; 若所有路由器均基于骨干区域,或均基于非骨干区域传递,进行cost值对比; 缺点: 1)选路不佳 2)周期性的信息对中间穿越的区域存在资源占用
2、OSPF的虚链路: 合法的ABR对非法ABR进行授权,使得非法ABR可以进行区域间路由信息共享;
优点: 由于没有新增链路,故不存在选路的问题;正常选路 缺点: cisco为了避免周期信息对中间区域的影响,在虚链路上关闭了周期行为,这样失去可靠性 华为选择保持周期行为,增加可靠性,但继续对中间区域资源占用 授权过程: R4发hello包给R2,建立邻居关系 R4发DBD包,申请 R2发现目录中没有这些信息,于是接受
[r2]ospf 1 [r2-ospf-1]area 1 两台ABR共同存在的区域 [r2-ospf-1-area-0.0.0.1]vlink-peer 4.4.4.4 对端ABR设备的RID; [r2-ospf-1]display ospf vlink3、多进程双向重发布(推荐) 一台设备运行所有路由协议进程,不同进程存在独立的数据库,相互间不进行共享;
仅将计算所得路由加载于同一张路由表中; 将不规则部分的区域宣告到其他的ospf进程中,之后使用重发布机制进行路由共享; 避免了周期信息和选路问题; ASBR: 协议边界路由器 (ospf 区域水平分割,从某个区域得到的路由,不会再发送回它的区域)
[r2]ospf 1 [r2-ospf-1]import-route ospf 2 [r2-ospf-1]q [r2]ospf 2 [r2-ospf-2]import-route ospf 1OSPF协议使用的LSA—链路状态通告来作为更新信息; 在不同的条件下将产生不同类别的LSA信息
[r1]display ospf lsdb router 1.1.1.1类别名 LINK-ID
所有的LSA中均存在以下信息:
TypeRouter类别名Ls id1.1.1.1link id 在目录的页码号Adv rtr1.1.1.1通告者的RID,源头设备的RIDLs age1553老化时间,1800s周期归0,触发更新马上归0,最大老化3609Len48OptionsEseq#80000006序列号 – 棒棒糖序列号chksum0xa36f校验码LSA分类
LSA类型传播范围通告者(源头)携带的信息link-IDLSA1 router源所在区域(单区域)本区域内的每台ospf路由器本地直连拓扑通告者的RIDLSA2 Network源所在区域 (单区域)每个网段中的DR该MA网段的拓扑DR接口的ip地址LSA3 summary整个OSPF域ABR,在经过下一个ABR时修改为本地域间路由(其他区域)目标网段号LSA4 asbr除ASBR所在区域ABR在经过下一个ABR时修改为本地ASBR的位置外的整个OSPF域ASBR的RIDLSA5 ase整个OSPF域ASBR(在整个网络中传递时不变化)域外路由(其他协议、进程)目标网络号LSA7 nssa单个NSSA区域ASBR域外路由目标网络号注:和ASBR在一个区域的ABR,通过1类LSA获知ASBR的位置
OSPF的 一、减少OSPF协议的LSA更新量 1、汇总—前提需要良好的地址规划 – 减少骨干区域的LSA数量 【1】域间路由汇总—汇总3类路由 在ABR上配置 [r5]ospf 1 [r5-ospf-1]area 2 只能将本地通过该区域内的1/2类LSA计算所得路由进行汇总 [r5-ospf-1-area-0.0.0.2]abr-summary 6.6.4.0 255.255.252.0 注:在华为设备上,汇总配置完成后,协议不会自动产生空接口防环路由,需要管理员手工添加; 【2】域外路由汇总—汇总5/7类路由 在ASBR上配置 [r1]ospf 1 [r1-ospf-1]asbr-summary 99.1.0.0 255.255.252.0 注:在华为设备上,汇总配置完成后,协议不会自动产生空接口防环路由,需要管理员手工添加;
2、特殊区域 – 减少非骨干区域的LSA数量 不能是骨干区域,不能存在虚链路; 「1」不存在ASBR; 1)末梢区域 — 该区域拒绝4/5的LSA进入;由该区域连接骨干区域的ABR,向该区域发布一条3类的缺省; [r5]ospf 1 [r5-ospf-1]area 2 [r5-ospf-1-area-0.0.0.2]stub 将该区域定义为末梢区域 切记:该区域内的所有设备均需配置,否则无法建立邻居关系 2)完全末梢区域 — 在普通的末梢区域基础上,进一步拒绝3类的LSA,仅保留一条3类缺省; 先将该区域配置为末梢区域,然后仅在ABR上配置完成动作即可; [r5]ospf 1 [r5-ospf-1]area 2 [r5-ospf-1-area-0.0.0.2]stub no-summary
「2」存在ASBR 1)NSSA – 非完全末梢区域 该区域拒绝4/5的LSA;本区域内的ASBR通过7类来传递域外路由,当这些路由需要基于ABR进入骨干区域时,被转换为5类(同时该ABR成为另一台ASBR); NSSA区域存在的意义是为了拒绝网络中其他部分的ASBR产生的5/4类LSA; 同时NSSA区域中连接骨干区域的ABR向该区域发布一条7类的缺省; [r1]ospf 1 [r1-ospf-1]area 1 [r1-ospf-1-area-0.0.0.1]nssa 该区域每台设备均需配置
2)完全NSSA –完全的非完全末梢区域 在NSSA的基础上,进一步拒绝3类LSA;同时NSSA区域中连接骨干区域的ABR向该区域发布一条3类的缺省; 先将该区域配置为NSSA,然后仅在ABR上定义完全即可; [r3-ospf-1-area-0.0.0.1]nssa no-summary LSA类别 传播范围 通告者 内容 linkid 7类 nssa 单个NSSA区域 ASBR 域外路由 目标网络号
二、OSPF协议的扩展配置 1、认证 - 邻居间进行身份核实的行为,保障更新的安全性 1)接口认证 –在直连邻居的接口上进行配置 [r2-GigabitEthernet0/0/1]ospf authentication-mode md5 1 cipher cisco123 邻居间的编号和秘钥必须完全一致
2)区域认证 [r2]ospf 1 [r2-ospf-1]area 0 [r2-ospf-1-area-0.0.0.0]authentication-mode md5 1 cipher cisco123 本地所有处于区域0的接口上实施认证配置
3)虚链路认证 [r2-ospf-1-area-0.0.0.0]vlink-peer 3.3.3.3 md5 1 cipher cisco123
2、沉默接口(被动接口) [r2]ospf 1 [r2-ospf-1]silent-interface GigabitEthernet 0/0/0 注:沉默接口将不发送任何路由协议的信息,用于路由器连接用户终端接口,不能用于连接路由协议邻居的接口,否则可能导致邻居间无法收敛;
3、加快收敛 接口的hello time 10 ; dead time40s; 维持即可 若接口hello time 为30s,可以酌情修改,修改本端的hello time,本端的dead time将自动4倍关系匹配;切记邻居间hello、dead time必须完全一次,否则无法正常建立邻居关系; [r2-GigabitEthernet0/0/1]ospf timer hello ? INTEGER<1-65535> Second(s) [r2-GigabitEthernet0/0/1]ospf timer hello 10
4、缺省路由 1)3类缺省 — 协议自动产生 末梢、完全末梢、完全NSSA区域会由连接区域0的 ABR向该区域发布一条3类的缺省;
2)5类缺省 --边界路由器,将本地路由表中通过其他方式(静态、其他动态协议)获取到的缺省路由给重发布进入OSPF的工作域 [r2]ospf 1 [r2-ospf-1]default-route-advertise 向ospf域内发布5类缺省 向域内重发布一条5类的类型2缺省路由,前提本地路由表中存在其他方式产生的缺省路由; [r2-ospf-1]default-route-advertise type 1 重发布类型1 路由
若本地路由表中不存在任何缺省路由,也可以强制向内部发布一条缺省 [r2-ospf-1]default-route-advertise always 默认为类型2 的缺省 [r2-ospf-1]default-route-advertise always type 1 修改为类型1 ;
3)7类缺省 — 配置区域为普通的NSSA区域时,连接区域0的ABR将向该NSSA发布一条7类的缺省; [r2-ospf-1-area-0.0.0.1]nssa default-route-advertise 向NSSA区域发布一条7类缺省;强制产生;
最基本的选路规则:内部优于外部 5、7相遇先比优先级和cost,若一致,5优于7 切记:在ospf协议中使用特殊区域和缺省配置时,需要关注ISP的位置,ISP在连接在哪个非骨干区域,那么该区域将不得设定为任何的特殊区域,否则可能由于自动产生的缺省与手工的缺省方向相反,照成环路;
三、OSPF的扩展知识点 「1」附录E — link-id相同的问题 若一台ABR将两条3类LSA导入其他区域;同时这两条LSA的link-id会相同; 假设:短掩码网段先进入,link-id正常显示;长掩码进入时link-id加反掩码 20.1.0.0/16–link-id 20.1.0.0 20.1.0.0/24–link-id 20.1.0.255 若长掩码先进入,再短掩码进入时,长掩码的信息被刷新为反掩码;
「2」OSPF选路规则 1、AD(管理距离)无关的一种情况: r2(config)#router ospf 1 r2(config-router)#distance 109 1.1.1.1 0.0.0.0 本地从RID为1.1.1.1的设备处学习到路由条目,管理距离修改109; 一台路由器从两个OSPF邻居处学习到了两条相同的路由时,仅比较度量值,不关注管理距离;因为仅针对一台邻居进行管理距离修改的结果是要么两台都被改,要么修改失败;-关注IOS版本—有时修改RID大路由器管理距离生效,有时需要修改RID小的设备;
2、AD(管理距离)无关的第二种情况 O IA 3类 O IA 与 O IA路由相遇,到达相同目标的两条3类路由,这两条路由均通过非骨干传递,仅关注cost值,不关注管理距离; 若一条通过骨干区域传递,另一条同过非骨干区域传递–非骨干传递的路由无效 OSPF的区域水平分割:区域标号为A的3类LSA,不能回到区域A; 先比类型- 区域cost
3、OE 与OE E为5类 N 为7类 默认所有重发布进入路由条目均为类型2,类型2在路由表中cost值不会显示沿途的累加,仅显示起始度量;
两条均为OE2或者均为N2,起始度量相同; 关注沿途的累加度量 (OE2路由在表中度量默认不显示内部度量,仅显示起始度量) 两条均为OE2或者均为N2,起始度量不同;优先起始度量小的路径; 注:以上设计是便于管理员快速干涉选路;
OE1路由仅比较总度量(起始度量+沿途累加),仅修改起始度量不一定能干涉选路,必须在修改后使得总度量产生区别才能干涉选路; 4、拓扑优于路由 1/2LSA计算所得路由优于3/4/5/7类计算所得 内部优于外部 3类优于4/5/7类 类型1优于类型2 E1优于E2,N1优于N2,E1优于N2,N1优于E2; E1与N1相遇,或E2与N2相遇,先比总度量(起始+沿途)小优;度量一致5类优于7类
【4】FA-转发地址 正常OSPF区域收到的5类LSA不存在FA值; 产生FA的条件: 1、5类LSA ---- 假设R2为ASBR,g0/0口工作的OSPF中,g0/1口工作在非ospf协议或不同ospf进程中;若g0/1也同时宣告在和g0/0相同的OSPF进程中,同时该接口的工作方式为广播型; 将在5类LSA中出现FA地址,地址为R2连接R3网段中R3的接口ip;
2、7类LSA—必然出现FA地址 假设R9为ASBR,S0/0口工作的OSPF中,S0/1口工作在非ospf协议或不同进程中; S0/1未运行OSPF–FA地址为R9上最后宣告的环回地址(个别IOS也可能是最大环回接口ip地址),若R9没有环回接口;FA地址为R9上最后宣告的物理接口地址(个别IOS也可能是最大的物理接口ip地址)
R9的S0/1也工作OSPF协议中,S0/1接口工作方式为广播,那么FA地址为R10接口ip; S0/1的工作方式为点到点,那么FA地址为R9的s0/1口ip 切记:在FA地址出现后,4类LSA无效;人为过滤掉4类LSA,依然可达域外; 当4类LSA存在,却人为过滤了到达FA地址的路由,那么将无法访问域外; 一旦出现FA地址,所有的选路计算均基于FA地址进行; 1、针对存在FA的5/7类路由,4类LSA无意义,仅递归到FA地址;若FA地址被策略过滤导致不可达; 2、路由表中的度量是到FA地址的度量,不是到ASBR的度量;
【5】NP位+E位 P位被加密,故抓包时看不见P位; 正常NSSA区域内的1类LSA中,N=1 E=0 标识该区域转发7类LSA,不转发5类 非NSSA区域E=1 N=0 标识可以转发5类,不能转发7类 P位为1,标识该区域将执行7类转5类; P为0,不能7转5;
区域0连接到两个非骨干区域,这两个非骨干假设为区域1和区域2;区域1/2同时连接同一个外部协议,且同时进行了重发布配置;区域1为NSSA区域,区域2为非NSSA区域;那么此时的区域1,P位=0不能进行7转5;故骨干区域只能收到从区域2来的外部路由; 若NSSA和非NSSA均将同一条域外路由向内部传递,仅非NSSA区域可以实现; 若区域1和区域2均为NSSA区域,那么ABR的RID大区域进行7转5,另一个区域不转, 故同一条域外路由,骨干区域只能收到从一个区域传递的外部路由;若以上条件中,两个区域均为非NSSA区域,那么P位无效,故两个区域的路由均回进入骨干区域;
【6】SFP算法 –OSPF防环机制 1、在同一个区域每台路由具有一致的LSDB 2、每台路由器以自己为根计算到达每个目标的最短路径(最小cost值) 3、必须区域划分– 优势-1)域间汇总减少路由条目数量 2)汇总路由是在所有明细路由均消失后才删除,网络更稳定 3)区域划分后不同类别的LSA传播范围不同,控制更新量 总结:观看OSPF防环文档 过程–基于本地LSDB(1/2类LSA)生成–生成有向图–基于有向图来进行最短路径树生成 最短路径树,关注本地LINK-ID的LSA开始–》基于该LSA内提及到点到点或传输网络信息再查看link-id递归到下一条信息;基于所有点到点和传输网络信息生成最短路径树主干; 然后用树中每台设备的末梢网络信息补充路由表,完成收敛;