计算机网络 --- OSPF

计算机网络 --- OSPF 获取未知网段路由信息的方法静态路由 --- 由网络管理员手工配置的路由信息动态路由 --- 所有路由器运行相同的路由协议由路由器之间彼此沟通交流最终计算出到达未知网段的路由信息AS --- 自治系统IGP --- 内部网关协议 --- RIPOSPFEIGRPISISEGP --- 外部网关协议 --- BGPIGP协议根据算法进行划分距离矢量型协议路由器之间直接传递路由条目信息 --- 贝尔曼·福特算法 --- 依据传闻的路由 ---RIP链路状态型协议路由器彼此之间交换LSA链路状态通告信息之后将收集到的拓扑信息形成图形结构再使用SPF算法将图形结构转换为树形结构计算到达位置网段的路由信息 --- OSPFIGP的评判标准选路佳收敛快占用资源少1.OSPF因为是链路状态型协议所以从选路的角度不会出现环路并且使用带宽作为开销的评判标准相较于RIP而言会更加合理一些2.因为OSPF的计时器时间比RIP跟短所以收敛速度优于RIP3.从占用资源的角度因为RIP单个数据包中携带的路由信息占用资源量并不大而OSPF单个数据包中携带LSA信息资源占用量会高于RIP但是从整体的角度看OSPF并不存在像RIP这样高频的周期更新并且OSPF存在很多针对资源占用的优化机制所以从整体的角度看OSPF的资源占用量略优于RIPRIP的版本RIPV1RIPV2 --- IPV4RIPNG --- IPV6OSPF的版本OSPFV1实验室夭折OSPFV2 --- IPV4OSPFV3 --- IPV6RIPV2和OSPFV2的相同点1.RIPV2和OSPFV2一样都是无类别的路由协议2.RIPV2和OSPFV2一样都使用组播传递信息RIPV2224.0.0.9OSPFV2224.0.0.5和224.0.0.63.RIPV2和OSPFV2都支持负载均衡RIPV2和OSPFV2的不同点RIP只能应用在小型网络环境中而OSPF协议可以应用中大型网络环境中 --- OSPF支持结构化部署 --- 区域划分如果整个网络只有一个OSPF区域我们称之为单区域OSPF网络如果一个网络规模较大我们可以划分出多个OSPF区域则这样的网络我们称为多区域OSPF网络区域划分的目的区域内部传递拓扑信息区域之间传递路由信息ABR --- 区域边界设备 --- 同时属于多个区域一个接口对应一个区域并且其中一个接口连接在骨干区域一个ABR设备可以对应多个区域区域之间也可以存在多个ABR设备区域划分的要求1.区域之间必须存在ABR设备2.区域划分必须按照星型拓扑结构进行划分 --- 星型拓扑中间区域我们称为骨干区域其他的区域称为非骨干区域 --- 为了区分和标识不同的区域我们需要给每一个区域设置一个区域IDarea ID--- 由32位二进制构成 --- 可以直接使用十进制来表达也可以使用点分十进制来表达 --- 骨干区域的区域ID被定义为区域01.OSPF的数据包hello报文 --- 周期性的发现建立和保活邻居关系hello时间 --- 默认10S30SDead time --- 死亡时间 --- 4倍的hello时间RID --- 路由器的ID --- 32位二进制构成1.全网唯一2.必须使用IP地址的格式进行配置手工配置由网络管理员直接配置给设备手工配置仅需满足以上两点要求即可自动生成首先设备会选择自身环回接口的IP地址作为本地的RID如果环回接口存在多个则选择这些IP地址中数值最大的作为RID如果设备并不存在环回接口则使用物理接口的IP地址作为本地的RID如果存在多个物理接口则选择这些IP地址中数值最大的作为RIDDBD报文 --- 数据库描述报文 --- 链路状态数据库LSDB--- 里面携带的是LSA的摘要信息 --- 菜单LSR报文 --- 链路状态请求报文 --- 基于DBD包请求未知的LSA信息LSU报文 --- 链路状态更新报文 --- 真正携带LSA的数据包 --- 基于LSR的请求内容发送对端需要的LSA信息LSACK报文 --- 链路状态确认报文 --- 确认包OSPF存在每30分钟一次的周期更新2.OSPF的状态机Two-Way状态 --- 双向通信状态 --- 标志着邻居关系的建立条件匹配条件匹配成功则进入到后续的状态中条件匹配失败则将停留在邻居关系中使用hello包进行周期保活主从关系选举 --- 在Exstart状态下使用未携带数据的DBD包通过比较RID进行主从关系选举RID大的为主为主的可以优先挑选LSA主从关系选举一方面为了避免同一时间进行数据交换而造成大量的链路资源浪费另一方面是为了完成隐性确认--- 为主的设备可以主导隐性确认Full状态 --- 标志着邻接关系的建立 --- 主要为了和邻居关系进行区分邻居关系仅能使用hello包进行周期的保活而只有邻接关系可以交换LSA信息Down状态发送hello包后进入到下一个状态Init初始化状态当收到对方的hello包中包含自己本地的RID时则可以进入到下一个状态Tow-way双向通信状态标志着邻居关系的建立条件匹配--- 如果条件匹配通过则进入到后续的状态中条件匹配失败则停留在邻居关系中使用hello包进行周期保活Exstart预启动状态使用未携带数据的DBD包进行主从关系选举为主的可以优先获取LSA信息Exchange准交换状态使用携带数据的DBD包交换LSDB的摘要信息Loading加载状态使用LSR、LSU、LSACK报文交换未知的LSA信息Full转发状态标志着邻接关系建立3.OSPF的工作过程设备将从所有激活OSPF的接口处以组播形式发送hello包组播地址是224.0.0.5当收到一个其他设备发送的hello包中包含自己本地的RID时则将进入到邻居状态设备会将所有的邻居状态进行记录生成一张表 ---邻居表之后再进行条件匹配匹配失败则将停留在邻居关系仅使用hello包进行周期保活匹配成功则开始建立邻接关系首先使用未携带数据的DBD包进行主从关系选举之后使用携带数据的DBD包交换本地LSDB的摘要信息使用LSR、LSU、LSACK这三种数据包基于DBD包获取未知的LSA信息之后将所有的LSA信息记录在本地的一张表中 ---数据库表LSDB之后根据本地的LSDB数据库表获取完整的拓扑信息使用SPF算法将图形结构转换成树形结构最终计算出到达未知网段的路由信息将这些路由信息加载到路由表中收敛完成后依然会使用hello包每隔10S进行一次周期保活每隔30MIN进行一次周期更新结构突变1.突然新增一个网段 --- 触发更新在结构变更的第一时间中将变更信息通过LSU包发送出去需要LSACK进行确认2.突然断开一个网段 --- 触发更新在结构变更的第一时间中将变更信息通过LSU包发送出去需要LSACK进行确认3.无法沟通 --- 40S死亡时间4.OSPF的基础配置1.启动进程[R1]ospf 1 router-id 1.1.1.12.创建区域[R1-ospf-1]area 03.宣告宣告的作用1.激活接口 --- 所有宣告网段范围内的接口将被激活所有激活的接口可以收发OSPF的数据2.发布路由 --- 只有激活接口对应的直连网段路由信息才能发布[R1-ospf-1-area-0.0.0.0]network 1.1.1.00.0.0.255 --- 反掩码--- 由连续的0和连续的1构成0对应位不可变1对应位可变MTU0 --- 华为设备默认没有开启MTU的检测所以这里用0表示并不代表真实的MTU值为0在华为设备中OSPF协议的默认优先级为10COST 参考带宽 / 真实带宽 --- 参考带宽默认为100Mbps --- 如果计算的结果是一个小于1的小数则直接按1来取值如果是一个大于1的小数直接取整数部分[R1-ospf-1]bandwidth-reference 1000 --- 修改参考带宽的数值在运行OSPF的所有设备中必须修改为相同的参考带宽的数值条件匹配指定路由器 --- DR --- 在一个广播域中我们需要拥有一台DR设备DR设备和其他设备之间保持邻接关系备份指定路由器 --- BDR --- 在一个广播域中我们也需要选择一台设备为BDR设备BDR设备和其他设备之间需要保持邻接关系在一个广播域中在DR和BDR都存在的情况下至少需要四台设备才能看到邻居关系DR和BDR其实是接口概念条件匹配如果在一个广播域中所有设备都建立邻接关系则将造成大量的重复更新所以需要进行DR/BDR的选举只有DR和BDR和其他设备之间保持邻接关系剩余所有DROther之间仅保留邻居关系即可DR和BDR的选举规则1.先比较接口的优先级接口优先级最大的设备为DR设备在DR设备选出来后会在剩余所有设备中选择优先级最大的为BDR设备优先级默认为1取值范围0 - 255如果将一个接口的优先级修改为0则这个接口将放弃 DR/BDR选举[R1-GigabitEthernet0/0/0]ospf dr-priority ? --- 修改接口的优先级INTEGER0-255 Router priority value2.如果接口的优先级相同则比较RID优先选择RID大的设备所对应的接口为DR之后选择BDR设备在剩余设备中优先选择RID大的设备所对应的接口为BDRDR和BDR的选举是非抢占模式的R1reset ospf process --- 重新启动OSPF进程Warning: The OSPF process will be reset. Continue? [Y/N]:y所有运行OSPFV2的设备都会加入到一个组播组中这个组播组的地址是224.0.0.5所有DR和BDR设备会监听另外一个组播地址224.0.0.6OSPF的数据包OSPF是一个跨层封装的协议没有传输层直接封装在网络层之上IP协议中会有一个协议号来标定OSPF --- 89OSPF的头部 --- 所有类型的OSPF数据包公共部分版本 --- OSPF的版本一般使用OSPFV2所以这里写2类型 --- OSPF数据包的类型Hello包 --- 1DBD包 --- 2LSR包 --- 3LSU包 --- 4LSACK包 --- 5路由器ID --- RID --- 发送该数据包设备的RID区域ID --- areaID --- 发出数据包接口所在的区域验证类型 --- null --- 空认证simple --- 明文认证MD5认证 --- 比对摘要值OSPF在进行手工认证时需要比对两部分内容第一部分是认证类型必须一致之后比对认证数据也必须一致网络掩码 --- 发出数据包的接口地址的掩码hello时间死亡时间 --- 保活和失效判定的时间8位的可选项 --- 每一位置1时都代表该设备符合某一种OSPF的特性特殊区域的标记路由器的优先级 --- 发出接口在进行DR和BDR选举时的优先级DR和BDR --- 如果选举完成则将DR和BDR的IP地址放在这个位置如果没有选举出来或者缺少某种角色则使用0.0.0.0来进行字段填充邻居的RID --- 将携带所有本地已知的邻居的RID用来建立邻居关系Hello包在建立邻居关系时的条件1.hello时间2.死亡时间3.认证4.特殊区域标记5.网络掩码 --- 在P2P网络环境下该项不需要相同以上邻居双方任何一个参数不一致将导致邻居关系建立失败在DR和BDR选举时存在一个选举时间计时器时间为40S同死亡时间死亡时间修改这个计时器的时间也会同步修改2.DBD包 --- 1.进行主从关系选举2.共享LSA摘要信息3.确认包MTU最大传输单元 --- 开启检测功能后会携带接口的MTU值如果两端MTU值不同可能会停留在Exstart状态[Huawei-GigabitEthernet0/0/0]ospf mtu-enable --- 开启MTU检查功能8位可选项 --- 每一位置1时都代表该设备符合某一种OSPF的特性I --- init --- 如果I置1则代表这个DBD包是用来进行主从关系选举的数据包M --- more --- 如果M位置1则代表后面还有其他的DBD包MS --- master --- 如果MS位置1则代表发送该数据包的设备为主设备序列号 --- 1.用来表示数据包的顺序2.用来进行隐型确认的LSA头部 --- LSA的摘要信息LSR包 --- 基于DBD包请求未知的LSA链路状态类型链路状态ID通告路由器 --- LSA的三元组 --- 这三个参数可以唯一的标识出一条LSALSU包 --- 真正携带LSA的数据包LSACK包 --- 确认包网络类型 --- 依据数据链路层所使用的协议类型来进行划分MA网络 --- Muti-Access --- 多点接入网络BMA --- 支持广播的多节点接入网络NBMA --- 不支持广播的多节点接入网络P2P --- 点到点的网络以太网需要通过MAC地址进行物理寻址 --- 主要是因为利用以太网建立的二层网络中可以包含多个两个或两个以上的接口每个以太网接口之间都可以通过交互以太网帧的形式进行二层通信 --- BMA如果一个网络中只能存在两个节点则不需要MAC地址也能正常通信这样的网络我们称为P2P网络T1 --- 1.544MbpsE1 --- 2.048Mbps频分 --- 所谓频分就是在同一种介质上利用不同频段同时发送信号而且互不干扰实现数据的并行发送OSPF接口的网络类型 --- 指OSPF在不同网络环境下不同的工作方式[R1]interface serial 4/0/0 --- 进入串口[R1-Serial4/0/0]ip address 12.0.0.1 24 --- 给串口配置IP地址网络类型OSPF接口的网络类型OSPF的工作方式BMA以太网Broadcast需要进行DR和BDR的选举hello时间为10S死亡时间为40S可以建立多个邻居关系P2PHDLCPPPP2P不需要进行DR和BDR的选举hello时间为10S死亡时间为40S只能建立一个邻居关系环回接口P2P只是华为写作P2P实际无意义无法建立邻居关系不发送数据包按照主机路由学习注意可以通过将接口的网络类型修改为broadcast来还原真实配置网段掩码NBMA帧中继NBMA需要进行DR和BDR的选举hello时间为30S死亡时间为120S可以建立多个邻居关系需要手工指定邻居关系P2MP不需要进行DR和BDR的选举hello时间为30S死亡时间为120S可以建立多个邻居关系[R1]display ospf interface GigabitEthernet 0/0/0 --- 查看OSPF接口的网络类型[R3-LoopBack0]ospf network-type ? --- 查看环回接口可以修改为什么类型broadcast Specify OSPF broadcast networknbmaSpecify OSPF NBMA networkp2mpSpecify OSPF point-to-multipoint networkp2p Specify OSPF point-to-point network这里的状态说明是DR/BDR选举过程中等待的状态最长默认40S注意在NBMA的网络环境因为不支持广播和组播所以无法使用组播的hello包建立邻居关系只能通过手工指定单播邻居去建邻[R6-ospf-1-area-0.0.0.0]peer 6.6.6.6 --- 进行手工指定单播邻居Attempt --- 尝试状态 --- 在NBMA网络环境中使用单播邻居进行建邻需要双方都指定如果一方指定后则将进入该状态等待对端指定OSPF的不规则区域OSPF的区域划分要求1.区域之间必须存在ABR设备2.区域划分必须按照星型拓扑进行划分1.远离骨干的非骨干区域2.不连续骨干1.使用虚链路解决不规则区域问题 --- 虚链路永远属于区域0[R5-ospf-1-area-0.0.0.1]vlink-peer 6.6.6.6为对端的router-id --- 配置虚链路 --- 注意虚链路的配置两边都要配虚链路的邻居之间使用单播的方式维持邻居关系并进行保活虚链路的局限性1.会存在周期性的单播报文穿越中间区域造成穿越区域资源浪费2.虚链路只能跨越一个区域2.多进程双向重发布重发布不同路由协议之间因为运行的规则使用的算法都各不相同包括不同进程之间都会存在信息隔离通过重发布可以将一种协议按照另外一种协议的规则发布出去也可以将一个进程的信息发布到另一个进程中去R4身上启动了两个OSPF进程相当于连接了两个不同的网络一个是单区域OSPF网络还有一个是多区域OSPF网络如果在R4身上做了重发布则这种情况下R4我们称为ASBR设备自治系统边界路由器[R5-ospf-1]import-route ospf 2 --- 在ASBR设备中配置重发布O_ASE代表是从其他网络发布进来的域外路由信息