一、基本原理

1.简介

1 .1 ospf 是什么?

    OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。管理距离(AD)是110

1.2  特性

*使用了区域的概念

*完全无类路由选择协议

*支持不连续子网、VLSM

*支持无大小限制的、任意的度量值

*支持多条路径的负载平衡

*使用组播宣告路由信息

*支持更安全的路由选择认证

*使用可以跟踪外部路由的路由标记

1.3 链路状态与距离矢量的对比

基于企业的ospf ospf在企业网中的应用_链路

1.4 ospf 自身独有的特性:

–链路状态路由器比距离矢量路由器包含更多关于本网络的信息

–每一台路由器都有本网络的完整拓扑表

–因此, 链路状态路由器能够做出更好的路由选择

链路状态数据结构:网络层次

这层次结构包括以下两种:

  • 传输区域 (骨干区域或区域 0)
  • 一般区域 (非骨干区域)

OSPF 区域特点:

  1.    使路由表中条目最少化
  2.    在区域内缩小查找拓扑变化的范围
  3.    LSA在区域边界处停止泛洪
  4.    需要层次化的网络设计

2.链路状态数据结构

–邻居表:  

也称为毗邻数据库

包含了已知的邻居路由器

–拓扑表:

一般称为链路状态数据库(LSDB)

包含了在一个区域或网络中的所有路由器和他们所连接的链路

在同一个区域内的所有路由器都有相同的LSDB

–路由表:

也称为前转表

包含到达目的网络的最优路径

生成的示意图:

 

基于企业的ospf ospf在企业网中的应用_数据库_02

3.OSPF如何找到邻居?(毗邻关系)

基于企业的ospf ospf在企业网中的应用_基于企业的ospf_03

1.路由器通过交换HELLO数据包来发现邻居

2.路由器在检查完HELLO数据包中的具体参数或选项之后宣告毗邻关系的建立

4.如何建立OSPF的毗邻关系?

  点到点广域网(WAN)链路:   邻居双方为全毗邻关系

  • 局域网(LAN)链路:

           路由器只与DR或BDR建立全毗邻关系.

           其他路由器(DROTHERs)之间维持在 two-way 的状态下

  • 路由更新和拓扑信息仅仅在邻接路由器之间作交换
  • 当路由器毗邻关系建立起来后, LSDBs 通过交换 LSAs来进行数据库的同步.
  • LSAs 可靠地泛洪在区域或网络里面

5.ospf中路由器用什么方法去寻找到达目标网络的最短路径呢?

     Dijkstra最短路径优先算法

  • 区域内的路由器有相同的链路状态数据库
  • 在区域中的路由器都以自己为根建立最短路径树
  • 到目标网络最优路径的计算方法是计算到该网络的最低开销(COST)

     最优的路由被放进前转表中(即路由表中)

6.ospf包的类型有哪些?

基于企业的ospf ospf在企业网中的应用_数据结构与算法_04

基于企业的ospf ospf在企业网中的应用_数据库_05

数据包包头格式

建立双向通信?

基于企业的ospf ospf在企业网中的应用_数据结构与算法_06

 

基于企业的ospf ospf在企业网中的应用_数据库_07

基于企业的ospf ospf在企业网中的应用_基于企业的ospf_08

              7.OSPF的LSA类型

         

基于企业的ospf ospf在企业网中的应用_链路_09

LSA Type 1: Router LSA

  1. 一个区域里的每一台路由器的 router LSA (type 1)
  2.            包括直接连接链路的列表
  3.            每一条链路是以该链路的IP地址前缀 和 该链路的链路类型作为确定的
  4. 以始发路由器的 router id 作为标识
  5. 只在本区域泛洪; 不跨越 ABR

LSA Type 2:  Network LSA

在区域每个广播型网络或者NBMA网络中的 network (type 2) LSA

        包括网络中连接的路由器

        包含链路的子网掩码

   2. 广播网络中的DR通告的

   3. 仅仅在本区域泛洪; 不跨越

LSA Type 3: Summary LSA

Type 3 LSAs 被用作泛洪网络信息到其他区域

  1. 描述网络前缀和子网掩码.
  2. 由始发区域的ABR发送
  3. 在区域0中传递
  4. 缺省下, 不汇总路由, type 3 LSA 通告每一个子网.

LSA Type 4: Summary LSA

Summary (type 4) LSAs 被用来在其他区域中通告 ASBR

由始发区域的ABR发送.

Type 4 LSAs 包含ASBR的 router ID.

LSA Type 5: External LSA

External (type 5) LSAs 被用来通告从其他AS学习来的网络

Type 5 LSAs 由 ASBR通告.

Type 5 LSAs 在整个自治系统里通告.

在整个自治系统里通告者的 router ID (ASBR) 不做改变

需要用Type 4 LSA 去寻找ASBR.

缺省下, 路由不被汇总

示意图如下:

基于企业的ospf ospf在企业网中的应用_数据库_10

基于企业的ospf ospf在企业网中的应用_链路_11

基于企业的ospf ospf在企业网中的应用_链路_12

