一、概念
OSPF(Open Shortest Path First,开放最短路径优先),是无类别链路状态型协议,是IETF(Internet Engineering Task Force,互联网工程任务组)组织开发的一个基于链路状态的自治系统内部网关协议。目前针对IPv4协议使用的是OSPF Version 2。30分钟周期更新和触发更新,度量为cost值。ospf直接工作在ip层之上,ip协议号89,ospf以组播方式发送协议包。由于基于拓扑进行收敛,故更新量很大,为保障收敛的速度,需要结构化的部署和良好的地址规划区域设计。通常用于中大型网络。
二、OSPF 的数据包类型
1、Hello包--邻居的发现,关系的建立,周期保活,默认10s周期,交互router-id。
2、DBD包--数据库描述报文--携带路径信息的摘要目录。
3、LSR包--链路状态请求报文--基于DBD包请求未知的LSA信息。
4、LSU包--链路状态更新报文--基于LSR请求报文反馈LSA信息--只有LSU包真正包 含LSA信息。
5、LSACK包 --- 链路状态确认报文。
三、OSPF的状态机
1、Down状态 --- 启动ospf,发送hello包进入下一个状态。
2、Init(初始化)状态 --- 收到的hello包中有本地的RID时则进入下一 个状态。
3、Two - way(双向通讯)状态 --- 标志着邻居关系的建立。 (条件匹配)匹配成功则进入下一个状态,否则,停留在邻居关系, 仅依靠hello包进行周期保活。
4、Exstart(预启动)状态 --- 使用未携带信息的DBD包进行主从关系 的选举,RID大的为主,优先进入下一个状态。
5、Exchange(准交换)状态 --- 使用携带信息的DBD包进行目录共享, 需要ACK确认。
6、Loading(加载)状态 --- 通过查看对端发来DBD包和本地的LSA信息 进行对比,基于未知的LSA信息发送LSR请求,对端发送LSU包,需要 ACK确认。
7、Full状态 --- 标志着邻接关系的建立。
注:LSA(链路状态通告),具体的一条一条拓扑或者路由信息,基于LSU包进行传递。
四、OSPF的工作过程
1、启动OSPF的配置完成后,直连的邻居组播收发hello包,建立邻居关系,生成邻居表;之后关注条件,条件不满足的邻居将维持邻居关系,仅hello包周期保活。
2、条件匹配成功的邻居间建立邻接关系,先使用DBD包进行主从关系的选举,目的在于有序进行数据的共享,使用携带数据库目录的DBD,共享本地数据库目录;之后邻居基于所有的目录对比出本地未知的LSA目录,再使用LSR进行查询,对端使用LSU进行回复,本地LSACK表示确认;使用DBD—LSR—LSU—LSACK来获取本地未知的LSA信息;生成数据LSDB表。
3、当网络中所有路由器的数据库同步完成后,邻接关系建立;本地基于数据库生成有向图à最短路径树à计算本地到达所有未知网段的最短路径,然后将其加载到路由表。
4、收敛完成后,需要10S一次使用hello包进行邻居关系的保活,每30min进行一次周期更新,保障无误,通过比对DBD包完成。
5、结构突变
(1)突然增加一个网段:触发更新,通过发送携带更新数据的LSU包进行更新,需要ACK 确认。
(2)突然断开一个网段:触发更新,通过发送携带更新数据的LSU包进行更新,需要ACK 确认。
(3)无法沟通 --- 每10S一个hello包 4倍hello时间的40S死亡时间
五、OSPF基础配置
1、启动OSPF
命令:ospf 进程号 router-id RID
eg:ospf 1 router-id 1.1.1.1
进程号:只具有本地意义,默认进程号为1。
RIP:格式为IPV4地址,要求全网唯一。
2、区域划分
命令:area 区域号
eg:area 0
3、宣告
命令:network 网段 反掩码
eg:network 192.168.1.0 0.0.0.255
注:ospf协议宣告接口网段时,需要携带反掩码!!!!
4、区域划分规则
(1)星型结构:通常区域0为骨干区域,大于0为非骨干,所有的非骨干区域必须直连骨干。
(2)ABR区域为边界路由器,两个区域互连时,必须基于ABR进行
(3)区域内传送的是拓扑,区域与区域间是传递的路由信息。
5、查看OSPF邻居表
命令:display ospf peer
6、查看OSPF邻居简表
命令:display ospf peer brief
7、查看OSPF数据库表(lsdb)
命令:display ospf lsdb
六、OSPF扩展配置
1、修改DR/BDR优先级:
数值越大优先级越高,默认为1,取值范围0—255,若为0代表不参选;若优先级相同,比较参选设备的RID值,越大越优。
eg:
[r1]int g0/0/0
[r1-GigabitEthernet0/0/0]ospf dr-priority 0
2、手工认证:
直连设备连接的接口进行认证配置后,可以实现设备间的身份核实,华为设备还可以对更新信息进行加密,保障更新的安全性。
eg:
[r1]int g0/0/0
[r1-GigabitEthernet0/0/0]ospf authentication-mode md5 1 cipher 123
3、区域汇总:
OSPF不支持接口汇总,因为同一个区域传递的是拓扑信息,拓扑信息不能进行汇总配置,区域的bar在共享路由条目时可以汇总;故OSPF支持的是区域汇总。
eg:
[r1]ospf 1
[r1-ospf-1]area 0
[r2-ospf-1-area-0.0.0.0]abr-summary 192.168.0.0 255.255.254.0
4、沉默接口:
用于连接终端设备的接口,被沉默接口将只能接收,不能发送路由协议的信息;不能配置于连接邻居的物理设备,否者将无法正常建立OSPF的邻居关系。
eg:
[r1]ospf 1
[r1-ospf-1]silent-interface GigabitEthernet 0/0/1
5、加快收敛:
只用修改一个时间,另一个时间将 自动按照倍数关系进行修改。 注意:邻居之间的计时器必须一样,否则邻居关系将无法建立。
eg:
[r1]ospf 1
[r1-GigabitEthernet0/0/0]ospf timer hello
6、缺省路由:
在连接外网的边界路由器上配置缺省指令后,边界路由器将向内部发送缺省信息。之后内部所有运行OSPF协议的路由器将自动生成缺省路由,指向边界路由器;若边界路由器需要缺省路由指向ISP,需要手工在边界路由器上配置静态缺省路由。
eg:
[r5]ospf 1
[r5-ospf-1]default-route-advertise always
注:如果AR5本身不存在手写的缺省路由,则需要使用always来强制下发缺省信息。
七、OSPF实验
①R1-3为区域0,R3到R4为区域1;R1-R3各有一个环回,其中R3的环回也在区域0
②R1-R3 R3为DR设备,没有BDR
③R4环回地址已经固定4.4.4.0/24 其他都在192.168.1.0/24进行合理分配
④R4环回不能宣告,全网可达,保障更新安全。避免环路,减少路由条目数量
1、IP地址规划
根据OSPF区域划分规则,至少先划分2个子网,所以需要借1位主机号,便于区域IP地址管理和后期汇总。
192.168.1.0/24
Area 0
192.168.1.0/25
再根据拓扑需要划分4个子网,一个骨干网段,3个环回网段。需要向借2位主机号。
骨干:192.168.1.0/27
R1环回:192.168.1.32/27
R2环回:192.168.1.64/27
R3环回:192.168.1.96/27
Area 1
只有一个主干网段,可以不用再划分子网。
192.168.1.128/25
R4环回固定:4.4.4.0/24
具体规划如下图:
2、配置各接口IP地址
R1:
<r1>system-view
[r1]sysname r1
[r1]int lo0
[r1-LoopBack0]ip address 192.168.1.33 27
[r1-LoopBack0]int g0/0/0
[r1-GigabitEthernet0/0/0]ip address 192.168.1.1 27
R2:
<Huawei>system-view
[Huawei]sysname r2
[r2]int lo0
[r2-LoopBack0]ip address 192.168.1.65 27
[r2-LoopBack0]int g0/0/0
[r2-GigabitEthernet0/0/0]ip address 192.168.1.2 27
R3:
<Huawei>system-view
[Huawei]sysname r3
[r3]int lo0
[r3-LoopBack0]ip address 192.168.1.97 27
[r3-LoopBack0]int g0/0/0
[r3-GigabitEthernet0/0/0]ip address 192.168.1.3 27
[r3-GigabitEthernet0/0/0]int g0/0/1
[r3-GigabitEthernet0/0/1]ip address 192.168.1.129 25
R4:
<Huawei>system-view
[Huawei]sysname r4
[r4]int lo0
[r4-LoopBack0]ip address 4.4.4.4 24
[r4-LoopBack0]int g0/0/0
[r4-GigabitEthernet0/0/0]ip address 192.168.1.130 25
3、利用OSPF协议进行宣告
R1:
[r1]ospf 1 router-id 1.1.1.1
[r1-ospf-1]area 0
[r1-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255
R2:
[r2]ospf 1 router-id 2.2.2.2
[r2-ospf-1]area 0
[r2-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255
R3:
[r3]ospf 1 router-id 3.3.3.3
[r3-ospf-1]area 0
[r3-ospf-1-area-0.0.0.0]network 192.168.1.3 0.0.0.0
[r3-ospf-1-area-0.0.0.0]network 192.168.1.97 0.0.0.0
[r3-ospf-1-area-0.0.0.0]q
[r3-ospf-1]area 1
[r3-ospf-1-area-0.0.0.1]network 192.168.1.129 0.0.0.0
R4:环回不能用ospf宣告。
[r4]ospf 1 router-id 4.4.4.4
[r4-ospf-1]area 1
[r4-ospf-1-area-0.0.0.1]network 192.168.1.130 0.0.0.0
4、修改DR/DBR优先级
先查看R1 R2 R3 之间的关系
DR为192.168.1.1 BDR为192.168.1.2
题目是R3为DR,没有DBR,那么就要修改R1 R2的参选优先级为0,放弃参选。
R1:
[r1]int g0/0/0
[r1-GigabitEthernet0/0/0]ospf dr-priority 0
R2:
[r2]int g0/0/0
[r2-GigabitEthernet0/0/0]ospf dr-priority 0
再去查看R1 R2 R3之间的关系
修改之后DR为192.168.1.3 DBR 没有,完成题目要求。。。。
5、写缺省路由
R4环回不能宣告,其他设备也能访问,那么可以用缺省路由来解决,在R4上面写一个缺省来完成要求。
[r4]ospf 1
[r4-ospf-1]default-route-advertise always
测试其他设备来访问:
6、手工认证
在两设备互连的接口上进行认证,认证之后可以进行抓包来区别,是看不见路由具体信息。演示R3 R4之间的认证,其他设备也是一样。注意:两端使用的加密模式和密码必须一致。
R3:
[r3]int g0/0/1
[r3-GigabitEthernet0/0/0]ospf authentication-mode md5 1 cipher 12345
R4:
[r4]int g0/0/0
[r4-GigabitEthernet0/0/0]ospf authentication-mode md5 1 cipher 12345
7、区域汇总
这个题中的只有两个区域,并且区域1中路由条目只有一条不需要汇总,只需在边界路由器R3上汇总区域0。
先在R4上面查看ospf学到的路由条目。
现在在R3区域0中进行汇总。
[r3]ospf 1
[r3-ospf-1]area 0
[r3-ospf-1-area-0.0.0.0]abr-summary 192.168.1.0 255.255.255.128
再去在R4上面查看ospf学到的路由条目。
此时就只有一条路由,就达到汇总后的效果
8、验证全网可达
R1访问其他设备:
R2访问其他设备:
R4访问其他设备: