递归和迭代路由_静态路由在以太网接口中的不同书写会导致路由器怎样的操作结果?...

各位小伙伴们:大家好!上一节和大家分享了在不同类型的网络中应该使用什么样的静态路由配置命令;今天我们再来看看在常见的多路访问(MBA)网络——以太网中,静态路由的不同书写方式将导致路由器执行那些不同的操作。如下图:

761fe6396416ddcd29c23d836def48fb.png

静态路由配置拓扑图

R1、R2、R3准备采用配置静态路由实现各个网段的互通,我们将围绕R1到达2.2.2.0/24这一网段目标,来看看当R1采用不同的静态路由配置时路由器的执行操作过程。

1、当R1采用如下配置时:

[R1]ip route-static 2.2.2.0 24 10.1.12.2

这是一种非常典型,也是一种通常推荐的静态路由配置方法,该路由指定了明确的下一跳IP地址。这条命令配置完成后,R1会将其添加到路由表中,由于该静态路由并未指定出接口,因此R1继续在路由表中查询到达目标网络2.2.2.0/24的下一跳IP地址10.1.12.2的路由,它发现该IP地址是本地接口GE0/0/0所直连网段中的地址,于是将路由2.2.2.0/24关联到出接口GE/0/0/0。R1的这个操作过程称为“递归查询”,也成为“迭代路由”。

2、当R1采用如下配置时:

[R1]ip route-static 2.2.2.0 24 Gigabitethernet0/0/0

该静态路由配置只关联了出接口,而未指定下一跳IP地址信息;完成这个配置后,R1将认为2.2.2.0/24这个目标网段会从GE0/0/0接口出去即可到达,由于没有明确的下一跳IP地址信息,因此当它转发到达2.2.2.0/24的报文时,它将直接从GE0/0/0接口发送ARP-Request广播,试图获取2.2.2.3对应的MAC地址。此时R2会回应R1关于2.2.2.3地ARP-Request,并且已以自己GE0/0/0接口的MAC地址进行回应。如此一来,R1即可将到达2.2.2.3的数据帧转发给R2,再有后者进一步转发。注意:如果R2没有在GE0/0/0接口上激活ARP-Request功能,R1所发出的ARP-Request请求将无法收到回应,它自然也就无法将到达2.2.2.3的数据流量顺利转发出去。

开启R2上GE0/0/0接口的ARP-Request功能,需要在接口配置模式下执行如下命令:

[R2-Gigabitethernet0/0/0]arp-proxy enable

3、当R1采用如下配置时:

[R1]ip route-static 2.2.2.0 24 Gigabitethernet0/0/0 10.1.13.2

该静态路由配置即制定了下一跳IP地址,又指定了出站接口,因此这条路由拥有了足够的转发信息,它将被直接加载到R1的路由表中。此时,R1认为2.2.2.0/24可以通过GE0/0/0接口所直连的10.1.13.2到达,因此R1并不会再路由表中对下一跳IP地址10.1.13.2进行‘递归查询’。当有去往目的网络2.2.2.0/24的流量到达R1后,R1将直接在GE0/0/0接口上发送ARP-Request,尝试请求10.1.13.2这个IP地址对应的MAC地址。如果此时R2的GE0/0/0接口开启了ARP-Request功能,则会已自己的接口MAC地址进行回应,数据帧则可以到达R2,再有R2转发到目的地。,如果没有开启ARP-Request功能,数据帧将无法被R2顺利转发。

注意:这种静态路由的配置方式并不被建议使用。

4、当R1采用如下配置时:

[R1]ip route-static 2.2.2.0 24 10.1.13.2

当R1采用这种配置时,初始时,该路由并不会加载到R1的路由表,因为下一跳IP地址10.1.13.2无法经过‘递归查询’确认直连的出接口,这是因为该路由本身并未指定出接口,与此同时R1在路由表中也无法查询到去往10.1.13.2的路由。那该如何解决呢?

此时可以在R1上再增加一条静态路由的配置:

[R1]ip route-static 10.1.13.0 24 10.1.12.2

