OSPF_协议的解析及详解

发布时间 : 星期日 文章OSPF_协议的解析及详解更新完毕开始阅读

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-id virtual-link router-id 虚链路的Metric等同于所经过的全部链路开销之和

DR /BDR选举:

1.优先级(0~255; 0代表不参加选举;默认为1); 2.比较Router-id。 次者为BDR。

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

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

OSPF over FRAME-RELAY 的配置:

(1) NBMA : 在HUB上指定邻居;SPOKE上设置优先级为0。 (2) P-TO-P: 接口下配置命令 ip ospf network point-to-point。

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

按需电路配置:

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

孤立区域问题解决:

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

3.多进程重分发

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

OSPF分区域的原因:

1.LSA数据过大,造成带宽负载过大。 2.计算全网拓扑,对cup要求过高。 3.数据库过大,对内存要求过高。

OSPF的区域类型: 骨干: LSA:1 2 3 4 5 标准: LSA:1 2 3 4 5 stub: LSA1 2 3

nssa: LSA1 2 3 7 7(default)

AREA 1 NSSA DEFAULT INFORMATION-ORIGINATE (ABR上产生默认路由LSA 7)

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 2 3 4 5 6 7 8 9 10 11 路由器LSA 网络LSA 网络汇总LSA ASBR汇总LSA AS外部LSA 组成员LSA NSSA外部LSA 外部属性LSA Opaque LSA(本地链路范围) Opaque LSA(本地区域范围) Opaque LSA(AS范围) 类型名称 描述 每台路由器都会产生,在区域内泛洪 DR产生,在区域内泛洪 ABR始发,在整个OSPF域中泛洪 ABR始发,在整个OSPF域中泛洪 ASBR始发,在整个OSPF域中泛洪 标识OSPF组播中的组成员,不做讨论 ASBR始发, 没有实现 用于MPLS流量工程,不做讨论

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,更新路由表。‘

OSPF的Metric值:

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

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

R1(config-if)#ip ospf network point-to-point

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

其他:

1.当一个路由器既是ABR又是ASBR时为了不让巨量外部路由分发进nssa区

域使用命令:area 1 nssa no-redistribution default-information originate

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

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

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

联系合同范文客服:xxxxx#qq.com(#替换为@)