HCNA Routing&Switching之路由基础
在开始聊路由之前,我们首先要明白在网络通讯里,什么是路由?什么是路由表、路由器以及网关的相关术语;路由简单讲就是指网络数据包从源头到目标的路径,主要用来为不同网络间通讯提供数据包转发依据;路由表就是多条路由信息的集合,主要作用就是用来存储路由信息,以及为路由器提供路由的依据;路由器就是指具有路由功能和维护路由表的网络设备;所谓网关是指路由器上的接口ip地址(一台路由器一个接口对应一个广播域,所以路由器天生就是用来隔离广播域的);
路由器的工作原理
当路由器(或其他三层设备)收到一个ip数据包时,首先会查看该包的ip头部中的目标ip地址,并在路由表中进行查找和匹配,在匹配到最优路由后,将数据包扔给对应路由所指的出接口或下一跳,从而完成数据包的转发;当收到的ip数据包在路由表中没有匹配的路由时,路由器会自动丢弃对应的ip数据包;简单讲就是路由器收到报文,然后查找路由表,如果有对应匹配的路由,就把对应报文从对应路由所指定的出接口或下一条所在同网段ip地址所在接口发出去;如果没有匹配的路由信息则自动丢弃该数据报文;从上述描述我们不难理解,一个数据报文要想从路由器通过,必须满足对应路由器上要有匹配的路由;有了匹配的路由,对应路由器就知道把对应数据报文从那个接口转发出去;
ip路由过程

提示:当一个报文从10.3.1.0发出,首先会被RA收到,RA收到报文后,一看该报文是到10.4.1.0网络,然后就查看自己的路由表,看看有没有到达10.4.1.0路由;如果有就从对应路由所指定的出接口转发出去;如果没有就丢弃;同样的原理,当数据包从RA的E0口发送出去以后,对应与RA的E0口直连的RB的E0口就会收到对应的数据报文;当RB收到RA转发出来的报文以后,也会先看对应报文的目标网络,然后和自己的路由表中的路由进行匹配;匹配到就从对应的接口发出去;依次类推,最终数据包会到达RC,RC收到报文以后,查看路由表发现对应报文的目标网络是和自己E1口直连,然后RC会把对应报文从E1口发送出去;到此路由器的工作就完成了;后续就是通过目标ip地址,arp广播拿到对应目标ip地址mac,然后进行二层以太网封装,最终将数据报文送达到对应主机或设备的网卡上,由对应目标ip地址所在设备进行处理;
查看路由表
<Huawei>display ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 4 Routes : 4 Destination/Mask Proto Pre Cost Flags NextHop Interface 127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0 <Huawei>
提示:Destination/Mask字段用来描述目标网络和掩码;Proto用来描述路由的来源,常见的路由来源有Direct(直连),static(静态),ospf(动态路由学习中的一种),RIP等等;pre用来描述对应路由的优先级,如果有多条不同的路由到达相同目标网络,优先级越低对应路由就越优先匹配;cost是用来描述对应路由的开销,多条相同路由来源到达相同目标网络,开销越低,对应路由就越优先匹配;NextHop用来描述下一跳地址,所谓下一跳就是指ip报文所经由的下一个路由器的接口地址;interface用来描述出接口(ip报文从哪个接口转发出去);
路由器转发原则
1、被转发到路由必须存在(如果不存在该路由条目,路由器收到此类报文会直接丢弃不做任何处理);
2、根据最长匹配原则进行匹配,也就是掩码越长越优先转发;


提示:如图所示,R1上有两条静态路由,分别都能到达3.3.3.3,其中一条是出接口为g0/0/0掩码为24,一条是g0/0/1掩码为32,现在我们看看数据报文到底会走哪一边呢?
验证:用tracert 3.3.3.3来查看对应数据包会走的那一条路?
[R1]tracert 3.3.3.3
traceroute to 3.3.3.3(3.3.3.3), max hops: 30 ,packet length: 40,press CTRL_C to break
1 4.4.4.4 30 ms 10 ms 10 ms
2 5.5.5.3 20 ms 30 ms 30 ms
[R1]
提示:可以看到当目标地址相同时,相同协议,优先级,开销的情况下掩码越长越优先匹配上;
3、当掩码长度一样,会比较优先级,优先级数字越小越优先转发;
示例:还是上述实验top,修改下静态路由,把g0/0/1上的优先级改调大一点,看看对应数据包是否还会选择下面的路呢?


提示:当我们把原来的32位掩码路由删除以后,重新添加24为掩码的优先级为80的路由以后,对应路由表中反而就只有一条优先级为60的路路由;说明相同目标网络,相同掩码以及相同协议和开销的情况下,优先级越低的路由优先匹配(因为路由表中只存在最优路由);此时我们在R1上访问3.3.3.3时,数据报文会从g0/0/0发出,因为路由表中就只有一条路由;
验证:用R1 tracert 3.3.3.3,看看数据包是否走R2到达R3?
[R1]tracert 3.3.3.3
traceroute to 3.3.3.3(3.3.3.3), max hops: 30 ,packet length: 40,press CTRL_C to break
1 1.1.1.2 20 ms 20 ms 10 ms
2 2.2.2.3 30 ms 30 ms 30 ms
[R1]
提示:可以看到数据包走g0/0/0到达1.1.1.2,然后在到达R3的2.2.2.2;
常用路由协议默认优先级

4、当掩码和优先级一样,会比较开销(cost值),开销越小越优先转发;
示例:还是上述的top,全网运行ospf,然后修改g0/0/0上的开销为50,看看对应的路由表中会存放那条路由?
[R1]dis ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 13 Routes : 14 Destination/Mask Proto Pre Cost Flags NextHop Interface 1.1.1.0/24 Direct 0 0 D 1.1.1.1 GigabitEthernet0/0/0
1.1.1.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
1.1.1.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
2.2.2.0/24 OSPF 10 2 D 1.1.1.2 GigabitEthernet0/0/0
3.3.3.3/32 OSPF 10 2 D 4.4.4.4 GigabitEthernet0/0/1
OSPF 10 2 D 1.1.1.2 GigabitEthernet0/0/0
4.4.4.0/24 Direct 0 0 D 4.4.4.1 GigabitEthernet0/0/1
4.4.4.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
4.4.4.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
5.5.5.0/24 OSPF 10 2 D 4.4.4.4 GigabitEthernet0/0/1
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0 [R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ospf cost 50
[R1-GigabitEthernet0/0/0]q
[R1]dis ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 13 Routes : 13 Destination/Mask Proto Pre Cost Flags NextHop Interface 1.1.1.0/24 Direct 0 0 D 1.1.1.1 GigabitEthernet0/0/0
1.1.1.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
1.1.1.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
2.2.2.0/24 OSPF 10 3 D 4.4.4.4 GigabitEthernet0/0/1
3.3.3.3/32 OSPF 10 2 D 4.4.4.4 GigabitEthernet0/0/1
4.4.4.0/24 Direct 0 0 D 4.4.4.1 GigabitEthernet0/0/1
4.4.4.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
4.4.4.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
5.5.5.0/24 OSPF 10 2 D 4.4.4.4 GigabitEthernet0/0/1
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0 [R1]
提示:可以看到在没有改g0/0/0接口开销时,在路由表中存在两条到达3.3.3.3的路由,而更改了g0/0/0接口开销以后,对应路由表中只有一条开销为2的路由;说明当去往同一目标ip地址时,掩码优先级一样时,开销越低越优先被匹配;
5、当掩码、优先级、开销都一样,则负载分担;
示例:还是上述top,我们把g0/0/0接口上的开销删除,看看对应路由会有什么变化?
[R1]dis ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 13 Routes : 13 Destination/Mask Proto Pre Cost Flags NextHop Interface 1.1.1.0/24 Direct 0 0 D 1.1.1.1 GigabitEthernet0/0/0
1.1.1.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
1.1.1.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
2.2.2.0/24 OSPF 10 3 D 4.4.4.4 GigabitEthernet0/0/1
3.3.3.3/32 OSPF 10 2 D 4.4.4.4 GigabitEthernet0/0/1
4.4.4.0/24 Direct 0 0 D 4.4.4.1 GigabitEthernet0/0/1
4.4.4.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
4.4.4.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
5.5.5.0/24 OSPF 10 2 D 4.4.4.4 GigabitEthernet0/0/1
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0 [R1]int g0/0/0
[R1-GigabitEthernet0/0/0]d th
[V200R003C00]
#
interface GigabitEthernet0/0/0
ip address 1.1.1.1 255.255.255.0
ospf cost 50
#
return
[R1-GigabitEthernet0/0/0]undo ospf cos
[R1-GigabitEthernet0/0/0]undo ospf cost
[R1-GigabitEthernet0/0/0]d th
[V200R003C00]
#
interface GigabitEthernet0/0/0
ip address 1.1.1.1 255.255.255.0
#
return
[R1-GigabitEthernet0/0/0]q
[R1]dis ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 13 Routes : 14 Destination/Mask Proto Pre Cost Flags NextHop Interface 1.1.1.0/24 Direct 0 0 D 1.1.1.1 GigabitEthernet0/0/0
1.1.1.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
1.1.1.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
2.2.2.0/24 OSPF 10 2 D 1.1.1.2 GigabitEthernet0/0/0
3.3.3.3/32 OSPF 10 2 D 4.4.4.4 GigabitEthernet0/0/1
OSPF 10 2 D 1.1.1.2 GigabitEthernet0/0/0
4.4.4.0/24 Direct 0 0 D 4.4.4.1 GigabitEthernet0/0/1
4.4.4.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
4.4.4.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
5.5.5.0/24 OSPF 10 2 D 4.4.4.4 GigabitEthernet0/0/1
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0 [R1]
提示:删除g0/0/0上的接口开销以后,对应路由表中就有两条去往3.3.3.3的路由,他们掩码优先级开销都一样,此时当r1收到一个去往3.3.3.3的报文后,有可能数据包走g0/0/0,也有可能走g0/0/1;
等价路由(ECMP, Equal Cost Multi-Path)
类似上一个示例,同一个路由来源,当达到同一个目标网络有几条相同度量值的路由时,这些路由都会被加入到路由表中, 数据包会在这几个链路上进行负载分担。所谓负载分担不是负载均衡,负载分担是指多条链路上都会有流量,不一定是平均分配的;而负载均衡是指多条链路上的流量是平均负载的;
路由表的形成以及路由的来源
路由表的形成就是一条条路由信息的集合,路由的来源主要由三个,第一个是直连路由,所谓直连路由是路由a连接路由B,中间没有任何设备,这个就叫做直连;直连路由的形成必须满足两个条件,首先对应直接接口都正确配置了地址,其次对应接口都接线了,并且接口物理状态是up状态,这两个条件必须同时满足,直连路就会生成;一般在模拟器上我们连好线,配置上地址,对应直连路由就会自动生成; 路由信息除了来自直连路由,还来自静态路由和动态路由;静态路由就是管理员人工手动添加到路由;动态路由是指路由器之间通过动态路由协议学习到的路由;常用的动态路由协议有rip,ospf,bgp,isis;
HCNA Routing&Switching之路由基础的更多相关文章
- HCNA Routing&Switching之STP基础
前文我们了解了VLAN动态注册协议GVRP相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15113770.html:今天我们来讨论下二层环路和STP相 ...
- HCNA Routing&Switching之静态路由
前文我们聊到了路由的相关概念和路由基础方面的话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14947897.html:今天我们聊聊静态路由相关话题: 回顾 ...
- HCNA Routing&Switching之OSPF度量值和基础配置命令总结
前文我们了解了OSPF的网络类型,OSPF中的DR和BDR的选举规则.作用等相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15054938.html: ...
- HCNA Routing&Switching之动态路由基本概念
前文我们了解了静态路由的相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14965433.html:今天我们来聊一聊动态路由相关概念: 首先我们要清楚什 ...
- HCNA Routing&Switching之动态路由协议OSPF基础(一)
前文我们了解了基于路径矢量算法的动态路由协议RIP防环以及度量值的修改相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15012895.html:今天我 ...
- HCNA Routing&Switching之交换技术基础
什么是交换机?顾名思义,交换机就是用来数据包交换的:广泛用于终端接入:它的前身是hub(集线器),hub是一个古老的设备,它的作用也是用于终端接入,但hub有一个最大的缺点是它不能隔离冲突域:所谓冲突 ...
- HCNA Routing&Switching之VLAN间路由
前文我们了解了二层交换技术vlan相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15091491.html:今天我们来聊一聊不同VLAN间通信相关话题 ...
- HCNA Routing&Switching之动态路由协议OSPF基础(二)
前文我们主要了解了OSPF的区域.区域分类.路由器类型.OSPF的核心工作流程,回顾请参考:https://www.cnblogs.com/qiuhom-1874/p/15025533.html:今天 ...
- HCNA Routing&Switching之二层交换技术VLAN基础
前文我们主要聊了下交换机的工作原理和以太网接口的速率和双工相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15088183.html:今天我们主要来聊一 ...
随机推荐
- C语言的指针数组与指针数组
一.指针数组与指针数组 1,指针数组 顾名思义,即一个元素全部是指针的数组,其形式与普通数组相似,形式如 *a[N]. 在理解指针数组的使用方式前,我先来说下我个人对数组的理解. 比如一维整形数组(形 ...
- jQuery的链式编程风格
jQuery的链式编程风格 首先本人通过一个案例来展示jQuery的链式编程风格.先写一个页面,展示一个列表,代码如下: <body> <div> <ul class=& ...
- ubuntu 20.04 编译安装 p 详解
事情的起因 实验需要安装 p4 环境 我考虑到我自己的电脑性能不足,因此打算在本机安装 github上官方仓库的安装教程老旧,都是在 ubuntu14.04或者ubuntu16.04 我长时间用的li ...
- Django(46)drf序列化类的使用(ModelSerializer)
前言 我们上篇文章使用到了Serializer类,可能有小伙伴说太过复杂,那么本篇就为大家带来更加简便的序列化类ModelSerializer ModelSerializer 先来看下ModelSer ...
- MySQL next-key lock 加锁范围是什么?
前言 某天,突然被问到 MySQL 的 next-key lock,我瞬间的反应就是: 这都是啥啥啥??? 这一个截图我啥也看不出来呀? 仔细一看,好像似曾相识,这不是<MySQL 45 讲&g ...
- 浅谈,seata在使用feign-url通过域名调用时分布式事务不生效的问题及解决
浅谈,seata在使用feign-url通过域名调用时分布式事务不生效的问题及解决 在前几个月时,我们项目出现了分布式事务的问题,那么什么是分布式事务问题呢,简单的说,我们有俩服务A和B,它们对应 ...
- python异步编程之asyncio
python异步编程之asyncio 前言:python由于GIL(全局锁)的存在,不能发挥多核的优势,其性能一直饱受诟病.然而在IO密集型的网络编程里,异步处理比同步处理能提升成百上千倍的效率, ...
- Step By Step(Lua输入输出库)
Step By Step(Lua输入输出库) I/O库为文件操作提供了两种不同的模型,简单模型和完整模型.简单模型假设一个当前输入文件和一个当前输出文件,他的I/O操作均作用于这些文件.完整模型则使用 ...
- GPU上稀疏矩阵的基本线性代数
GPU上稀疏矩阵的基本线性代数 cuSPARSE库为稀疏矩阵提供了GPU加速的基本线性代数子例程,这些子例程的执行速度明显快于仅CPU替代方法.提供了可用于构建GPU加速求解器的功能.cuSPARSE ...
- 立体显示与BCN双稳态手性向列相
立体显示与BCN双稳态手性向列相 狭缝光栅立体显示 技术介绍: 人的左右眼间距大约是65MM,左右眼透过视差光栅看到不同的视角图像,经大脑融合形成立体视觉. 技术优点: 2D/3D可切换: 低成本: ...