0

路由基础学习笔记之OSPF认证

 1 year ago
source link: https://blog.51cto.com/u_15606213/5378922
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

OSPF中的认证​

认证的目的:

防止不受信任的设备接入到OSPF域中​

认证效果:

认证信息存在于OSPF的所有报文的头部,认证不通过,所有的五种LSA报文都无法正常收发,

特别说明,不只是Hello包里有认证导致邻居无法建立

  1. MD5认证
  1. 接口认证优先,接口没有看区域认证,

A-接口明文认证

配置命令:

interface GigabitEthernet0/0/0​
ospf authentication-mode simple HCIP 其中大写HCIP为明文密码

配置输出显示:

在dis curr中密码是被加密显示的,防止密码泄露

路由基础学习笔记之OSPF认证_链路

抓包显示:

路由基础学习笔记之OSPF认证_序列号_02

B-接口密文认证

配置命令:

interface GigabitEthernet0/0/0​
ospf authentication-mode md5 1 HCIE 其中大写HCIE为明文密码

配置输出显示:

在dis curr中密码是被加密显示的,防止密码泄露

路由基础学习笔记之OSPF认证_组播_03

抓包显示:

路由基础学习笔记之OSPF认证_组播_04

C-区域明文认证,

配置命令:

[R1-ospf-1]area 1​
[R1-ospf-1-area-0.0.0.1]authentication-mode simple HCIE

配置输出显示:

在dis curr中密码是被加密显示的,防止密码泄露

路由基础学习笔记之OSPF认证_序列号_05

路由基础学习笔记之OSPF认证_组播_06

4-区域密文认证,

配置命令:

area 0.0.0.1

authentication-mode md5 1 HCIE

ospf authentication-mode md5 1 HCIP 其中大写HCIP为明文密码

配置输出显示:

路由基础学习笔记之OSPF认证_组播_07

抓包显示:

路由基础学习笔记之OSPF认证_序列号_08

六,即使配置的是明文密码,默认也会在dis curren中将密码加密显示,强制配置输出为明文的办法

interface GigabitEthernet0/0/0​
ospf authentication-mode simple plain 123 其中123为明文密码
area 0.0.0.1 ​
authentication-mode simple plain 456 其中456为明文密码

OSPF的基本工作原理

一、邻居建立流程

路由器标识

用于唯一标识自治系统中运行OSPF的路由器。每个运行OSPF的路由器都有一个路由器标识。

路由标识是一个32位无符号整数,格式与IP地址相同。路线的选举规则如下:

1)通常建议手动配置OSPF路由器的路由器标识。

2)如果路由器ID不是手动配置的,则路由器使用LoopBack接口中最大的IP地址作为路由器ID;

如果没有配置环回接口,路由器使用物理接口中最大的ip地址作为路由id。

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

查找并建立邻居问候消息

发出hello包

邻居发现:自动发现邻居路由器。

邻居建立:完成Hello消息中的参数协商,建立邻居关系。

邻居保活:通过保活机制检测邻居的运行状态。

OSPF邻居建立过程

邻居建立过程

目前RTA和RTB的路由器id分别为1.1.1.1和2.2.2.2。当RTA启动OSPF时,RTA将发送第一条hello消息,其中邻居列表为空。此时,状态为关闭,RTB收到来自RTA的问候消息,状态设置为初始化。

RTB发送hello消息,其中邻居列表为空,RTA接收来自RTB的hello消息,状态设置为init。

 RTB向RTA发送带有1.1.1.1邻居列表的问候消息。RTA在收到的hello消息的邻居列表中找到它的路由器id,它的状态设置为双向。

 RTA向RTB发送邻居列表为2.2.2.2的hello消息,RTB在收到的hello消息的邻居列表中找到其路由器id,状态设置为双向;

由于邻居未知,hello报文的目的IP地址不是特定的单播地址,ospf通过组播发送hello报文(目的地址为224.0.0.5)。

对于不支持组播的网络,ospf路由如何找到邻居?

Ospf支持通过单播建立邻居关系,对于不支持的网络,可以通过手动配置实现邻居的发现和维护。

两台路由器之间的邻居关系是同步链路状态信息。然后了解OSPF如何同步链路状态数据库。

链接状态信息

OSPF链路状态信息主要包括

链路类型、接口的ip地址和掩码、连接到链路的相邻路由器以及链路的带宽(开销)。

OSPF拥有丰富的数据链路层能力、各种数据链路层协议和不同的工作机制。为了适应各种数据链路层协议,必须考虑各种链路层协议在组网中的应用场景。

OSPF定义各种网络

P2p网络:只有两条路由互联,支持广播和组播。

广播网络:两台或多台路由器通过共享媒体互连,支持广播、组播和广播网络。

示例:通过以太网链路连接的路由器网络。是OSPF最常见的网络类型。

NBMA网络:两台或更少的路由器通过虚电路互连,不支持广播和组播。在NBMA网络上,OSPF模拟广播网络上的操作,但每台路由器的邻居需要手动配置。NBMA型网络的例子是通过完全互连的帧中继链路连接的路由器网络。

