华为路由交换 OSPF

ospf 开放式最短路径优先

简介:ospf是一个动态路由协 在华为设备上优先级为60 在思科设备上优先级为10 在一个大型网络上 手动配置静态路由的工作量非常大且复杂 这时可以使用动态路由协议让设备自动生成协商生成路由。

router-id

router-id是在一个区域内标识一台唯一的设备的 相当于我们的身份证号 他的格式和ip地址一样

  • router-id 可以手工配置(建议采用手工)
  • 当没有配置router-id时 他会在你的looback口上选择一个ip地址小的作为router-id
  • 当没配置looback时 他会选择一个物理接口ip地址小的作为router-id

度量值

ospf使用开销来作为度量值 开销越小路径越优先
PC1要去网AR8他会走上面的路径 因为上面的路径开销小 为2 而下面的路径开销为10
就相当于一个人要去北京 可以用两块的就能到 也可以用10块钱就能到 当让选择两块钱的了
度量值=参考带宽/接口带宽
华为路由交换 OSPF_第1张图片

DR/BDR

作用是收集LSA 再广播给网络中的所有邻接关系的设备 相当于一个小组长 负责收集信息 然后在通告给所有组员 DR的存在 有效减少了广播LSA时的所使用的带宽

  • BDR是DR的备份
  • 选举 优先级大的优先—>router-id大的优先
  • 优先级为0的不参与选举
  • 不能抢占
  • 优先级默认为1
    如图
    AR1的接口为DR 因为优先级都相同就选举router-id小的为DR
    AR2的接口为BDR 因为选择次优的为BDR当AR1出现问题后 AR2自动变为DR 然后再选举过新的BDR
    华为路由交换 OSPF_第2张图片

三个表

  • 邻居列表
    邻居列表就是 启动了ospf协议的路由器 连接了本路由器生成的邻居表
    上图 AR1的邻居列表有 2.2.2.2 3.3.3.3 4.4.4.4 因为这三个都是他的邻居 其他同理
  • 链路状态数据库LSDB
    通过互相交互LSA生成的链路状态数据库
  • OSPF路由表
    使用SPF算法 运算出来的路由形成的路由表

四个网络类型

  • 广播型
    hello时间为10秒一次 40秒超时 会选举DR BDR

  • P2P
    hello时间为10秒一次 40秒超时 不会选举DR BDR

  • 非广播型
    helo时间为30秒一次 会进行DR BDR的选举

  • P2MP
    hello时间30秒一次 会进行DR BDR的选举 无需选举DR BDR

五种报文

Hello 用于发现 建立 维护 邻居关系
DD 用于同步链路状态数据库
LSR 用于请求自己没有的LSA
LSU 用于对LSR回复他需要的LSA 和用于链路更新
LSACK 用于对LSU的确认

六个常用LSA

  • LSA-1
    每个ospf路由器都会发出 通过组播地址 224.0.0.5发送
    描述本地接口的开销和接口状态
    只在本区域内泛洪
  • LSA-2
    由DR产生 描述俺妈长度 和网络中存在哪些router-id
    通过组播地址 224.0.0.6发送
    只在本区域内泛洪
  • LSA-3
    由ABR产生 向去干区域描述本区域内的网络情况
  • LSA-4
    由ASBR所在区域内的ABR产生 向其他区域描述ASBR的位置
  • LSA-5
    由ASBR产生 向ospf网络描述外部网络
  • LSA-7
    由NSSA区域内的ASBR产生 描述外部网络

七个状态

  • down(失效)
    设备关机 或者端口关闭

  • init(初始)
    对方在我邻居列表里 但我不在对方的邻居列表里
    AR40通过hello报文发送出去 41收到这个hello报文会将对方存在自己的邻居列表里
    然后他就知道了对方的存在 但是对方不知道自己的存在 所以状态为init
    华为路由交换 OSPF_第3张图片

  • attempt(尝试)
    在非广播网络中才有这个状态

  • 2-way(双向通道)
    -相互都存在对方的邻居列表 也就是大家都知道对方的存在
    -41回复一个hello报文 40看到自己在对方的邻居列表里就会变为2-way状态 将对方放在自己的邻居列表里
    -然后40会回复一个hello包 41收到后看到自己在对方的邻居列表里 也会将状态从init进入2-way
    -在此 邻居状态建立完成 在广播型网路中开始选举DR和BDR
    华为路由交换 OSPF_第4张图片

  • exstart(交换初始)
    发送DD报文 选取主从关系
    此状态下交互的DD报文是没有LSA的 只用于选举主从关系
    华为路由交换 OSPF_第5张图片

  • exchange(交换)
    发送DD报文 进行链路状态数据库同步
    由主发出 dd报文 从做回复 M=1则表示还有LSA没发完 =0则表示此条为最后一条
    华为路由交换 OSPF_第6张图片

  • loading(加载)
    经过上个状态的dd报文交互 就知道自己没有那些LSA
    发送LSR LSU LSACK 进行链路状态数据库同步
    到目前为止 所有交互的LSA都是摘要信息 并不是一条完整详细的
    只有LSU有完整详细的LSA 这样在交互过程中可以节省资源 没必要吧整条都发过去 对方能识别就可以了
    你没有的LSA 我再把他的详细信息发给你
    华为路由交换 OSPF_第7张图片

  • full(全毗邻)
    到此 大家的LSDB都相同了 你有的我也有 我有的你也有
    链路状态数据库完全同步
    进入邻接状态
    华为路由交换 OSPF_第8张图片

