ITPub博客

首页 > IT基础架构 > 数据安全 > OSPF介绍及基础配置

OSPF介绍及基础配置

数据安全 作者:上海地面通 时间:2019-10-11 10:27:23 0 删除 编辑

OSPF ( Open Shortest Pass First )俗称 开放最短路径优先协议,是 众多 内部网管协议 中 最常用的, 同时他也是一个 链路状态协议。 OSPF 的组播地址为: 224.0.0.5 224.0.0.6 ,它 是无类路由协议,支持VLSM 可变长子网掩码 ,所以他同时支持 IPV4 及 IPV6 。 OSPF 的度量值一般是与链路带宽成反比的,所以带宽越大开销值就越小,同时也就一位置链路越优( 接口开销= 参考带宽 / 逻辑带宽 )。

接下来我们谈一下OSPF 的运行原理。 OSPF 组播的方式是通过 OSPF 的接口发送 Hello 包,若有 OSPF 邻居,则建立 OSPF 邻居关系、形成邻居表,通过互相发送 LSA (相互通告路由)形成 LSDB 。最后通过 SPF 算法,得到 cost 最小的路径放入路由表。在运行过程中,必须配置好骨干区域 0 ,同时其他区域需连接到骨干区域。这样做的好处是缩减路由表, 本地拓扑变化值影响一个区域 ,尤其是某些 LSA 之子本地泛红,不泛洪到其他区域 。

OSPF 区域划分基于接口 , 可分为 骨干区域(区域0 ) 及 非骨干区域(非0 区域) 。 骨干区域必须连接所有的非骨干区域,而且骨干区域不可分割,有且只有一个,一般情况下,骨干区域内没有终端用户。非骨干区域一般根据实际情况而划分,必须连接到骨干区域(不规则区域也需通过tunnel 或 virtual-link 连接到骨干区域)。一般情况下, 非 骨干区域主要连接终端用户和资源。

OSPF 路由器 身份 可分为5 类: Designated Router , 即 指定路由器,OSPF 协议启动后开始选举而来 , 简称DR ; 备份指定路由器 ( Back-up Designated Router , 简称 BDR ) ,同样是由OSPF 启动后选举而来 ; 其他路由器 ( DRothers ), 非DR 非 BDR 的路由器 ; 区域边界路由器(Area Border Routers , 即 ABR ) , 连接不同OSPF 区域 ; 自治系统边界路由器 ( Autonomous System Boundary Router , 简称 ASBR ), 位于OSPF 和非 OSPF 网络之间 ; 骨干路由器 , 至少有一个借口连接到骨干区域(区域0 )。

若 发现了有OSPF 邻居,则建立 OSPF 邻居关系 , 邻居 有 两个状态邻居Neighbors 及 邻接Adjacency 。 两者间的关系是邻居不一定是邻接,邻接一定是邻居,只有交互了LSA 的 OSPF 邻居才成为 OSPF 的邻接,之交互 Hello 包的支撑位邻居,在点对点网络中,所有邻居都能成为邻接; MA (广播多路访问网络,比如以太网)网络类型中, DR , BDR , DRothers 三者关系为: DR 、 BDR 与所有的邻居形成邻接, DRothers 之间只是邻居而不交换 LSA 。在建立邻居关系时, Hello 与 Dead Time 时间不一致(改 Hello 的话 Dead 自动 *4 ,单改 Dead 的话 Hello 不变)、区域 ID 必须一致、认证( password 一致)、 Stub 标识一致(与特殊区域有关,之后介绍)、 MTU- 携带在 DBD 报文中,两端口必须一致、掩码,如 12.1.1.1/30 —— 12.1.1.2/24   这种情况是可以 ping 通的,但邻居关系起不来( OSPF 对环回口,无论掩码多少位,都按 32 位处理,所以建议环回口直接 /32 ,或者在环回口下还原真实掩码)、 ACL (是否放行 OSPF )这些原因会影响 OSPF 的 邻居建立 。

