ospf  ccnp 三

 

 
上图中 rip域中的不连续的100条路由   在a1中导致LSDB太大      在保证网段的可达性的前提下   尽可能减少区域内路由器的lsdb       可以将a1设置为stub区域
r3中有rip传过来的100条路由(5类lsa)    但是r1和r2没有必要有这些LSA   因为无论如何都要将报文传递给r3
A  stub区域
设置stub
1.区域内只有一条ABR  导致不会有次优路由存在(前提条件) 或者还有多个ABR(不建议  但可以有)
2.区域内的所有路由器都要设置为stub区域   (原理为建立邻居中相同的区域网络类型 都是stub才能建立链接)
3.区域内不能有ASBR
4.非骨干区域   即不能是area0  传输区域    area0的作用之一就是为不同的区域传输数据   要求拥有所有的路由    LSDB是域内都是一致的也是  最全的    如果设置为stub之后  就不能有5类lsa   所以不能设置    
5.区域内没有虚链路   即 此区域外不能再连接一个常规区域 例如area3--area1--area0---area2
其中area1就不能设置为stub
在上图中  r1和r2没有rip明细路由   但是r3 (此abr)有    同时r3会向r1和r2下放一条缺省路由        
stub区域会把5类和4类的LSA都过滤掉    但是abr会有路由
 
实验  
    

 

  上图中将area1   区域设置为stub区域

ip地址和ospf  rip   以及重分发做完之后
命令:r2:#router ospf 110
#area 1 stub
此时需要将r4同时设置为末节区域
r4:#router ospf 110
#area 1 stub 
 
实验中r2给r4下放的缺省路由是   O* IA 0.0.0.0/0 【110/65】via 24.1.1.2  -----
此时度量值为65=64+1      由abr   r2创建  并且串口相连     所以seed metric为1
 总结   stub区域:如果将一个ospf区域部署为stub   该区域的ABR会将入区域方向的4/5类LSA同时过滤   同时该ABR会主动向区域内部奉送一个 O IA的0.0.0.0/0的3类缺省路由    seed Metric为1
 
问题2    在最上面的图中    存在一种情况   如果 一个区域内有两个ABR  假定为r4     r3和r4同时向a1内发送缺省路由   并且缺省路由的seed metric度量值都是1    导致其他路由器访问其他区域的路由器时会选路    可能会选择转发路径不好的路由     缺省路由是以3类lsa发送的   不会进行spf算法计算  仅仅接收到此lsa的同时添加网段的度量值  再加入路由表   此为贝尔曼福特算法    很可能选到不好的路由
如果一个区域存在多台ABR    防止产生次优路径的方法如下
通过修改下放缺省路由的seed metric的值----原则谁下放的   在谁上修改
实验2    在第2个图中   
r2#router ospf 110
#area 1 default-cost 36     当在区域1下放缺省路由时候   度量值改为36  
 
在第一个图中   想让r3优选    r3down时再选择r4   就需要将r4下放的缺省路由改为比r3下放的缺省路由seed  metric值大即可
 
 
B       TOTALLY STUBBY AREA  完全stub区域
 
stub只限制了外部路由     同时3类lsa同样可以进入    
所以ABR 还可以过滤掉3类lsa   此时为完全stub区域   即totoally  stubby area
只需要在stub的基础上    在ABR上同时过滤3类lsa即可
命令:
r2#router ospf 110
#area 1 stub no-summary    3 4 5类lsa都会过滤掉
总结:totally stub区域   在stub区域的基础上ABR路由会同时将3/4/5类入向传递的LSA过滤掉   同时会主动向该区域注入一 条 0.0.0.0/0 O IA 的缺省路由   seed metric缺省也为1.
 
      配置案例1

 

 
配置案例2

 

      两个abr     由于r2度量值为5       r4下放的缺省路由   seed metric设置为10    所以优先选择r2
 
C      NOT-SO-STUBBY AREAS                NSSA区域

 

 允许存在ASBR     并且执行了路由重分发
案例拓扑图

 

   其中r1为translator   如果area2中有多个ABR   要选举translator      根据路由器ID的大小   谁大是谁   

命令:
r4配置
#int lo 100
#ip add 100.1.1.4 255.255.255.0
#int lo 200
#ip add 200.1.1.4 255.255.255.0
 
#router eigrp 90
#no auto-summary
#network 100.1.1.4 0.0.0.0 
#network 200.1.1.4 0.0.0.0 
#router ospf 110
#redistribute eigrp 90 subnets     注意做之前需要先no掉此区域的stub属性
 
此时r3上有此路由
 
 
area2 设置为nssa区域
r1#router ospf 110
#area 2 nssa
r3#router ospf 110
#area 2 nssa
eigrp的路由在r3上就不存在了
在r3上检验     show ip route
show  ip ospf database
    出现了7类LSA   与5类的lsa的区别  是后面关联区域   即7类lsa只存在nssa内部
   详细信息中 forward address :环回口地址   而5类lsa中为全0
在路由器r1上show IP route  可以看到on2标记的路由条目
O N2 35.1.1.0---
O N2 5.5.5.0-----
OE1----ON1     ON2----OE2互相对应     
在r2上查看 show ip route
      会显示O E2 35.1.1.0 ----
O E2 5.5.5.0----
证明 O N2只存在与area2中  即nssa中   并且r1将其转换为5类lsa   发送到area0和area1中
 
注意在图中 r2上  show IP ospf border-routers
显示r3是asbr      r1是ABR/ASBR     WHY?
ASBR定义:  一台路由器只要可以产生5类LSA    则该路由器就是ASBR
nssa区域中的7类lsa的adv router 是r3      当被转换为5类LSA之后    ADV ROUTER会变为r1 可以在r2上验证
 
当r2和r4想访问rip中的路由时    虽然r1是伪ASBR    但是报文最终需要发给r3    所以forward address被设置为3.3.3.3   就是表明真实的ASBR的地址
nssa路由器内部每台路由器都可以成为ASBR
 
问题2 

 

 

 
在上图中的r1中 运行rip协议
r4中eigrp的ip地址网段为100.1.1.0 和200.1.1.0/24 以5类lsa的形式发送 但是由于nssa 区域的存在导致
r3没有此路由 如何让r3能够访问这两个网段
命令:在设置nssa区域的时候
由于r1是ABR 拥有全网的路由条目
r1#area2 nssa default-information-originate 用此命令的原因 :由于r1过滤的来自eigrp的5类和4类的LSA
R4不能与r3通信
产生缺省默认路由 全0/0的默认路由 必须下放此路由
#area 2 nssa default-information-originate no-redistribution  
针对r1中rip协议中的路由条目不用重分发进area2 即想要访问这些地 址 只需要把报文发送给r1 就可以 由r1下发默认路由

NSSA细节
1.O N2(度量值不能累加)转换为O N1(度量值可以累加)
#area 2 nssa default-information-originate metric-type 1 改类型
#area 2 nssa default-information-originate metric 36 metric-type 1 修改度量值
  2.forward address 不设置      在本例中由于r2和r4访问r5需要将包发给r1   r1有r3发过来的1类lsa   所以r1知道r3的 位置    forward address不需要被设置 将其设为0即可   将这些路由以常规的外部路由在其他区域进行传递   
方法:
#area 2 nssa translate type7 suppress-fa
转换器r1   在将7类lsa转换完成之后    需要抑制其中的forward address地址
在r2上验证    show ip  ospf database external
35.1.1.0  其中的forward address 3.3.3.3  变成0.0.0.0
  好处是:a    节约了一点cpu的资源
b 隐藏了真实的ASBR   安全性增加
注意r1重分发r1上设置的rip路由时   在area0中检测时  其forward address为0    只有纯粹的nssa区域的内部路由ASBR  重分发时  才携带forword addresss参数  
 
 
 
D    totally NSSA   区域
过滤3 4 5类lsa    默认在此区域内主动下放 默认路由 全0/0   seed metric为1
在改区域的ABR上部署命令    area 2 nssa no-summary
 
 
命令参数的使用:
default-information-originate 默认在ABR向nssa区域内下放缺省的路由    
no-redistribution 在ABR/ASBR上    优化内部路由条目   所以可以和第一个参数共同使用
no-summary 区域变为totally nssa区域   主动下放默认路由    2和3参数可以共同使用
translate
 
加表路由优先级
O>O IA> O E1/E2= O N1/N2    
区域优选选择顺序
totally nssa> totally stub>nssa>stub
 
总结:NSSA区域   在nssa区域内可以拥有ASBR  并且重分发进入OSPF的路由是以7类LSA形式存在   该类型的LSA 只能存在于NSSA区域内    并且该区域所有ABR会通过比较RID选举出一个转换器 (最大RID者),该转换器会将内部传递给外部的nssa lsa 转化成5类lsa并且通告给其他区域   所有该区域内的ABR都会过滤从外部进入该区域的4/5类lsa 但是该区域的任何abr都不会主动向内部下放缺省路由  为了实现内部路由器的外网可达性   需要在该区域ABR 上手工下放缺省路由   ,
O N2 0.0.0.0/0 seed metric=1
 
Totally NSSA区域  给予nssa区域的概念基础   ABR会主动阻止3/4/5类LSA进入该区域   并且ABR会主动向区域内下放   O IA 0.0.0.0/0   SEED METRIC=1的缺省路由
 
 
 
 
 
配置案例:

 

 
 

E    ----DEFINING  VIRTUAL LINKS     
1.远离骨干区域的非骨干区域
2.被分割的area0

 

  a   第一种情况   割接产生  而非设计   需要临时的应急方案
1.在出现问题的abr上(没有和area0直连的ABR上),使用双OSPF进程,并且执行单点双向重分发。

 

  如图所示area3不和area0直连
r5#router ospf 100
#router-id 95.5.5.5
#network 35.1.1.5 0.0.0.0 area 3
 
