HCIA-ICT实战基础-OSPF基础
目录
动态路由
OSPF协议概述
OSPF协议工作原理
OSPF协议典型配置
1 动态路由
1.1 动态路由概述
当网络规模越来越大时,使用手动配置静态获取路由条目将变得越发复杂,同时在拓扑发生变化时不能及时、灵活响应.
动态路由协议能够自动发现和生成路由,并在拓扑变化时及时更新路由,可以有效减少管理人员工作量,更适用于大规模网络.
1.2 动态路由分类
2 OSPF协议概述
2.1 为什么需要动态路由协议
静态路由是由工程师手动配置和维护的路由条目,命令行简单明确,适用于小型或稳定的网络。静态路由有以下问题:
•无法适应规模较大的网络:随着设备数量增加,配置量急剧增加。
•无法动态响应网络变化:网络发生变化,无法自动收敛网络,需要工程师手动修改。
2.2 距离矢量路由协议
运行距离矢量路由协议的路由器周期性的泛洪自己的路由表。通过路由的交互,每台路由器都从相邻的路由器学习到路由,并且加载进自己的路由表中。
对于网络中的所有路由器而言,路由器并不清楚网络的拓扑,只是简单的知道要去往某个目的方向在哪里,距离有多远。这即是距离矢量算法的本质
2.3 链路状态路由协议
2.3.1 LSA泛洪
与距离矢量路由协议不同,链路状态路由协议通告的的是链路状态而不是路由表。运行链路状态路由协议的路由器之间首先会建立一个协议的邻居关系,然后彼此之间开始交互LSA(Link State Advertisement,链路状态通告)
2.3.2 LSDB组建
每台路由器都会产生LSA,路由器将接收到的LSA放入自己的LSDB(Link State DataBase,链路状态数据库)。路由器通过LSDB,掌握了全网的拓扑。
2.3.3 SPF计算
每台路由器基于LSDB,使用SPF(Shortest Path First,最短路径优先)算法进行计算。每台路由器都计算出一棵以自己为根的、无环的、拥有最短路径的 “树”。有了这棵“树”,路由器就已经知道了到达网络各个角落的优选路径
2.3.4 路由表生成
最后,路由器将计算出来的优选路径,加载进自己的路由表(Routing Table)
2.4 链路状态路由协议总结
2.5 OSPF简介
- OSPF是典型的链路状态路由协议,是目前业内使用非常广泛的IGP协议之一。
- 目前针对IPv4协议使用的是OSPFVersion2(RFC2328);针对IPv6协议使用OSPF Version3(RFC2740)。如无特殊说明本章后续所指的OSPF均为OSPFVersion2。
- 运行OSPF路由器之间交互的是LS(Link State,链路状态)信息,而不是直接交互路由。LS信息是OSPF能够正常进行拓扑及路由计算的关键信息。
- OSPF路由器将网络中的LS信息收集起来,存储在LSDB中。路由器都清楚区域内的网络拓扑结构,这有助于路由器计算无环路径。
- 每台OSPF路由器都采用SPF算法计算达到目的地的最短路径。路由器依据这些路径形成路由加载到路由表中。
- OSPF支持VLSM(Variable Length Subnet Mask,可变长子网掩码),支持手工路由汇总。
- 多区域的设计使得OSPF能够支持更大规模的网络.
2.6 OSPF在园区网络中的应用
2.7 OSPF基础术语
2.7.1 区域
- OSPF Area用于标识一个OSPF的区域
- 区域是从逻辑上将设备划分为不同的组,每个组用区域号(Area ID)来标识
- 区域分为骨干区域和标准区域
- 骨干区域的区域号为0,通常用Area0表示
- 标准区域的区域号为其他任意整数数值
注: 1. 区域的边界是路由器,不是链路。2. 一个网段(链路)只能属于一个区域,或者说每个运行OSPF的接口必须指明属于哪一个区域。
2.7.2 Router-ID
Router-ID(Router Identifier,路由器标识符),用于在一个OSPF域中唯一地标识一台路由器;
Router-ID的设定可以通过手工配置的方式,或使用系统自动配置的方式.
2.7.3 度量值
OSPF使用Cost(开销)作为路由的度量值, OSPF不同接口因其带宽不同, 有不同的Cost值, 缺省时接口的度量值为Cost=100Mbit/s.
2.8 OSPF协议报文类型
OSPF有五种类型的协议报文。这些报文在OSPF路由器之间交互中起不同的作用
2.9 OSPF三大表项
OSPF有三张重要的表项,OSPF邻居表、LSDB表和OSPF路由表。
2.9.1 邻居表
对于OSPF的邻居表,需要了解:
•OSPF在传递链路状态信息之前,需先建立OSPF邻居关系。
•OSPF的邻居关系通过交互Hello报文建立。
•OSPF邻居表显示了OSPF路由器之间的邻居状态,使用display ospf peer查看
2.9.2 LSDB表
对于OSPF的LSDB表,需要了解:
•LSDB会保存自己产生的及从邻居收到的LSA信息,本例中R1的LSDB包含了三条LSA。
•Type标识LSA的类型,Adv Router标识发送LSA的路由器。
•使用命令行display ospf lsdb查看LSDB表.
2.9.3 OSPF路由表
对于OSPF的路由表,需要了解:
•OSPF路由表和路由器路由表是两张不同的表项。本例中OSPF路由表有三条路由。
•OSPF路由表包含Destination、Cost和Next Hop等指导转发的信息。
•使用命令display ospf routing查看OSPF路由表.
2.10 OSPF报文认证
- OSPF支持报文认证功能,只有通过认证的OSPF报文才能被接收。
- 路由器支持多种OSPF报文认证类型,常见认证类型有两种:
•明文认证(simple),报文authentication-type字段为1
•密文认证(MD5),报文authentication-type字段为2
注:缺省情况下,OSPF不认证,报文authentication-type字段为0 - 路由器支持两种OSPF报文认证方式,当两种认证方式都存在时,优先使用接口认证方式:
•区域认证方式:一个OSPF区域中所有的路由器在该区域下的认证模式和口令必须一致。
•接口认证方式:相邻路由器直连接口下的认证模式和口令必须一致.
3 OSPF协议工作原理
3.1 OSPF路由器之间的关系
- 关于OSPF路由器之间的关系有两个重要的概念,邻居关系和邻接关系。
- 考虑一种简单的拓扑,两台路由器直连。在双方互联接口上激活OSPF,路由器开始发送及侦听Hello报文。在通过Hello报文发现彼此后,这两台路由器便形成了邻居关系。
- 邻居关系的建立只是一个开始,后续会进行一系列的报文交互,例如前文提到的DD、LSR、LSU和LSACK等。当两台路由器LSDB同步完成,并开始独立计算路由时,这两台路由器形成了邻接关系。
3.2 初识OSPF邻接关系建立过程
OSPF完成邻接关系的建立有四个步骤,建立邻居关系、协商主/从、交互LSDB信息,同步LSDB
3.3 OSPF邻接关系建立流程
3.4 OSPF邻居表回顾
3.5 OSPF网络类型简介
- 在学习DR和BDR的概念之前,需要首先了解OSPF的网络类型。
- OSPF网络类型是一个非常重要的接口变量,这个变量将影响OSPF在接口上的操作,例如采用什么方式发送OSPF协议报文,以及是否需要选举DR、BDR等。
- 接口默认的OSPF网络类型取决于接口所使用的数据链路层封装。
- 如图所示,OSPF的有四种网络类型,Broadcast、NBMA、P2MP和P2P
3.6 DR与BDR的背景
-
MA(Multi-Access)多路访问网络有两种类型:广播型多路访问网络(BMA)及非广播型多路访问网络(NBMA)。以太网(Ethernet)是一种典型的广播型多路访问网络。
-
在MA网络中,如果每台OSPF路由器都与其他的所有路由器建立OSPF邻接关系,便会导致网络中存在过多的OSPF邻接关系,增加设备负担,也增加了网络中泛洪的OSPF报文数量。
-
当拓扑出现变更,网络中的LSA泛洪可能会造成带宽的浪费和设备资源的损耗
- 为优化MA网络中OSPF邻接关系,OSPF指定了三种OSPF路由器身份,DR(DesignatedRouter,指定路由器)、BDR(BackupDesignatedRouter,备用指定路由器)和DRother路由器。
- 只允许DR、BDR与其他OSPF路由器建立邻接关系。DRother之间不会建立全毗邻的OSPF邻接关系,双方停滞在2-way状态。
- BDR会监控DR的状态,并在当前DR发生故障时接替其角色
3.7 OSPF域与单区域
- OSPF域(Domain):一系列使用相同策略的连续OSPF网络设备所构成的网络.
- OSPF路由器在同一个区域(Area)内网络中泛洪LSA。为了确保每台路由器都拥有对网络拓扑的一致认知,LSDB需要在区域内进行同步.
- 如果OSPF域仅有一个区域,随着网络规模越来越大,OSPF路由器的数量越来越多,这将导致诸多问题.
- LSDB越来越庞大,同时导致OSPF路由表规模增加。路由器资源消耗多,设备性能下降,影响数据转发.
- 基于庞大的LSDB进行路由计算变得困难.
- 当网络拓扑变更时,LSA全域泛洪和全网SPF重计算带来巨大负担.
3.8 OSPF多区域
-
OSPF引入区域(Area)的概念,将一个OSPF域划分成多个区域,可以使OSPF支撑更大规模组网。
-
OSPF多区域的设计减小了LSA泛洪的范围,有效的把拓扑变化的影响控制在区域内,达到网络优化的目的。
-
在区域边界可以做路由汇总,减小了路由表规模。
-
多区域提高了网络扩展性,有利于组建大规模的网络。
注意事项:骨干区域负责区域之间的路由,非骨干区域之间的路由信息必须通过骨干区域来转发。
3.9 OSPF路由器类型
OSPF路由器根据其位置或功能不同,有这样几种类型:
- 区域内路由器(InternalRouter)
- 区域边界路由器ABR(AreaBorderRouter)
- 骨干路由器(BackboneRouter)
- 自治系统边界路由器ASBR(ASBoundaryRouter)
4 OSPF协议典型配置-OSPF基础配置命令
-
(系统视图)创建并运行OSPF进程
[Huawei]ospf [process-id | router-id router-id]
porcess-id用于标识OSPF进程,默认进程号为1。OSPF支持多进程,在同一台设备上可以运行多个不同的OSPF进程,它们之间互不影响,彼此独立。router-id用于手工指定设备的ID号。如果没有通过命令指定ID号,系统会从当前接口的IP地址中自动选取一个作为设备的ID号.
-
(OSPF视图)创建并进入OSPF区域
[Huawei]area area-id
area命令用来创建OSPF区域,并进入OSPF区域视图。
area-id可以是十进制整数或点分十进制格式。采取整数形式时,取值范围是0~4294967295。 -
(OSPF区域视图)指定运行OSPF的接口
[Huawei-ospf-1-area-0.0.0.0]network network-address wildcard-mask
network命令用来指定运行OSPF协议的接口和接口所属的区域。network-address为接口所在的网段地址。
wildcard-mask为IP地址的反码,相当于将IP地址的掩码反转(0变1,1变0),例如0.0.0.255表示掩码长度24bit。 -
(接口视图)配置OSPF接口开销
[Huawei-GE0/0/1]ospf cost cost
ospfcost命令用来配置接口上运行OSPF协议所需的开销。缺省情况下,OSPF会根据该接口的带宽自动计算其开销值.
cost取值范围是1~65535。 -
(OSPF视图)设置OSPF带宽参考值
[Huawei-ospf-1]bandwidth-reference value
bandwidth-reference命令用来设置通过公式计算接口开销所依据的带宽参考值。value取值范围是1~2147483648,
单位是Mbit/s,缺省值是100Mbit/s -
(接口视图)设置接口在选举DR时的优先级
[Huawei-GE1/0/1]ospf dr-priority priority
ospfdr-priority命令用来设置接口在选举DR时的优先级。priority值越大,优先级越高,取值范围是0~255