OSPF 是一种一旦拓扑发生变化便 会 触发更新的机制 , 也有周期性更新(30 分钟一次) 机制,或当收到一条LSA 之后,首先查看是否在 LSDB 中,若没有则假如 LSDB ,回复 LSACK 。继续泛洪出去,并且通过 SPF 算法计算最佳路径并加入路由表。若存在,则比较谁的更“新”(看序号),序号大者新,若本地不如收到的信更新本地 LSDB 并泛洪,且通过 SPF 算法计算最佳路径并加入路由表,若比收到的新,则将本地的泛洪出去。

OSPF 数据包 又可分为几种 类型 , Hello -- 10 秒发送一次,死亡时间 40s , 4 倍关系,可以修改 ; DBD -- Database Description , 仅仅是一个对本地数据库的概念性叙述,供路由器核对数据库是否同步 ; LSR -- Link-State Request , 请求链路状态,在数据库同步过程中使用,请求其他角色发送自己失去的LSA 最新版本 ; LSU -- Link-State Update , 链路状态更新,LSU 包括几种类型的 LSA , LSU 负责泛洪 LSA ,和相应 LSR , LSA 只会发送给之前以 LSR 请求的 LSA 的直连邻居,进行泛洪的时候,邻居路由负责把收到的 LSA 信息重新封装在新的 LSU 中 ; LSACK -- 链路状态确认,路由器必须对每个收到的LSA 进行 LSACK 确认,但可以用一个 LSACK 确认多个 LSA 。

DR 、 BDR 选举 时, 比较router-id , router-id , 由工程师指定 , 这台设备最大的环回口ip , 没有环回口的话,物理接口ip 地址最大的 可获得选举规则。首先, 最高优先级值的路由器被选为DR (默认优先级相同: 1 ),次高优先级的为 BDR ;其次, 若优先级相同,则比较router-id ,拥有最高 router-id 的成为 DR ,次高的成为 BDR ;第三, 优先级被设置为0 的不参与选举 ;第四, OSPF 系统启动后,若 40s 内没有新设备接入就会开始选举,所以为保证 DR 与 BDR 的选举不发生意外,建议优先配置想成为 DR 与 BDR 的设备 ;第五, DR 与 BDR 不可以抢占 ;第六, 当DR 小时之后, BDR 直升 DR ,重新选 BDR ;第七, 所有DR , BDR , DRothers 说的都是接口,而不是设备 ;最后, 不同网段间选DR , BDR ,而不是以 OSPF 区域为单位 。

OSPF 还具有不同的 状态 , Down State , Init State ( 发送了Hello 包 却 还没收到 的情况下), Two-way State ( 收到了一个Hello 包且 在对方回复的 Hello 包中包括自己的 router-id ), Exstart State ( First DBD 确认主从关系, router-id 大的为主,先发包 ), Exchange State ( 交互DBD 相互学习 ), Loading State ( LSR 与 LSU 的交互过程 ), Full State ( 所有交互已经完成 )。上文中DBD 又是什么呢? 只是一个目录的性质,并且第一个DBD 只是用来协商之后的 DBD 由谁先发送。

在此,我们对下面的拓扑图中的内容进行 基本配置演示 :

 

首先, 对R1 进行配置:

1 R2>en

2 R2#conf t

3 R2(config)#int lo 0

4 R2(config-if)#ip add 2.2.2.2 255.255.255.255

5 R2(config-if)#no sh

6 R2(config-if)#exi

7 R2(config)#int f0/0

8 R2(config-if)#ip add 100.1.1.2 255.255.255.0

9 R2(config-if)#no sh

10 R2(config-if)#exi

11

12 R2(config)#router os 100

13 R2(config-router)#route

14 R2(config-router)#router-id 2.2.2.2

15 R2(config-router)#net 2.2.2.2 0.0.0.0 a 0

16 R2(config-router)#net 100.1.1.0 0.0.0.255 a 0

17 R2(config-router)#ex

 

对R2 进行配置:

 

1 R2>en

2 R2#conf t

3 R2(config)#int lo 0

4 R2(config-if)#ip add 2.2.2.2 255.255.255.255

5 R2(config-if)#no sh

6 R2(config-if)#exi

7 R2(config)#int f0/0

8 R2(config-if)#ip add 100.1.1.2 255.255.255.0

