【网络层】路由基础


技术背景

路由是能够让整个Internet持续运转的关键。回看之前的网络历史,最开始用一根网线将两台设备连接起来,面对面就能通信。到后面出现了交换机,能够让区域内的所有设备互相通信,形成局域网。现在若要想将这个局域网内的消息传送到另一个地方的局域网,这就需要路由器将不同网络连接起来,实现网络的数据转发。

这就好比你在一个大城市里,想要从你所在的大城市到另一个大城市,你可能会用到地图或者导航系统。这个导航系统会帮你找到一条从起点到终点的路线。在计算机网络中,路由也是类似的,它是一种机制,用于决定数据包从源头到目的地的最佳路径。

路由相关常用名词:

路由 routing从源地址到目的地址,不同网络间的转发过程
路由表 routing table路由信息的集合,这是路由的依据
路由器 router具有路由功能的设备
默认网关 default gateway通过是路由设备的接口IP地址

这里用生活场景来解释下这些名词在整个路由过程中起到的作用

假设在没有办法使用手机线上购票的情况下,你想要从上海到西藏 ,就需要去火车站买票。
<这就好比网络中两个不同的网络。网络中只要通过ip地址和掩码就能知道是不是在同一个网段里。上海和西藏在路由里就是源地址和目标地址,也就是表示这个数据包想要从源ip地址到达目标ip地址。而火车站就是路由器,火车站是具有买票的功能,路由器具有路由功能。>

这时要确定要去的火车站地址,是南站还是北站,然后过去,询问售票员是否有上海到西藏的票。
<火车站地址就像是网关 >

售票员就会在电脑上查询火车时刻表,这张时刻表上记录很多火车班次的信息。
< 时刻表在路由中就是路由表,时刻表信息都会时刻刷新,路由表也是一样的 。路由就像是时刻表上每条火车班次的信息,一条路由中也是包含相关路由信息。>

售票员根据你提供的信息找到最优的火车班次,就可以出发。若没有,你就回。
< 在路由表上找到最优的路由,就能将数据传出去。若没有找到,数据就会丢弃 >

在这个过程中,如果想要去异地,就需要先找到网关,只有找到网关才能出去。这里找网关也就相当于找路由设备。最重要也是最麻烦的地方就在于,在路由表中如何选择最优的路由。也就是在火车时刻表中,有很多上海到西藏班次的列车,你是要选择哪个列车呢?


IP 路由工作原理

在这里插入图片描述
如上拓扑图所示,三台路由器,每台路由器都维护对应的路由表。路由表中最重要的三个元素:目标网络Destination,下一条NextHop,出接口Interface。

主机地址为10.3.1.0 的设备想要访问到主机为10.4.1.0的设备就需要通过三个路由器进行指路。
当RA路由器收到 10.3.1.0设备的数据包,会先检查目的MAC地址是否与自己的硬件地址匹配。若匹配,会拿到ip 字段中的目标地址10.4.1.0,根据目标网络地址,在路由表查找路由。确实有条路由目的网络是10.4.1.0,吓一跳为10.1.2.2,出端口为E0。就会将数据包扔给该路由所指的出接口或下一跳。以此类推,到达最终的目标网络10.4.1.0

出接口指的是当前路由器的出口,拿上面的例子来类比的话,就是火车站的等车的进站口是A1还是A15。
下一跳指的是下一个设备的入口地址,同样用例子说明的话,就是你要去西藏,下一站是苏州D1口出。在路由和例子中不一样的点是在,生活中买完票之后可以凭票直接到达目的地,不需要中途再检票。而路由过程需要每一路由设备都需要检查路由表。

路由过程是双向的,也就是说10.3.1.0到10.4.1.0 路由是通的,相反10.4.1.0到10.3.1.0 路由也要是通的。这样整个网络通信路由过程才是正常的。

总结下路由的整个过程:
路由设备接收到数据包,检查二层目的MAC地址是否与自己硬件地址匹配。若不匹配就丢弃;若匹配,先通过二层帧CRC校验,确保数据没有在传输过程中出现异常。拆解二层数据拿到三层包头数据。根据三层的校验头来确认数据包的完整性,若正常则获取三层目的IP地址,查看IP地址是否为本机接口地址或者是广播地址之类的群发地址。若是则会进一步拆解包头获取数据,若不是就代表这个数据需要被转发,查找路由表,确认最优路线处理三层报文中 TTL -1,计算校验和,为了给下个设备进行校验。 根据地址表确认下一个设备的MAC地址,重新封装二层包头并计算二层校验和,转发给下一个设备。


