IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> OSPF协议分析与配置 -> 正文阅读

[系统运维]OSPF协议分析与配置

本文简要分析OSPF协议的原理和应用,利用Cisco Packet Tracer仿真器搭建环境,对OSPF协议进行实验配置,供学习记录。

按照作用于AS的范围,常见路由协议可划分为两类:

  • 内部网关协议 (Interior Gateway Protocols, IGP):具体包括RIP、OSPF、IS-IS、EIGRP等,一般由单个ISP运营于一个AS内,有统一的自治系统号,目前大型企业内部多使用OSPF、IS-IS,小型企业内部使用RIP或静态路由
  • 外部网关协议 (Exterior Gateway Protocols, EGP):BGP是目前唯一使用的一种EGP协议,它是AS间的路由协议,一般用于不同ISP之间交换路由信息,以及大型企业、政府等具有较大规模的私有网络

下面对内部网关协议中的OSPF进行介绍:

一、基本原理

OSPF(Open Shortest Path First) 是一种链路状态路由协议,它克服了距离矢量路由协议依赖邻居进行路由决策的缺点,报文基于IP,多部署于中大型园区、企业或城域网中。

OSPF提出了“区域”的概念,将AS划分成多个逻辑区域,每个区域中所有路由器通过组播的方式 (224.0.0.5 或 225.0.0.6) 宣告链路状态建立并维护着一个相同的链路状态数据库 (Link State DataBase, LSDB),其中存放着接口的相关信息 (IP地址、带宽以及所连接的邻居等),OSPF路由器通过各自的LSDB,利用最短路径优先算法 (Shortest Path First, SPF, 也称为Dijkstra算法) 生成最短路径树并构造路由表,其路径开销 (Cost) 计算基于接口的带宽,每个区域的OSPF路由器负责各自区域的LSA传递及路由计算。

(一) 区域类型

划分多区域的优势在于收敛快、易于维护管理、方便扩展,区域的划分基于网段 (路由器接口),区域类型分为两类:

  • 骨干区域 (传输区域):Area 0,1个AS中一般只存在1个Area 0区域
  • 非骨干区域 (常规区域):Area x,1个AS中可以有多个Area x区域,根据能够学习的路由信息种类进而细分为四类:
    标准区域 (Standard Area):正常传输数据的区域
    末节区域 (Stub Area):禁用外部AS的信息
    完全末节区域 (Totally Stub Area):禁用外部AS和区域间信息
    非纯末节区域 (NSSA):禁用非直连的外部AS信息

常规区域只能和骨干区域交换LSA,常规区域相互之间无法交换LSA,因此所有的常规区域应该直接和骨干区域相连,骨干区域的功能类似中转站,将常规区域间的LSA信息进行转发和交换。

(二) 路由器类型

根据路由器接口所在区域的类型,相应地路由器分为四类:

  • 内部路由器 (Internal Router, IR):所有接口都在同一个区域内,只维护本区域的LSDB
  • 区域边界路由器 (Area Border Routers, ABR):同时属于两个以上的区域,其中必须包括骨干区域 (物理连接或通过虚链路连接),用于连接骨干区域和非骨干区域
  • 骨干路由器 (BackBone Router, BR):所有ABR和位于骨干区域内的路由器都属于骨干路由器,只维护骨干区域的LSDB,
  • 自治系统边界路由器 (AS Boundary Routers, ASBR):与其他AS交换路由信息的路由器,可以使用多种路由协议,可以是ABR,也可以是内部路由器

基本区域划分和路由器类型如下图所示:
在这里插入图片描述

(三) Router-ID

Router-ID是OSPF路由器的唯一身份标识,Router-ID格式与IP一致,可以手动进行配置,如果不配置系统则会自动将路由器环回接口 (Loopback Interface) 中最大的IP作为Router-ID,只要路由器在线,环回接口就处于活动状态,如果没有环回接口,则选择活动的物理接口中最大的IP作为Router-ID。

(四) DR / BDR / DROTHER

在一个OSPF区域中,当路由器之间建立邻居关系后,为避免LSA信息重复发送,选举一个路由器作为指定路由器 (Designated Router, DR),再选举一个路由器作为备份指定路由器 (Backup Designated Router, BDR),其他的路由器为非指定路由器 (DROTHER)。在LSA信息更新时,此区域内发生更新的路由器将LSA发送到DR,再由DR发送到其他区域内的路由器,一个区域内邻居路由器只和DR交换LSA信息,这样节省了网络流量。在DR出现故障时,BDR起着备份的作用,确保网络的可靠性。

