码迷,mamicode.com
首页 > 其他好文 > 详细

精通企业网络当中网红协议OSPF协议

时间:2019-11-22 00:56:03      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:一个   start   sla   精通   esc   目的   特点   不同   请求   

OSPF协议

OSPF协议的工作机制类似于咱们的中国地图一样,咱们认拿着地图到达目标地点 ,路由器运行OSPF后,也会有一张类似于地图的东西,叫做LSDB(链路状态数据库)那么,路由器会利用这个LSDB(地图)去寻找到达其他路由器的最优路径(执行SPF算法)。把寻找好的最优路径用笔记记录(就是放在路由表中)下来,以便于以后再去这个地方的时候,直接看下笔记上面的路径就可以了

技术图片

OSPF协议的区域概念
中国的首都是北京,咱们中国34个省,每一个省份都是紧紧的挨着,并且相互连接着
在OSPF协议当中,有区域的概念,比如area 0、area 1、area 2等区域 我们可以把area 0看作是北京,是最核心的一个区域,把area 1、area 2等区域看作成非北京区域

技术图片

OSPF的原理

技术图片
技术图片

OSPF原理总结:
1、所有路由器都使能OSPF进程,并在一个区域中把自己的网段接口宣告
(network)进去
2、然后所有使能OSPF进程的设备之间交互LSA(链路状态通告)直到所有的
设备上的LSDB(链路状态数据库)都一样即可
3、然后在根据LSDB进行SPF计算,算出自己到达其他设备的最优路由出来
4、将算出的最优路由放入IP路由表中

OSPF报文格式

OSPF协议是网络层协议 IP协议号为89号

技术图片

OSPF协议报文结构分为OSPF头部+OSPF数据包 注意:OSPF数据包一共有5个

技术图片

? Hello 报文
? DD(Database Description)报文
? LSR(LSA Request)报文
? LSU(LSA Update)报文
? LSACK(Link State Acknowledgment)报文

OSPF数据包类型

HELLO报文

技术图片

Hello报文作用:
1、维护邻居状态
2、选择DR与BDR

DBD(DD)报文

技术图片

第一份DBD报文作用:
1、选择主从关系,用来控制序列号的顺序
2、无任何LSA的信息

技术图片

非第一份DBD报文作用:
1、用来描述LSA的头部信息

LSR报文

技术图片

LSR报文作用:
1、请求对方的LSA信息
2、里面无LSA头部内容

LSU报文

技术图片

LSU报文作用:
1、这个报文中才含有真正LSA的拓扑信息和网络信息

LSACK报文

技术图片

LSAck报文作用:
1、用于确认从对方收到的LSU报文
2、LSAck里面包括LSA的头部信息

总结:

DD、LSR、LSU、LSAck与LSA的关系:
? DD报文中包含LSA头部信息,包括LS Type、LS ID、Advertising Router 、LS Sequence Number、LS Checksum。
? LSR中包含LS Type 、LS ID和Advertising Router 。
? LSU中包含完整的LSA信息。
? LSAck中包含LSA头部信息,包括LS Type、LS ID、Advertising Router、LS Sequence Number、LS Checksum。

OSPF Router ID

什么是route id?
和ip地址类似的32位的值,作为一台设备的标识符 企业网中的设备少则几台多则几十台甚至几百台,每台路由器都需要有一个唯一的ID用于标识自己。

技术图片

手动配置route id

    router id 8.8.8.8        #本地全局生效
    ospf 1 router-id 8.8.8.8    #本地ospf进程生效 生产环境优先选择这样

 配置自动选举route id(不建议)
?   如果设备存在多个逻辑接口地址(如环回口loo1口),则路由器使用逻辑接口中最大的IP地址作为Router ID
?   如果没有配置逻辑接口,则路由器使用物理接口的最大IP地址作为Router ID

 Router ID选举规则如下:
?   手动配置OSPF路由器的Router ID(通常建议手动配置);
?   如果没有手动配置Router ID,则路由器使用Loopback接口中最大的IP地址作为Router ID;
?   如果没有配置Loopback接口,则路由器使用物理接口中最大的IP地址作为Router ID。

OSPF的路由器Router ID重新配置后,可以通过重置OSPF进程来更新Router ID。

reset ospf process   ------Y

 华为这边比较奇葩   优先选择第一个UP接口作为router id

OSPF协议状态机

我们在敲命令配置OSPF的时候,当两台路由器之间相互配置好OSPF协议后,会在显示屏上面出现如下信息 这些类似于广告信息就是OSPF的日志信息,从中可以看出OSPF的建立过程有如下几个阶段