IP路由表

在整个路由的过程中,最重要的还是路由表。IP路由表:存放最优的路由信息/条目。 使用eNSP 路由器命令行输入 display ip routing-table 查看路由表信息
在这里插入图片描述
这里面显示的每一条路由就类比于列车,而这些路由都会有相关的路由信息:

路由表字段备注
Destination目标地址用来标识存在的能够去往的目的地址或目的网络
Mask掩码用来选择最佳路由的重要依据(最长匹配原则)
NextHop下一跳指明该数据包所经过的下一个路由器的接口地址
Interface出接口指明该数据包将从哪个接口转发
Protocol 协议路由的来源
Preference优先级用来比较不同协议学习去往相同地址不同路径的优先程度(越小越优先)
cost开销用来比较相同协议学习去往相同地址不同路径的的代价(越小越优先)

上面用简单的例子介绍了Destination目标地址、NextHop下一跳、Interface出接口
在错综复杂的网络中,从源地址到目的地址的路径有很多,路由器需要进行路由选择,选出最优路径显示在路由表中。
就好比,在火车时刻表中有很多条上海到西藏的列车,你要选择哪一趟?你就会根据时间,价格,舒适度等因素进行购票。
路由设备也是一样,在众多的路由条目中根据 Protocol 协议、 Preference优先级、cost开销 选出最优路径显示在路由表中。

Protocol 协议 / Preference优先级
路由协议分为动态协议和静态协议
静态的配置简单,不占用资源;动态协议配置相对复杂,可以及时同步网络变化
在这里插入图片描述
如上图所示,不同协议学习去往相同地址。这时路由设备比较的规则是协议本身的优先级(越小越优先)。不同协议之间优先级如下图:

路由协议/类型DirectOSPFISISStaticRIPOSPF
ASE
BGP
管理距离/优先级0101560100150

对协议的理解可以是:在火车时刻表上有很多种类的交通工具,如动车、高铁、绿皮火车等

cost开销
在这里插入图片描述
在路由选择的过程中,会出现相同的协议都去往相同的目标地址。这时候就要根据cost 开销来决定哪一条是最优路径。 如上图所示,下面路径开销小则优先选择为最优路径。

当然也会存在,对于一个路由来源,当到同一个目标网络存在多条相同度量值的路由时,路由器会将这些路由条目都加入路由表,数据包会在这几个链路(路径)进行负载分担。这种路由是等价路由(ECMP,Equal cost multi-Path)
(负载均衡的选择:逐包,逐流 可以根据目标IP或源IP,目标MAC或源MAC选择。最终会经过“哈希”计算实现)

Mask掩码
最长掩码匹配原则:最终数据包实现最佳路由的算法
在这里插入图片描述
例子:目的地址位10.1.2.1的数据报文,路由表条目中目的地址包含 0.0.0.0/0
、 10.0.0.0/8 、10.1.0.0/16
路由器的转发原则如下:将所有的路由条目进行与计算,得出最长的相同掩码来转发
目标地址10.1.2.1,路由器转发过程:
首先与计算目标地址得出:0001 0000.0000 0001.0000 0010.0000 0001

0.0.0.0/0 掩码为0,表示任意目标地址都行
0000 0000.0000 0000.0000 0000.0000 0000
0001 0000.0000 0001.0000 0010.0000 0001
匹配出3位相同 ✔

10.0.0.0/8 掩码为8,表示只有目的地址前8位一致才行
0001 0000.0000 0000.0000 0000.0000 0000
0001 0000.0000 0001.0000 0010.0000 0001
匹配出8位相同 ✔

10.1.0.0/16 掩码为16,表示只有目的地址前16位一致才行
0001 0000.0000 000 0.0000 0000.0000 0000
0001 0000.0000 000 1.0000 0010.0000 0001
匹配出15位相同 ✔

根据最长匹配原则,选择10.1.0.0/16转发。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bazinga bingo

您的鼓励就是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值