本节介绍ospf路由选择协议    为链路状态  路由选择协议

一  分类
open shortest path first   开放最短路优先   公有协议
单区域的ospf实施  运行在一个自治系统之内  igp    与eigrp是同一个级别     不建议在多个园区网之间部署ospf
算法1    spf    最短路优先
2 迪杰斯特拉

链路状态协议    算法:  传递拓扑连接信息     共享信息   放入lsdb的链路状态数据库      spf算法  将路由器自身作为树根

来计算去往所有非直连网段有哪些路径   按照开销的大小来判断哪条路径较好    哪条差    并将
开销最低的路径加入到路由表中   形成路由条目   转发数据层面的流量
一定不会出现环路   是链路状态选路协议的优点
无类协议
与ripv2和eigrp的区别
1.距离协议执行自动汇总是我们不愿意看的;         而ospf的链路状态协议  由于不传路由信息   所以没有路由汇总
2.是否支持cidr  路由聚合    能否传递超网路由     与eigrp一样   ospf支持路由聚合
封装报文格式
layer 2 |  ip | ospf | fcs
1.ospf中有可靠传输机制   确认重传机制
2.有延迟或丢包时    可以优先传输     type of service  tos   用来实现QOS服务质量   优先级
二  报文 五种
1.hello    
2.dbd
3.lsr
4.lsu
5.lsack
与eigrp的区别
建立邻居关系    建立完成之后   路由器之间传递lsa   放入lsdb      三张表与eigrp一致
有细微的区别     追踪路由状态     ospf 既基于链路状态维护邻接关系   又基于lsa本身的状态来维护   
所以有两种计时器   
a    一种用来描述多久没有收到hello
10s      40s(holdtime)      30s      120s
网络类型   逻辑分为6种   (ccnp介绍)
loopback
point-to-point 典型为串行线路
broadcast 以太网
point-to -multipoint
point-to-multipoint   non-boradcst
non-broadcast 非广播的多路访问
b lsa 信息  路由互传   (与eigrp的区别)
计时器为60min   3600s   lsa的老化计时器
如果没有更新    就会将其删除   在lsdb中将lsa
一台路由器  始发lsa之后  每30min钟一次   再次泛洪
c   eigrp中的拓扑表放置路由条目    没有拓扑信息
ospf中的拓扑表lsdb放置的都是lsa     既标识路由信息    又有拓扑信息 
d ospf传递lsa是泛洪到所有的ospf路由器
eigrp只是传递给邻居
e 传递的报文的区别
EIGRP 路由器a b c
a>b>c 路由条目流向 邻居之间传送的路由 度量值和出站接口 下一跳 每个路由器传送都会改变
ospf中的lsa 仅仅描述网络如何连接 全部为客观信息 所以在路由器传递时不会改变 路由器a发送的lsa 与路由器c所接收的完全一致 整网所有路由器中的lsdb中所放的lsa信息完全一致 才能根据相同的拓 扑地图计算去往每个非直连网段的最优路由 用spf算法
 
 
 
ospf的层级示例

多区域部署 ospf 划分区域基于路由器接口
2-3台等少量的路由器 可以规划为一个区域 部署ospf 推荐用rip
1.骨干区域 叫area 0 又叫传输区域(控制层面) 非骨干(常规)区域与此挂靠(目的是优化和防环) 中到大型网络中 如果 需要多个区域骨干区域 有且只有一个
2.常规区域编号从1-42亿   可以设置成一下四种 默认是常规区
stub 区域
totally stub 区域
nssa 区域
totally nssa 区域
3.多区域设计   ospf
区域与路由器的关系
a 基于路由器本身的规划   只能属于一个区域
b 基于路由器接口的规划  可以属于多个区域   ospf
图中的ab属于主干区域路由器
fgh属于常规区域1 2 3
c d e 的下面的接口又属于1 2 3
cde的上面的接口又属于主干区域
c 基于路由器本身的协议   IS-FS 
d A B骨干路由器
F G H 非骨干的内部路由器
C D E-------ABR   area border router   区域边界路由器   有的接口必须被宣告进主干区域  有的接口被宣告进常规 区域
4.路由条目
标记O     区域内路由
O ia  区域间路由     由abr路由器通告
O E1 1类外部路由 路由重分发 强行引入到ospf  例如从eigrp域引入到ospf域 
O E2 2类外部路由
5.多区域的用处
a 可以减少路由表条目    减少lsdb中lsa的数量
b 当拓扑变更时 划分多个区域   可以限制变更影响的范围  仅影响单个区域内部 
c 减少路由表条目数量的一种方式  是路由汇总   一组ospf的路由器拥有所有组内路由器的lsa信息    并非由邻居通 告    全部链接细节均了解  所以在一个区域内是无法实现路由汇总的
    但对于其他区域的链接是不清楚的   