r3#router ospf 100
#router-id 3.3.3.3      注意不能和ospf进程110中的router-id一致
#network 35.1.1.3 0.0.0.0 area 2

#redistribute ospf 110 subnets    将110进程的路由条目宣告进100进程中
#router ospf 110
#redistribute ospf 100 subnets 将100进程的路由条目宣告进110进程中
 
此时r1-r4中都有到r5的路由条目    r5中也有其他的路由条目但是都是OE2形式存在的  不精确  会影响r5的次 优路由选择 seed metric     所以此种方式不推荐使用
2.第2种解决方案
在出现问题的ABR上建立以个Tunnel链路连接到离其最近的AREA 0中的ABR路由器上,在这两台ABR上对 Tunnel配置ip地址为同一个IP子网段    并且将其宣告进OSPF的区域0.   tunnel是二层链路
r1#interface tunnel  1
#tunnel source 1.1.1.1    源地址
#tunnel destination 3.3.3.3
 
r3#interface tunnel  3   标示只具有本地意义
#tunnel source 3.3.3.3    源地址
#tunnel destination 1.1.1.1  目的地址
 
需要给二层的tunnel链路  配置ip地址
r1#interface tunnel 1 
#IP add 31.1.1.1 255.255.255.0
 
r3#interface tunnel 3 
#IP add 31.1.1.3 255.255.255.0
 
宣告接口进入ospf域内
r1#router ospf 110
#network 31.1.1.1 0.0.0.0 area 0
r3#router ospf 110
#network 31.1.1.3 0.0.0.0 area 0
 
注意  此时会导致邻接关系反复重启   需要将tunnel的源和目的地址取消宣告   即环回口地址
no network 1.1.1.1 0.0.0.0 area 0
no network 3.3.3.3 0.0.0.0 area 2
但是此时又没有去往环回口的路由    所以需要手工创建静态路由   (此种方式适合中间路由少的情况)
r3#IP route  1.1.1.1 255.255.255.255 serial 1/0 13.1.1.1
   r1#IP route  3.3.3.3 255.255.255.255 serial 1/1 13.1.1.3
此种方式太繁琐   不建议使用    只是提供一种思路
*****3.   使用virtual-link   在出问题的ABR一级离他最近的Area 0中的ABR上部署
virtual-link只能属于area0   必须跨越一个区域    不能跨越骨干区域   不能跨越特殊区域   只能跨域非骨干的 常规区域    此链路只能在属于一个区域内的两台路由器之间建立
命令:
r1#area 2 virtual-link 93.3.3.3            
r3#area 2 virtual-link 91.1.1.1          指定要连接的路由器id
 
验证:
r1#show ip ospf virtual-links
显示关键信息:adjacency state full(hello suppressed)   邻接关系完全建立  hello报文被抑制因为没必要
donotage lsa allowed   没有dead时间
satae point-to-point
r1#show ip ospf database
其中包含(DNA)的记录就是virtual-link发送的lsa   dead-time 没有或者不变
 
 
F----OSPF 认证    authentication 
 
1.基于链路的明文认证
在接口级别上配置
r2#ip ospf authentication-key cisco 设置秘钥
#ip ospf authentication 设置类型
r4上也要配置相同的命令
2.基于链路密文认证
r1#int serial 1/1
#ip ospf message-digest-key 13 md5  cisco        13为keyid   需要两端都一致       
#ip ospf authentication message-digest                 启用密文认证
在r3上做同样的命令操作
 
3.区域级别的明文认证
在接口中定义秘钥    在ospf进程中启用认证声明      
r1#interface serial 1/1
#ip ospf authentication-key h3c     
#router ospf 110
#area 0 authentication
 
r2#int serial 1/1
    #ip ospf authentication-key h3c
#exit
#router ospf 110
#area 0 authentication 
链路两端的秘钥需要一致     但是在区域中的其他不同网段中秘钥可以不一样    区域内声明的秘钥类型需要 一致
 
密文认证
r2#IP ospf message-digest-key 12 md5 cisco 
#area 0 authentication message-digest
4.虚链路的认证    在配置虚链路过程中做
明文:
r3#router ospf 110
#area 2 virtual-link 91.1.1.1
#area 2 virtual-link 91.1.1.1 authentication-key cisco 
#area 2 virtual-link 91.1.1.1 authentication
只有在vl初始化建立邻接关系的时候有效    建完邻接关系之后再做无用
密文:r1#router ospf 110
#area 2 virtual-link 93.3.3.3 message-digest-key 1 md5 cisco
#area 2 virtual-link 93.3.3.3 authentication  message-digest
 
情况1       area0启用了基于区域的认证    那么就表明区域内的所有路由器都启用了认证    只需要在路由器的相应 的接口配置相应的秘钥即可     由于虚链路包含在area0之内的虚拟逻辑链路    要求r1和r3之间做virtual-link认证     
由于area0已经启用了认证   所以r1和r3不需要声明虚链路认证   只要配置秘钥即可
 
 
posted on 2017-11-27 09:15  学习记录园  阅读(313)  评论(0编辑  收藏  举报