本帖最后由 莫冷 于 2022-10-18 21:46 编辑
哈喽,大家好,我是纯洁的小莫冷~
网络基础第二弹,路由详解
路由是我们部署设备时都需要的一项配置,比如8个0的默认路由,或者在接口上写的网关地址,还是路由模式部署时写的静态路由,那么关于路由的知识,各位有知道多少呢?
路由就是设备从一个接口上收到的数据包,根据数据包的目的地址进行定向转发的到另一个接口的过程,其实它是一个动作,而我们经常说的写路由指的是针对路由表的操作。
路由表是存储在路由器或者计算机中的电子表格(文件)或类数据库,路由表中存储这指向特定网络地址的路径,在某些情况下,还记录有路径的度量值。
路由表中含有网络周边的拓扑信息,路由表建立的主要目标就是为了实现路由协议和静态路由的选择,它不直接参与数据包的传输,而是用于生成一个小型的指向表,这个指向表仅仅包含由路由算法选择的数据包传输优先路径。
在路由表中包含的每一项信息被称为路由条目,也叫做路由表项,每一个路由条目必须包含destination(目的地址) mask(子网掩码) nexthop(下一跳) ,当然还包含一些特殊参数,比如pre参数主要标识的是路线及,优先级越高则优先走此条路由,还有OSPF中存在的cost 路由开销,它主要是描述路由产生的代价,代价越小则优先级越高。
路由分类
根据路由属性可以大致分为三类,直连路由、静态路由、动态路由,其中直连路由是设备根据自身网络生成的路由,无法维护并且不可更改,静态路由则是我们自己手动写的那些路由,默认路由也属于静态路由的一种,动态路由就是根据动态路由协议自动生成的路由条目,常见的动态路由协议为RIP、OSPF。
静态路由配置方式其实很简单,只需要理清其中的关系,搞起来其实一点都不难,以下图为例
大家可以看到,此拓扑图中有四台路由器,两台PC,PC1若想与PC2通信的话路由需要怎么写呢?其实大家可以想想,每台路由器都单独维护自己的路由表,那也就是说四台设备就有四个路由表,而我们在设备上写的路由是只作用于本台路由器的,那是不是每台路由器都需要单独写一条路由呢?
而且路由是要写双向的,也就是说不仅出方向的要写,回包的方向也是需要写上的,那我们可以计算一下,到底需要写多少条路由。
此时我们只考虑两台PC互访,PC与路由器,路由器与路由器之间都不需要考虑,那么路由1需要写一条目的地址为5.0/24的路由指向他的下一跳,这个下一跳对于很多初学者来说都很容易理解错误,而且大多数情况下都是因为此原因导致的路由不生效或者写不上去,那么下一跳到底写什么地址,是对方的网关还是什么?
其实这个问题很好理解,下一跳的关键点在于这个跳字,大家可以想象一下数据包的传输过程,PC1到PC2经过了哪些设备,是不是首先交给路由1,然后再到路由2,之后路由3、路由4,再之后到的PC2?而这数据包在不同设备之间传输的过程是不是可以理解为它在不同的设备上跳呢,就比如从路由1上跳到了路由2,再跳到路由3,再跳到路由4,最后跳到PC2,是不是可以这么理解?
理解了这个跳字,那路由条目中的下一跳是不是也理解了点了,既然是从路由1跳到路由2,那下一跳所输入的地址自然就是路由2的IP地址,而路由2上有两个地址,一个192.168.2.2,一个192.168.3.1,到底该输入哪个呢?
如果你有这个疑问的话,那就说明你对这个跳字还是没有完全理解,还是看一下拓扑图,路由1与路由2相连的是哪个接口,数据包走向是从路由1的哪个接口到路由2的哪个接口?是不是192.168.2.2这个IP地址所在的接口是从路由1到路由2上的第一个接口的IP地址?那么问题自然就解决了,下一跳地址就是当前路由器与下一个路由器直连接口的IP地址,也就是192.168.2.2这个IP地址,而下一跳地址还有一个要求就是必须存在当前路由器的直连网段的列表里,也就是说下一跳地址你如果写别的网段的话是不生效的,在我们的设备上更是写不上去,这里要谨记哦。
好了,下一跳地址理清了想必各位对于路由也就想明白了, PC1到PC2的路由 路由1的路由表为目的:192.168.5.0/24下一跳192.168.2.2 路由2的路由表为目的:192.168.5.0/24下一跳192.168.3.2 路由3的路由表为目的:192.168.5.0/24下一跳192.168.4.2 路由4无须路由,因为PC2与路由4为直连网络,直连路由即可
对应的回包路由: 路由1无须路由,因为PC1与路由1为直连网络,直连路由即可 路由2的路由表为目的:192.168.1.0/24下一跳192.168.2.1 路由3的路由表为目的:192.168.1.0/24下一跳192.168.3.1 路由4的路由表为目的:192.168.1.0/24下一跳192.168.4.1
这样说大家可理解?如果不理解的话可以多看看前面两段话,如果您看的清楚明白了的话,对于路由条目也就很轻松的就可以理解了。
而如果想要实现PC与设备也可以互访的话,其实很简单,其实就是与PC直连的路由器写上一条默认路由或者明细路由即可,大家可以发现,路由1与路由4的数据转发其实很简单,因为无论是PC1还是PC2作为路由的终端,他们的路由条目已经存在在两台路由器的直连路由上了,他们无须再写任何路由即可和两台PC通信,而他们只需要做好出方向的路由即可,既然是只关注一个方向,那么写一条默认路由不正好合适?无论他们访问任何IP都给它指向上一级的路由器,也就是路由2和路由3的IP地址,这样不更省事嘛,至于路由2和路由3的回包路由我们已经在两台PC互访时已经写好了,无须再加任何路由。
好了,今天的分享就到这里了,大家别忘了点赞关注收藏哦~ |