基于企业的ospf ospf在企业网中的应用_基于企业的ospf_13

 

基于企业的ospf ospf在企业网中的应用_网络_14

8.ospf中的路由汇总:

好处及命令:

  • 路由汇总提高CPU利用率 , 减少LSA泛洪, 和减少路由表条目.
  • area range 命令用在 ABR 上进行路由汇总. summary-address 命令用在 ASBR 上进行路由汇总.
  • 缺省路由能够防止到达目标网络的详细路由出现在路由表里.其优点为使路由表和 LSDB最小化.
  • OSPF 使用 default-information originate 命令去注入缺省路由.

9.虚拟链路(Virtual Links)

基于企业的ospf ospf在企业网中的应用_链路_15

 

基于企业的ospf ospf在企业网中的应用_链路_16

area area-id virtual-link router-id(cisco中的命令) 注意:router-id 为对端路由器的router-id

10.配置OSPF区域类型

末梢区域(stub area)和完全末梢区域(totally stub area)法则

一个区域成为末梢区域 或 完全末梢区域的条件:

  1. 只有一个ABR, 或者有超过一个的ABR, 但能够接受到 其他地区或外部自治系统的次优路由路径 。
  2. 在该区域中的所有路由器都要配为末梢路由器(stub router).
  3. 在该区域中没有 ASBR.
  4. 该区域不是区域 0.
  5. 没有虚拟链路(virtual link)穿越该区域.

                                   末梢区域                                                                       

基于企业的ospf ospf在企业网中的应用_基于企业的ospf_17

基于企业的ospf ospf在企业网中的应用_基于企业的ospf_18

 

                              完全末梢区域

 

基于企业的ospf ospf在企业网中的应用_数据结构与算法_19

基于企业的ospf ospf在企业网中的应用_基于企业的ospf_20

  1. 使用 area area-id stub 命令去定义一个区域为末梢区域.
  2. 在ABR上使用 area area-id stub 命令加上no-summary 关键字去定义一个区域为完全末梢区域.
  3. 在末梢区域里, 外部路由不出现在路由表里面, 但是可以通过区域内的缺省路由到达
  4. 在完全末梢区域里, 区域间的和外部的路由都不在路由表里, 但是可以通过区域内的缺省路由到达
  5.    使用 show ip ospf, show ip ospf database, show ip route 命令去验证所有类型的末梢区域

11.ospf 开销的计算

OSPF 开销(cost)缺省值为

(100 Mbps) / (bandwidth in megabits per second). cost 值能基于每个接口来作改变,参考带宽(bandwidth)也能手工地作改变

二、ospf的应用

 1.案例一:

1. 作业要求:能够利用路由重分发,实现不同协议之间的通信 2.拓扑图

基于企业的ospf ospf在企业网中的应用_数据结构与算法_21

3.设备描述:

交换机:HUAWEI  QUIDWAY S3526E

路由器:HUAWEI  R2621

4.设备配置如下:

交换机配置:

[Quidway]vlan 10                                              //新建vlan10  

[Quidway-vlan10]description in                          //描述信息

[Quidway-vlan10]port e0/3 to e0/6                   //把e0/3 到e0/6的端口划分到vlan10中,用于测试 

Quidway-vlan10]int vlan 10                              //进入vlan10接口

[Quidway-Vlan-interface10]ip add 192.168.4.1 255.255.255.0   // 配ip地址

[Quidway-Vlan-interface10]quit                        //退出

[Quidway]vlan 20

[Quidway-vlan20]description out

[Quidway-vlan20]port e0/1

[Quidway-vlan20]quit

[Quidway]int vlan 20

[Quidway-Vlan-interface20]ip add 192.168.2.2 255.255.255.0

[Quidway]rip                                             //启用rip协议

[Quidway-rip]network 192.168.4.0             //宣告直连网络

[Quidway-rip]network 192.168.2.0

 路由器R9的配置:

[Router]sysname R9                              //改变路由器的名称

[R9]int e0                                             //进入e0接口

[R9-Ethernet0]ip add 192.168.101.9 255.255.255.0    //配IP

[R9]int e1

[R9-Ethernet1]ip add 192.168.2.1 255.255.255.0

[R9]int s1

[R9-Serial1]ip add 192.168.1.2 255.255.255.0

[R9-Serial1]quit

[R9]rip                                      //启用rip协议

waiting...

RIP is running

[R9-rip]network 192.168.1.0      //宣告直连网络

[R9-rip]network 192.168.2.0

路由器R10的配置:

[R10]int s1

[R10-Serial1]ip add 192.168.1.1 255.255.255.0

[R10-Serial1]int s0

[R10-Serial0]ip add 192.168.3.1 255.255.255.0

[R10-Serial0]quit

[R10]rip

waiting...

RIP is running

[R10-rip]network 192.168.1.0

[R10]ospf enable                           //启用OSPF 协议

Start OSPF task...

OSPF enabled

[R10-ospf]quit                           //退出

[R10]int s0                                  //进入S0接口  

[R10-Serial0]ospf enable area 0     //宣告区域 启用OSPF