6.LSA 分为 1 2 3 4 5  7类
a 比较重要的是1类和2类     减少条目
区域内的所有路由器都会生成1和2类的lsa信息  lsa信息报文 边界就是c d e边界路由器  非直连网段路由是根据计算得 来的
区域间 例如c将area 0的路由传给f路由器    此种lsa信息就是3类lsa    即area0的路由条目形成好由c传送给f     这和上 面是不同的     并非f用spf算法计算得来的   对于这类路由条目是可以进行路由汇总的    此为域间汇总   也只 有它才能在ospf中汇总
 
总结   区域内不能汇总      区域间可以汇总
b 域间汇总   拓扑变化影响域内   例如f后有4个连续的网段    c路由器会对这4个网段做一汇总路由    无论这4个网段 的路由器哪个down掉  都不会影响c中的这个汇总路由条目   除非  4个路由器都关闭   才将汇总路由删除   
 
一般情况下 ospf部署的网络属于星型网络   物理属性杜绝环路的发生
区域内不会出现环路
多个区域组合成的网络有可能会出现环路    所以需要所有的常规区域都要链接到aera0  主干区域上     非骨干区域互相通信   需要主干区域进行中转     

 
上图中分成两个大的独立的自治区域     0为主干     1-5为常规区域     上面的为自治区a     
5没有直连到0主干区域         自治区a的路由信息不会传送的5      5中的路由信息也不会传送到自治区a
这种情况也可能会存在    当两个园区网络做合并时    需要割接   会用到图中的拓扑连接   做vpn
远离骨干区域的非骨干区域的出现      需要ospf中的virtual-link工具进行逻辑的区域修复   ospf虚拟链路   仅仅是临时解 决方案      需要进一步优化   
 
 
 
OSPF  细节
 
一 邻居关系 hello数据包

邻居建立分为两类
1.eigrp无状态化的邻居    建立不需要条件   down和up  两个状态    收到hello就up   未收到就down
2.ospf是复杂的有状态化的邻居    需要条件   按层级建立   
7级邻接关系状态
down
init
two-way ---neighbor    邻居    只经过hello报文的交互    最多能到这一层级   未交互过lsa
exstart
exchange
loading
full ---adjacency  邻接     
 只有到达full层级的邻居关系后    ospf域间的路由器之间才能传各种报文
只有当所有的 hello dbd lsr lsu lsack 这ospf五类报文都交互完成之后 两台路由器才能够到达最下面 的full层级的邻接关系 所有路由器的lsdb已经同步 之后才能传送各种各样的报文
3. hello报文需要满足的条件为上图中*号的条件
hello时间和dead时间 区域id 身份验证口令 末节区域标志
所有这四条都一致 才能建成邻居的关系  
修改dead时间不影响hello的时间 但是hello影响dead
4.其中除主干区域和常规区域外的四个特殊区域stub totally stub nssa totally nssa叫做末节区域标 志 互为邻居的末节区域标志需要一致 才能建立邻居成功
6.不同网络的邻居建立
ethernet MA 多路 需要选择dr指定路由器/bdr备份指定路由器  
邻居子网掩码必须一致
但是serial  p2p   掩码不一致同样可以建立   不受约束
7.接口的ospf网络类型可以修改   可能会导致邻居关系down掉
链路两端的接口的ospf网络类型一致  才能建立邻居成功
一种特例情况除外    一端为p2p    另一端为p2mp     可以建立邻居
8.exstart 会交换dbd报文     报文中会包含接口的mtu参数需要一致    选择主从关系
ospf的进程号只具有本地意义 两台邻居路由器 进程号可以不同
 
