目录

一、OSPF技术背景

1.动态路由协议的分类

1)距离矢量路由协议

 2)链路状态路由协议

(1)LSA泛洪

(2)LSDB组建

(3)SPF计算(最短路径优先)

(4) 路由表生成

(5)链路状态路由协议总结 

二、OSPF (开放式最短路径优先)

1.ospf简介

 目前网络中最常见的链路状态路由协议:OSPF、ISIS

 2.Area区域

3.Router-ID

4.lookback接口 - 代替PC去测试网络连通性

 5.度量值cost

1)cost值=参考带宽/实际带宽

                =100M/s:1000M/s=0.1  => cost=1

2)OSPF网络的开销值计算方式=

        所经过的链路出接口cost+目的网络的出接口cost=所有设备出接口cost

6. ospf协议报文类型

7.ospf三大表项

1)邻居表

display ospf peer(brief)

2)LSDB表

 display ospf lsdb

3)ospf路由表

display ospf routing

8. 邻居关系和邻接关系

 邻居关系建立全过程 

9.ospf网络类型简介

ospf是基于接口划分的 ,接口决定了ospf的网络类型。

1)broadcast广播型

2)nbma非广播多路访问

3)p2mp点到多点

4)p2p点到点

10.DR与BDR

DR 和 BDR只在广播型链路中存在,避免LSA过分泛滥。

1)DR、BDR、DRother的作用

2)DR运作过程

3)DR的选举

 4)优先级最高、routerid最大的不一定是DR!!

11.ospf基本配置

ospf进程号 

总结:

1.跨设备建立邻居,无关进程号,一样能建立;就如:AR2 G0/0/0(OSPF 2)  和 AR1 G0/0/0(OSPF 1),可以建邻居交换LSA。

2.本设备,进程号(仅对本地隔离)区分两个不同的ospf网络;就如:AR1 G0/0/0(OSPF 1) 和AR1 G0/0/1(OSPF 2) ,无法建邻居,无法交换LSA,ospf 1永远无法和ospf 2 有任何交互。

思考题

1.BD

2.BD


一、OSPF技术背景

transit ospf报文 ospf报文内容_p2p

transit ospf报文 ospf报文内容_链路_02

        前几章配置静态路由的时候,我们不难发现,静态路由配置需要考虑下一跳、出接口,以及网络往返来回的配置,配置工作量大。最重要的是,静态路由不能根据拓扑图的变化而做出相应调整。在小型的网络中我们用静态可以解决,但是在一些大企业的网络静态就无法满足我们的需求了。

所以动态路由就能很好的解决这些问题。

1.动态路由协议的分类

transit ospf报文 ospf报文内容_链路_03

按照工作区域分类:IGP(内部网关协议)、EGP(外部网关协议)

按照工作机制和算法分类:距离矢量路由协议、链路状态路由协议

1)距离矢量路由协议

transit ospf报文 ospf报文内容_tcp/ip_04

最常见的距离矢量路由协议就是RIP,但是现在已经淘汰了。

缺点:

1)周期性泛洪路由表,占带宽,处理数据时,增加CPU负担。

2)当路由表数据成千上万时,泛洪给其他路由器设备,而且设备资源负载严重

3)因为是周期性,所以在这个周期里,有的设备收到了数据,有的还没来得及收

 2)链路状态路由协议

(1)LSA泛洪

transit ospf报文 ospf报文内容_transit ospf报文_05

与距离矢量路由协议不同的是,链路状态路由协议泛洪的是链路状态(LSA),而不是整张路由表。

链路状态信息:直连链路的状态信息

transit ospf报文 ospf报文内容_tcp/ip_06

(2)LSDB组建

LSDB(链路状态数据库):存放LSA信息

transit ospf报文 ospf报文内容_网络_07

transit ospf报文 ospf报文内容_transit ospf报文_08

LSA信息

transit ospf报文 ospf报文内容_transit ospf报文_09

(3)SPF计算(最短路径优先)

transit ospf报文 ospf报文内容_tcp/ip_10

 LSDB同步以后,每台路由器都能感知到整个网络的拓扑,自动断开次优路径,在环形网络中会出现环路,但是SPF计算可以解决这一问题。

以自己为根的、无环的、拥有最短路径的“树”。

(4) 路由表生成

transit ospf报文 ospf报文内容_链路_11

 SPF选出最优路径后,加载进自己的路由表中

(并不是有路由就加进去,而是加入最优的路由,先比较协议优先级,相同协议再比较开销)

(5)链路状态路由协议总结 

transit ospf报文 ospf报文内容_网络_12

1.建立邻居关系

2.双方交互LSA

3.同步lsdb链路状态数据库

4.计算(整张网络的拓扑、计算无环的路、计算最优的路)

5.最终生成路由表项

二、OSPF (开放式最短路径优先)

1.ospf简介

transit ospf报文 ospf报文内容_链路_13

 目前网络中最常见的链路状态路由协议:OSPF、ISIS

transit ospf报文 ospf报文内容_p2p_14

 2.Area区域

transit ospf报文 ospf报文内容_transit ospf报文_15

 area 0为骨干区域,核心区域

3.Router-ID

transit ospf报文 ospf报文内容_链路_16

 在该网络的整个ospf域中,唯一标识一台路由设备。(相当于是这台ospf设备的名字)

Router-ID:全局Router-ID、OSPF的Router-ID

        1)全局Router-ID:出厂设备上Router-ID为0.0.0.0。在配置上第一个IP地址后,该Router-ID会自动变成该IP地址。(所以全局Router-ID不会重复,也不可能重复)

        2)OSPF Router-ID:如果没有手动配置,则默认使用全局Router-ID;否则,优先使用手动配置的ospf Router-ID。

           1-若路由器配了IP地址,则router-id默认为第一个配置的接口ip地址
此时重启ospf进程之后,router-id并没有发生变化。
           2-再次修改配置的第一个接口的ip地址,重启ospf进程
那么第一个配置的IP地址,则被刷新,成为最新的ip地址;(不是第一个配置的ip地址了)
而配置的第二个ip地址则成为第一个配置的ip地址
   重启ospf进程后,第二个配置的ip地址成为router-id
 

如果ospf Router-ID配置时,忘记配或者配错了,不要去改。(因为配错了,就只能重启了,而重启就意味着网络会瘫痪一段时间)

transit ospf报文 ospf报文内容_transit ospf报文_17

        *小tips:实际网络中,不要随便关机、重启,正在运行的设备和各种协议进程,因为有的设备重启,关机之后就再也起不来了,就算起来了,在重启过程的时间也就是网络瘫痪的时间,会很长。很有可能进局子。。 

4.lookback接口 - 代替PC去测试网络连通性

transit ospf报文 ospf报文内容_tcp/ip_18

 有些设备不能插网线(也有的设备接口很少),测试网络连通性时,就无法接入PC去ping。就算连接上PC去ping,还需要给PC配置IP地址,给设备配置网关,极为麻烦。

所以lookback接口就可以代替PC去测试网络连通性。

 5.度量值cost

transit ospf报文 ospf报文内容_transit ospf报文_19

1)cost值=参考带宽/实际带宽

                =100M/s:1000M/s=0.1  => cost=1

参照带宽默认为100M/s,可以修改,改的是整台设备的参考带宽。当默认带宽改为1500时,1500M/s:1000M/s=1.5  => cost=1

cost只有整数所以会将小数化整。cost<1时,取值为1;cost>1时,取整数部分。所以开销值cost最小为1

可以通过修改整台设备的参考影响ospf的cost;也可以直接修改ospf的cost;

transit ospf报文 ospf报文内容_网络_20

2)OSPF网络的开销值计算方式=

        所经过的链路出接口cost+目的网络的出接口cost=所有设备出接口cost(包括自己)

例如

transit ospf报文 ospf报文内容_tcp/ip_21

 AR4到PC1的开销:走上路cost=5+5+5=15

                                走下路cost=10+10+5=25

通过SPF算法,算出开销值后,选择最小开销的路径走,也就是说 AR4到PC1会走上路

PC1 回到AR4的开销:走上路cost=10+10=20

                                     走下路cost=5+5=10

通过SPF算法,算出开销值后,选择最小开销的路径走,也就是说 PC1 回到AR4会走下路

*这导致来回路径不一致,在现阶段,可以使用改开销实现都走上面或者下面,在后面的学习,我们可以用各种策略,来实现。

6. ospf协议报文类型

transit ospf报文 ospf报文内容_p2p_22

 例子:(去餐厅吃饭)

1.hello报文,就是走进餐厅(建立邻居关系)

2.DD报文,就是服务员给了一个菜单(链路状态数据库LSDB摘要信息)

3.LSR报文,就是我点我需要的菜【麻辣香锅】【鱼香肉丝】(请求所缺少的LSA信息)

4.LSU报文,就是服务员向我送来【麻辣香锅】【鱼香肉丝】我的点那些菜(向请求方【我】发送所需要的LSA)

5.LSA报文,我吃完饭付钱结账(对收到的LSA进行确认)

7.ospf三大表项

1)邻居表

display ospf peer(brief)

2)LSDB表

transit ospf报文 ospf报文内容_网络_23

 display ospf lsdb

transit ospf报文 ospf报文内容_p2p_24

type(LSA的类型)、Linkstate ID(LSA的名字)、AdvRouter (产生该路由的设备名称),仅靠这三个就能确定一条唯一的LSA

3)ospf路由表

transit ospf报文 ospf报文内容_网络_25

专门由ospf计算得出的路由

display ospf routing

8. 邻居关系和邻接关系

transit ospf报文 ospf报文内容_链路_26

 邻居关系建立全过程 

transit ospf报文 ospf报文内容_p2p_27

transit ospf报文 ospf报文内容_tcp/ip_28

 1)two-way状态

通过hello报文,找邻居,建立邻居关系

AR1发送组播,说“hello,有人嘛?我是1.1.1.1”,AR2收到之后,知道了1.1.1.1的存在,此时是init(单项发现)

AR2回复,说“hello,邻居1.1.1.1你好啊,我是2.2.2.2”,于是AR1通过报文发现,2.2.2.2知道自己了。

于是AR1,又说“你好呀,邻居2.2.2.2,我是1.1.1.1”,于是AR2通过报文发现,1.1.1.1知道自己了,此时为two-way(双向发现)

transit ospf报文 ospf报文内容_transit ospf报文_29

 2)主从选举master/slave  ---exstart状态

单纯的选举主(AR2)(AR1)没有任何LSA的交互

双方通过router-id比较,数值大的为主,小的为从。报文里还带上了自己的随机序列号(AR1带的x,AR2带的y)

3)exchange状态

此时,从先向主发送lsa摘要信息,并且带上主的序列号y;主收到后会回复,序列号y+1;

直到LSA概况信息发完时,LSA变成null,告诉主,发完了;主看到之后,也会回复null,确认LSA收发结束;

4)loading状态

开始请求完整的LSA

双方通过对比对方的LSA摘要信息,请求自己缺少的LSA,发送LSR报文,LSU 报文以及LS ACK报文。

5)FULL 邻接关系

此时双方的LSDB链路状态数据库完全相同。

9.ospf网络类型简介

ospf是基于接口划分的 ,接口决定了ospf的网络类型。

1)broadcast广播型

2)nbma非广播多路访问

3)p2mp点到多点

4)p2p点到点

transit ospf报文 ospf报文内容_p2p_30

P2P点到点,就是串口连接的两台设备,链路两端各自只有一台设备,链路中间没有其他设备了。

BMA广播型链路,就是以太网接口将设备相连接,在一个广播域内。

transit ospf报文 ospf报文内容_链路_31

  NBMA非广播多路访问,有一个映射表(记录出入接口、和初入接口的ip地址) ,现已淘汰。

transit ospf报文 ospf报文内容_tcp/ip_32

P2MP点到多点,就是一根网线,分成两节,接在终端上。(虽然听着很离谱,但真的就这么离谱。。。)

transit ospf报文 ospf报文内容_网络_33

10.DR与BDR

transit ospf报文 ospf报文内容_p2p_34

DR 和 BDR只在广播型链路中存在,避免LSA过分泛滥。

因为在广播型链路中,LSA会在广播域内过分泛滥,导致路由器重复收发LSA。

1)DR、BDR、DRother的作用

DR:指定路由器

BDR:备用指定路由器

DRother:除了DR/BDR的路由器;只和DR、BDR建立邻接关系,DRother之间是邻居关系。

DR、BDR要监听两个地址224.0.0.5(收)、224.0.0.6(发);并且都不具备抢占性;

DRother通过0.6发送新学到的LSA,通过0.5接受来自DR的LSA

2)DR运作过程

为了避免单点故障,DR失效时,默认选举BDR顶替DR;若BDR也失效,则在DRother中继续选举出BDR;

若DR又恢复,DR不会抢占,恢复后就只是个普通的路人甲了

3)DR的选举

        1.DR接口的优先级,优先级范围0-255值越大越优先成为DR

        2.优先级相同,则比较router-id id值越大越优先

transit ospf报文 ospf报文内容_网络_35

 4)优先级最高、routerid最大的不一定是DR!!

因为,管理员手工配置需要时间,可能在配置前两个ospf时,DR和BDR就已经选举完成了。

11.ospf基本配置

transit ospf报文 ospf报文内容_网络_36

ospf是基于接口划分的,欲想建立邻居,就需要将自己接口所处的直连网段宣告出去

[AR3-ospf-1]di th # ospf 1 area 0.0.0.0 network 23.1.1.0 0.0.0.255 宣告AR3的g0/0/1接口的直连网段 network 34.1.1.0 0.0.0.255 宣告AR3的g0/0/0接口的直连网段 #

network  接口所处的直连网段 反掩码

0.0.0.255是反掩码

 

transit ospf报文 ospf报文内容_p2p_37

ospf进程号 

ospf进程号隔离不同的ospf进程网络,也就是说ospf1进程的网络与ospf2里的网络是隔离的。

但是ospf进程号不同也可以建邻居

例如:

1)

我将AR2的g0/0/0接口化为ospf 2与 AR1的g0/0/0为ospf 1的建立邻居(state为full),也就说明此时AR1可以和AR2交换LSA,但是交换的是ospf 1网络内的LSA,而AR1 G0/0/0和 G0/0/1之间是不会交换LSA的,因为ospf基于接口划分,ospf 1的LSA不会和ospf 2的LSA产生联系

transit ospf报文 ospf报文内容_网络_38

2)但是,此时如果我们把AR1的G0/0/0接口加入进ospf 2,那么AR1和AR2建立邻居可以交互LSA,也就是说ospf 2里的内容,AR2也将知晓

transit ospf报文 ospf报文内容_p2p_39

 3)

总结:

1.跨设备建立邻居,无关进程号,一样能建立;就如:AR2 G0/0/0(OSPF 2)  和 AR1 G0/0/0(OSPF 1),可以建邻居交换LSA。

transit ospf报文 ospf报文内容_tcp/ip_40

2.本设备,进程号(仅对本地隔离)区分两个不同的ospf网络;就如:AR1 G0/0/0(OSPF 1) 和AR1 G0/0/1(OSPF 2) ,无法建邻居,无法交换LSA,ospf 1永远无法和ospf 2 有任何交互。

transit ospf报文 ospf报文内容_tcp/ip_41

思考题

transit ospf报文 ospf报文内容_transit ospf报文_42

1.BD

DRother之间稳定在two-way;

其他稳定在full;

2.BD