技术图片
一般情况下,OSPF的状态机分为如下几个过程
技术图片

邻居过程

技术图片

? Down:这是邻居的初始状态,表示没有从邻居收到任何信息。
? Init:在此状态下,路由器已经从邻居收到了Hello报文,但是自己的Router ID不在所收到的Hello报文的邻居列表中,表示尚未与邻居建立双向通信关系。
? 2-Way:在此状态下,路由器发现自己的Router ID存在于收到的Hello报文的邻居列表中,已确认可以双向通信。

邻居建立过程如下:
1、RTA和RTB的Router ID分别为1.1.1.1和2.2.2.2。当RTA启动OSPF后,RTA会发送第一个Hello报文。此报文中邻居列表为空,此时状态为Down,RTB收到RTA的这个Hello报文,状态置为Init。
2、RTB发送Hello报文,此报文中邻居列表为空,RTA收到RTB的Hello报文,状态置为Init。
3、RTB向RTA发送邻居列表为1.1.1.1的Hello报文,RTA在收到的Hello报文邻居列表中发现自己的Router ID,状态置为2-way。
4、RTA向RTB发送邻居列表为2.2.2.2的Hello报文,RTB在收到的Hello报文邻居列表中发现自己的Router ID,状态置为2-way。

因为邻居都是未知的,所以Hello报文的目的IP地址不是某个特定的单播地址。邻居从无到有,OSPF采用组播的形式发送Hello报文(目的地址224.0.0.5)

DR和BDR的选举及作用

技术图片

在运行OSPF的MA网络包括广播型和NBMA网络,会存在两个问题:
因为在同一个区域的路由器必须的保证他们的LSDB(链路状态数据库)是一样的,因此在一个有n个路由器的网络,会形成(n×(n?1))/2个邻接关系,我们可以做一些优化,在一个MA网络中选出一个DR角色出来,DR(Designated Router)即指定路由器和BDR(Backup Designated Router)和DROther(非DR路由器)

 规定:DR/BDR和BDR可以建立FULL的连接关系   DROther之间只能建立2-way的关系
DR和BDR监听的地址为224.0.0.6
DROther监听的地址为224.0.0.5
DROther路由器将路由信息发往226.0.0.6这个目标地址,因为这个目标ip地址是DR或者BDR设备监听的,然后DR设备会监听到这些路由信息,DR设备会把路由信息发往224.0.0.5这个IP地址,因为224.0.0.5这个IP地址是所有运行OSPF的路由器监听的,这样所有的路由器都能够收到这个路由信息

DR作用:

1、减少连接关系数量也就是full的关系
2、产生LSA-2

选举规则:

DR/BDR的选举是基于接口的。
接口的DR优先级越大越优先。
接口的DR优先级相等时,Router ID越大越优先。

注意:

优先级为0是不参与DR与BDR的选举的
一般建议人工干预进行DR和BDR的选择
只有MA的网络才会选择DR和BDR
P2P和P2MP中不选举DR和BDR
接口优先级 默认情况是1 取值范围就是0~255

命令

[R1-GigabitEthernet0/0/0]ospf dr-priority ?
  INTEGER<0-255>  Router priority value
[R1-GigabitEthernet0/0/0]ospf dr-priority 1
通过命令怎么查看
<R1>display ospf interface GigabitEthernet 0/0/0

         OSPF Process 10 with Router ID 1.1.1.1
                 Interfaces 

 Interface: 192.168.12.1 (GigabitEthernet0/0/0)
 Cost: 10      State: BDR       Type: Broadcast    MTU: 1500  
 Priority: 1
 Designated Router: 192.168.12.2
 Backup Designated Router: 192.168.12.1
 Timers: Hello 10 , Dead 40 , Poll  120 , Retransmit 5 , Transmit Delay 1 
<R1>

选举的过程:

1、首先选择的是DROther集合
2、然后选择的是BDR
3、最后选择的是DR
技术图片
问题:
1、左边DR、BDR、DROther是谁?
2、右边DR、BDR、DROther是谁?
技术图片
线路恢复后:
1、DR是谁?BDR是谁?DROther是谁?
2、当DR出现故障后,DR是谁?BDR是谁?DROther是谁?
3、当DR恢复后,DR是谁?BDR是谁?DROther是谁?
技术图片

总结:
1、DR/BDR是非抢占的进行选择的
2、首先选择的是DROther
3、然后选择的是BDR
4、最后选择的是DR

邻接过程

技术图片
技术图片

