《OSPF协议详解.docx》由会员分享,可在线阅读,更多相关《OSPF协议详解.docx(12页珍藏版)》请在三一办公上搜索。
1、OSPF协议详解OSPF协议总结 OSPF的五个包: 1Hello:9项内容,4个必要 2DBD:数据库描述数据包,主要包括接口的MTU,主从位MS,数据库描述序列号等); 3LSR:链路状态请求数据包; 4LSU:链路状态更新数据包; 5LSACK:链路状态确认数据包。 Hello包作用: 1发现邻居; 2建立邻居关系; 3维持邻居关系; 4选举DR,BDR 5确保双向通信。 Hello包所包含的内容: 路由器id Hello&Dead间隔 * 区域id * 邻居 DR BDR 优先级 验证 * 末节区域 * 注:1“*”部分全部匹配才能建立邻居关系。 2邻居关系为FULL状态;而邻接关系是
2、处于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 byt
3、e | 1 | 2 | 4 | 4 | 2 | 2 | 8 | variance | OSPF支持的验证类型: OSPF支持明文和md5认证,用Sniffer抓包看到明文验证的代码是“1”,md5验证的代码是“2”。 OSPF支持的网络类型: 1广播 2非广播 3点对点 4点对多点 5虚电路 虚链路必须配置在ABR上, 虚链路的配置使用的命令是area transit-area-id virtual-link router-id 虚链路的Metric等同于所经过的全部链路开销之和 DR /BDR选举: 1优先级(0255; 0代表不参加选举;默认为1); 2比较Router-id。 次者为BD
4、R。 在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
5、 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分区域的原因: 1LSA数据过大,造成带宽负载过大。 2计算全网拓扑
6、,对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 databas
7、e 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 类型名称 描述 每台路由器都
8、会产生,在区域内泛洪 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 交换数据
9、DBD loading 交换完整数据包LSR LSU full 注: 每个LSA由序列号确认为最新的更新。 当路由器收到LSA之后的处理过程: 如果数据库有这样的,再查看序列号,如果序列号相同,忽略这条LSA;如果序列号偏大,将其转到数据库,并进行SPF,更新路由表;如果序列号偏小,将一个包含自己的LSA新信息发送给发送方。 如果数据可没有这样的,将其加到数据库表,并发一个ACK返回,并运行SPF,更新路由表。 OSPF的Metric值: Cost=10的8次方/带宽,简便记做100Mb/带宽值。Metric值是由cost值逐跳累加的。 环回口的路由,掩码为/32,既我们所说的“主机路由”。在
10、实际应用中,环回口以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 dat
11、abase router用来查询拓扑 3一个路由器在理论上支持65535个OSPF进程,在实际环境中一个路由器可支持的OSPF 进程数量与其可用物理接口数量相等。 OSPF汇总 在OSPF骨干区域当中,一个区域的所有地址都会被通告进来。但是如果某个子网忽好忽坏不稳定,那么在它每次改变状态的时候,都会引起LSA在整个网络中泛洪。为了解决这个问题,我们可以对网络地址进行汇总。 Cisco路由器的汇总有两种类型:区域汇总和外部路由汇总。区域汇总就是区域之间的地址汇总,一般配置在ABR上;外部路由汇总就是一组外部路由通过重发布进入OSPF中,将这些外部路由进行汇总。一般配置在ASBR上。 区域汇总:
12、area area-id range ip-address mask 外部路由汇总: summary-address ip-address mask 我设计的两个试验,把几个知识点串起来 试验一 用一个试验总结一下ospf over 桢中继的时候,OSPF几种网络类型的差别。 封装好FR,DEBUG看到的几种情况 情况一:两边只起了OSPF进程,其它全部默认 这种情况下邻居需要手动配置! R2(config)#router ospf 10 R2(config-router)#neighbor 12.1.1.3 选举了DR,BDR hello的间隔是30s OSPF的数据包是单播传送的。 情况二
13、:两边的网络类型改为Broadcast 这种网络类型下是不需要手动配置邻居关系 有DR与BDR的选举。 Hello时间间隔为10s。 使用224.0.0.5这个组播地址传送数据包。 情况三:网络类型改为Point-to-Point 不需要手动指定邻居 没有DR/BDR的选举 Hello时间间隔为10s 使用224.0.0.5这个组播地址传送数据。 情况四:Point-to-Multipoint 不需要手动指定邻居 没有DR和BDR的选举 Hello时间间隔为30s 以224.0.0.5这个组播地址发送数据 情况五:非广播的Point-to-Multipoint 邻居需要手动指定,但是邻居只要在
14、一边指定即可。 没有DR和BDR的选取 Hello时间间隔为30s 使用单播传送OSPF数据 列出一张表,方便看 网络类型 默认 Broadcast Point-to-Point Point-to-Multipoint Point-to-Multipoint(非广播) 邻居自动发现 否 是 是 是 否,单边指即可 有无DR选举 有 有 无 无 无 Hello间隔 30s 10s 10s 30s 30s 传输方式 单播 组播 组播 组播 单播 试验二 OSPF的认证总结: OSPF的认证有2种类型,使用DEBUG可以看到type0表示无认证,type1表示明文认证,type2表示MD5认证。明文
15、认证发送密码进行认证,而MD5认证发送的是报文摘要。 OSPF的认证可以在链路上进行,也可以在整个区域内进行认证。另外虚链路同样也可以进行认证。 同样也是分情况来讨论。 情况一:R1和R2明文验证 R1(config)#int s1/0 R1(config-if)#ip ospf authentication R1(config-if)#ip ospf authentication-key cisco 不配置R2的话 通过debug工具我们可以看到如下信息: *Aug 15 22:51:54.275: OSPF: Rcv pkt from 10.1.1.2, Serial1/0 : Misma
16、tch Authentication type. Input packet specified type 0, we use type 1 这里的type0是指对方没有启用认证,type1是明文认证。 在R2上配置认证,使得邻居关系恢复。 R2(config)#int s1/0 R2(config-if)#ip ospf authentication R2(config-if)#ip ospf authentication-key cisco *Aug 15 22:54:55.815: %OSPF-5-ADJCHG: Process 10, Nbr 1.1.1.1 on Serial1/0 f
17、rom LOADING to FULL, Loading Done 情况二:在R2和R3的串行链路上进行MD5认证的: R2(config)#int s1/1 R2(config-if)#ip ospf authentication message-digest R2(config-if)#ip ospf message-digest-key 1 md5 cisco R3(config)#int s1/0 R3(config-if)#ip ospf authentication message-digest R3(config-if)#ip ospf message-digest-key 1
18、md5 cisco 情况三:增加R2和R3上串行链路的MD5认证的密码: 在R2原有的配置上加上下面这条命令: R2(config-if)#ip ospf message-digest-key 2 md5 openlab R2#sho ip ospf neighbor 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:
19、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清进程
20、,A2区域的学不到邻居了。R3是通过虚链路连接到骨干区域的。因为virtual-link属于Area0,因此在R2配置完成Area0区域认证后,R3也需要相应的配置。 R3(config)#router ospf 10 R3(config-router)#area 0 authentication 这样就可以了 情况六:单纯的虚链路的认证 明文认证,MD5认证。配置命令如下: 明文: R2(config-router)#area 1 virtual-link 3.3.3.3 authentication-key cisco R3(config-router)#area 1 virtual-li
21、nk 2.2.2.2 authentication-key cisco MD5: R2(config-router)#area 1 virtual-link 3.3.3.3 authentication message-digest R2(config-router)#area 1 virtual-link 3.3.3.3 message-digest-key 1 md5 cisco R3(config-router)#area 1 virtual-link 2.2.2.2 authentication message-digest R3(config-router)#area 1 virtual-link 2.2.2.2 message-digest-key 1 md5 cisco 另外通过实验知道虚链路在建立起来后是DNA LSA,所以如果没有重启OSPF进程的话,即使一端配置了认证,虚链路也是不会断开的。 后面是sniffer抓得包 Hello包 Lsu包 LSACK包 上面是一般情况,下面是明文验证的几个包 Hello DBD LSR LSU LSACK 下面是MD5加密认证得包 Hello DBD LSR LSU LSACK