730 likes | 1.07k Views
专题 6 OSPF 路由技术原理. 专题背景. 1 、企业网络总部与各个分部之间的数据互通 2 、大型企业网内部网络互通 3 、要求动态路由收敛快,稳定,兼容性好。. 解决方案. OSPF 路由协议 收敛快,稳定。各大厂商路由器设备均可支持。是当前企业网规模不断扩大,设备供应厂商越来越多样化环境下的最佳选择。. OSPF. 课程目标. 学完本课程,您应该能够: 了解 OSPF 基本工作原理 熟练进行单区域和多区域的 OSPF 配置 本专题重点: OSPF 邻接过程 OSPF 的五类报文 OSPF 的 LSA 类型 OSPF 配置. 专题内容.
E N D
专题背景 • 1、企业网络总部与各个分部之间的数据互通 • 2、大型企业网内部网络互通 • 3、要求动态路由收敛快,稳定,兼容性好。
解决方案 • OSPF路由协议 • 收敛快,稳定。各大厂商路由器设备均可支持。是当前企业网规模不断扩大,设备供应厂商越来越多样化环境下的最佳选择。 OSPF
课程目标 • 学完本课程,您应该能够: • 了解OSPF基本工作原理 • 熟练进行单区域和多区域的OSPF配置 • 本专题重点: • OSPF邻接过程 • OSPF的五类报文 • OSPF的LSA类型 • OSPF配置
专题内容 • 主要内容 • 4.1 链路状态路由协议概述 • 4.2 OSPF协议基础 • 4.3 OSPF邻接过程 • 4.4 OSPF洪泛过程 • 4.5 OSPF网络类型 • 4.6 OSPF单区域配置 • 4.7 OSPF多区域概述
链路状态路由协议 • 链路状态路由协议建立一张完整的网络图 • 链路状态路由器从对等路由器处获取信息,而非依照传闻进行路由选择 • 这些信息从一台路由器传送到另一台路由器,每台路由器都作一份信息拷贝,但是决不改动信息。 • 最终目的是每台路由器都有一个相同的有关互联网络的信息,并且每台路由器可以独立地计算各自的最优路径。
链路状态路由协议(Cont.) • 工作过程 • 每台路由器与它的邻居之间建立邻居关系 • 每台路由器向每个邻接发送链路状态数据包(LSP),每个邻接在收到LSP之后要依次向它的邻接转发这些LSP(泛洪) • 每台路由器要在数据库中保存一份它所收到的LSA的备份,所有路由器的数据库应该相同 • 依照拓扑数据库每台路由器使用Dijkstra算法计算出到每个网络的最短路径,并将结果输出到路由选择表中
链路状态路由协议(Cont.) 链路状态数据包 拓扑数据库 路由表 SPF算法 最短路优先生成树
邻居 • 邻居发现是建立链路状态环境并运转的第一步 • Hello数据包还作为监视邻接关系的握手信号。 路由器ID 网络地址 邻居列表 Hello间隔 线路类型描述符
链路状态的泛洪 • 在建立邻接关系之后,路由器开始发送LSA。通告被发送给每个邻接。 • 路由器保存接收到LSA,并依次向每个邻接转发。LSA几乎是立刻被转发, • 当网络拓扑改变时,链路状态协议收敛速度远远快于距离矢量协议。
老化 • LSA的格式中将要包含一个通告的年龄字段,初始值为0随着LSA的扩散,每个路由器都会增加通告中的年龄。老化过程为泛洪扩散过程增加可靠性 • MaxAge:LSA驻留在数据库中则LSA的年龄会不断增加。如果LSA年龄达到MaxAge,那么这个LSA被泛洪扩散到所有邻居,邻居随即从数据库中删除相关纪录,OSPF定义MaxAge为1小时。 • LSRefeshTime:定期的确认LSA并且在达到最大年龄之前将它的计时器复位。一旦计时器超时,路由器将向所有邻居泛洪扩散新的LSA,收到的邻居会把有关纪录的年龄设置为新接收到的年龄,LSRefeshTime为30分钟。
链路状态数据库 • 链路状态路由选择协议的第三个主要任务是建立链路状态数据库。 • LSA包括两类通用信息 • 路由器链路信息—使用三元组(路由器ID、邻居ID、代价)通告路由器的邻居路由器 • 端网络信息—使用三元组(路由器ID、网络ID、代价)通告路由器直接连接的端网络
SPF算法 • SPF算法 • 路由器初始化树数据库中将自己作为树的根。 • 计算从根到每条链路的成本,成本最小的链路被移到树数据库中。 • 在算法终止时,一个单一的邻居ID表项将表示每台路由器,并且最短路径树构造完毕。
OSPF路由协议概述 • 收敛速度快 • 支持变长子网掩码 • 路由更新传递效率高 • 根据链路的带宽进行最优选路 • 支持等代价的多路负载均衡
OSPF的操作 发送Hello报文 建立邻接关系 形成链路状态数据库 SPF算法 形成路由表
OSPF路由协议的邻居和邻接 • 运行OSPF的路由器需要一个能够唯一标识自己的RouterID • 路由器可以通过下面方法确定其RouterID • 使用ROUTER-ID 命令 • Loopback 接口上数值最高的IP地址 • 没有配置ip地址的loopback接口,那么路由器将选取它所有的物理接口上数值最高的IP地址 注意:用作路由器ID的接口不一定运行OSPF协议
OSPF路由协议的邻居和毗邻(Cont.) • 在Cisco路由器上使用show ip ospf neighbor的命令察看ospf的邻居
OSPF的HELLO协议 • Hello协议服务于以下几个目的: • 它是发现邻居路由器的方法 • 通过Hello协议通告这两台路由器成为邻居之前必须相互认可的几个参数 • Hello报文在邻居路由器之间担当keepalive的角色 • 它确保了邻居路由器之间的双向通信 • 它用来在一个广播网络或非广播多址的网络上选取指定路由器和备份指定路由器
D E Hello B A C OSPF的HELLO协议(Cont.) 路由器ID Hello/无效时间间隔 邻居路由器列表 区域ID 路由器的优先级 指定路由器 备份指定路由器 认证类型和认证信息 * afadjfjorqpoeru 39547439070713 * Hello * * 邻居之间必须匹配的参数
影响邻居关系的因素 影响邻居关系的因素 • 1、ROUTER ID不能相同; • 2、HELLO时间必须一致; • 3、DEAD时间必须一致; • 4、区域ID必须相同; • 5、认证必须相同; • 6、特殊区域标志位必须相同; • 7、MTU不匹配无法形成邻接关系(一边是EXSTART,一边是EXCHANGE); • 8、OSPF版本号不同(目前版本为2); • 9、当OSPF网络类型是MA时,要求掩码一定一致(两个邻居)。因为会出现DR和LSA-2,无法描述网段。 • 10、接口网络类型不一致
OSPF的网络类型 广播型网络 点到点网络 非广播多址网络 点到多点网络 X.25Frame Relay
OSPF的DR与BDR A B C 多路寻址网络中 建立邻接关系 E D C B 构成n(n一1)/2个 邻接关系 E A D
C B E A D (DR) OSPF的DR与BDR (Cont.) A B C E D (DR) 指定路由器(DR)描述了一个多路寻址网络。网络上的其他路由器都和指定路由器(DR)构成邻接关系,而不是它们互相之间构成邻接关系
OSPF的DR与BDR (Cont.) DR BDR • 通过Hello报文选择DR和BDR来代表OSPF网段 • 其他的路由器(DRothers)只和DR及BDR路由器之间形成邻接关系
Hello OSPF的DR与BDR (Cont.) P=3 P=2 DR BDR P=1 P=1 P=0 • 通过组播发送Hello报文 • 具有最高OSPF优先级的路由器会被选为DR • 如果OSPF优先级相同具有最高路由器ID的路由器会被选为DR
OSPF的邻居 • 要成功建立一个邻接关系,通常需要下面4个阶段: • 邻居路由器发现阶段 • 双向通信阶段(Bidirectional Communication) • 数据库同步阶段(Database Synchronization) • 完全邻接阶段(full adjacency)
OSPF的邻居 • 邻居状态机 在OSPF协议的邻居状态机中,一个邻居路由器从失效状态到完全邻接状态所经过的一系列状态转换 .
OSPF的邻居 • 1、down state:两端还未发HELLO • 2、init state:收到邻居的一个无我HELLO包 • 3、two-way state:收到邻居的一个有我HELLO包 • 4、exstart state:选出DR之后,收到邻居的第一个DBD包。开始选主从,ROUTERID大的为主。 • 5、exchange state:收到第二个DBD包,进行DBD同步 • 6、loading state:DBD同步完成后,进行LSA的同步。 • 7、full state:LSA同步之后。 • Attempt(尝试状态):为NBMA网络中的一个正常过渡状态,即我发送了HELLO等待对方回应,如何对方迟迟不应则会滞留在该状态。
OSPF的邻居(Cont.) • 建立一个邻接关系 Hello(DR 0.0.0.0, Neighbors seen=0) A B Hello(DR RouterB, Neighbors seen=0) Down Down DD(Seq=x,I=1,M=1,MS=1) Init DD(Seq=y,I=1,M=1,MS=1) ExStart DD(Seq=y,I=0,M=1,MS=0) ExStart DD(Seq=y+1,I=0,M=1,MS=1) Exchange DD(Seq=y+1,I=0,M=1,MS=0) Exchange DD(Seq=y+n,I=0,M=0,MS=1) DD(Seq=y+1,I=0,M=0,MS=0) Loading Full LS Request LS Update LS Request LS Update Full
建立邻接关系过程总结 接口类型为点到点 接口类型为点到多点 发送Hello消息 接口类型为广播 选择DR和BDR 接口类型为NBMA 请求/发送 LSR/LSU 生成完整的 LSDB 发送DBD 形成邻接关系
OSPF路由的传播 OSPF协议把一组通过数据链路相连的路由器看作是一组逻辑上通过邻接关系相连的节点
OSPF路由的传播(Cont.) B A LSA可以在链路状态更新报文里面发送,从而穿过节点之间的邻接
OSPF路由的传播 Update DROther DROther (224.0.0.5) DR (224.0.0.5) Update DR Update (224.0.0.6) (224.0.0.6) Update Update DROther DROther (224.0.0.5) (224.0.0.5) BDR BDR (224.0.0.6) (224.0.0.6) DROther DROther (224.0.0.5) (224.0.0.5) (b) (a) 在广播型网络上,DRothers路由器只向DR和BDR路由器发送LSA(a);而DR路由器将再把这个LSA泛洪到所有的与之有邻接关系的邻居路由器(b):
OSPF路由的传播 Update Update DROther (224.0.0.5) DR (224.0.0.6) Update DROther (224.0.0.5) Update Update BDR (224.0.0.6) DROther (224.0.0.5) (c) 接着,所有的路由器在它们其他所有的接口上泛洪这个LSA(c)
LSU LSA OSPF路由的传播(Cont.) 序列号 是否相同? 更新表项是否已在 链路状态数据库中? 忽略LSA 是 是 否 否 转到 A 添加到数据库中 A 序列号 是否更大? 是 发送LSAck 给DR 否 泛洪LSA 发送包含更新信 息的LSU给源 运行SPF 算法计算 出新的路由表 结束 结束
OSPF的四种接口类型 • POINT_TO_POINT: • 接口:Serial (PPP\HDLC)/ FR‘s P2P Subif / • 特点:无DR,组播更新,HELLO时间10s,自动发现邻居,三层广播 • BROADCAST: • 接口:Ethernet • 特点:选举DR,组播建邻居,HELLO时间10s,自动发现邻居,三层广播
OSPF的四种接口类型 • NON_BROADCAST(NBMA) • 接口: FR's Physical / FR's MP Subif • 特点:选举DR,单播更新(手工指邻居),HELLO时间30s,三层不广播 • POINT_TO_MULTIPOINT: • 接口: FR‘s Physical / FR’s MP Subif(非默认) • 特点:无DR,组播更新,出现/32主机路由,三层广播HELLO时间30s,自动发现邻居
帧中继拓扑运行OSPF • 在帧中继拓扑上运行OSPF的几种接口网络类型1、NBMA(默认)2、广播型3、点到多点
四种接口网络类型 • 在调整HELLO时间的情况下 • P-P 与P-M可以建立邻接关系.路由正常, • NBMA与BROADCAST可以建立邻接关系.路由正常 • 其它的网络类型对接,则调整HELLO时间也不可以正常工作
OSPF路由配置思路 • OSPF配置步骤工程规范 • OSPF进程号全网统一,便于管理和维护 • 手动配置 router-id • 配置参考带宽(根据具体的工程文档而定) • 发布loopback 0 • 调整接口的OSPF参数(网络类型、开销、优先级) • 发布互连网段 • 发布上连网段 • 发布业务网段 • 发布下连网段 • 发布边界网段 • 业务网段、边界网段等不需要建立OSPF邻居的网段一律配置被动接口