ospf路由类型和优先级

区域内路由–>区域间路由—>type1外部路由—>type2外部路由
type1=外部开销+内部开销
type2=外部开销(默认为ytpe2)

过程

理解了ospf的建立到生成路由的整个过程 可以更好的掌握ospf

第一步:通过组播地址224.0.0.5发送hello报文
第二步:发现邻居的存在建立邻居列表 建立起了邻居关系 进入 2-way状态
华为路由交换 OSPF_第9张图片
第三步:开始选举DR BDR 上图优先级默认为1 都相同 所以比较router-id 小的为DR 所以 40选为DR 41 为BDR
第四步:进入Exstart状态 开始发送DD报文 此状态下 DD报文是不包含LSA的 只用来选出 主/从关系
华为路由交换 OSPF_第10张图片
第五步:选出主从关系后进入exchange状态 开始由主设备发起DD报文 从设备做回复的方式交互LSA
注意:所有设备和DR交互LSA 再由DR组播发送出去 通告给网络上的设备 作用相当于村长 将村民的信息收集起来再通过大喇叭告诉所有村民 而不是每个村民到处的去传播 这样有利于节省带宽 所以 其他设备只需要和DR和BDR建立邻接关系即可 BDR作为DR的备份也需要和其他设别建立邻接关系 但不会干DR的工作 只要DR出现故障了他就立刻变成DR
第六步:LSA交互完后 开始向对方请求自己没有的LSA 使用LSR报文请求 对方使用LSU报文回复 我在回复LSACK作为确认收到回复
第七步:LSDB同步完成 进入邻接关系
注意:上图中 其他设备只和DR BDR建立邻接关系 非DR BDR之间建立的是邻居关系 DR和BDR建立的是邻接关系
分清楚邻居和邻接非常重要
第八步:到此大家的LSA已经同步完成了 设备会进行一定的运算 计算出路由来

区域和路由器角色

骨干区域
区域0 为骨干区域 其他为标准区域
注意:ospf中区域是以路由器上的接口划分的
AR50 和AR54为ASBR ABR是标准区域链接骨干区域的路由器叫ABR 他用来向其他区域泛洪LSA3 用来告诉其他区域 本区域的网络情况

华为路由交换 OSPF_第11张图片
如图 AR56为 ASBR 在和外部网络系统连接的路由器叫ASBR 他负责泛洪LSA5 来告诉OSPF网络 外部网络的情况
而路由器54 他的角色为ABR 他会泛洪LSA4 来告诉网络中的所有人 如何能到达ASBR
华为路由交换 OSPF_第12张图片

特殊区域

特殊区域的存在可以减少LSA数目 因为在一个大型网络里面会存在很多LSA 有LSA就会建立链路状态数据库 LSA越多 数据库就越大 所以占用的内存也就越多 消耗的资源也就越多 特殊区域有效减少一些不必要的LSA 节省内存和资源
如上图 标准区域中会存在很多的LSA1 LSA2 LSA3 LSA4 LSA5 但是区域内只需要LSA1 LSA2 就足够了

  • 末梢区域(stub)
    设置为末梢区域
    只有LSA-1 LSA-2 LSA-3
    还能进一步减少 LSA-3

  • 非完全末梢区域(NSSA)
    设置在有ASBR存在的区域
    只有LSA-1 LSA-2 LSA-3 LSA-7
    能进一步减少LSA-3

ospf的知识不止这一点点 还有虚链路等很多有待深入研究的知识
小白菜 做笔记 如果问题多多指教

你可能感兴趣的:(路由交换)