【19】实施动态路由协议OSPF协议

  1. 原理
    初始化,形成邻居 ----> LSA(链路状态通告)泛洪 ----> 生成LSDB(链路状态数据库) ----> SPF(最短路径优先)算法 ----> 最短路径树 ----> 路由计算 ----> 路由计算 ----> 路由表
  2. ospf的3张表
    2.1 邻居(邻接)表
# 查看邻居表,加brief显示简要信息
display ospf peer brief

2.2 数据库表

# 查看数据库
display ospf lsdb

2.3 路由表

# 查看通过ospf生成的路由表
display ip routing-table protocol ospf
# 或者
display ospf routing
  1. ospf的5种报文
    3.1 Hello 报文
    发现、建立和维护邻居关系的报文
    3.2 DD(Database Description)报文(DBD报文)
    数据库描述报文
    3.3 LSR(LSA Request)报文
    3.4 LSU(LSA Update)报文
    3.5 LSACK(Link State Acknowledgment)报文
  2. 其他内容
    4.1 邻居和邻接的区别
    邻居关系是指,当双方收到对方的hello报文的时候,报文里面的参数(hello time.dead interval , area id.authentication ,mask 等)一致的时候,并且邻居关系为2-way的时候,这个就可以成为是建立了邻居关系,但是还不是邻接关系。
    邻接关系是指在建立的邻居关系之后继续发送DD,LSR,LSU等报文,最终双方的LSDB达到同步之后,邻居状态为FULL时,才成为邻接关系。
    详细内容可以参考下面两个链接:
    https://blog.51cto.com/liufei888/2073094
    https://blog.csdn.net/watchen/article/details/14643459
    4.2 目的IP:
    224.0.0.5-----allspf router,SPF设备组播组
    224.0.0.6-----alldr router,DR设备组播组
    4.3 RID
    Route ID,在OSPF中是作为路由器唯一标识的,ipv4格式。
    当OSPF中选举DR和BDR时首先查看路由器的优先级,优先级大者当选DR,其次是BDR;如果优先级相同则根据route-id的大小来选举,route-id大者当选。route-id在不指定的情况下会由loopback接口数值最高的IP地址来做,当没有loopback接口时则由物理接口数值最高的IP来做。而DR和BDR选举只是在接口类型为广播或NBMA时会产生(就是说非广播类的点对点和点对多点的接口类型是不选举DR和BDR的)。所以route-id更多的是作为路由器标识的作用。是否配置route-id和如何配置route-id都取决于你的需求(有的时候配置不配置都无关紧要)。
    4.4 ospf大致流程
    邻居发现----数据库同步(exstart、exchange)----建立完全邻接关系
    4.5 DR(Designated Router)和BDR(Backup Designated Router)区别
    DR与BDR并没有任何本质与功能的区别,BDR就是DR的备份。
    DR和BDR是基于链路的,不是基于设备的,可以没有BDR,但是一定要有DR。
    所有设备都需要和DR、BDR构建邻接关系,只和DR、BDR交互LSDB,剩下的其他路由器俩俩都是邻居(2-way)状态 。
    **作用:**减少LSA的泛洪。DR可以减少广播型网络中的邻接关系数量。
    **选举DR和BDR的规则为:**比较接口优先级选举优先级最高的成为DR,优先级数字越大,表示优先级越高,被选为DR的几率就越大,次优先级的为BDR,优先级范围是0~255,默认为1,优先级为0表示没有资格选举DR和BDR。

理解:

  1. 时间要素,在选举期间,OSPF的DR和BDR不具备抢占性,即过了选举期,即便优先级再高也无法抢占DR和BDR
  2. 基于hello报文中的优先级,越大越优先
  3. 如果优先级相同,选择路由器ID(RouteID,RID)比较大的
# 调整路由器中ospf的优先级
interface g0/0/0
ospf
ospf dr-priority 0 # 0则没有资格选举为DR和BDR,数字越大优先级越高
interface g0/0/1
ospf
ospf dr-priority 100

4.6 OSPF开销
计算公式为:带宽参考值/带宽,可以使用bandwidth-reference命令来设置带宽参考值

# 设置带宽参考值
ospf
bandwidth-reference 10000
  1. ospf配置
ospf route-id 1.1.1.1
area 0
network 192.168.1.0 24