一、基本原理
1.简介
1 .1 ospf 是什么?
OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。管理距离(AD)是110
1.2 特性
*使用了区域的概念
*完全无类路由选择协议
*支持不连续子网、VLSM
*支持无大小限制的、任意的度量值
*支持多条路径的负载平衡
*使用组播宣告路由信息
*支持更安全的路由选择认证
*使用可以跟踪外部路由的路由标记
1.3 链路状态与距离矢量的对比
1.4 ospf 自身独有的特性:
–链路状态路由器比距离矢量路由器包含更多关于本网络的信息
–每一台路由器都有本网络的完整拓扑表
–因此, 链路状态路由器能够做出更好的路由选择
链路状态数据结构:网络层次
这层次结构包括以下两种:
- 传输区域 (骨干区域或区域 0)
- 一般区域 (非骨干区域)
OSPF 区域特点:
- 使路由表中条目最少化
- 在区域内缩小查找拓扑变化的范围
- LSA在区域边界处停止泛洪
- 需要层次化的网络设计
2.链路状态数据结构
–邻居表:
也称为毗邻数据库
包含了已知的邻居路由器
–拓扑表:
一般称为链路状态数据库(LSDB)
包含了在一个区域或网络中的所有路由器和他们所连接的链路
在同一个区域内的所有路由器都有相同的LSDB
–路由表:
也称为前转表
包含到达目的网络的最优路径
生成的示意图:
3.OSPF如何找到邻居?(毗邻关系)
1.路由器通过交换HELLO数据包来发现邻居
2.路由器在检查完HELLO数据包中的具体参数或选项之后宣告毗邻关系的建立
4.如何建立OSPF的毗邻关系?
点到点广域网(WAN)链路: 邻居双方为全毗邻关系
- 局域网(LAN)链路:
路由器只与DR或BDR建立全毗邻关系.
其他路由器(DROTHERs)之间维持在 two-way 的状态下
- 路由更新和拓扑信息仅仅在邻接路由器之间作交换
- 当路由器毗邻关系建立起来后, LSDBs 通过交换 LSAs来进行数据库的同步.
- LSAs 可靠地泛洪在区域或网络里面
5.ospf中路由器用什么方法去寻找到达目标网络的最短路径呢?
Dijkstra最短路径优先算法
- 区域内的路由器有相同的链路状态数据库
- 在区域中的路由器都以自己为根建立最短路径树
- 到目标网络最优路径的计算方法是计算到该网络的最低开销(COST)
最优的路由被放进前转表中(即路由表中)
6.ospf包的类型有哪些?
建立双向通信?
LSA Type 1: Router LSA
- 一个区域里的每一台路由器的 router LSA (type 1)
- 包括直接连接链路的列表
- 每一条链路是以该链路的IP地址前缀 和 该链路的链路类型作为确定的
- 以始发路由器的 router id 作为标识
- 只在本区域泛洪; 不跨越 ABR
LSA Type 2: Network LSA
在区域每个广播型网络或者NBMA网络中的 network (type 2) LSA
包括网络中连接的路由器
包含链路的子网掩码
2. 广播网络中的DR通告的
3. 仅仅在本区域泛洪; 不跨越
LSA Type 3: Summary LSA
Type 3 LSAs 被用作泛洪网络信息到其他区域
- 描述网络前缀和子网掩码.
- 由始发区域的ABR发送
- 在区域0中传递
- 缺省下, 不汇总路由, 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.
缺省下, 路由不被汇总
示意图如下:
8.ospf中的路由汇总:
好处及命令:
- 路由汇总提高CPU利用率 , 减少LSA泛洪, 和减少路由表条目.
- area range 命令用在 ABR 上进行路由汇总. summary-address 命令用在 ASBR 上进行路由汇总.
- 缺省路由能够防止到达目标网络的详细路由出现在路由表里.其优点为使路由表和 LSDB最小化.
- OSPF 使用 default-information originate 命令去注入缺省路由.
9.虚拟链路(Virtual Links)
area area-id virtual-link router-id(cisco中的命令) 注意:router-id 为对端路由器的router-id
10.配置OSPF区域类型
末梢区域(stub area)和完全末梢区域(totally stub area)法则
一个区域成为末梢区域 或 完全末梢区域的条件:
- 只有一个ABR, 或者有超过一个的ABR, 但能够接受到 其他地区或外部自治系统的次优路由路径 。
- 在该区域中的所有路由器都要配为末梢路由器(stub router).
- 在该区域中没有 ASBR.
- 该区域不是区域 0.
- 没有虚拟链路(virtual link)穿越该区域.
末梢区域
完全末梢区域
- 使用 area area-id stub 命令去定义一个区域为末梢区域.
- 在ABR上使用 area area-id stub 命令加上no-summary 关键字去定义一个区域为完全末梢区域.
- 在末梢区域里, 外部路由不出现在路由表里面, 但是可以通过区域内的缺省路由到达
- 在完全末梢区域里, 区域间的和外部的路由都不在路由表里, 但是可以通过区域内的缺省路由到达
- 使用 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.拓扑图
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