[R10]rip

[R10-rip]import- route direct cost 1    //发布直连路由

[R10]ospf enable

already enabled

[R10-ospf]import-route direct            //发布直连路由

[R10-ospf]import-route rip cost 1      //把rip学到的路由信息重分发到ospf中

[R5]int s0

[R5-Serial0]ip add 192.168.3.2 255.255.255.0

[R5]int e1

[R5-Ethernet1]ip add 192.168.5.1 255.255.255.0

[R5-Serial1]int s0

[R5-Serial0]ospf enable area 0

[R5-Serial0]int e1

[R5-Ethernet1]ospf enable area 0

5.路由表信息如下:

[R10]display ip routing

Routing Tables:

Destination/Mask Proto Pref Metric Nexthop Interface

127.0.0.0/8 Direct 0 0 127.0.0.1 LoopBack0

127.0.0.1/32 Direct 0 0 127.0.0.1 LoopBack0

192.168.1.0/24 Direct 0 0 192.168.1.2 Serial1

192.168.1.1/32 Direct 0 0 127.0.0.1 LoopBack0

192.168.1.2/32 Direct 0 0 192.168.1.2 Serial1

192.168.2.0/24 RIP 100 1 192.168.1.2 Serial1

192.168.3.0/24 Direct 0 0 192.168.3.2 Serial0

192.168.3.1/32 Direct 0 0 127.0.0.1 LoopBack0

192.168.3.2/32 Direct 0 0 192.168.3.2 Serial0

192.168.4.0/24 RIP 100 2 192.168.1.2 Serial1

192.168.5.0/24 OSPF 10 1572 192.168.3.2 Serial0

[R9]display  ip routing

Routing Tables:

Destination/Mask Proto Pref Metric Nexthop Interface

127.0.0.0/8 Direct 0 0 127.0.0.1 LoopBack0

127.0.0.1/32 Direct 0 0 127.0.0.1 LoopBack0

192.168.1.0/24 Direct 0 0 192.168.1.1 Serial1

192.168.1.1/32 Direct 0 0 192.168.1.1 Serial1

192.168.1.2/32 Direct 0 0 127.0.0.1 LoopBack0

192.168.2.0/24 Direct 0 0 192.168.2.1 Ethernet1

192.168.2.1/32 Direct 0 0 127.0.0.1 LoopBack0

192.168.3.0/24 RIP 100 1 192.168.1.1 Serial1

192.168.4.0/24 RIP 100 1 192.168.2.2 Ethernet1

192.168.5.0/24 RIP 100 1 192.168.1.1 Serial1

[R5]dis ip routing

Routing Tables:

Destination/Mask Proto Pref Metric Nexthop Interface

127.0.0.0/8 Direct 0 0 127.0.0.1 LoopBack0

127.0.0.1/32 Direct 0 0 127.0.0.1 LoopBack0

192.168.1.0/24 O_ASE 150 1 192.168.3.1 Serial0

192.168.1.2/32 O_ASE 150 1 192.168.3.1 Serial0

192.168.2.0/24 O_ASE 150 1 192.168.3.1 Serial0

192.168.3.0/24 Direct 0 0 192.168.3.1 Serial0

192.168.3.1/32 Direct 0 0 192.168.3.1 Serial0

192.168.3.2/32 Direct 0 0 127.0.0.1 LoopBack0

192.168.4.0/24 O_ASE 150 1 192.168.3.1 Serial0

192.168.5.0/24 Direct 0 0 192.168.5.1 Ethernet1

192.168.5.1/32 Direct 0 0 127.0.0.1 LoopBack0

6.测试:

在交换机所连网段:192.168.4.0 ,测试如下:

C:\Users\Administrator>ping 192.168.1.1

正在 Ping 192.168.1.1 具有 32 字节的数据:

来自 192.168.1.1 的回复: 字节=32 时间=21ms TTL=253

来自 192.168.1.1 的回复: 字节=32 时间=18ms TTL=253

来自 192.168.1.1 的回复: 字节=32 时间=18ms TTL=253

来自 192.168.1.1 的回复: 字节=32 时间=18ms TTL=253

192.168.1.1 的 Ping 统计信息:

数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),

往返行程的估计时间(以毫秒为单位):

最短 = 18ms,最长 = 21ms,平均 = 18ms

C:\Users\Administrator>ping 192.168.5.10

正在 Ping 192.168.5.10 具有 32 字节的数据:

来自 192.168.5.10 的回复: 字节=32 时间=37ms TTL=60

来自 192.168.5.10 的回复: 字节=32 时间=38ms TTL=60

来自 192.168.5.10 的回复: 字节=32 时间=37ms TTL=60

来自 192.168.5.10 的回复: 字节=32 时间=37ms TTL=60

192.168.5.10 的 Ping 统计信息:

数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),

往返行程的估计时间(以毫秒为单位):

最短 = 37ms,最长 = 38ms,平均 = 37ms

增加接口如下:(由于主机不够,该测试成功,接口DOWN ,所以以下路由表未显示)


转载于:https://blog.51cto.com/guojiping/949899