DR和BDR的选举首先通过是通过时间,最先启动的OSPF路由器会启动一个定时器 (CISCO 40s),定时器结束前如果没有其他的OSPF启动,则这唯一的OSPF路由器当选为DR;当有多个OSFP路由器时则先比较优先级,优先级高的选为DR,次高的为BDR;如果优先级相同则通过比较Router-ID大小,Router-ID大的选为DR,次高的为BDR;其他的OSPF路由器为DROTHER。

(五) 路由器状态

OSPF路由器在同步LSDB过程中,分为七种状态:

  • Down:接口没有启用OSPF的状态,邻居失效后变为该状态
  • Init:初始化状态,发送完HELLO包,状态就从Down变为Init
  • 2-way:接收到了对方的HELLO包之后,从Initial变为2-way邻居状态,开启40秒定时器,相互间周期发送HELLO报文(10秒发一次),给足够的时间深度发现其他路由器发送的HELLO包,等待40秒定时器超时
  • Exstart:定时器40秒超时后,状态变为Exstart,但是在变为Exstart状态前,会完成DR和BDR的选举,进入Exstart状态后立即选举主从路由器,引导接下来报文的发送
  • Exchange:主从关系确认后,开始交换DBD报文 (本地LSA摘要信息),告知对端本地所有的LSA摘要信息
  • Loading:发送完LSA摘要信息后,再通过发送LSR、LSU、LSACK报文更新LSA,学习对端路由器的LSA详细信息
  • Full:LSA详细信息学习完毕后,状态变为Full邻接状态,LSDB完成同步,此时在单个域内所有路由器的LSDB相同

(六) 虚链路

非骨干区域和骨干区域之间通过ABR中转LSA,其他路由器需要向ABR建立一条虚链路 (虚链路只能跨一个区域),否则无法同步LSDB信息。如下所示,RT2与RT3建立虚链接后,使得Area2与Area0之间形成逻辑连接,否则LSDB信息无法同步。
在这里插入图片描述
骨干区域必须是一个整体,虚链路也可以将隔开的两个骨干区域相连接,如下所示,RT2与RT3建立虚链接后,Area0在逻辑上成为一个整体。
在这里插入图片描述

(七) 常见LSA类型

LSA类型名称作用路由表符号
Type1Router LSA所有路由器都会产生,只在本区域内泛洪,用于通告路由器自身所有的链路和接口的状态以及开销O
Type2Network LSA由一个多路访问网络中的DR产生,只在本区域内泛洪,用于通告DROTHER路由信息以及与之相连的路由器包括DR本身O
Type3Network Summary LSA由ABR产生,用于通告与ABR相连的区域内所有路由器的路由信息,不同区域的路由将指向通告LSA的ABRIA
Type4ASBR Summary LSA由ABR产生,用于通告ASBR路由器地址,在整个AS的标准区域内泛洪IA
Type5AS External LSA由ASBR产生,用于通告与ASBR相连的其他AS的路由信息,在整个AS的标准区域内泛洪E1/E2
Type7NSSA External LSA由连接到NSSA的ASBR产生,通告内容和类型5 LSA基本相同,区别在于只在产生此LSA的NSSA区域内部泛洪,可以通过ABR转换称类型5 LSAN1/N2

(八) 工作过程

① 建立邻居关系:OSPF路由器初始化时,在同一区域的相邻路由器之间通过HELLO报文发现并建立邻居关系,路由器状态为2-way;

② 同步LSDB (建立邻接关系):互为邻居关系的路由器首先选举出DR/BDR,然后通过数据库描述报文 (DataBase Description, DBD) 相互发送链路状态通告 (Link State Adervertisement, LSA),包括接口地址、带宽、邻居等链路状态信息,收到LSA的路由器将信息保存在LSDB中,然后继续发送相同的LSA到该路由器的邻居,而邻接关系就是邻居路由器之间为完成LSDB同步而发生的LSA交互过程 (通常是同一个区域的DR和DROTHER之间) ,当LSA传播到整个区域后,单个区域内所有的路由器都会形成相同的LSDB,路由器状态为Full;

