动态路由OSPF基础学习笔记一

由于静态路由由网络管理员手工配置,因此当网络发生变化时,静态路由需要手动调整,这制约了静态路由在现网大规模的应用。

动态路由协议因其灵活性高、可靠性好、易于扩展等特点被广泛应用于现网。在动态路由协议之中,OSPF(Open Shortest Path First,开放式最短路径优先)协议是使用场景非常广泛的动态路由协议之一。

OSPF在RFC2328中定义,是一种基于链路状态算法的路由协议。

1.初步了解配置OSPF

(1)配置PC的IP地址信息

PC1:

PC2:

(2)配置R1和R2的接口IP

R1:

sysname R1

undo info-center enable

interface Ethernet0/0/0

 ip address 192.168.1.1 255.255.255.0

quit

interface Ethernet0/0/1

 ip address 12.1.1.1 255.255.255.0

 quit

R2:

sysname R2

undo info-center enable

interface Ethernet0/0/0

 ip address 192.168.2.1 255.255.255.0

quit

interface Ethernet0/0/1

 ip address 12.1.1.2 255.255.255.0

 quit

(3)配置OSPF

R1:

ospf 1 router-id 1.1.1.1     #创建ospf进程(进程号1)

 area 0.0.0.0              #进入区域0

  network 192.168.1.0 0.0.0.255     #通告直连网段

  network 12.1.1.0 0.0.0.255        #通告直连网段

quit

quit

R2:

ospf 1 router-id 2.2.2.2

 area 0.0.0.0

  network 192.168.2.0 0.0.0.255

  network 12.1.1.0 0.0.0.255

quit

quit

(4)验证测试

查看路由表

R1:

R2:

由此可以看出R1通过OSPF路由协议学习到去往192.168.2.0/24的路由信息,R2通过OSPF路由协议学习到去往192.168.1.0/24的路由信息。R1学到192.168.2.0/24通过R2向邻居通告它自身的路由信息学习到的,同样R1也会把自己路由表中学习到的192.168.1.0/24路由信息通告给R2。

PC1访问PC2:

2.动态路由概述

2.1为什么需要动态路由协议?

静态路由是由工程师手动配置和维护的路由条目,命令行简单明确,适用于小型或稳定的网络。

静态路由有以下问题:

无法适应规模较大的网络:随着设备数量增加,配置量急剧增加。

无法动态响应网络变化:网络发生变化,无法自动收敛网络,需要工程师手动修改。

例如图中的R1连接R2的链路发生故障,那么就需要网络管理员去手动配置更改R1去往R2的路由,需要经过R3在到R2。并且在R1和R2链路断开时或者发生故障时,R1上配置直接去往R2的静态路由是无法感知的,R1上的静态路由还是存在的,并不会因为链路故障而消失,除非管理员手动更改,这就是静态路由不灵活的体现了。

2.2动态路由协议的分类

2.2.1按工作区域分类

IGP(Interior Gateway Protocols,内部网关协议):RIP    OSPF    IS-IS

