一、OSPF OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。是对链路状态路由协议的一种实现,隶属内部网关协议(IGP),故运作于自治系统内部。OSPF分为OSPFv2和OSPFv3两个版本,其中OSPFv2用在IPv4网络,OSPFv3用在IPv6网络。OSPFv2是由RFC 2328定义的,OSPFv3是由RFC 5340定义的。与RIP相比,OSPF是链路状态协议,而RIP是距离矢量协议。 作为一种链路状态的路由协议,OSPF将链路状态组播数据LSA(Link State Advertisement)传送给在某一区域内的所有路由器,这一点与距离矢量路由协议不同。运行距离矢量路由协议的路由器是将部分或全部的路由表传递给与其相邻的路由器。 二、OSPF的作用 在公司网络内部快速的形成一个最短的、无环的、三层转发路径 三、OSPF的工作过程(原理) 1.建立邻居表 - display ospf peer brief (state = full ) (1)链路互通 - 最小范围内双向 ping通; & 1 层; & 2 层; & 3 层; (2)正常发送报文; &确保链路启用了 OSPF 协议(network x.x.x.x y.y.y.y) (3)正常接收报文; &确保链路启用了 OSPF 协议(network x.x.x.x y.y.y.y) (4)比较报文 &报文类型是:hello &具体参数比较如下: * router-id 不能相同; * 区域ID 必须相同; * 认证必须成功; * 子网掩码必须相同 (特殊情况下) * hello 和 dead 计时器,都必须相同; * 特殊标记位,必须完全相同; * 优先级不能全为 0 ; (特殊情况下)

2.同步数据库(邻居的状态如果是 full ,就表示数据库同步)

3.计算路由表(每一个路由器基于自己的数据库,单独计算出来)

四、OSPF报文: Hello :建立、维护、拆除 OSPF 的邻居关系; DBD :数据库描述报文,用于快速、高效、稳定的实现数据库同步; LSU :链路状态更新报文,用于传输数据库的具体条目的; LSR :链路状态请求报文,用于主动请求数据库条目的; LSAck :链路状态确认报文,确保 LSU 和 LSR 的可靠传输; 五、OSPF的选举原则 1.当网络类型为 broadcast / nbma 的时候,才会选; 2.首先比较优先级 #如果优先级都为0,则都没有自资格参与选举; 因为优先级为0的设备,称之为 DRother。 #如果优先级不都为0,则比较优先级的大小; 优先级最大的,成为 DR; 次之的,成为 BDR , 其他的,都叫做 DRother ; 3.其次,如果优先级相同,比较 RID ; 原则是:越大越好;
注意: DR 和 BDR 仅仅是一个 “接口”的概念; 每一个网段,一定都有一个 DR ,BDR可有可无;

在什么情况下,OSPF 才会进行 DR 和 BDR 的选举? 当一个网络中存在多个网络设备的时候,就有可能选择 DR/BDR 。(即网络类型为 broadcast和nbma) 是为了能够高效的在各个 OSPF 路由器之间进行OSPF 数据库的同步。 一旦选举了 DR 和 BDR ,所有的 OSPF 路由器,仅仅与 DR/BDR 进行数据库的同步,并且都是通过组播的方式 同步数据库条目信息的。 224.0.0.6 : 仅仅表示 DR 和 BDR ; 224.0.0.5 :表示的是所有的 OSPF 路由器; DRother(非DR/BDR) 设备之间,是不能进行数据库条目信息的传递; DR: designated router 指定路由器。 BDR:backup DR ,备份的指定路由器

OSPF的邻居状态: down init two-way exstart exchange loading full ** LS VS. DV ** LINK STATE 链路状态 DV:distance vector 距离矢量 1.每一个路由器对整个网络都有一个独立的认识,不依靠其他路由器 2.LS协议在路由器之间传递的不是路由条目,而是计算路由条目时所用到的基本的链路状态信息。 所以呢,理论上来说,OSPF网络是没有任何规模限制的; 3. LS 协议支持网络的层次化设计,DV协议是不支持的;

OSPF 是如何支持网络的层次化设计的?

1.通过区域的概念; -骨干区域 , 通过区域 0 表示; -非骨干区域 ,不是0的区域,都叫做非骨干区域

2.-区域的表示: 通过十进制数字;通过IP地址的格式; 3.-设计原则: 所有的非骨干区域必须直接连接在骨干区域上; 否则,是不可以通信的; 4.-区域带来的好处: 1.便于管理和扩展; 2.增强网络的稳定性;

附1.比较报文参数的修改命令

1>.spf 1 router-id 1.1.1.1 --> 设置之后,必须reset,RID才会生效;
<R1>reset ospf process ->  y 重启OSPF协议进程

2>.area 8 network x.x.x.x y.y.y.y ->必须删除其他area的network 命令; 3>.interface gi0/0/0 ip address 192.168.12.1 255.255.255.128 -> 更改掩码; 4>.ospf timer hello {value} -> hello 与 dead 是4倍 5>.ospf timer dead {value} ->改hello,dead会变; 改dead ,hello不变; 6>.ospf dr-priority {0-255} -->默认是1,不能全为0 display ospf interface gi0/0/0 ->查看一个接口的OSPF信息 display ospf peer brief -->查看 OSPF 邻居表;

实验一: 要求:通过ospf 使PC互通 PC1:192.168.1.1/24 网关192.168.1.254 PC2:192.168.2.1/24 网关192.168.2.254 计算机配置好ip 网关,每台路由器配置好自己两端的ip地址 每台路由器都进行以下设置 [R1]ospf -----开启ospf R1-ospf-1]area 0 ----区域都是0 [R1-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255 配置相邻网段 [R1-ospf-1-area-0.0.0.0]network 192.168.12.0 0.0.0.255 [R1]display ip routing-table 注意network要设置两端的网段 验证: 实验二: 多区域的ospf
R2: [R2]ospf [R2-ospf-1]area 0 [R2-ospf-1-area-0.0.0.0]undo network 192.168.12.0 0.0.0.255 取消掉区域0里的12网段 [R2-ospf-1-area-0.0.0.0]q [R2-ospf-1]area 12 建立区域12 [R2-ospf-1-area-0.0.0.12]network 192.168.12.0 0.0.0.255 将网段加入到区域12里面 R1: [R1]ospf [R1-ospf-1]area 0 [R1-ospf-1-area-0.0.0.0]undo network 192.168.12.0 0.0.0.255 [R1-ospf-1-area-0.0.0.0]undo network 192.168.1.0 0.0.0.255 [R1-ospf-1-area-0.0.0.0]q [R1-ospf-1]area 12 [R1-ospf-1-area-0.0.0.12]network 192.168.12.0 0.0.0.255 [R1-ospf-1-area-0.0.0.12]network 192.168.1.0 0.0.0.255 R5: [R5]ospf [R5-ospf-1]area 0 [R5-ospf-1-area-0.0.0.0]undo network 192.168.56.0 0.0.0.255 [R5-ospf-1-area-0.0.0.0]q [R5-ospf-1]area 56 [R5-ospf-1-area-0.0.0.56]network 192.168.56.0 0.0.0.255 R6: [R6]ospf [R6-ospf-1]area 0 [R6-ospf-1-area-0.0.0.0]undo network 192.168.56.0 0.0.0.255 [R6-ospf-1-area-0.0.0.0]undo network 192.168.2.0 0.0.0.255 [R6-ospf-1-area-0.0.0.0]q [R6-ospf-1]area 56 [R6-ospf-1-area-0.0.0.56]network 192.168.56.0 0.0.0.255 [R6-ospf-1-area-0.0.0.56]network 192.168.2.0 0.0.0.255 验证: