OSPF协议总结

OSPF协议总结---By Joe&东东&校长

1、邻居是否自动发现:要有广播的特点

2、DR BDR 选举:要有多点接入

3、否则就要静态指定

O    区域内  LSA1. LSA2

O IA  区域间  LSA3.LSA4

OE1    都是外部  LSA5. LSA 7

OE2

ON1

ON2

外部路由不优先

OSPF  O>OIA>OE1>OE2

 

 

 

 


                                           DR 通告

                                           ABR通告,整个网络泛红

 

 

 

 

 

 

 

LSA 1  和LSA2 只在本区域泛红,其他整个OSPF网泛红。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

OSPF的五个包:

1.Hello:9项内容,4个必要

2.DBD:数据库描述数据包(主要描述始发路由器数据库中的一些或者全部LSA信息),主要包括接口的MTU,主从位MS,数据库描述序列号等);

3.LSR:链路状态请求数据包(查看收到的LSA是否在自己的数据库,或是更新的LSA,如果是将向邻居发送请求);

4.LSU:链路状态更新数据包(用于LSA的泛洪扩散和发送LSA去响应链路状态请求数据包);

5.LSACK:链路状态确认数据包(用来进行LSA可靠的泛洪扩散,即对可靠包的确认)。

 

Hello包作用:

1.发现邻居;

2.建立邻居关系;

3.维持邻居关系;

4.选举DR,BDR

5.确保双向通信。

 

Hello包所包含的内容:

路由器id

Hello&Dead间隔 *

区域id *

邻居

DR

BDR

优先级

验证 *

末节区域 *

 

注:1.*”部分全部匹配才能建立邻居关系。

2.邻居关系为FULL状态;而邻接关系是处于TWO-WAY状态。

 

Hello时间间隔:

在点对点网络与广播网络中为10秒;

在NBMA网络与点对多点网络中为30秒。

注:

保持时间为hello时间4倍

虚电路传送的LSA为DNA,时间抑制,永不老化.

 

OSPF的组播地址:

DR将使用组播地址224.0.0.5泛洪扩散更新的数据包到DRothers

DRothers使用组播地址224.0.0.6发送更新数据包

组播的MAC地址分别为:0100.5E00.0005,0100.5E00.0006

OSPF的包头格式:

| 版本   |类型 | 长度  | 路由器ID |区域ID    | 验证和 |  验证类型  |验证 |   数据    |
| 1 byte |   1   |   2   |    4    |     4     |   2    |      2    | 8   | variance |

 

OSPF支持的验证类型:

OSPF支持明文和md5认证,用Sniffer抓包看到明文验证的代码是“1”,md5验证的代码是“2”。

 

OSPF支持的网络类型:

1.广播

2.非广播

3.点对点(若MTU不匹配 将停留在EX-START状态)

4.点对多点

5.虚电路(虚电路的网络类型是点对点)

虚链路必须配置在ABR上,

虚链路的配置使用的命令是area transit-area-idvirtual-link router-id

虚链路的Metric等同于所经过的全部链路开销之和

 

DR /BDR选举:与区域无关,与端口有关系,点到点链路(串行口)不需要DR/BDR选举

1.优先级(0~255; 0代表不参加选举;默认为1);

2.比较Router-id。

次者为BDR。

Point-to-Point, Point-to-Multipoint(广播与非广播)这三种网络类型不选取DRBDR; Broadcast, NBMA选取DRBDR

 

先启动OSPF进程的路由器会等待一段时间,这个时间内你没有启动其它路由的OSPF进程的话,第一台路由就认为自己是DR,之后再加进来的也不能在选举了,这个等待时间叫做Wait Timer计时器,CISCO规定的WaitTimer40这个时间内你启动的路由是参与选举的所以真实工作环境中,40秒你大概只启动了两台,DR会再前两台启动的路由中产生,工作一段时间以后,活的最久的路由最有可能成为DR

 

OSPFover FRAME-RELAY 的配置:

(1)   NBMA : 在HUB上指定邻居;SPOKE上设置优先级为0。

(2)   P-TO-P: 接口下配置命令 ipospf network point-to-point。

(3) P-TO-MULT P:接口下配置命令 ipospf network point-to-multipoint。

 

按需电路配置:

接口下配置命令 ip ospf demand-cricuit。

 

孤立区域问题解决:

1.虚电路(虚电路穿过的区域一定是标准区域,标准区域一定是全路由的

2.隧道

3.多进程重分发

注:如果中间间隔区域为stub区域,则只能用隧道解决.

 

OSPF分区域的原因:

1.LSA数据过大,造成带宽负载过大。

2.计算全网拓扑,对cup要求过高。

3.数据库过大,对内存要求过高。

NBNA2个特殊配置:因为是非广播的是,所以要人工选择邻居。DR要静态指定

OSPF的区域类型:

骨干:    LSA:12 3 4 5

标准:    LSA:12 3 4 5

stub:     LSA1 2 3

nssa:      LSA1 2 3 7 7(default)  

AREA 1 NSSA DEFAULT INFORMATION-ORIGINATE

(ABR上产生默认路由LSA7)

total-stub:  1 2一条默认3

total-nssa:  1 2 7一条默认3

 

LSA的类型:

类型1:  路由器链路信息

内容包括:路由器链路Router-id; 接口地址; 接口网络; 接口花费

可使用show ospf database router命令查看。

类型2: 网络链路信息

由DR通告,如果是点对点的网络类型,没有LSA2

类型3、4:汇总链路(都是ABR通告)

3号通告ospf区域间信息

4号通告asbr的router-id信息(通告nssa区域的abr)

类型5: 通告外部路由

类型7: nssa区域外部路由

类型11: 用于打标签

类型代码

类型名称

描述

1

路由器LSA  Router LSA

每台路由器都会产生,在区域内泛洪

2

网络LSA  Network LSA

DR产生,在区域内泛洪

3

网络汇总LSA  Summary LSA

ABR始发,在整个OSPF域中泛洪

4

ASBR汇总 LSA  ASBR Summary LSA

ABR始发,在整个OSPF域中泛洪

5

AS外部LSA  External LSA

ASBR始发,在整个OSPF域中泛洪

6

组成员LSA

标识OSPF组播中的组成员,不做讨论

7

NSSA外部LSA  SSA External LSA

ASBR始发,

8

外部属性LSA

没有实现

9

Opaque LSA(本地链路范围)

 

用于MPLS流量工程,不做讨论

10

Opaque LSA(本地区域范围)

11

Opaque LSAAS范围)

 

 

 

OSPF邻居建立过程:

A-------------------------B

down

init      B收到A 发来hello进入init状态

two way  hello 4个“*”匹配,选举DR BDR ;A在hello中发现自己的Router-id;

exstart    交换DBD;确立主从关系(多路访问Router-id高为主,低为从;串行接口下接口地址大的为主)

exchange 交换数据DBD (主的先发

loading  交换完整数据包LSR LSU

full

注:

每个LSA由序列号确认为最新的更新。

 

当路由器收到LSA之后的处理过程:

(1)如果数据库有这样的,再查看序列号,如果序列号相同,忽略这条LSA;如果序列号偏大,将其转到数据库,并进行SPF,更新路由表;如果序列号偏小,将一个包含自己的LSA新信息发送给发送方。

(2)如果数据可没有这样的,将其加到数据库表,并发一个ACK返回,并运行SPF,更新路由表。‘

 

OSPFMetric值:

Cost=108次方/带宽,简便记做100Mb/带宽值。Metric值是由cost值逐跳累加的

 

环回口的路由,掩码为/32,既我们所说的“主机路由”。在实际应用中,环回口以32位的居多,用作ospf的管理接口。但是如果你想让环回口模拟一个网段,我们可以通过以下配置来消除。

R1(config)#intloopback 0

R1(config-if)#ip ospfnetwork point-to-point

环回口只能配置成point-to-point这种类型,不可以配置成其它的类型。

 

 

其他:

1.当一个路由器既是ABR又是ASBR时为了不让巨量外部路由分发进nssa区域使用命令:area1 nssa no-redistribution default-information originate

 

2.配置命令show ip ospf database router用来查询拓扑

 

3.一个路由器在理论上支持65535个OSPF进程,在实际环境中一个路由器可支持的OSPF

进程数量与其可用物理接口数量相等。(这个我对老师说的有疑问,如果我启用了很多环回口,每个环回口一个区域不可以吗?

 

 

OSPF汇总

OSPF骨干区域当中,一个区域的所有地址都会被通告进来。但是如果某个子网忽好忽坏不稳定,那么在它每次改变状态的时候,都会引起LSA在整个网络中泛洪。为了解决这个问题,我们可以对网络地址进行汇总。

Cisco路由器的汇总有两种类型:区域汇总和外部路由汇总。区域汇总就是区域之间的地址汇总,一般配置在ABR上;外部路由汇总就是一组外部路由通过重发布进入OSPF中,将这些外部路由进行汇总。一般配置在ASBR上。

区域汇总:

area area-id range ip-address mask

外部路由汇总:

summary-address ip-address mask

 

 

我设计的两个试验,把几个知识点串起来

试验一

用一个试验总结一下ospf over桢中继的时候,OSPF几种网络类型的差别。

 

      

封装好FRDEBUG看到的几种情况

 

情况一:两边只起了OSPF进程,其它全部默认 

这种情况下邻居需要手动配置!

R2(config)#routerospf 10

R2(config-router)#neighbor12.1.1.3

选举了DR,BDR

hello的间隔是30s

OSPF的数据包是单播传送的。

 

情况二:两边的网络类型改为Broadcast(命令接口下ip ospf networkbroadcast

这种网络类型下是不需要手动配置邻居关系

DRBDR的选举。

Hello时间间隔为10s

使用224.0.0.5这个组播地址传送数据包。

 

情况三:网络类型改为Point-to-Point(命令接口下ip ospf netpoint-to-point

不需要手动指定邻居

没有DR/BDR的选举

Hello时间间隔为10s

使用224.0.0.5这个组播地址传送数据。

情况四:Point-to-Multipoint(命令接口下ip ospf networkpoint-to-multipoint

不需要手动指定邻居

没有DRBDR的选举

Hello时间间隔为30s

224.0.0.5这个组播地址发送数据

 

情况五:非广播的Point-to-Multipoint

(命令接口下ip ospf networkpoint-to-multipoint non-broadcast

邻居需要手动指定,但是邻居只要在一边指定即可。

没有DRBDR的选取

Hello时间间隔为30s

使用单播传送OSPF数据

 

列出一张表,方便看

网络类型

邻居自动发现

有无DR选举

Hello间隔

传输方式

默认

30s

单播

Broadcast

10s

组播

Point-to-Point

10s

组播

Point-to-Multipoint

30s

组播

Point-to-Multipoint(非广播)

否,单边指即可

30s

单播

 

试验二

OSPF的认证总结:

OSPF的认证有2种类型(不验证也算的话是3种),使用DEBUG可以看到type0表示无认证,type1表示明文认证,type2表示MD5认证。明文认证发送密码进行认证,而MD5认证发送的是报文摘要。

OSPF的认证可以在链路上进行,也可以在整个区域内进行认证。另外虚链路同样也可以进行认证。

同样也是分情况来讨论。

情况一:R1R2明文验证

R1(config)#int s1/0

R1(config-if)#ipospf authentication(启用认证)

R1(config-if)#ipospf authentication-key cisco(配置密码)

不配置R2的话

通过debug工具我们可以看到如下信息:

*Aug 15 22:51:54.275: OSPF: Rcv pkt from10.1.1.2, Serial1/0 : Mismatch Authentication type. Input packet specified type0, we use type 1

这里的type0是指对方没有启用认证,type1是明文认证。

 

R2上配置认证,使得邻居关系恢复。

R2(config)#int s1/0

R2(config-if)#ipospf authentication

R2(config-if)#ipospf authentication-key cisco

*Aug 15 22:54:55.815: %OSPF-5-ADJCHG:Process 10, Nbr 1.1.1.1 on Serial1/0 from LOADING to FULL, Loading Done

情况二:R2R3的串行链路上进行MD5认证的:

R2(config)#int s1/1

R2(config-if)#ipospf authentication message-digest(定义认证类型为MD5

R2(config-if)#ipospf message-digest-key 1 md5 cisco(定义key和密码)

R3(config)#int s1/0

R3(config-if)#ipospf authentication message-digest

R3(config-if)#ipospf message-digest-key 1 md5 cisco

 

情况三:增加R2R3上串行链路的MD5认证的密码:

  R2原有的配置上加上下面这条命令:

R2(config-if)#ipospf message-digest-key 2 md5 openlab

R2#sho ip ospfneighbor

 

Neighbor ID  Pri  State        Dead Time   Address         Interface

3.3.3.3       0   FULL/ -      -        11.1.1.2        OSPF_VL0

1.1.1.1       1  FULL/BDR  00:00:34    21.1.1.1    FastEthernet0/0

1.1.1.1       0  FULL/  -    00:00:37    10.1.1.1        Serial1/0

3.3.3.3      0   FULL/  -   00:00:31    11.1.1.2        Serial1/1

邻居关系没有丢失。

增加新的密码钥匙,然后在将原来的密码删除,候邻居关系不受影响。

 

 

情况四:在Area0上进行区域认证(以前没做过吧)

R1(config)#router ospf 10

R1(config-router)#area 0 authentication

还没有写下一步,就是刚启用,还没设置密码,邻居就down掉了

同样,R2上启用一下,邻居就恢复

或者都设置相同的密码也可以。

 

情况五:Area0上进行区域认证以后。。。

R2#clear ip ospf pro清进程,A2区域的学不到邻居了。R3是通过虚链路连接到骨干区域的。因为virtual-link属于Area0,因此在R2配置完成Area0区域认证后,R3也需要相应的配置。

R3(config)#routerospf 10

R3(config-router)#area0 authentication

这样就可以了

 

情况六:单纯的虚链路的认证(这个以前也没做过吧)

明文认证,MD5认证。配置命令如下:

 

明文:

R2(config-router)#area1 virtual-link 3.3.3.3 authentication-key cisco

R3(config-router)#area1 virtual-link 2.2.2.2 authentication-key cisco

 

 

MD5

R2(config-router)#area1 virtual-link 3.3.3.3 authentication message-digest

R2(config-router)#area1 virtual-link 3.3.3.3 message-digest-key 1 md5 cisco

R3(config-router)#area1 virtual-link 2.2.2.2 authentication message-digest

R3(config-router)#area1 virtual-link 2.2.2.2 message-digest-key 1 md5 cisco

 

另外通过实验知道虚链路在建立起来后是DNA LSA(不老化LSA),所以如果没有重启OSPF进程的话,即使一端配置了认证,虚链路也是不会断开的。

 

 

 

 

 

 

 

后面是sniffer抓得包

 

 

 

 

 

Hello

 

 

 

 

 

 

 

 

Lsu

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

LSACK

 

 

 

 

 

 

上面是一般情况,下面是明文验证的几个包

Hello

 

 

 

 

 

 

 

 

 

DBD

 

 

 

 

 

 

 

 

 

LSR

 

 

 

 

 

 

 

 

 

 

 

 

LSU

 

 

 

 

 

 

 

LSACK

 

 

 

下面是MD5加密认证得包

 

 

 

 

 

Hello

 

 

 

 

 

 

 

 

 

 

 

DBD

 

 

 

 

 

 

 

 

 

 

 

LSR

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

LSU

 

 

 

 

LSACK

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值