- 什么是OSPF?
- OSPF(Open Shortest Path First,开放式最短路径优先)是典型的链路状态路由协议。
- 运行OSPF路由器之间交互的是LS(Link State,链路状态)信息,而不是直接交互路由。LS信息是OSPF能够正常进行拓扑及路由计算的关键信息。
- OSPF路由器将网络中的LS信息收集起来,存储在LSDB中。路由器都清楚区域内的网络拓扑结构,这有助于路由器计算无环路径。
- 每台OSPF路由器都采用SPF算法计算达到目的地的最短路径。路由器依据这些路径形成路由加载到路由表中。
- OSPF支持VLSM(Variable Length Subnet Mask,可变长子网掩码),支持手工路由汇总。多区域的设计使得OSPF能够支持更大规模的网络。
- OSPF协议报文类型
- 报文名称 报文功能
- hello 周期性发送,用来发现和维护OSPF邻居关系
- Database Description 描述本地LSDB的摘要信息,哟用于两台设备进行数据库同步
- Link State Reques 用于向对方请求所需要的LSA,设备只有在OSPF邻居双方成功交换DD报文后才会想对方发出LSR报文
- Link State Update 用于向对方发送其所需要的LSA
- Link State ACK 用来对收到的LSA进行确认
- OSPF三大表项-邻居表
- OSPF在传递链路状态信息之前,需先建立OSPF邻居关系。
- OSPF的邻居关系通过交互Hello报文建立。
- OSPF邻居表显示了OSPF路由器之间的邻居状态,使用display ospf peer查看。
- OSPF三大表项 - LSDB表
- LSDB会保存自己产生的及从邻居收到的LSA信息
- Type标识LSA的类型,AdvRouter标识发送LSA的路由器。
- 使用命令行display ospf lsdb查看LSDB表
- OSPF三大表项 - OSPF路由表
- OSPF路由表和路由器路由表是两张不同的表项。
- OSPF路由表包含Destination、Cost和NextHop等指导转发的信息。
- 使用命令display ospf routing查看OSPF路由表。
- OSPF协议工作原理
- OSPF完成邻接关系的建立有四个步骤,建立邻居关系、协商主/从、交互LSDB信息,同步LSDB。
- OSPF邻居关系建立满足条件
- Area-id:两个路由器必须在共同的网段上,它们的端口必须属于该网段上的同一个区,且属于同一个子网
- 验证(Authentication OSPF):同一区域路由器必须交换相同的验证密码,才能成为邻居
- Hello Interval和Dead Interval: OSPF协议需要两个邻居路由器的这些时间间隔相同,否则就不能成为邻居路由器。
- stub区域标记:两个路由器可以在Hello报文中通过协商Stub区域的标记来成为邻居
- OSPF邻接关系建立流程 建立邻居关系
- A (Router ID:1.1.1.1) B(Router ID:2.2.2.2)
- A————————————-——>B (A向B发送)Hello报文我是1.1.1.1,我还不知道链路上有谁 B发现R1(1.1.1.1)了,将它添加到我的邻居表。邻居表中B状态为Init。
- B<————————————-——A (B向A发送) Hello报文我是2.2.2.2,我发现了邻居1.1.1.1 A 发现B(2.2.2.2)了,将它添加到我的邻居表。由于B发现我了,所以邻居表中B的状态为2-Way。
- A————————————-——>B (A向B发送)Hello报文我是1.1.1.1,我发现了邻居2.2.2.2 A发现我了,我在邻居表中将1.1.1.1的状态切换到2-Way。
- 2-way<双向通讯,邻居关系建立的标志>
- OSPF邻接关系建立流程 协商主/从、交互LSDB信息
- A (Router ID:1.1.1.1) B(Router ID:2.2.2.2)
- A————————————-——>B (A向B发送) DD(内容为空,序列号为X)我是Master,我的Router-ID是1.1.1.1 此时A、B的状态都是Ex-start<预启动> 内容为空是还没有建立邻接关系
- B<————————————-——A (B向A发送) DD(内容为空,序列号为Y)我是Master,我的Router-ID是2.2.2.2 此时A的状态为 Exchange 准交换 (以Router ID更大的R2为主) 协商主/从
- A————————————-——>B (A向B发送)DD(序列号为Y)这是我的LSDB中的LSA摘要信息 此时B的状态为 Exchange 准交换
- B<————————————-——A (B向A发送) DD(序列号Y+1递增)这是我的LSDB中的LSA摘要信息 在Exchange阶段,双方交换DD报文,用于描述自己所拥有的LSA的摘要信息。
- A————————————-——>B (A向B发送) DD(序列号为Y+1)确认主路由器的DD报文。
- 经过这个过程后 A知道B的LSDB中都有什么内容了。B知道A的LSDB中都有什么内容了。
- OSPF邻接关系建立流程 同步LSDB
- A (Router ID:1.1.1.1) B(Router ID:2.2.2.2)
- A————————————-——>B (A向B发送) LSR我要请求xx LSA的完整信息 此时A、B都是Loading<加载>状态
- B<————————————-——A (B向A发送) LSU这是你请求的xx LSA的完整信息
- A————————————-——>B (A向B发送) LS ACK确认收到LSU及其携带的xx LSA
- A————————————-——>B (A向B发送)LSR我要请求yy LSA的完整信息
- .......
- 最后A和B的LSDB同步了 A和B的状态为Full<转发>标志邻接关系的建立
- 概念性的知识点
- 动态路由协议的分类
- 按工作区域分类:
- IGP(Interior Gateway Protocols,内部网关协议) RIP OSPF IS-IS
- EGP(Exterior Gateway Protocols,外部网关协议)BGP
- 按工作机制及算法分类:
- 距离矢量路由协议 Distance Vector Routing Protocols RIP
- 链路状态路由协议 Link-State Routing Protocols OSPF IS-IS
- 距离矢量路由协议:
- 运行距离矢量路由协议的路由器周期性的泛洪自己的路由表。通过路由的交互,每台路由器都从相邻的路由器学习到路由,并加载进自己的路由表中
- 对于所有的路由器而言,路由器并不清楚网络的拓扑,知识简单的知道要去往某个目的的方向在哪里,距离有多远。
- 链路状态路由协议:
- 链路状态路由协议通告的是链路状态而不是路由表。
- 运行链路状态路由协议的路由器之间首先会建立一个协议的邻居关系,然后彼此之间开始交互LSA(Link State Advertisement,链路状态通告)
- LSA描述了路由器直连接口的状态信息,例如接口的开销,连接的对象
- 链路状态路由协议-LSDB组建
- 每台路由器都会产生LSAs 路由器将接收到的LSAs放入自己的LSDB(Link State DataBase,链路状态数据库)。路由器通告LSDB 掌握了全网的拓扑。
- LSDB汇总了网络中路由器对于自己接口的描述
- LSDB包含了全网拓扑的描述
- 链路状态路由协议-SPF计算
- 每台路由器基于LSDB,使用SPF(Shortest Path First,最短路径优先)算法进行计算。每台路由器都计算出一棵以自己为根的、无环的、拥有最短路径的“树”
- 链路状态路由协议-路由表生成
- 每台路由器根据SPF计算,将计算出来的优选路径,加载进自己的路由表(Routing Table)
- OSPF基础术语:区域
- OSPF Area用于标识一个OSPF的区域。
- 区域是从逻辑上将设备划分为不同的组,每个组用区域号(Area ID)来标识。
- OSPF基础术语:Router-ID
- Router-ID(Router Identifier,路由器标识符),用于在一个OSPF域中唯一地标识一台路由器。
- Router-ID的设定可以通过手工配置的方式,或使用系统自动配置的方式。
- Router ID选取规则:
- 路由器选取它所有loopback接口上数值最高的IP地址
- 如果没有loopback接口,就在所有物理端口中选取一个数值最高的IP地址
- OSPF的基础术语:度量值
- OSPF使用Cost(开销)作为路由的度量值。每一个激活了OSPF的接口都会维护一个接口Cost值,
- 缺省时接口Cost值 = 100 Mbit/s /接口带宽。
- 其中100 Mbit/s为OSPF指定的缺省参考值,该值是可配置的。
- 一条OSPF路由的Cost值可以理解为是从目的网段到本路由器沿途所有入接口的Cost值累加。
- FE接口默认cost=1 GE接口默认cost=1 serial 接口(1.544Mbit/s)默认cost=64 OSPF不同接口因其带宽不同,有不同的cost
- OSPF的有四种网络类型,Broadcast、NBMA、P2MP和P2P
- 接口默认的OSPF网络类型取决于接口所使用的数据链路层封装。
- OSPF 网络类型:
- 一般情况下,链路两端的OSPF接口网络类型必须一致,否则双方无法建立邻居关系。
- OSPF网络类型可以在接口下通过命令手动修改以适应不同网络场景,例如可以将BMA网络类型修改为P2P。
- P2P(Point-to-Point,点对点)P2P指的是在一段链路上只能连接两台网络设备的环境。典型的例子是PPP链路 串口是点到点 serial
- BMA(Broadcast Multiple Access,广播式多路访问)
- BMA也被称为Broadcast,指的是一个允许多台设备接入的、支持广播的环境。
- 典型的例子是Ethernet(以太网)。当接口采用Ethernet封装时,OSPF在该接口上采用的缺省网络类型为BMA。
- NBMA(Non-Broadcast Multiple Access,非广播式多路访问)
- NBMA指的是一个允许多台网络设备接入且不支持广播的环境。典型的例子是帧中继(Frame-Relay)网络。
- P2MP(Point to Multi-Point,点到多点)
- P2MP相当于将多条P2P链路的一端进行捆绑得到的网络。
- 没有一种链路层协议会被缺省的认为是P2MP网络类型。该类型必须由其他网络类型手动更改。
- 常用做法是将非全连通的NBMA改为点到多点的网络。
- MA(Multi-Access)多路访问网络有两种类型:广播型多路访问网络(BMA)及非广播型多路访问网络(NBMA)。以太网(Ethernet)是一种典型的广播型多路访问网络。
- 为优化MA网络中OSPF邻接关系,OSPF指定了三种OSPF路由器身份,DR(Designated Router,指定路由器)、BDR(Backup Designated Router,备用指定路由器)和DRother路由器。
- 只允许DR、BDR与其他OSPF路由器建立邻接关系。DRother之间不会建立全毗邻的OSPF邻接关系,双方停滞在2-way状态。
- BDR会监控DR的状态,并在当前DR发生故障时接替其角色。
- 具有最高OSPF优先级的路由器会被选为DR(优先级为0不参与选举),数字越大,优先级越高
- 如果OSPF优先级相同,则具有最高Router ID的路由器会被选为DR
- 一旦选举出一个dr 来那么即使后来再有优先级更高的进来也不重新选举(因为一旦重新选举那么所有的邻接关系都要重新建立)
- OSPF与RIP的比较
- OSPF RIP V1 RIP V2
- 链路状态路由协议 距离矢量路由协议
- 没有跳数的限制 RIP的15跳限制,超过15跳的路由被认为不可达
- 支持可变长子网掩码(VLSM) 不支持可变长子网掩码(VLSM) 支持可变长子网掩码(VLSM)
- 收敛速度快 收敛速度慢
- (OSPF)使用组播发送链路状态更新,在链路状态变化时使用触发更新,提高了带宽的利用率
- (RIP) 周期性广播整个路由表,在低速链路及广域网中应用将产生很大问题
- OSPF 配置命令 Cisco
- 启动OSPF路由进程
- Router(config)# router ospf 进程号 (本路由器的进程号,用于标识同一路由器上的多个OSPF进程)
- 指定OSPF协议运行的接口和所在的区域
- Router(config-router)# network 网络号 反向掩码 area 区域号
- 修改接口的Cost值
- Router(config-if)#ip ospf cost number (OSPF路由器在接口上使用cost值来决定最佳路径)取值范围1~65535
- OSPF 配置命令 华为
- 启动OSPF路由进程
- [Huawei]ospf 进程号 (本路由器的进程号,用于标识同一路由器上的多个OSPF进程)
- 指定OSPF协议所在的区域
- [Huawei-ospf-1]area 1
- Router(config-router)# network 网络号 反向掩码 area 区域号
- 指定OSPF协议运行的接口
- [Huawei-ospf-1-area-0.0.0.1]network 网络号 反向掩码
- OSPF 查看命令 Cisco
- 查看邻居列表
- Router#show ip ospf neighbor
- 查看链路状态数据库
- Router#show ip ospf database
- 查看路由表
- Router#show ip route
- 查看OSPF的配置
- Router#show ip ospf
- 查看OSPF接口数据结构
- Router#show ip ospf interface 接口
- OSPF 查看命令 华为
- 查看 OSPF 邻居的相关信息
- display ospf peer
- 查看 OSPF 协议路由表
- display ip routing-table protocol ospf
- 查看运行 OSPF 协议的接口信息
- display ospf interface
- 查看 OSPFv3 邻居的相关信息
- display ospfv3 peer
- 查看虚拟链路信息
- display ospf vlink
- 查看 OSPF 的错误信息
- display ospf error
- 查看本设备通过 OSPF 协议写到的动态路由
- display ospf routing
- 查看本设备 OSPF 邻居的简略信息(2-way为邻居状态,Full状态为邻接状态)
- display ospf peer brief
- 查看本设备的 OSPF 配置
- display current-configuration section ospf
- 查看本设备的 OSPF 链路状态数据库表
- display ospf lsdb
- dis ospf lsdb ?
- lsdb router //查看1类 LSA 的详细信息;路由器 LSA,路由器自身的拓扑信息
- lsdb network //查看2类 LSA;网络 LSA,仅存在 MA-广播网络,MA 网段及成员
- lsdb summary //查看3类 LSA;网络汇总 LSA,域见路由信息
- lsdb asbr //查看4类 LSA;描述域外网关路由信息
- lsdb ase //查看5类 LSA;常规区域传来的域外路由信息
- lsdb nssa //查看7类
链路状态路由协议 OSPF
最新推荐文章于 2024-04-14 17:06:34 发布