1.路由简介

路由器根据路由表转发数据包,路由表项可通过手动配置和动态路由协议生成。

静态路由比动态路由使用更少的带宽,并且不占用CPU资源来计算和分析路由更新。当网络结构比较简单时,只需配置静态路由就可以使网络正常工作。但是当网络发生故障或者拓扑发生变化后,静态路由不会自动更新,必须手动重新配置。

相比较于静态路由,动态路由协议具有更强的可扩展性,具备更强的应变能力。

OSPFOpenShortest Path First ,开放式最短路径优先)具有扩展性强,收敛速度快等特点,作为优秀的内部网关协议被广泛使用。


2.动态路由协议分类

ospf路由协议基础_cisco

BGP使用一种基于距离矢量算法修改后的算法,该算法被称为路径矢量(PathVector )算法。因此在某些场合下,BGP也被称为路径矢量路由协议。

IGP(内部网关协议)在同一个自治系统内交换路由信息,IGP的主要目的是发现和计算自治域内的路由信息。

EGP(外部网关协议)主要用于AS(自治系统)之间的互联。


3.链路状态路由协议运行的全过程

      3.1LSA泛洪

    ospf路由协议基础_华为_02

      •链路状态通告,可以简单的理解为,每台路由器都产生一个描述自己直连接口状态(包括接口的开销、与邻居路由器之间的关系等)的通告。

       3.2LSDB维护

ospf路由协议基础_H3C_03

3.3 SPF计算

ospf路由协议基础_cisco_04

 3.4 路由表产生

ospf路由协议基础_ospf_05

 3.5链路状态路由协议总结

ospf路由协议基础_ospf_06

链路状态路由协议有四个步骤:


第一步是建立相邻路由器之间的邻居关系。


第二步是邻居之间交互链路状态信息和同步LSDB


第三步是进行优选路径计算。


第四步是根据最短路径树生成路由表项加载到路由表。


4.OSPF路由协议概述

ospf路由协议基础_cisco_07

5.OSPF路由协议基础术语

   5.1    Router ID​

  ospf路由协议基础_华为_08

RouterID 一旦选定,之后如果要更改的话就需要重启OSPF进程。<>reset ospf process

推荐手工指定OSPF路由设备的RouterID 。首先规划出一个私有网段用于OSPFRouterID 选择,例如:192.168.1.0/24。在启用OSPF进程前在每个OSPF路由器上建立一个Loopback接口,使用一个32位掩码的私有地址作为其IP地址,这个32位的私有地址即作为该路由设备的RouterID 。如果没有特殊要求,这个Loopback接口地址可以不发布在OSPF网络中。

    5.2 OSPF 区域划分

ospf路由协议基础_cisco_09

Area0.0.0.1等同于Area1Area0.0.0.255等同于Area255Area0.0.1.0等同于Area256。许多网络厂商的设备同时支持这两种区域ID配置及表示方式

  5.3 OSPF 度量值(COST)

 ospf路由协议基础_cisco_10

ospf路由协议基础_华为_11

5.4 OSPF 路由协议三个表项

   5.4.1  邻居表

   ospf路由协议基础_cisco_12

  5.4.2  LSDB数据库


  ospf路由协议基础_华为_13

  5.4.3 OSPF路由表

   ospf路由协议基础_cisco_14



6.OSPF报文格式和类型

  ospf路由协议基础_ospf_15

重要字段解释


Version :对于当前所使用的OSPFv2,该字段的值为2

Router ID:表示生成此报文的路由器的RouterID

Area ID:表示此报文需要被通告到的区域。

Type:类型字段。这个字段标识OSPF是什么类型的报文一共有5种。

Packet length:表示整个OSPF报文的长度,单位是字节。

Checksum:校验字段,其校验的范围是整个OSPF报文,包括OSPF报文头部。

Auth Type:为0时表示不认证;为1时表示简单的明文密码认证;为2时表示加密(MD5)认证。

Authentication:认证所需的信息。该字段的内容随AuType的值不同而不同。

7.OSPF路由协议工作过程

   7.1 OSPF工作过程概览

    ospf路由协议基础_华为_16

    7.2 建立邻居关系

        7.2.1 hello 报文发现邻居状态

   ospf路由协议基础_ospf_17

R1R2路由器相互发送Hello报文,第一个Hello报文包含的邻居列表为空。

R2收到R1发送的Hello报文后,如果各项参数匹配,再次发送Hello报文时,将R1加入自己的邻居列表。

在以太网链路上,通常以组播形式发送Hello报文:

    ▫224.0.0.5的组播地址为OSPF设备的预留IP组播地址

    ▫224.0.0.6的组播地址为OSPF   DR/BDR 的预留IP组播地址

对于不支持组播的链路,OSPF支持采用单播的方式发送Hello报文。

   7.2.2  建立和维护邻居关系--HELLO报文详解​

    ospf路由协议基础_华为_18

  7.3 OSPF 建立邻接关系

         7.3.1 DatabaseDescription 报文

        ospf路由协议基础_cisco_19

    7.3.2 邻接关系的建立

   ospf路由协议基础_cisco_20

ospf路由协议基础_华为_21

8.DR和BDR的作用

    ospf路由协议基础_华为_22

     

ospf路由协议基础_cisco_23

广播链路或者NBMA链路上DRBDR的选举过程如下:

接口UP后,发送Hello报文,同时进入到Waiting状态。在Waiting状态下会有一个WaitingTimer,该计时器的长度与DeadTimer是一样的。默认值为40秒,用户不可自行调整。

WaitingTimer触发前,发送的Hello报文是没有DRBDR字段的。在Waiting阶段,如果收到Hello报文中有DRBDR,那么直接承认网络中的DRBDR,而不会触发选举。直接离开Waiting状态,开始邻居同步。

假设网络中已经存在一个DR和一个BDR,这时新加入网络中的路由器,不论它的RouterID 或者DR优先级有多大,都会承认现网中已有的DRBDR

DR因为故障Down掉之后,BDR会继承DR的位置,剩下的优先级大于0的路由器会竞争成为新的BDR

只有当不同RouterID ,或者配置不同DR优先级的路由器同时起来,在同一时刻进行DR选举才会应用DR选举规则产生DR


9.OSPF 路由协议基本配置

  ospf路由协议基础_cisco_24

 ospf路由协议基础_华为_25

ospf路由协议基础_hello_26

ospf路由协议基础_H3C_27

ospf路由协议基础_华为_28

ospf路由协议基础_ospf_29

ospf路由协议基础_H3C_30

ospf路由协议基础_hello_31