P2MP网络:多个点对点网络的集合,支持广播和组播。默认情况下,没有链路层协议属于P2MP网络,这意味着它必须被其他网络类型更改为P2MP。一般连接不完全的帧中继或ATM必须是P2MP网络。

如何衡量OSPF链路状态信息的成本价值?

接口成本=参考带宽/实际带宽,默认参考带宽为100m。当计算中有小数位时,只取整数位;当结果小于1时,成本取1。

改变成本有两种方法:

直接在界面下配置

修改参考带宽(需要修改所有路由器以确保选择的一致性)

消息类型和功能

身份验证类型:0表示没有身份验证;1表示简单明文密码认证;2表示加密的MD5身份验证。

认证:认证所需的信息。此字段的内容因autype的值而异。

OSPF的消息头定义了OSPF路由器之间的通信标准和规则。

OSPF报文类型

type=1为hello报文,用来建立和维护邻居关系,邻居关系建立之前,路由器之间需要进行参数协商

type=2为数据库描述报文(DD),用来向邻居路由器描述本地链路状态数据库。使得邻居路由器识别出数据库中的LSA是否完整。

type=3为链路状态请求报文(LSR),路由器根据邻居的DD报文,判断本地数据库是否完整,如不完整,路由器把这些LSA记录进链路状态请求列表中,然后发送一个LSR给邻居路由器

type=4为链路状态更新报文LSU,用于响应邻居路由器发来的LSR,根据LSR中的请求列表,发送对应LSA给邻居路由器,真正实现LSA的泛洪与同步

type=5为链路状态确认报文(LSACK),用来对收到的LSA进行确认,保证同步过程的可靠性。

DD报文和LSACK中包含LSA头部信息:包括 LS type ls id advertising router ls sequence ls checksum; LSU报文中包含完整的LSA信息, LSR 包含LS type ls id advertising router

LSDB同步过程

五种报文可以高效地完成LSA的同步 ,那么实际的报文交互过程是什么样的呢?

同步状态图

各个状态含义:

exstart:邻居状态变成此状态后,路由器开始向邻居发送DD报文。master和slave关系是在此状态形成的,初始DD序列号也是在此状态下确定的,在此状态下发送的DD报文不包含链路状态描述。

exchange:在此状态下,路由器与邻居之间相互发送包含链路状态信息摘要的DD报文。

loading:在此状态下,路由器与邻居之间相互发送LSR报文,LSU报文,LSAck报文

full:lsdb同步过程完成。路由器与邻居之间形成了完全的邻接关系。

LSDB同步过程

RTA和RTB的router ID 分别为1.1.1.1 和2.2.2.2并且二者已经建立 了邻居关系,当RTA的邻居状态变为exstart后,RTA会发送第一个DD报文,此报文中,DD序列号被随机设置为X,I-bit设置为1,表示这是第一个DD报文,M-bit设置为1,表示后续还有DD报文要发送,MS-bit设置为1,表示RYA宣告自己为master。

当RTB的邻居状态变为exstart后,rtb会发送第一个dd报文,此报文中,dd序列号被随机的设置为Y(i-bit=1,m-bit=1,ms-bit=1,含义同上)。由于rtb的router ID较大,所在rtb将成为真正的master,收到此报文后,rta会产生一个negotiation-done事件,并将邻居状态从exstart变为exchange。

当RTA的邻居状态变为exchange后rta会发送一个新的dd报文,此报文中包含了LSDB的摘要信息,序列号设置为RTB在步骤2中使用的序列号Y, I-bit=0,表示这不是第一个DD报文,M-bit=0,表示这是最后一个包含LSDB摘要信息的DD报文,MS-bit=0,表示RTA宣告自己为SLAVE,收到此报文后,RTB会产生一个negotiation-done事件,并将邻居状态从exstart变为exchange。

当RTB的邻居状态变为exchange后RTB会发送一个新的DD报文,此报文包含了LSDB的摘要信息,DD序列号设置为Y+1,MS-bit=1,表示RTB宣告自己为master

虽然RTA不需要发送新的包含LSDB摘要信息的DD报文,但是作为slave,RTA需要对master发送的第一个DD报文进行确认,所以RTA向RTB发送一个新的DD报文,序列号为Y+1,该报文内容为空,发送完此报文后,RTA产生一个exchange-Done事件,将邻居状态变为loading。RTB收到此报文后,会将邻居状态变为full。(假设RTB的LSDB是最新最全的,不需要向RTB请求更新)

O_ASE   ASE

属于引入的外部路由协议的路由信息

1.AS : autonomous system自治系统,是指网络中使用相同路由协议或遵循相同路由管理策略的一组路由器。

2.ASBR 自治系统边界路由器。是指在OSPF网络中同时运行多中路由协议,并将不同协议的路由在两个自治系统重新发布的路由器。

备注:如有错误,请谅解!

此文章为本人学习笔记,仅供参考!如有重复!!!请联系本人


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK