前文我们了解了OSPF的4类、5类LSA,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15222969.html;今天我们来聊一聊外部路由类型和forwarding address相关话题;

  我们知道在ospf中外部路由主要由asbr通过发送5类LSA,将对应的路由信息传递给其他区域的ospf路由器;如果对应ospf路由器和asbr不在同一区域,则对应区域的ABR会产生4类LSA,用来描述对应去往ASBR路由;通过4类和5类LSA,一条外部路由就成功被其他OSPF路由器学习到;对于ospf来说,外部路由有两个类型,类型1和类型2;两者主要区别是计算开销的方式不同;对于类型1的外部路由,其计算开销的方式和内部计算开销的方式一样,累加接口开销;而对于类型2的外部路由,其计算开销的方式是只计算外部路由开销,不计内部开销;即当导入的外部路由开销是多少,内部任何地方学习到的该路由开销都是一样的;

  ospf外部路由类型

  实验:如下拓扑,配置ospf

  分析:正常情况下,我们计算ospf路由开销的方式是接口开销累加之和;比如R1到达4.4.4.4的路由开销就是R4的lo1接口开销+R3的g0/0/1的开销+R2的g/0/01的开销+R1的g0/0/0开销(路由学习方向入站接口开销累加或者数据出站接口开销累加);我们先配置好ospf,然后把4.4.4.4的路由引入到ospf中,看看对应学习到4.4.4.4的路由,对应开销是多少;

  R1的配置

sys
sys R1
int g0/0/0
ip add 12.0.0.1 24
ospf 1 router-id 1.1.1.1
area 1
net 12.0.0.0 0.0.0.255

  R2的配置

sys
sys R2
int g0/0/0
ip add 12.0.0.2 24
int g0/0/1
ip add 23.0.0.2 24
ospf 1 router-id 2.2.2.2
area 1
net 12.0.0.0 0.0.0.255
area 0
net 23.0.0.0 0.0.0.255

  R3的配置

sys
sys R3
int g0/0/0
ip add 23.0.0.3 24
int g0/0/1
ip add 34.0.0.3 24
ospf 1 router-id 3.3.3.3
area 0
net 23.0.0.0 0.0.0.255
area 2
net 34.0.0.0 0.0.0.255

  R4的配置

sys
sys R4
int g0/0/0
ip add 34.0.0.4 24
int lo 1
ip add 4.4.4.4 32
ospf 1 router-id 4.4.4.4
area 2
net 34.0.0.0 0.0.0.255

  在R4上引入直连路由到ospf进程中

  提示:上述新建了一条acl 主要用来匹配源地址为4.4.4.4的路由;在引入直连路由到ospf时,我们用路由策略把acl 2000作为匹配条件,把对应路由引入到ospf中;简单讲就是只引入4.4.4.4的路由到ospf中;

  验证:在R3上查看ospf路由表,看看对应学习到4.4.4.4的路由开销是多少?

  提示:可以看到在R3学习到达4.4.4.4的路由开销为1,对应类型为2;

  验证:在R1上查看ospf路由表,看看对应学习到4.4.4.4的路由开销是多少?

  提示:可以看到在R1上学习到达4.4.4.4的路由开销还是1?那么从R1发送数据到4.4.4.4,中间经过R2和R3,中间怎么会没有开销呢?其实原因就在于外部路由的类型;在ospf中默认引入的外部路由的类型是类型2,其计算开销的方式是外部路由引入时开销是多少就是多少,不管中间经过多少路由器,其开销都一样;

  验证:更改引入的外部路由开销为20,看看在R1、R2或R3学习到达路由是否也是20?

  在R1上查看对应路由的开销

  在R2上查看对应路由的开销

  在R3上查看对应路由的开销

  提示:可以看到三台路由其学习到达4.4.4.4路由的开销都是开始导入外部路由时更改的开销20;

  更改外部路由类型为类型1

  验证:在R3查看对应ospf学习到4.4.4.4的路由开销已经类型

  提示:可以看到我们把R4引入的外部路由类型更改为类型1以后,对应在R3学习到对应路由的开销就符合ospf开销计算方式(路由入站接口开销综合);即此时外部路由和内部路由计算开销的方式一样;

  验证:在R1上查看对应路由开销,看看是否还是20?

  提示:可以看到在R1上学习到达4.4.4.4的路由开销为23;其外部路由的类型为类型1;相比类型2来讲,类型1的外部路由要比类型2的外部路由可信度要高;因为类型1的外部路由是把外部路由和内部路由都看作ospf路由,其计算开销的方式都一样,不区别对待;从精确程度来讲,类型1的精确程度高于类型2;

  forwarding address字段

  forwarding address是5类LSA当中的一个字段,其主要作用是解决次优路由选择下一跳地址;我们知道对于5类LSA只会存在有外部路由引入的ospf环境;那么对于非ASBR路由器,如果和ASBR同区域,它们学习到的外部路由下一跳通常为ASBR的地址;如果和ASBR不在同一区域,它们学习到的外部路由下一跳通常指向对应区域发送4类LSA的ABR路由器地址;一般正常情况下forwarding address字段都是0.0.0.0,但在特殊环境中,该字段主要用来标识对外部应路由的下一跳地址;

  次优外部路由的产生

  提示:从原理上讲RTA学习到的外部路由,对应下一跳是指向ASBR的接口地址;这样一来RTA要想和RTC通信,数据包会先发送给RTB,然后再由RTB转发给RTC;很明显这样的流量走向不是最优的路径;最优的路径就是RTA直接把数据包发送给RTC;要想影响路由走向,对应下一跳不应该指向RTB而应该指向RTC才对;

  实验:如下拓扑环境,配置ospf、RIP,然后把对应RIP路由引入到ospf中

  分析:R5和R6跑ospf,R5和R7跑RIP;对于R5来讲,它即可通过ospf学习到ospf的路由,又能通过RIP学习到RIP的路由;而对于R6来讲,它想要和R7的lo1接口通信,首先要有对应的路由;我们可以通过R5导入rip的路由到ospf中,让R6学习到7.7.7.7的路由;

  R5的配置

sys
sys R5
int g0/0/0
ip add 192.168.100.5 24
ospf 1 router-id 5.5.5.5
area 0
net 192.168.100.5 0.0.0.0
rip 1
ver 2
net 192.168.100.0

  R6的配置

sys
sys R6
int g0/0/0
ip add 192.168.100.6 24
ospf 1 router-id 6.6.6.6
area 0
net 192.168.100.6 0.0.0.0

  R7的配置

sys
sys R7
int g0/0/0
ip add 192.168.100.7 24
int lo 1
ip add 7.7.7.7 32
rip 1
ver 2
net 192.168.100.0
net 7.0.0.0

  验证:在R5上查看ospf路由表

  提示:可以看到R5通过RIP学习到7.7.7.7的路由,下一跳指向R7的g0/0/0接口;

  查看R6的路由表

  提示:R6的路由表没有显示任何动态路由协议学习到的路由;其实R6通过ospf学习到192.168.100.0/24的路由;但ospf学习到的路由没有直连优先级高,所以在路由表中显示的还是直连;

  在R5上将RIP学习到的路由导入到ospf中

  在R6上抓包查看对应5类LSA中的内容

  提示:我们在交换机上抓包,抓到了R5发送的5类LSA,其中该LSA中描述了到达7.7.7.7的路由,并且将forwarding address字段的值置为了R7的接口地址;这表示R6学习到达7.7.7.7的路由,其下一跳就指向192.168.100.7;这样做的目的就是避免次优路径的产生;

  验证:查看R6学习到7.7.7.7的路由,下一跳的地址是否指向R7的地址?

  提示:可以看到此时R6的ospf路由表和ip路由表中对应7.7.7.7的路由下一跳都指向了R7的接口地址,而不是ASBR R5发送5类LSA接口地址;

  总结:通过上述实验可以看到,在ospf中,对应发送5类LSA接口地址和外部引入路由的下一跳在同一网段,此时ospf在引入外部路由时,它会将forwarding address字段置为对应外部路由的下一跳,其目的就是告诉其他ospf路由器将学习到的外部路由下一跳置为forwarding address指定的地址;这样可以避免次优路径的产生;

HCNP Routing&Switching之OSPF外部路由类型以及forwarding address的更多相关文章

  1. HCNP Routing&Switching之OSPF LSA更新规则和路由汇总

    前文我们了解了OSPF外部路由类型以及forwarding address字段的作用,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15225673.html: ...

  2. HCNP Routing&Switching之OSPF LSA类型

    前文我们了解了OSPF中的虚连接相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15202348.html:今天我们来聊一聊OSPF数据包中LSA类型相 ...

  3. HCNP Routing&Switching之OSPF LSA类型(二)

    前文我们了解了OSPF的一类.二类.三类LSA,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15209829.html:今天我们来聊一聊OSPF的四类和五类L ...

  4. HCNP Routing&Switching之OSPF网络类型

    前文我们了解了PPPoE协议相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15182512.html:今天我们聊聊一聊OSPF中的网络类型相关话题: ...

  5. HCNP Routing&Switching之OSPF特殊区域

    前文我们了解了OSPF LSA更新规则以及路由汇总相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15231880.html:今天我们来聊一聊OSPF的 ...

  6. HCNP Routing&Switching之OSPF虚连接

    前文我们了解了OSPF的网络类型.帧中继交换机映射以及路由器帧中继映射相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15195762.html:今天我 ...

  7. HCNP Routing&Switching之路由引入导致的问题及解决方案

    前文我们了解了路由引入相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15359902.html:今天我们来讨论下由于路由引入所导致的问题以及怎么避免此 ...

  8. HCNP Routing&Switching之BGP路由宣告

    前文我们了解了BGP报文结构.类型以及邻居状态相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15422924.html:今天我们来聊一聊BGP路由宣告 ...

  9. HCNP Routing&Switching之BGP路由属性和优选规则

    前文我们了解了BGP防环机制和路由聚合相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15458110.html:今天我们来聊一聊BGP路由属性和选路规 ...

随机推荐

  1. #使用C#winform编写渗透测试工具--子域名挖掘

    使用C#winform编写渗透测试工具--子域名挖掘 这篇文章主要介绍使用C#winform编写渗透测试工具--子域名挖掘.在渗透测试中,子域名的收集十分重要,通常一个网站的主站的防御能力特别强,而他 ...

  2. SQL语句(一)基础查询与过滤数据

    目录 一.数据库测试表 二.基础查询 1. 获得需要的记录的特定字段 2. 查询常量值 3. 查询表达式 4. 查询函数 5. 起别名 6. 去重 7. CONCAT函数的简单使用 三.过滤数据 大纲 ...

  3. TCP三次握手、四次挥手理解

    tcp三次握手建立连接第一次握手 客户端发送给服务器一段连接请求报文,等待服务器回应 第二次握手 服务器收到报文,并发送给客户端一个确认报文,等待客户端回应 第三次握手 客户端收到新报文 ,再发送给服 ...

  4. ABC165C题解

    题目 看题目的时候一脸懵,直到看见数据范围 \[N \le 10,\; M \le 10,\; Q \le 50 \] 之后才意识到问题的严重性. 毕竟数据如此的小,我们完全可以用阶乘复杂度算法卡过去 ...

  5. pwnable.kr之unlink

    pwnable.kr之unlink 之前在看别的东西,学习的随笔也没有写完......颓了几天. 由于最近在看堆,就把pwnable.kr上unlink这道题做一下,学习一下. 1.程序分析 #inc ...

  6. JQuery常用属性操作,动画,事件绑定

    jQuery 的属性操作        html() 它可以设置和获取起始标签和结束标签中的内容. 跟 dom 属性 innerHTML 一样.        text() 它可以设置和获取起始标签和 ...

  7. 如何在Spring Data MongoDB 中保存和查询动态字段

    原文: https://stackoverflow.com/questions/46466562/how-to-save-and-query-dynamic-fields-in-spring-data ...

  8. Notes about BSD

    FreeBSD: mainly for web server; OpenBSD: mainly for security concerned server;

  9. SpringBoot 整合缓存Cacheable实战详细使用

    前言 我知道在接口api项目中,频繁的调用接口获取数据,查询数据库是非常耗费资源的,于是就有了缓存技术,可以把一些不常更新,或者经常使用的数据,缓存起来,然后下次再请求时候,就直接从缓存中获取,不需要 ...

  10. Kali 2.0 安装教程

    本文适合KALI初学者,将详细介绍Kali Linux 2.0的安装过程. 首先我们到KALI的官网下载镜像,大家可以自己选择下载32或64位的KALI 2.0系统. KALI 官网:https:// ...