hello报文的其他信息
路由器id      router -id命令手工指定    必须定义   点分十进制的值    域内任何一个路由器的id值必须唯一
自动指定 1.loopback环回口自动up   up  作为id    一般情况下用路由器的loopback模拟pc机   
2.如果没有环回口  则选择物理接口中所有up up的最大的ip地址作为id
建议手工指定 1. 可控 2. 如果自动指定之后需要手工修改id 则需要重新启动路由器ospf进程
邻居字段 通过接口接收到谁发送的hello信息 内容为路由器id
优先级 a p2p网络建邻居会顺利的从down一直到full 称为普通的建邻居
b 在以太网中 建邻居需要在two-way 暂停 需要在ma网段接口中选举 出指定路由器dr和备份指定 路由器bdr 先比较接口的ospf优先级的值 取值范围为0-255 默认值为1 高为dr 次高为bdr
优先级一样 则比较路由器id 高为dr 次高为bdr
选举时间称为wait interval     是hello时间的四倍
dr  ip地址和bdr ip地址
在12.4老版本的ios中
ospf v2 针对ipv4
ospf v3 针对ipv6 
在15.x的ios版本中可以在ospf v3中可以在同一个进程中同时启用ipv4和ipv6      集成度更高
ospf 针对环回口
v2和v3版本都将环回口理解为一个末节网络 代表只有一个节点存在 所以环回口的掩码无论配置多少 默认情况 都会使其在路由表的条目掩码为32位 可以防止路由黑洞  但有些情况 例如mpr需要路由信息不能被串改时 会造成问题
如果想与设置的值一致 需要将环回口个ospf网络类型修改为p2p类型
修改方法
r1#int loopback0
#ip ospf network point-to-point 旧版本中的命令
 
#ospfv3 network point-to-point 新版本中的命令
 
 
二 SPF算法
 

    cost开销就是metric度量值     越大   路径越差           越小  越好
计算基于每个链路  分别计算    所有开销加在一起是完整路径的总开销   再次比较   如果度量值相同  则同时加入到路 由表中
   ospf只支持等价负载均衡
默认为10的8次方/BW    单位为b/s    百兆比带宽    当前为千兆或更高   所以修改分子的值为10的10次方/BW
 
 
三   ospf的配置
 
 

 
ios分为12.4和15.x的两种不同的配置命令     15.x的版本需要设置router-id    
举例:区域0=0.0.0.0
1=0.0.0.1
255=0.0.0.255
256=0.0.1.0
 
宣告方式:
方式1
  #router ospf 110
  #router-id 2.2.2.2
  #network 12.1.1.1.2 0.0.0.0 area  0  或者 0.0.0.0代替前面的0
 
方式2    进入接口
#interface loopback0
#ip ospf 110 area 0.0.0.0
查看接口宣告信息
#show  ip ospf  interface brief
实例1
 

命令

r2 #router ospf 110         设置进程号
#router-id 2.2.2.2 设置路由器id
#network 24.1.1.2 0.0.0.0 area 0.0.0.0
#network 12.1.1.2 0.0.0.0 area 0.0.0.0
#int loopback 0
#ip ospf 110 area 0.0.0.0
 
验证
#show ip ospf interface brief
 
15.x新版ios版本的命令
r1 #ipv6 unicast-routing      在路由器上开启ipv6版本的单播路由选择协议的功能   和普通的ipv4的  IP routing 命令一样

#int serial 1/0  
#IPv6 enable 在接口上开启ipv6的可用功能
#end
#router ospfv3 110
#address-family ipv4 unicast 生命协议簇 使用ipv4的单播
#router-id 1.1.1.1 然后再 设置路由器id
#exit
#int serial 1/0
#ospfv3 110 ipv4 area 0.0.0.0 宣告
 
#int serial 1/1
#ospfv3 110 ipv4 area 0.0.0.0 
 
#int loopback 0
#ipv6 enable
#ospfv3 110 ipv4 area 0.0.0.0
 
验证
#show ospfv3 int brief
 
r3 #ipv6 unicast-routing
#int se1/0
#ipv6 enable
#int lo0
#ipv6 enable
#int fa 0/1
#ipv6 enable 以上需要在r3的全局配置中开启ipv6的支持
 
#router ospfv3 110
#address-family ipv4 unicast
#router-id  3.3.3.3
 
