OSPF协议总结

1Ospf的特性

1、由地区和自治系统组成

2、最小化的路由更新的流量

3、允许可缩放性

4、支持VLAM/CIDR

5、拥有不受限的跳计数

6、允许多销售商的设备集成

  

2OSPF的五个包:

1Hello9项内容,4个必要

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

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

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

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

3OSPF邻居建立过程:

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

down 

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

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

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

exchange  交换数据DBD (主的先发

loading   交换完整数据包LSR LSU

full

注:

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

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

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

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

4OSPFMetric值:

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

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

R1(config)#int loopback 0

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

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

5Hello包作用:

1.发现邻居;

2.建立邻居关系;

3.维持邻居关系;

4.选举DRBDR

5.确保双向通信。

Hello包所包含的内容:

路由器id

Hello&Dead间隔 *

区域id *

邻居 

DR

BDR

优先级

验证 *

末节区域 *

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

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

Hello时间间隔:

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

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

注:

保持时间为hello时间4

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

6OSPF的组播地址:

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

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

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

7OSPF的包头格式:

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

8OSPF支持的验证类型:

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

9DR /BDR选举:

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

2. 比较Router-id(RID选举方式:①手工指定;②lookback口最大的ip地址;③物理接口最大的ip地址)

次者为BDR

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

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

10OSPF 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

11OSPF支持的网络类型:

1.广播

2.非广播

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

4.点对多点 

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

虚链路必须配置在ABR上, 

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

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

12孤立区域问题解决:

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

2. 隧道 

3. 多进程重分发

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

13OSPF分区域的原因:

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

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(思科私有)

14LSA的类型:

类型1: 路由器链路信息

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

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

类型2: 网络链路信息

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

类型34:汇总链路(都是ABR通告)

3号通告ospf区域间信息

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

类型5: 通告外部路由

类型7: nssa区域外部路由

类型11: 用于打标签

其他:

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

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

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

进程数量与其可用物理接口数量相等。

15OSPF汇总

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

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

区域汇总:

   area area-id range ip-address mask

外部路由汇总:

summary-address ip-address mask

16、向Ospf区域注入默认路由:连接外网时常用两种方法

  1、路由进程下:default-information originate,若本地没有默认路由,必须手动添加下一跳指向外网。(非强制)

   2default-information originate always(强制)

17、负载均衡:默认最多4条,可设为最多6

18、被动接口:不收发ospf报文(优化环回口)

Network 通告路由和hello包,被动接口只是把报文抑制了

路由经常下,passive-interface  lookback0

19、修改cost

1、修改带宽公式:路由模式下,auto-cost reference-bandwidth, cost=10^8/带宽bps,带宽100M以上时,如想让网络能分辨100M以上带宽cost值,可用此方法

2、直接修改cost:接口下使用ip ospf cost