③ 构建路由表:同一个区域内的路由器通过Type1和Type 2 LSA通告同步LSDB,同步后同一个区域内的LSDB是相同的,路由器会结合自身LSDB信息,使用SPF算法生成最短路径树,构建出各自的区域内路由表;区域间路由则依靠ABR完成,ABR会查找其相邻区域内的路由表,每一条表项生成一条Type3类型的LSA,然后将Type3 LSA泛洪到其他相邻区域 (此类型LSA只有路由信息,不包含链路状态信息,不参与SPF计算),在泛洪区域的路由器会根据Type3 LSA生成区域间路由信息,路由的下一跳指向发布LSA的ABR,路由信息直接加入路由表项;

④ 路由信息维护:邻居之间根据配置固定时间交换hello数据包作为心跳消息,并且每隔30分钟重传一次LSA。如果网络拓扑稳定,那么OSPF将是稳定的。如果网络拓扑发生了变化,比如有节点故障或者新增节点,那么将重新开始交换信息并计算路由。

(九) 优缺点分析

优点

  • 收敛速度快,能够在最短的时间内将路由变化传递到整个自治系统
  • 没有跳数限制,支持大量网络节点,适用于大规模网络
  • 采用路径开销 (Cost) 作为度量标准,路径开销计算基于接口的带宽
  • 划分区域进行管理,减少大规模网络中协议运行的流量和开销

缺点

  • 配置复杂,需要区分不同的网络区域和路由器类型
  • 路由负载均衡性较差,通常只路由最佳路径,而不能均衡不同路径间的流量

二、实验配置

(一) 实验拓扑

在这里插入图片描述

(二) 配置命令

(VLAN、DHCP、NAT等基础配置略过,只记录路由配置部分)

# R0配置
R0(config)# ip route 0.0.0.0 0.0.0.0 1.1.1.1   // 边界路由器设置静态路由指向ISP的路由器       

# R1配置
R1(config)# interface lookback 0               // 配置环回接口,接口地址用于配置Router-ID,范围 0-2147483647
R1(config-if)# ip address 10.10.10.1 255.255.255.255
R1(config-if)# exit
R1(config)# router ospf 1                      // 启动OSPF进程,范围 1-65535       
R1(config-router)# router id 10.10.10.1        // 配置Router-ID
R1(config-router)# network 1.1.1.0 0.0.0.255 area2  // 宣告直连网段和所属区域,用反向掩码表示子网掩码
R1(config-router)# network 2.2.2.0 0.0.0.255 area2  
R1(config-router)# network 10.10.10.1 0.0.0.0 area2
R1(config-router)# exit

# R2配置
R2(config)# interface lookback 0              
R2(config-if)# ip address 10.10.10.2 255.255.255.255
R2(config-if)# exit
R2(config)# router ospf 1                           
R2(config-router)# router id 10.10.10.2       
R2(config-router)# area 1 virtual-link 10.10.10.3   // 建立虚连接,指向跨越区域ABR的Router-ID
R2(config-router)# network 2.2.2.0 0.0.0.255 area2   
R2(config-router)# network 3.3.3.0 0.0.0.255 area1
R2(config-router)# network 10.10.10.2 0.0.0.0 area1
R2(config-router)# exit

# R3配置
R3(config)# interface lookback 0               
R3(config-if)# ip address 10.10.10.3 255.255.255.255
R3(config-if)# exit
R3(config)# router ospf 1                      
R3(config-router)# router id 10.10.10.3   
R3(config-router)# area 1 virtual-link 10.10.10.2  
R3(config-router)# network 3.3.3.0 0.0.0.255 area1  
R3(config-router)# network 4.4.4.0 0.0.0.255 area0
R3(config-router)# network 10.10.10.3 0.0.0.0 area1
R3(config-router)# exit

# R4配置
R4(config)# interface lookback 0           
R4(config-if)# ip address 10.10.10.4 255.255.255.255
R4(config-if)# exit
R4(config)# router ospf 1                        
R4(config-router)# router id 10.10.10.4       
R4(config-router)# network 4.4.4.0 0.0.0.255 area0 
R4(config-router)# network 5.5.5.0 0.0.0.255 area0
R4(config-router)# network 10.10.10.4 0.0.0.0 area0
R4(config-router)# exit

# R5配置
R5(config)# ip route 0.0.0.0 0.0.0.0 5.5.5.2            

配置后可用命令查看路由信息:

# 查看OSPF配置信息
Router(config)# show ip ospf ?

# 查看路由表,可见OSPF同步的路由表项目
Router(config)# show ip route
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-12-24 18:55:01  更:2021-12-24 18:55:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 6:01:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码