EGP(Exterior Gateway Protocols,外部网关协议:BGP

2.2.2按工作机制及算法分类

(Distance Vector Routing Protocols, 距离矢量路由协议) :RIP

(Link-State Routing Protocols,链路状态路由协议): OSPF  IS-IS

2.3距离矢量路由协议

运行距离矢量路由协议的路由器周期性的泛洪自己的路由表。通过路由的交互,每台路由器都从相邻的路由器学习到路由,并且加载进自己的路由表中。

对于网络中的所有路由器而言,路由器并不清楚网络的拓扑,只是简单的知道要去往某个目的方向在哪里,距离有多远。这即是距离矢量算法的本质。

假设R1路由表有1万多条,每隔30s左右向相邻的路由器去泛洪自己的路由表信息,R2收到之后呢,30s会向R3泛洪自己的路由表信息,那么对于链路带宽来说占用是比较严重的,比较消耗设备的资源。这就是距离矢量运行的特点,它传输时传递的都是完整的路由信息,它不是链路状态,链路状态不是传递完整的路由信息,而是传递“原材料”。

距离矢量是通过距离的远近来衡量路由到达目标的优劣,比如说R1到达R3有一条直连的链路,那么直接走R1相连R3比较近一些;而不是走到R2再到R3的线路。就算上面的带宽有10G那么大,底下是100M,对于距离矢量来说,还是底下距离最短最优到达目标,它只看距离远近,不管你的带宽有多大。

而链路状态协议,以OSPF来说,它既要看链路的带宽,也要看距离的远近,它要综合去衡量。

2.4链路状态路由协议 - LSA泛洪

与距离矢量路由协议不同,链路状态路由协议通告的的是链路状态而不是路由表。运行链路状态路由协议的路由器之间首先会建立一个协议的邻居关系,然后彼此之间开始交互LSA(Link State Advertisement,链路状态通告)

例如R3在OSPF中不再通告路由信息,而是LSA,跟R2、R4建立邻居。

LSA描述了路由器接口的状态信息,例如接口的开销、连接的对象等。

2.5链路状态路由协议 - LSDB组建

每台路由器都会产生LSAs,路由器将接收到的LSAs放入自己的LSDB(Link State DataBase,链路状态数据库)。路由器通过LSDB,掌握了全网的拓扑。

2.6链路状态路由协议 - SPF计算

每台路由器基于LSDB,使用SPF(Shortest Path First,最短路径优先)算法进行计算。每台路由器都计算出一棵以自己为根的、无环的、拥有最短路径的“树”。有了这棵“树”,路由器就已经知道了到达网络各个角落的优选路径。

例如R3以自己为树根去计算到达R4、R1和R2的路到底怎么走。

2.7链路状态路由协议 - 路由表生成

最后,路由器将计算出来的优选路径,加载进自己的路由表(Routing Table)。

2.8链路状态路由协议总结

第一步:建立邻居关系;

第二步:发送LSA(链路状态信息),有链路状态信息之后,收集到的信息会放进自己LSDB(链路状态数据库)里面;

第三步:根据LSDB通过运行SPF算法,算出相关的最优路径,

第四步:把最优的路由放进自己的路由表中,用于指导数据的转发。

3.OSPF简介

OSPF是典型的链路状态路由协议,是目前业内使用非常广泛的IGP协议之一。

目前针对IPv4协议使用的是OSPF Version 2(RFC2328);针对IPv6协议使用OSPF Version3(RFC2740)。如无特殊说明本章后续所指的OSPF均为OSPF Version 2

运行OSPF路由器之间交互的是LS(Link State,链路状态)信息,而不是直接交互路由。LS信息是OSPF能够正常进行拓扑及路由计算的关键信息。

OSPF路由器将网络中的LS信息收集起来,存储在LSDB中。路由器都清楚区域内的网络拓扑结构,这有助于路由器计算无环路径。

每台OSPF路由器都采用SPF算法计算达到目的地的最短路径。路由器依据这些路径形成路由加载到路由表中。

OSPF支持VLSM(Variable Length Subnet Mask,可变长子网掩码),支持手工路由汇总。

多区域的设计使得OSPF能够支持更大规模的网络。

4. OSPF在园区网络中的应用

OSPF通常运行在网关上,网关是二层和三层的分界线。

5. OSPF基础术语

5.1区域

OSPF Area用于标识一个OSPF的区域。

区域是从逻辑上将设备划分为不同的组,每个组用区域号(Area ID)来标识。

比如说区域0、区域1、区域2等等,为什么要划分区域?主要是为了适应大规模的网络,连减轻或者减少路由器的资源消耗,这是设计的初衷。有了这个区域之后,比如我们设计这个多区域的时候可以方便做路由的汇总,路由的过滤和路径的调整等等。

5.2 Router-ID

Router-ID(Router Identifier,路由器标识符),用于在一个OSPF域中唯一地标识一台路由器。

Router-ID的设定可以通过手工配置的方式,或使用系统自动配置的方式。

如果没有手动去配置Router-ID的话,系统会选择路由器上某个接口作为它的Router-ID。

R1:

sys

un in en

sysn R1

int e0/0/0

ip add 13.1.1.1 24

quit

ospf 1

are 0

net 13.1.1.0 0.0.0.255

quit

R2:

un in en

sysn R2

int e0/0/0

ip add 23.1.1.2 24

quit

ospf 1

are 0

net 23.1.1.0 0.0.0.255

quit

R3:

un in en

sysn R3

int e0/0/0

ip add 13.1.1.3 24

quit

int e0/0/1

ip add 23.1.1.3 24

quit

ospf 1

are 0

net 13.1.1.0 0.0.0.255

net 23.1.1.0 0.0.0.255

quit

通过查看OSPF邻居摘要信息命令可以查看router-ID

display ospf peer brief

R1:

R2:

R3:

这个Router-ID系统生成的不太稳定,最好进行手工配置,手工配置指定的router-id不一定是接口的IP地址。

当我们没有手工指定route-id的情况下,系统已经生成route-id了,如果再去手工配置的话它就是提示我们需要重启OSPF进程才会生效,这时候需要重启OSPF进程。

[R1]ospf 1 router-id 1.1.1.1

重启OSPF进程需要退出到系统配置视图下进行关闭,重启OSPF进程的命令为:

<R1>reset ospf process

还有一个手工配置router-id的方法,先是把整个OSPF进程删除掉,接着在全局下配置router-id,最后创建OSPF进程,配置区域和宣告路由信息。

以R2为例:

[R2]undo ospf 1

Warning: The OSPF process will be deleted. Continue? [Y/N]:y

[R2]router id 2.2.2.2

[R2]ospf 1

[R2-ospf-1]area 0

[R2-ospf-1-area-0.0.0.0]network 23.1.1.0 0.0.0.255

[R2-ospf-1-area-0.0.0.0]quit

[R2-ospf-1]quit

[R2]display ospf peer brief

宣告路由信息中,0.0.0.255为反掩码,0代表精确匹配,255也就是全为1,1表示任意匹配。

注意:router-id不能配置冲突,即R1和R2的router-id不可以配置相同。

5.3度量值

OSPF使用Cost(开销)作为路由的度量值。每一个激活了OSPF的接口都会维护一个接口Cost值,缺省时接口Cost=100Mbit/s接口带宽

其中100 Mbit/s为OSPF指定的缺省参考值,该值是可配置的。

笼统地说,一条OSPF路由的Cost值可以理解为是从目的网段到本路由器沿途所有入接口的Cost值累加

例如R2的接口带宽为100M,那么计算出来的开销就是1;

当接口带宽为1000M时,默认的100除以1000等于0.1,取值不会取0.1,而是1。

比如R1的E0/0/0百兆接口下的开销是多少呢?可以通过display ospf interface Ethernet 0/0/0命令来查看。

可以通过到接口下,使用命令ospf cost XXX来修改开销值。

开销的累加:

环回口的开销值为0;

如何看开销进行累加:

例如192.168.2.0到达192.168.1.0开销是多少,看路由传递的方向,也就是回包路由的方向,由图可以看出去往192.168.1.0的开销为1+1=2。

当有多条路径到达同一目标的时候,可以通过调整开销值来进行选路。

调整方式一:

把R2的e0/0/1口开销值改为10,那么去往192.168.1.0/24的开销累加就是1+10=11。

调整方式二:

修改缺省参考值100 Mbit/s变为1000Mbit/s

进入到OSPF进程下进行配置修改

[R2]ospf 1

[R2-ospf-1]bandwidth-reference 1000

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值