这样,到达2.2.2.0/24和10.1.13.0/24的路由都会出现在R1的路由表中,R1会根据路由表将路由2.2.2.0/24的下一跳10.1.13.2进行递归查询,它能够找到匹配10.1.13.3的路由表项,并且该表项的下一跳IP地址是10.1.12.2,进一步在路由表中查询10.1.12.2,则发现该IP地址处于本地直连网段10.1.12.0/24中,并且出接口为GE0/0/0。因此R1获取了足够的转发信息,来转发到达2.2.2.0/24的数据流量。

总结:在多路访问网络中配置静态路由时一定要注意命令的书写方式,劲量让路由设备能够获得足够的转发信息,这样数据包的转发操作才会更快,更准确!其次,“递归查询”的目的是找到要转发的数据包到目标网络的出站接口,要想更快处理数据操作,对网络拓扑图要有一个清晰的规划和认识。

好的,今天就和大家讨论这些话题,宝宝们你们学懂了吗?

别忘了在《今日头条》中的《西瓜视频》或《视频》中搜索《实验笔记》并关注;其中有我们相关话题的模拟实验视频共大家参考学习!

记住:“《实验笔记》是你身边的学习笔记”!我们下期再见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/265807.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实验报告三

学 号 201521440010 中国人民公安大学 Chinese people’ public security university 网络对抗技术 实验报告 实验三 密码破解技术 学生姓名 邱景丛 年级 2015 区队 四 指导教师 高见 信息技术与网络安全学院 2016年11月7日 实验任务总纲 2016—2017 学年 第 一 …

设计前沿:25个设计师向您展示 iOS 7 界面

我们中的许多人都对新发布的 iOS 7 用户界面有点失望。扎眼的颜色搭配,难看的图标和可疑的设计决策,导致很多的设计师在 Dribbble 和 Behance 等社交网站分享自己对 iOS 界面设计的诠释。这篇文章集合了一些伟大的想法,改进苹果 iOS 7 的界面…

智能家居 (11) ——树莓派摄像头捕捉人脸并识别

更多干货推荐可以去牛客网看看,他们现在的IT题库内容很丰富,属于国内做的很好的了,而且是课程刷题面经求职讨论区分享,一站式求职学习网站,最最最重要的里面的资源全部免费!!!点击进…

centos上使用高版本gcc、g++

0x0 在centos7上gcc版本是4.85,在编译一些代码时需要使用g的一些新特性,而网上大多教程都是重新编译gcc,太麻烦了,在centos 7上默认是yum search不到高版本的gcc的 安装scl scl 是Software collections 的缩写,安装…

【Docker系列教程之一】docker入门

我们在理解 docker 之前,首先我们得先区分清楚两个概念,容器和虚拟机。 我们用的传统虚拟机如 VMware , VisualBox 之类的需要模拟整台机器包括硬件,每台虚拟机都需要有自己的操作系统,虚拟机一旦被开启,预…

Java基础 —— 变量,选择,循环,数组,输入与输出等

目录嵌入式学JAVAJava安卓开发环境搭建并运行HelloWorld概念引入JavaSE,EE,ME的区别JREJDK编程实操:从C面向过程转变变量定义与输出数组的定义与遍历(循环、控制、选择和C完全一样)函数的调用:类比c语言结构体的使用输入数据:Scanner嵌入式学…

ubuntu20 编译dpdk错误 -Werror=address-of-packed-member

0x0 在ubuntu20上编译dpdk 18.11报错,gcc 版本为9.3.0,报错如下: error: converting a packed ‘const struct ether_addr’ pointer (alignment 1) to a ‘unaligned_uint16_t’ {aka ‘const short unsigned int’} pointer (alignment 2…

Java 特性

Java有四大特性: 1.封装:隐藏对象的属性和实现细节,仅仅对外公开接口。 封装具有一下优点: 便于使用者正确、方便的使用系统,防止使用者错误修改系统属性;有助于建立各个系统之间的松耦合关系;…

MyBatis 传递多个参数

2019独角兽企业重金招聘Python工程师标准>>> 在MyBatis中可以用以下的方式来传递多个参数 1. 用java.util.Map来传递, Code 如下: public List<User> getAllUsersByUserName(String username, int start, int limit){Map<String,Object> params new H…

Linux stmac网卡代码分析----probe

probe 主要分析一下驱动的主要框架&#xff0c;必要地方细致分析下 文件位置&#xff1a; drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c 从文件的最后看起&#xff1a; module_pci_driver(stmmac_pci_driver); stmmac_pci_driver结构体如下&#xff0c;里面包含了id_…

Java面向对象(1) —— 封装

目录一、封装的概念二、类的封装以及使用三、访问修饰符四、属性封装的实现五、方法封装的实现六、UML类图七、类的构造方法与可重载八、this关键字九、static关键字十、方法重载&#xff1a;overload十一、包&#xff1a;package一、封装的概念 将字段&#xff08;C结构体中的…

linux下源码软件包的安装

我们在使用linux做服务器的时候&#xff0c;因为linux自带的软件包都有些老&#xff0c;不是最新的&#xff0c;但是有时候我们为了使用最新的软件&#xff0c;会使用最新的软件的源码来进行安装。所以我们需要用心去做了...在我们拿到一个软件的源码时&#xff0c;源码一般都是…

react-native 打包apk 并解决 图片 不出现问题

react-native官网打包apk方法&#xff1a;https://reactnative.cn/docs/signed-apk-android/ 解决办法&#xff1a; 找到项目 android目录下 gradle.properties文件 打开加入如下代码&#xff1a; android.enableAapt2false这段代码非常重要 官网缺少 。不然打包apk图片不出现。…

龙芯派2亚克力外壳

0x0 龙芯派自带的亚克力顶板没有风扇的孔位&#xff0c;在长时间运行时亚克力板很烫&#xff0c;因此我设计了个带风扇孔位的亚克力顶板 效果如下&#xff1a; 风扇规格 4X4风扇 供电由龙芯派的GPIO上的5V管脚供电 使用方法 1.某宝搜索亚克力板定制 2. 将本文件发送给店家…

Java面向对象(2) —— 继承

目录前言继承的概念和实现extends关键字super关键字继承过来的属性和方法的权限研究方法重写OverrideObject根类常见方法toString()常把toString()方法重写后应用equals()重写&#xff1a;判断两个对象p1和p2特征是否相同IDEA的重写模板&#xff1a;敲equals可选择的方案之一St…

dpdk18.11 收发包流程分析

pci probe RTE_PMD_REGISTER_PCI(net_ixgbe, rte_ixgbe_pmd); 宏注册了net_ixgbe driver到pci bus rte_ixgbe_pmd 的定义如下 static struct rte_pci_driver rte_ixgbe_pmd {.id_table pci_id_ixgbe_map,.drv_flags RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,.pr…

人工智能芯片龙头之一gti概念股_AI芯片龙头寒武纪IPO价格定了!概念股全名单收好...

寒武纪披露首次公开发行股票并在科创板上市发行公告&#xff0c;确定发行价格为64.39元/股&#xff0c;本次科创板上市发行剔除无效报价和最高报价后剩余报价拟申购总量为3,405,910万股&#xff0c;整体申购倍数为回拨前网下初始发行规模的1327.12倍。战略配售投资者包含中信证…

Java面向对象(3) —— 抽象类、接口、内部类、匿名内部类

目录抽象类&#xff08;abstract&#xff09;抽象类的使用方法抽象类的应用&#xff1a;模板方法模式接口接口的概念接口的特点接口的使用接口实现与抽象类继承的区别接口的多继承内部类概念成员内部类&#xff08;使用较多&#xff09;及应用创建成员内部类的实例在成员内部类…

Kohana和Zencart

2019独角兽企业重金招聘Python工程师标准>>> 我有一个Kohana php框架但是客户求和zencart系统结合。我有一个想法是Kohana重新zencart 有没有人用过&#xff1f;应该没有吧 Kohana 是一款纯 PHP5 的框架&#xff0c;基于 MVC 模式开发&#xff0c; 它的特点就是高安…

Linux stmac网卡代码分析 -- open

Open stmmac_open是在stmmac_netdev_ops结构体里的&#xff0c;这个ops在probe时就已经注册到了net_device结构体里&#xff0c;在网卡对于stmmac_open函数调用的时间我还不确定是否是在网卡link up时 下面看看stmmac_open函数&#xff0c;文件位置&#xff1a; drivers/net/…