? ExStart:邻居状态变成此状态以后,路由器开始向邻居发送DD报文。Master/Slave关系是在此状态下形成的,初始DD序列号也是在此状态下确定的。在此状态下发送的DD报文不包含链路状态描述。
? Exchange:在此状态下,路由器与邻居之间相互发送包含链路状态信息摘要的DD报文。
? Loading:在此状态下,路由器与邻居之间相互发送LSR报文、LSU报文、LSAck报文。
? Full:LSDB同步过程完成,路由器与邻居之间形成了完全的邻接关系。

OSPF协议网络类型

数据链路层协议类型多种多样,工作机制也各不相同。
为适配多种数据链路层协议,必须考虑各类链路层协议在组网时的应用场景。
[R1-GigabitEthernet0/0/1]ospf network-type

技术图片

P2P网络

技术图片

P2P网络连接了一对路由器,广播、组播数据包都可以转发。
P2P网络的例子:两台通过PPP(Point-to-Point Protocol)链路相连的路由器网络。
特点:
仅两台路由互连

技术图片
查看OSPF的邻居状态
技术图片
通过抓包可以看到目的ip地址都是224.0.0.5
技术图片

结论
DR和BDR监听的地址为224.0.0.6
DROther监听的地址为224.0.0.5
P2P所有报文都是224.0.0.5

详细查看OSPF在接口下的信息
技术图片
观察P2P网络类型的状态机的变化过程
技术图片

结论:在P2P中是没有2-way邻居关系的,说明P2P类型下,是不需要选择DR和BDR的

OSPF在P2P网络类型不同网段之间建立邻居关系

技术图片
问题:P2P链路上两边不在同一个网段,full关系能够建立起来吗?
技术图片
技术图片

广播型网络

技术图片

广播型网络的例子:通过以太网链路相连的路由器网络。
两台或两台以上的路由器通过共享介质互连。
支持广播、组播。

技术图片

其中,DR是123.0.0.5
BDR是123.0.0.4
DROther是123.0.0.3

技术图片
技术图片
技术图片
在R3的G0/0/0接口抓包看到的现象
技术图片

总结:广播类型报文中所使用的地址
Hello报文: 组播报文:224.0.0.5
DBD报文:单播报文
LSR报文:单播报文
LSU报文:单播、组播报文.5或者.6
LSACK报文:单播、组播报文 .5或者.6

广播网络下不同网段

将R3的G0/0/0地址改为192.168.1.1/24,看看R3能否可以和R4、R5建立OSPF关系起来?
技术图片
技术图片技术图片技术图片技术图片

网络类型混合

左边是P2P 右边是广播网络 看下是否能够建立起OSPF的关系
技术图片
在R1这边查看OSPF的接口状态是P2P
技术图片
在R2这边查看OSPF的接口状态时Broadcast状态
技术图片
R1和R2已经建立起OSPF的FULL的邻接关系了
技术图片
R2和R1已经建立起OSPF的FULL的邻接关系了
技术图片
在R1上面查看状态机如下
技术图片
在R2上面查看状态机如下
技术图片

NBMA和P2MP

技术图片

OSPF配置介绍

技术图片

什么是反掩码

反掩码也叫做通配符

计算方式:反掩码=255.255.255.255-掩码
比如:192.168.1.1/24
反掩码=255.255.255.255-255.255.255.0=0.0.0.255

注意:
? 反掩码中的0表示的意思就是精确值
? 反掩码中的255表示的意思就是任意值
有的工程师可能会写反掩码为0.0.0.0(0.0.0.0表示精确匹配)

在R1的area 1当中
network 192.168.12.0 0.0.0.255
或者
network 192.168.12.1 0.0.0.0

R1配置如下命令:

intterface loopback 0
ip address 1.1.1.1 32
[R1]ospf 10 router-id 1.1.1.1   推荐这种方式配置router id
[R1]ospf 10   进入ospf进程里面
[R1-ospf-10]area 1   进入ospf的区域1当中
[R1-ospf-10-area-0.0.0.1]network 192.168.12.0 0.0.0.255  是在我们区域1当中宣告我们的网段

R2配置如下命令:

intterface loopback 0
ip address 2.2.2.2 32
[R1]ospf 10 router-id 2.2.2.2   推荐
[R2]ospf 10   进入ospf进程里面
[R2-ospf-10]area 1   进入ospf的区域1当中
[R2-ospf-10-area-0.0.0.1]network 192.168.12.0 0.0.0.255   是在我们区域1当中宣告我们的网段

同理R3 R4 R5的OSPF配置类似于R1 R2的配置

配置完成之后 通过命令查看是否配置成功