#int ser1/0 
#ospfv3 110 ipv4 area 0.0.0.0
#int fa 0/1
#ospfv3 110 ipv4 area 0.0.0.0
 
 
r1中查看邻居和接口和路由
老命令show ip ospf neighbor       show IP ospf interface brief         show ip route ospf
新命令show ospfv3 neighbor show ospfv3 interface brief  show ip route ospfv3
 
查看接口的具体路由信息
#show ospfv3 interface  serial 1/1 

一个接口的多个ospv进程宣告 以先宣告的ospf协议为准 后宣告的不工作

int serial 1/1 先宣告ospfv2 后宣告ospfv3 以ospfv2为准
修改hello dead wait时间
#int serial 1/1
#ospfv3 hello-interval xx
#ospfv3 dead-interval xx

#ospfv3 wait-interval xx
 
查看全局
#show ospfv3
 
排错 简单的方式
1.show run | section router ospf
 
2.show run int ser1/1
 
 
实验2
手工汇总 修改路径度量值 重分发及被动接口
利用实验1中的图
条件 r4和r6属于area 1
其他属于area0
其中r2是abr
r6 网段192.168.8.0/24
r4网段192.168.9.0/24
在r2上进行路由聚合 192.168.8.0/23
 
a 注意 路由器r2在进程中做路由汇总(聚合) 而不是接口上
新版 #router ospfv3 110
#address-family ipv4 unicast
#area 1 range 192.168.8.0 255.255.254.0
 
老版#router ospf110
#area1 range 192.168.8.0 255.255.254.0 
形成的路由条目前面会标记 O IA   区域间路由的聚合   supernet
 
b 修改度量值
r2拥有35网段的路由
控制层面流向的入接口    与数据流向相反    数据从r2到r5
所以入接口是先从r3的fa0/1   到r1的ser1/1   再到r2的ser1/1
10的8次方除以以上每个接口的带宽    最后累加
10的8次方/百兆   +10的8次方/1.54m+10的8次方/1.54m
=1+64+64=129
修改的方法
1.直接在接口修改
#conf t
#int serial1/1
#bandwidth  xxx     直接修改成想要的值
 
2.进入进程修改度量值    建议
#router ospfv3 110
#address-family ipv4 unicast
#auto-cost reference-bandwidth xxx    设置的值为需要的值
 
c ospf 重分发
#int range fa0/0-1
#no ospfv3 ipv4 area 0.0.0.1
#exit
 
#route-map    全局
#route-map connect permit 10
#match int fa 0/0 fa0/1
#exit
#router ospfv3 110
#address-family ipv4 Unicast
#redistribute connected route-map connect     新版如此    如果是老版本  需要在后面加上subnets
 
路由条目标志e2
 
做了重分发   r2叫做ASBR    自制系统边界路由器
 
 
 
汇总域外的路由
进入110进程
#address-family ipv4 unicast
#summary-prefix(老版本用summary-address) 192.168.8.0. 255.255.254.0
 
d 被动接口的声明
#router ospfv3 110
#address-family ipv4 unicast
#passive-interface fa0/1
#passive-interface fa0/0
 
 
e 组播地址
224.0.0.5 常规接口 默认监听地址
224.0.0.6 MA网段中只有在DR/BDR支持

