OSPF全称是啥我就不絮叨了,什么迪杰斯特拉,什么开放最短路径优先算法都是人尽皆知的事儿,尤其是一提算法还会被学数据结构的童鞋鄙视,干脆就不提了,直接开整怎么用吧。(不过好像真有人不知道OSPF里的F代表了什么...)

一个大概的profile:

89号协议,链路状态协议Link State之一,组播地址会用到224.0.0.5(DR other 用来收听DBD LSR LSU LSA的,也就是下面5种包中的4种) 224.0.0.6(DR BDR用来收听。。。的)

跟大多数dynamic routing protocol一样,它也是Hello包建邻居,生产邻居表;接下来开始传信息,这些信息被OSPF称为LSA,这个LSA不是上面提到的那个LSA,这个是Link State Advertisement, 这些信息被交互过之后就存入Link State Database, 即LSDB,即topology表。这个拓扑表,我个人认为就是被SPF这个算法所直接读取的,然后去给你计算出最短路径,这个拓扑表不光包含了路由,应该算作是路由表的一个母体,它里面会有我的哪个端口接了谁的哪个端口。

Link State Routing Protocol 这是从思科的PPT上抄的,什么EIGRP是道听途说OSPF才是有组织的居委会之类的陈词滥调我就不说了,我今天是以一个长者的身份对你们说,唉?好像哪里不对

  • Link State routers recognize more information about the network than their distance vector counterparts
  • Each router has a full picture of the topology
  • Consequently, link state routers tend to make more accurate decision

Link State Data Structure:

Network Hierarchy 是一个backbone区域周围连几个area 1 2 3 4这样的结构

  • Router A and B are backbone routers
  • Backbone routers make up area 0
  • Routers C, D and E are known as area border routers (ABRs)
  • ABRs attach all other areas to area 0

它的目的是:

  • Minimize routing table entries
  • Localizes impact of a topology change within an area
  • Detailed LSA flooding stops at the area boundary
  • Requres a hierarchical network design

但是说实话,我们公司就没这么做,因为犯不着,具体原因后面再说。

Forming OSPF Adjacencies

  • Point-to-point WAN links:

    • Both neighbors becomes fully adjacent
  • LAN links (MA) including BMA(such as Ethernet) and NBMA(such as FR)
    • Neighbors form a full adjacency with DR and BDR
    • Router s maintain two-way state with the other rotuers(DR other)
  • Routing updates and topology information are passed only between adjacent routers
  • Once an adjacency is formed, LSDBs are synchronized by exchanging LSAs
  • LSAs are flooded reliably throughout the area (or network)

整个topology是触发更新的,但是你要是迟迟不触发它,它自己30min会refresh一次,老化时间是60min.

OSPF有5种包

  • Hello
  • Database Description
  • Link-State Request
  • Link-State Update
  • Link-State Acknowledgment

每个OSPF的speaker都有一个router-id,确定router-id的方法如下,按照先后顺序依次是:

  • 手工指定(任意,唯一)
  • loopback口(if any)最大的地址
  • 物理口最大地址

(要是以上三个都没有,那你还跑个毛的OSPF,不许抬杠哦!)

建立Neighborhood的条件,也就是说这俩speaker得一致的条件  PS. speaker counterpart peer都是常用的这种邻居的英文表达,尤其counterpart 和 peer的意思更是接近,都有对等体的意思,speaker没有对等体的意思

  • Hello and Dead intervals            Hello interval 有两种,一种是10s的默认用在以太网Ethernet link上的,另一种是30s的默认用在non-broadcast link上的,如serial link,如NMBA
  • Area ID
  • Authentiation passwd (if any)
  • Stub area flag

OSPF建立邻居需要经过的几个状态

Initial 正在交换Hello包

Two way Hello包交换完毕,Hello包里有自己的router-id,反正是用于比较router-id的,MA网络在没有改端口优先级的情况下用来选出谁是DR BDR & other,完了 整个地方还牵扯网络类型..整个dr other 之间是没有未来的,他们就停留在two way 状态,所以他们也不算邻居neighbor而是邻接adjacent

Exstart 选主从,router-id大的是Master,小的是slave,整个可以通过 debug ip os adj  debug ip ospf packet 在slave上可以看到"NBR Negotiation Done. We are the SLAVE."这样一条忧伤的信息

Exchange 交换 LSDB

Loading 交换LSR LSU

Full

PS. 感觉能把每个包头部都画出来的绝对是大神...困死了,睡觉去。

OSPF补全计划-1的更多相关文章

  1. OSPF补全计划-0 preface

    哇靠,一看日历吓了我一跳,我这一个月都没写任何东西,好吧,事情的确多了点儿,同事离职,我需要处理很多untechnical的东西,弄得我很烦,中间学的一点小东西(关于Linux的)也没往这里记,但是我 ...

  2. OSPF补全计划-2

    想起来几个面试题: 1. OSPF在什么情况下会stuck in Exstart /Exchange状态? 我知道的一个答案是两个端口的mtu不一致.当然整个也不是绝对,因为可以用ip ospf mt ...

  3. DL基础补全计划(二)---Softmax回归及示例(Pytorch,交叉熵损失)

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...

  4. DL基础补全计划(三)---模型选择、欠拟合、过拟合

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...

  5. DL基础补全计划(六)---卷积和池化

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...

  6. DL基础补全计划(一)---线性回归及示例(Pytorch,平方损失)

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...

  7. 【hjmmm网络流24题补全计划】

    本文食用方式 按ABC--分层叙述思路 可以看完一步有思路后自行思考 飞行员配对问题 题目链接 这可能是24题里最水的一道吧... 很显然分成两个集合 左外籍飞行员 右皇家飞行员 跑二分图最大匹配 输 ...

  8. 2018.我的NOIP补全计划

    code: efzoi.tk @ shleodai noip2011 D1 选择客栈 这道题是一道大水题,冷静分析一会就会发现我们需要维护最后一个不合法点和前缀和. 维护最后一个不合法点只要边扫描边维 ...

  9. DL基础补全计划(五)---数值稳定性及参数初始化(梯度消失、梯度爆炸)

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...

随机推荐

  1. HTML&javaSkcript&CSS&jQuery&ajax(三)

    一.HTML块元素 1.块级元素 Block level element ,内联元素 inline element , HTML<div>元素属于块级元素,他是组合其他HTML元素的容器, ...

  2. this作用范围

    1. this的指向 var name='window';var obj={ name:'obj', say:function(){ return function(){ return this.na ...

  3. bzoj 2721

    题解:首先推一发式子(见csdn https://blog.csdn.net/lleozhang/article/details/83415995) 因为x是整数,所以x的数量显然为能使取得整数的t的 ...

  4. MySQL基于ROW格式的数据恢复

    大家都知道MySQL Binlog 有三种格式,分别是Statement.Row.Mixd.Statement记录了用户执行的原始SQL,而Row则是记录了行的修改情况,在MySQL 5.6以上的版本 ...

  5. axure--轮播图

    1.使用动态面板的循环实现图片轮播的要点:1)当鼠标移出动态面板的范围时才显示左右两边的方向按钮,否则该两个按钮都是隐藏的.则思路如下:且四个条件之间是“or”的关系,不是“and”[[Cursor. ...

  6. Idea和PyCharm激活破解

    1. 先去百度去官网下载专业版IDE, Idea 和PyCharm激活方法一样 2. 下载破解包, 点击下载 3. 将下载的jar包放到这个安装目录的bin目录下面 4. 在bin目录下面的文件pyc ...

  7. IDEA的debug操作

  8. HDU 1277全文检索(字典树)

    全文检索 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  9. vue——vue-resource

    get请求 getSearch () { return this.$http.get('https://xxx.xxx.com/xxx.json', {params: {name: this.sear ...

  10. python pip install mysql-python报错

    报错: 下载地址: https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python