[R1]display ospf peer brief 

         OSPF Process 10 with Router ID 192.168.12.1
                  Peer Statistic Information
 ----------------------------------------------------------------------------
 Area Id          Interface                        Neighbor id      State    
 0.0.0.0          GigabitEthernet0/0/0             192.168.12.2     Full        
 ----------------------------------------------------------------------------
[R1]

在R1查看ospf学习到的路由

<R1>display ip routing-table protocol ospf 
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : OSPF
         Destinations : 2        Routes : 2        

OSPF routing table status : <Active>
         Destinations : 2        Routes : 2

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

   192.168.45.0/24  OSPF    10   3           D   192.168.12.2    GigabitEthernet0/0/0
  192.168.234.0/24  OSPF    10   2           D   192.168.12.2    GigabitEthernet0/0/0

OSPF routing table status : <Inactive>
         Destinations : 0        Routes : 0

<R1>

总结:
ospf这边是基于接口划分区域的 在我们OSPF区域当中 其中area 0必须得有 area 0是骨干区域 其他的非区域0叫非骨干区域 非骨干区域必须连接到骨干区域周边

怎么样查看OSPF当中LSDB

<R2>display ospf lsdb 

         OSPF Process 10 with Router ID 192.168.12.2
                 Link State Database 

                         Area: 0.0.0.0
 Type      LinkState ID    AdvRouter          Age  Len   Sequence   Metric
 Router    192.168.234.3   192.168.234.3     1462  36    80000005       1
 Router    192.168.234.4   192.168.234.4     1374  36    80000006       1
 Router    192.168.12.2    192.168.12.2      1459  36    80000007       1
 Network   192.168.234.4   192.168.234.4     1462  36    80000003       0
 Sum-Net   192.168.45.0    192.168.234.4     1362  28    80000001       1
 Sum-Net   192.168.12.0    192.168.12.2      1554  28    80000001       1
 Sum-Net   192.168.2.0     192.168.234.4      327  28    80000001       2
 Sum-Net   192.168.1.0     192.168.12.2       367  28    80000001       2

                         Area: 0.0.0.1
 Type      LinkState ID    AdvRouter          Age  Len   Sequence   Metric
 Router    192.168.12.2    192.168.12.2      1572  36    80000004       1
 Router    192.168.12.1    192.168.12.1       325  48    80000007       1
 Network   192.168.12.1    192.168.12.1        80  32    80000003       0
 Sum-Net   192.168.45.0    192.168.12.2      1361  28    80000001       2
 Sum-Net   192.168.234.0   192.168.12.2      1554  28    80000001       1
 Sum-Net   192.168.2.0     192.168.12.2       326  28    80000001       3

OSPF的开销计算方式

rip这边是通过跳数来计算开销
ospf协议是通过带宽来计算开销
OSPF的开销计算公式为带宽参考值/带宽

[RTA- GigabitEthernet0/0/0]ospf cost 20

一般可以出接口上面修改开销

OSPF认证

OSPF的认证方式分为三种
不认证(默认情况就是不认证)
接口下启动OSPF认证
区域下启用认证

技术图片

OSPF认证的类型分为二种
明文认证(在抓包的时候可以看到密码)
密文认证(在抓包的时候看不到密码)

要么两端都不配置认证
要么两端都都配置simple认证
要么两端都都配置md5认证
(其实  ospf的认证  接口和区域是一样的)因为认证在OSPF头部当中,区域下认证的含义就是把该设备运行OSPF的所有接口都启用该认证

例子:R1配置接口认证 R2在area 1配置区域认证

R1的配置

#
interface GigabitEthernet0/0/0
 ip address 192.168.12.1 255.255.255.0 
 ospf authentication-mode simple plain Huawei 
#

R2的配置

#
 area 0.0.0.1 
  authentication-mode simple plain Huawei 
#

怎么检查是否配置成功
你可以把接口down一下 然后再undo shutdown一下 通过命令行检查一下

[R1]display ospf peer brief 

         OSPF Process 10 with Router ID 192.168.12.1
                  Peer Statistic Information
 ----------------------------------------------------------------------------
 Area Id          Interface                        Neighbor id      State    
 0.0.0.1          GigabitEthernet0/0/0             192.168.12.2     Full        
 ----------------------------------------------------------------------------

看到full就成功了

Key id的作用

技术图片
技术图片
技术图片
R1和R2之间无full的邻接关系
技术图片
技术图片
检查OSPF的错误信息
技术图片
Key id的作用:平滑过渡的作用
技术图片
技术图片

精通企业网络当中网红协议OSPF协议

标签:一个   start   sla   精通   esc   目的   特点   不同   请求   

原文地址:https://blog.51cto.com/13817711/2452446

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!