前文我们了解了OSPF的度量值,以及基础配置命令的总结,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15069632.html;今天我们来聊一聊在ospf里动态发布缺省路由相关话题;

  首先我们来说说缺省路由,什么是缺省路由?简单讲缺省路由就是网关(个人理解),默认情况下路由器没有配置缺省路由,路由器只能根据自身路由表中的路由进行数据包转发,匹配路由表中的路由就根据其路由进行转发,不匹配路由表中的路由就丢弃对应数据包;我们也可以理解缺省路由就是匹配除明细路由之外的所有路由(根据路由器转发原则中掩码最初匹配原则,缺省路由的优先级最低);配置缺省路由的方式通常有两种,一种是手动静态配置,一种是通过某种动态路由协议进行发布;我们知道静态手动配置路由有一个最大的缺点,它不能根据网络拓扑的变化而变化;而动态路由协议恰好弥补了静态路由的缺点,它能够根据网络的拓扑变化而动态的变化对应的路由;

  先来看一个实验,如下图拓扑,根据要求配置

  配置R1

sys
sys R1
int g0/0/0
ip add 10.0.0.1 24 ospf 1 router-id 1.1.1.1
area 0
net 10.0.0.0 0.0.0.255
int g0/0/0
ospf dr-pri 100

  配置R2

sys
sys R2
int g0/0/0
ip add 10.0.0.2 24 ospf 1 router-id 2.2.2.2
area 0
net 10.0.0.0 0.0.0.255
int g0/0/0
ospf dr-pri 50

  配置R3

sys
sys R3
int g0/0/0
ip add 10.0.0.3 24
int s4/0/0
ip add 36.0.0.3 24
ospf auth md5 1 cipher admin123.com
ospf 1 router-id 3.3.3.3
area 0
net 10.0.0.0 0.0.0.255
net 36.0.0.0 0.0.0.255

  配置R4

sys
sys R4
int g0/0/0
ip add 10.0.0.4 24 ospf 1 router-id 4.4.4.4
area 0
net 10.0.0.0 0.0.0.255

  配置R5

sys
sys R5
int s4/0/0
ip add 36.0.0.5 24
ospf auth md5 1 cipher admin123.com
int lo 1
ip add 5.5.5.5 32
int g0/0/0
ip add 56.0.0.5 8 ospf 1 router-id 5.5.5.5
area 0
net 36.0.0.0 0.0.0.255
net 5.5.5.5 0.0.0.0

  提示:R5是没有宣告到达R6的56.0.0.0/8的网络哦;

  配置R6

sys
sys R6
int g0/0/0
ip add 56.0.0.6 8

  验证:在R5上查看是否和R3建立邻居

  提示:从上面的邻居信息可以看到R5和R3建立了邻居关系,说明我们配置的认证信息没有问题;这里提醒一下,在ospf里做认证有两种方式,一种是基于接口做认证(就是把认证信息配置在对应接口下,生效范围是该接口下的ospf生效);另外一种是基于区域做认证(即在ospf区域模式下配置认证,生效范围是整个区域);

  验证:查看R3的邻居信息,看看是否和R1,R2,R4建立起邻居关系

  提示:可以看到R3和R1,R2和R5建立起邻接关系,和R4建立起邻居关系;

  验证:在R3上查看g0/0/0的接口信息,看看对应的DR和BDR是否是R1和R2?

  提示:可以看到DR是R1的接口地址,BDR是R2的接口地址,说明R1的g0/0/0是DR,R2的g0/0/0是BDR;

  验证:在R1上查看路由表,看看通过ospf学习到那些路由?

  提示:可以看到R1学习到了5.5.5.5,36.0.0.0/24;到达R5,R6的路由56.0.0.0/8的路由并没有学习到;

  验证:在R1上查看路由表,看看R1 到R5 lo接口的开销

  提示:可以看到R1到R5的5.5.5.5的开销是49;因为R1到R5的lo接口的开销计算是R5的lo1接口开销+R3的s4/0/0接口的开销+R1的g0/0/0接口的开销,即0+48+1=49;

  验证:查看R3的s4/0/0接口的开销,看看是否是48呢?

  提示:这个接口是串口接口,默认串行接口的带宽是2.048Mbps,所以该接口的开销为100Mbps/2.048Mbps=48.82,因为开销是直接取整,所以该接口的开销为48;

  验证:R5是否能够ping 通R6呢?

  提示:可以看到R5是能够正常ping通R6,其原因是R5和R6是直连,有直连路由;

  验证:R3是否能够ping通R6 呢?

  提示:可以看到R3ping不通R6,原因是R3没有达到R6的路由;

  查看R6的路由表

  提示:可以看到R6的路由表里只有和R5的直连路由,其他网段的路由都没有,说明R6只能和R5正常通行,和内部其他路由器没法正常通信;要想内部其他网络能够访问到R6,必须满足对应内部路由器有到达R6的路由,同时R6也必须也有到达对应网络的路由;这里我们只需要记住一点网络通信都是双向的,一切皆路由,只有通信双方都有对应的路由,才可以实现双方正常通信;

  解决R6能够访问内部各路由器网络的方法

  1、在R6上配置缺省路由,下一跳指向R5

  验证:在R6上配置静态缺省路由,下一跳指向R5的g0/0/0接口,抓包看看R6是否能够将包发给内部的路由器?

  在R6上ping R1,然后在R1上抓包,看看是否能够抓到包?

  提示:可以看到现在R6是能够将icmp的请求包发送给R1,只不过R1没有办法回复R6,原因是R1上没有到达R6的路由;

  解决内部路由器访问R6的方法

  1、最简单的方式在R5上,把到达R6的网络在ospf里宣告一下,让内部所有路由器都能够通过ospf学习到对应路由;

  2、最麻烦也是最不推荐的方法,在内部各路由器上手动配置静态路由或者缺省路由;

  3、在R5上引入R5直连R6的路由;

  4、在R5上配置静态缺省路由,下一条指向R6,然后在OSPF里动态发布缺省路由;

  5、在R6上删除缺省路由,在R5将直连56.0.0.0/8的路由引入到ospf(或者在R5上发布缺省路由),然后在R5上配置nat,让从R5出去的流量做SNAT;

  以上五种方法都可以实现让内部路由和R6实现通信,前面的1和2就不演示了,我们演示下方法3,4,5

  实验:在R5上引入直连路由到ospf里,看看R1是否能够学习到56.0.0.0/8的路由?

  验证:在R1上查看路由表,看看是否学习到56.0.0.0/8的路由呢?

  提示:可以看到R1此时学习到了2条外部引入的路由,分别是36.0.0.3 /32和56.0.0.0/8的路由;

  验证:现在用R6 ping R1 看看是否能够正常ping 通呢?

  提示:可以看到R6能够ping 通R1和R3上的接口,此时就实现了全网互通;

  实验:在R5上配置静态缺省路由,下一条指向R6,然后在OSPF里动态发布缺省路由;

  在R5上取消引入静态到ospf里的配置

  在R5上配置一条缺省路由,下一跳指向R6的g0/0/0接口

  在R5上通过ospf将刚才配置的缺省路由发布出去

  提示:上述命令的作用就是将缺省路由通过ospf发布出去;在发布之前必须先配置静态缺省路由;

  验证:在R1上查看路由表,看看对应R1是否学习到了R5发布的缺省路由呢?

  提示:可以看到R1的路由表中通过ospf学习到了一条缺省路由,并且下一跳指向了R3;

  验证:现在用R6ping R1 看看是否能通?

  提示:可以看到R6能够ping 通R1和R4;

  实验:在R6上删除缺省路由,在R5将直连56.0.0.0/8的路由引入到ospf,然后在R5上配置nat,让从R5出去的流量做SNAT;

  在R5上取消缺省路由的发布

  验证:现在R6 是否还能ping 通R1或R4呢?

  提示:可以看到取消了缺省路由的发布,对应R6也ping不通R1了,其原因是R1上的缺省路由随R5的取消也随之被删除;

  验证:在R1上查看路由表看看是否还有缺省路由?

  提示:可以看到R1上的缺省路由被删除了;

  在R6上删除缺省路由

  提示:删除了R6上的缺省路由以后,此时R6 就只能和R5的g0/0/0通过直连路由进行通信;

  在R5上将直连路由引入到ospf中

  提示:此时R5引入直连路由到ospf里,其他路由器就能通过ospf学习到56.0.0.0/8的路由;

  在R5上做nat,让从g0/0/0出去的流量做SNAT

  验证:用R1ping R6 看看是否能够ping通?

  验证:在R5的g0/0/0上抓包,看看对应源地址是否被更改了?

  提示:从上面的抓包信息可以看到,R1的数据包在通过R5的g0/0/0时,会被修改成R5的g0/0/0接口的地址;这里需要注意一点,此时R1能够正常ping通R6,原因是R1的包通过R5的g0/0/0时,会修改其原ip为56.0.0.5,此时到达R6的包源ip就是R5的ip,所以R6回包也就把R5当作目标地址回包;而R6是没有办法直接pingR1,原因是R6上根本就没有R1的路由;这也是我们现实生活中的网络,一般内部能够正常访问外部网络,外部网络没有办法直接访问内部网络;

HCNA Routing&Switching之OSPF缺省路由发布的更多相关文章

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

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

  2. HCNA Routing&Switching之动态路由协议OSPF DR和BDR

    前文我们了解了OSPF建立邻居关系的条件,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15032907.html:今天我们来聊一聊OSPF中的DR和BDR: ...

  3. HCNA Routing&Switching之动态路由协议OSPF基础(二)

    前文我们主要了解了OSPF的区域.区域分类.路由器类型.OSPF的核心工作流程,回顾请参考:https://www.cnblogs.com/qiuhom-1874/p/15025533.html:今天 ...

  4. HCNA Routing&Switching之动态路由协议OSPF基础(一)

    前文我们了解了基于路径矢量算法的动态路由协议RIP防环以及度量值的修改相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15012895.html:今天我 ...

  5. HCNA Routing&Switching之动态路由协议OSPF建立邻居的条件

    前文我们了解了OSPF的router id.数据包结构.类型.不同类型的数据包作用以及OSPF状态机制,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15027 ...

  6. HCNA Routing&Switching之静态路由

    前文我们聊到了路由的相关概念和路由基础方面的话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14947897.html:今天我们聊聊静态路由相关话题: 回顾 ...

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

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

  8. HCNA Routing&Switching之动态路由基本概念

    前文我们了解了静态路由的相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14965433.html:今天我们来聊一聊动态路由相关概念: 首先我们要清楚什 ...

  9. HCNA Routing&Switching之路由基础

    在开始聊路由之前,我们首先要明白在网络通讯里,什么是路由?什么是路由表.路由器以及网关的相关术语:路由简单讲就是指网络数据包从源头到目标的路径,主要用来为不同网络间通讯提供数据包转发依据:路由表就是多 ...

随机推荐

  1. Spring Boot WebFlux-09——WebFlux 集成测试及部署

    第09课:WebFlux 集成测试及部署 前言 在日常工作中,免不了自测 UT,因为覆盖率不达标,是不允许提交测试,那怎么进行 WebFlux 项目的测试呢.@WebFluxTest 是 WebFlu ...

  2. MySQL的启动选项和系统变量该如何配置?

    MySQL的配置信息可以通过两种方式实现,一种是命令行形式,在启动MySQL服务时后边带上相关配置参数,此种方式会在MySQL重启后失效.另外一种是通过写入配置文件,如my.cnf,启动或者重启MyS ...

  3. OpenCV随笔

    创建一个窗口#zeros(shape,dtype=float,order='C')#shape:形状,dtype:数据类型,可选参数,默认numpy.float64img = np.zeros((50 ...

  4. 【源码分析】- 在SpringBoot中你会使用REST风格处理请求吗?

    ​ 目录 前言 1.什么是 REST 风格 1.1  资源(Resources) 1.2  表现层(Representation) 1.3  状态转化(State Transfer) 1.4  综述 ...

  5. 用jquery通过点击事件把下拉列表币种的值传给文本框1,再通过文本框1的币种名称用if转化为币别传值给文本框2保存

    <script src="https://cdn.staticfile.org/jquery/2.2.4/jquery.min.js"></script>& ...

  6. 单链表(LinkedList)

    与数组相似,链表也是一种线性数据结构.这里有一个例子:   正如你所看到的,链表中的每个元素实际上是一个单独的对象,而所有对象都通过每个元素中的引用字段链接在一起.   链表有两种类型:单链表和双链表 ...

  7. Jenkins自动化CI&CD流水线

    1 环境说明 主机名称 IP cpu核数/内存/硬盘 安装软件 用途 controlnode 172.16.1.120 2/2/60 git 代码仓库 slavenode1 172.16.1.121 ...

  8. Docker+Vagrant+Gitlab 构建自动化的 CI/CD

    如果你的开发流程是下面这个样子的, 那么你一定很好奇, 为什么我提交到仓库的代码可以自动部署并访问到最新的提交内容 这就是近年来兴起的 DevOps 文化, 很方便的解决了开发人员和运维人员每次发布版 ...

  9. HTTP返回状态码及错误大全

    http://www.kaiyuanba.cn/html/1/131/226/4258.htm HTTP 400 - 请求无效 HTTP 401.1 - 未授权:登录失败 HTTP 401.2 - 未 ...

  10. Jquery Validate动态添加和删除校验规则

    以下面文本框为例, <input type="text"name="username" id="username"/> 我们要让 ...