本节介绍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支持

 

posted on 2017-11-27 09:17  学习记录园  阅读(589)  评论(0编辑  收藏  举报