OSPF 一 基础的更多相关文章

  1. eNSP——OSPF的基础配置

    原理: 模拟实验: 拓扑图: 实验编址: 1.基本配置 根据实验编址和拓扑图进行基本配置,并测试连通性. 2.部署OSPF网络 首先使用ospf命令创建并运行OSPF,1代表进程号 接着使用area命 ...

  2. OSPF路由协议基础知识

    OSPF路由协议 1.OSPF的基本概念 2.OSPF邻接关系的建立 3.OSPF的应用环境 4.OSPF的基本配置命令 1.OSPF区域为了适应大型的网络,OSPF在AS(自治系统)内划分多个区域. ...

  3. HCIA-Datacom 2.2 实验:OSPF路由协议基础实验

    前言:才发现IA也要学OSPF,忍不住吐槽一句,现在太卷了! OSPF简介: 开放式最短路径优先OSPF(Open Shortest Path First)是IETF组织开发的一个基于链路状态的内部网 ...

  4. OSPF相关知识与实例配置【第一部分】

    OSPF相关知识与实例配置[基本知识及多区域配置] OSPF(开放式最短路径优先协议)是一个基于链路状态的IGP,相比于RIP有无环路:收敛快:扩展性好等优点,也是现在用的最多的:所以这次实验就针对于 ...

  5. 网络简要<入门篇>对应配置代码

    交换机的配置 (1)交换机的模式: switch>    用户模式,可以查看设备的部分内容 SW-3ceng>enable SW-3ceng#          进入特权模式,可以查看更多 ...

  6. OSPF基础介绍

    OSPF基础介绍 一.RIP的缺陷 1.以跳数评估的路由并非最优路径 2.最大跳数16导致网络尺度小 3.收敛速度慢 4.更新发送全部路由表浪费网络资源 二.OSPF基本原理 1.什么是OSPF a& ...

  7. HCNA Routing&Switching之OSPF度量值和基础配置命令总结

    前文我们了解了OSPF的网络类型,OSPF中的DR和BDR的选举规则.作用等相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15054938.html: ...

  8. OSPF 基础实验

    一.环境准备 1. 软件:GNS3 2. 路由:c7200 二.实验操作 实验要求: 1.掌握多区域的 OSPF 配置方法. 2.区别不同区域的路由. 3.掌握 OSPF 的路由汇总配置. 4.掌握  ...

  9. OSPF - 1,基础

    1,OSPF知识点a)在OSPF中,如果是环回口宣告进OSPF,不管宣告时配置的是多少位掩码,路由器收到的都是32位.(EIGRP配了多少位就收到多少位).好处:EIGRP中,在PING包发起时如果在 ...

随机推荐

  1. 我的NopCommerce之旅(1): 系统综述

    一.概述 NopCommerce是一个开源的购物网站,它的特点是Pluggable modular/layered architecture(可插拔模块分层架构) 二.功能特色介绍 1.适配手机端 2 ...

  2. Eclipse优化工具Optimizer for Eclipse

    第一次看到是Optimizer for Eclipse是在InfoQ 然后使用了一下,发现不错啊,我的好几年的破本都能比较快的启动Eclipse了 好了,废话不说了,来介绍一下Optimizer fo ...

  3. OutOfMemory

    查看图片格式,如果为PNG,可更改为jpg.图片会变小. 停止activity 当activity调用onStop()方法, activity不再可见,并且应该释放那些不再需要的所有资源.一旦acti ...

  4. Android学习总结(十八) ———— SQLite数据库使用

    一.基本概念 数据库最经典的四个操作 添加.删除.修改.查找,在处理大量数据的时候使用数据库可以帮我们迅速定位当前须要处理的数据,举个例子 好比现在要实现一个搜索功能 用数据库的话只须要其中一个搜索条 ...

  5. OPENFIRE 使用Hazelcast插件进行集群

    参考资料:http://www.linuxidc.com/Linux/2014-01/94850.htm   https://www.igniterealtime.org/projects/openf ...

  6. 51nod 1212 无向图最小生成树(Kruskal模版题)

    N个点M条边的无向连通图,每条边有一个权值,求该图的最小生成树.   Input 第1行:2个数N,M中间用空格分隔,N为点的数量,M为边的数量.(2 <= N <= 1000, 1 &l ...

  7. python hdfs初体验

    新建目录 chr 新建文件hdfstest1.txt并写入内容 复制hdfstest1.txt的内容到hdfstest2.txt

  8. MFC:AfxLoadLibrary-将指定的 DLL 映射到调用进程的地址空间

    Visual Studio 2012 - Visual C++ LoadLibrary 和 AfxLoadLibrary 进程调用 LoadLibrary (或 AfxLoadLibrary) 以显式 ...

  9. iOS7.1企业版发布后用户通过sarafi浏览器安装无效的解决方案

    关于iOS7.1企业版发布后,用户通过sarafi浏览器安装无效的解决方案: 通过测试,已经完美解决. 方案一: iOS7.1企业应用无法安装应用程序 因为证书无效的解决方案 http://blog. ...

  10. 洛谷P1001 A+B Problem

    这道题…………还是很简单!!! code: #include <iostream> #include <cstdio> using namespace std; int mai ...