9 R2(config-if)#no sh

10 R2(config-if)#exi

11

12 R2(config)#router os 100

13 R2(config-router)#route

14 R2(config-router)#router-id 2.2.2.2

15 R2(config-router)#net 2.2.2.2 0.0.0.0 a 0

16 R2(config-router)#net 100.1.1.0 0.0.0.255 a 0

17 R2(config-router)#ex

 

对R3 进行配置:

 

1 R3>en

2 R3#conf t

3 R3(config)#int lo 0

4 R3(config-if)#ip add 3.3.3.3 255.255.255.255

5 R3(config-if)#no sh

6 R3(config-if)#exi

7 R3(config)#int f0/0

8 R3(config-if)#ip add 100.1.1.3 255.255.255.0

9 R3(config-if)#no sh

10 R3(config-if)#exi

11

12 R3(config)#router os 100

13 R3(config-router)#router-id 3.3.3.3

14 R3(config-router)#net 3.3.3.3 0.0.0.0 a 0

15 R3(config-router)#net 100.1.1.0 0.0.0.255 a 0

16 R3(config-router)#exi

 

对R4 进行配置:

 

1 R4>en

2 R4#conf t

3 R4(config)#int lo 0

4 R4(config-if)#ip add 4.4.4.4 255.255.255.255

5 R4(config-if)#no sh

6 R4(config-if)#exi

7 R4(config)#int f0/0

8 R4(config-if)#ip add 100.1.1.4 255.255.255.0

9 R4(config-if)#no sh

10 R4(config-if)#exi

11 R4(config)#int f0/1

12 R4(config-if)#ip add 45.1.1.4 255.255.255.0

13 R4(config-if)#no sh

14 R4(config-if)#exi

15

16 R4(config)#router os 100

17 R4(config-router)#router-id 4.4.4.4

18 R4(config-router)#net 4.4.4.4 0.0.0.0 a 0

19 R4(config-router)#net 100.1.1.0 0.0.0.255 a 0

20 R4(config-router)#net 45.1.1.0 0.0.0.255 a 1

21 R4(config-router)#exi

 

对R5 进行配置:

 

1

2 R5>en

3 R5#conf t

4 R5(config)#int lo 0

5 R5(config-if)#ip add 5.5.5.5 255.255.255.255

6 R5(config-if)#no sh

7 R5(config-if)#exi

8 R5(config)#int f0/1

9 R5(config-if)#ip add 45.1.1.5 255.255.255.0

10 R5(config-if)#no sh

11 R5(config-if)#exi

12

13 R5(config)#router os 100

14 R5(config-router)#router-id 5.5.5.5

15 R5(config-router)#net 5.5.5.5 0.0.0.0 a 1

16 R5(config-router)#net 45.1.1.0 0.0.0.255 a 1

17 R5(config-router)#exi

 

以上就是全部基本配置, 接下来我们 来查看一下基本信息

查看邻居信息:

 

1 R4#show ip ospf neighbor

2

3 Neighbor ID     Pri   State           Dead Time   Address         Interface

4 1.1.1.1           1   FULL/DR         00:00:38    100.1.1.1       FastEthernet0/0

5 2.2.2.2           1   FULL/BDR        00:00:34    100.1.1.2       FastEthernet0/0

6 3.3.3.3           1   2WAY/DROTHER    00:00:33    100.1.1.3       FastEthernet0/0

7 5.5.5.5           1   FULL/DR         00:00:33    45.1.1.5        FastEthernet0/1

 

可以看见R4 这台路由器一共有四个邻居,这里临界状态, full 就是代表邻接,我们可以看见区域 0 中 R1 是 DR , R2 是 BDR , R3 和 R4 都是 DRothers ,而区域 1 中 R5 是 DR 。那么我们可以推测, R4 是区域 1 的 BDR ,我们在 R5 上查看:

 

1 R5#show ip ospf neighbor

2

3 Neighbor ID     Pri   State           Dead Time   Address         Interface

4 4.4.4.4           1   FULL/BDR        00:00:36    45.1.1.4        FastEthernet0/1

 

推测不假,下面查看一下开启OSPF 的接口信息:

 

1 R1#show ip ospf interface

2 FastEthernet0/0 is up, line protocol is up

3   Internet Address 100.1.1.1/24, Area 0

4   Process ID 100, Router ID 1.1.1.1, Network Type BROADCAST, Cost: 10

5   Transmit Delay is 1 sec, State DR, Priority 1

6   Designated Router (ID) 1.1.1.1, Interface address 100.1.1.1

7   Backup Designated router (ID) 2.2.2.2, Interface address 100.1.1.2

8   Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5

9    oob-resync timeout 40

10    Hello due in 00:00:00

11   Supports Link-local Signaling (LLS)

12   Cisco NSF helper support enabled

13   IETF NSF helper support enabled

14   Index 2/2, flood queue length 0

15   Next 0x0(0)/0x0(0)

16   Last flood scan length is 1, maximum is 1

17   Last flood scan time is 4 msec, maximum is 4 msec

18   Neighbor Count is 3, Adjacent neighbor count is 3

19    Adjacent with neighbor 2.2.2.2  (Backup Designated Router)

20    Adjacent with neighbor 3.3.3.3

21    Adjacent with neighbor 4.4.4.4

22   Suppress hello for 0 neighbor(s)

23 Loopback0 is up, line protocol is up

24   Internet Address 1.1.1.1/32, Area 0

25   Process ID 100, Router ID 1.1.1.1, Network Type LOOPBACK, Cost: 1

26   Loopback interface is treated as a stub Host

 

可以看见,开启了OSPF 的接口的详细信息,比如 Router-id ,区域 id ,进程 id ,以及接口是如何加入进入 OSPF 的( network )

查看OSPF 的路由:

 

1 R5#show ip route ospf

2      1.0.0.0/32 is subnetted, 1 subnets

3 O IA    1.1.1.1 [110/21] via 45.1.1.4, 00:26:31, FastEthernet0/1

4      2.0.0.0/32 is subnetted, 1 subnets

5 O IA    2.2.2.2 [110/21] via 45.1.1.4, 00:26:31, FastEthernet0/1

6      100.0.0.0/24 is subnetted, 1 subnets

7 O IA    100.1.1.0 [110/20] via 45.1.1.4, 00:26:31, FastEthernet0/1

8      3.0.0.0/32 is subnetted, 1 subnets

9 O IA    3.3.3.3 [110/21] via 45.1.1.4, 00:26:31, FastEthernet0/1

10     4.0.0.0/32 is subnetted, 1 subnets

11 O IA    4.4.4.4 [110/11] via 45.1.1.4, 00:26:31, FastEthernet0/1

 

在R5 中查看 OSPF 的路由,发现全部都是 O IA 标记,这里 O 标识来自 OSPF ,而 IA 代表是 OSPF 其他区域传来的路由(关于标记在后面讲解 LSA 中还会提到),我们再在 R1 上查看一下 OSPF 的路由:

 

1 R1#show ip route os

2      2.0.0.0/32 is subnetted, 1 subnets

3 O       2.2.2.2 [110/11] via 100.1.1.2, 00:29:28, FastEthernet0/0

4      3.0.0.0/32 is subnetted, 1 subnets

5 O       3.3.3.3 [110/11] via 100.1.1.3, 00:29:28, FastEthernet0/0

6      4.0.0.0/32 is subnetted, 1 subnets

7 O       4.4.4.4 [110/11] via 100.1.1.4, 00:29:28, FastEthernet0/0

8      5.0.0.0/32 is subnetted, 1 subnets

9 O IA    5.5.5.5 [110/21] via 100.1.1.4, 00:28:17, FastEthernet0/0

10     45.0.0.0/24 is subnetted, 1 subnets

11 O IA    45.1.1.0 [110/20] via 100.1.1.4, 00:29:28, FastEthernet0/0

 

可见,区域1 的被标识为 O IA ,而区域 0 的则只是 O 。

以上就是基本的OSPF 系统的配置。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69943410/viewspace-2659468/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 中国的IPv6部署
下一篇: DR和BDR详解
请登录后发表评论 登录
全部评论

注册时间:2019-08-02

  • 博文量
    33
  • 访问量
    40167