路由的转发过程详解
  

李龙超 89444人觉得有帮助

{{ttag.title}}
本帖最后由 李龙超 于 2024-5-6 14:19 编辑

IP协议的任务是选择合适的路线,每当一个数据帧到达一个节点的时候,下一步要去往哪个地方,这就是路由的过程;而实际上要怎么将数据帧送到下一个节点,是数据链路层的任务。
就好比唐僧西天取经的时候,每到一个地方就要停下来问去西天下一个地方要怎么走(对应IP层),然后他就可以选择步行或者骑马继续上路(对应数据链路层)。下面我们主要了解的是如何基于现有的路由表进行路由转发,不介绍路由表的创建。
一、查看路由表
1、查看路由表的指令
Linux下查看路由表的指令是 routeWindowsroute print。下面就以Linux环境为例。
2、路由表部分字段
当前云服务器的路由表如下:
二、路由转发的宏观思路
路由转发的宏观思路是 先根据IP地址找到目标网络,然后取到目标网络的路口路由器,再将报文在内网进行转发,最终到达目的主机。
就好比我们要去上海市的世纪大道地铁站,我们的第一步是先到达上海,第二步在上海内乘坐地铁去往世纪大道。在此过程中,我们可能会需要不停地询问“到达上海应该怎么走”,路上的人无非就是两个回答,第一,给你明确地方向;第二,自己不知道,于是让你去找 熟悉路况的人。下面的两个案例分别对应了这两种情况。

三、基于现有路由表进行路由转发的过程
主机X在发送报文之前会先查询当前主机上的路由表,看一下要发给哪个路由器,这就属于局域网通信的内容了,感兴趣的可以参考:局域网通信的过程
我们假设主机X将报文发给了路由器A,下面展示的是路由器A的路由表,后面通过两个案例来了解 路由器A收到报文以后,如何将报文转发出去的。
1、案例一:目标IP192.168.56.3
路由器A收到一个数据帧以后,路由器也有自己的网络协议栈,需要先向上交付,因为目标IP在网络层的报头中,我们需要先去掉数据链路层的报头才能取出网络层的报头。假设路由器A的网络层已经拿到了目标IP地址(192.168.56.3),根据路由转发的宏观思路,我们需要先找到目标网段。
先将目标IP192.168.56.3)跟第一条路径的子网掩码(255.255.255.0)按位与得到网络号(192.168.56.0),这么做的目的是判断目标IP所处子网 是否等于 当前路由器直接相连的子网。目标所处子网是192.168.56.0,而第一条路径直接连接的网段是192.168.10.0,很显然地址不一致,然后比对下一条路。
IP地址(192.168.56.3)跟第二条路径的子网掩码(255.255.255.0)按位与得到网络号,网络号为 192.168.56.0。第二条路径直接相连的网络是192.168.56.0,网段一致,说明就是这个方向。然后路由器A就会通过对应的接口eth1发送给下一个路由器(10.1.2.1)
2、案例二:目标IP为 202.10.1.2
跟第一条路径的子网掩码按位与得到网络号为192.168.56.0,不匹配,比对下一条路。
跟第二条路径的子网掩码按位与得到的网络号也是192.168.56.0,不匹配,比对下一条路。
...
结果到最后发现,所有的路都不匹配。换成现实中的例子就是问的人都不知道路,于是就会让我们去找熟悉路况的人。这里也是同理,路由器A通过默认接口,也就是最后一条路径,将你的报文从eth0发送给路由器(192.168.10.1),即让这个报文去查其他路由器的路由表。
补充:将子网掩码与目标IP按位与,其实就是将目标IP以同样的划分方式转换成对应的网段,以此来比对网段是否匹配。就好比我们在比较二进制和十进制的时候,一般都是先将二进制按照对应的规则,转化成十进制,然后再比较。
四、目标IP为127.0.0.1的路由转发
我们经常会用到这个IP来表示当前主机,路由转发的过程也很简单,其实就是报文在向下封装的时候,到达网络层查询路由表发现,目标IP就是当前主机,此时就不会继续向下封装,而是直接向上交付。

780666486868985c6f.png (886.73 KB, 下载次数: 280)

780666486868985c6f.png

20996486871203410.png (424.28 KB, 下载次数: 236)

20996486871203410.png

919186486871d12178.png (194.58 KB, 下载次数: 274)

919186486871d12178.png

9950164868724d7edd.png (246.43 KB, 下载次数: 263)

9950164868724d7edd.png

7959648687354505c.png (666.79 KB, 下载次数: 275)

7959648687354505c.png

667416486873f10397.png (664.92 KB, 下载次数: 276)

667416486873f10397.png

420956486875a182f3.png (655.69 KB, 下载次数: 305)

420956486875a182f3.png

293166486878964717.png (656.65 KB, 下载次数: 249)

293166486878964717.png

打赏鼓励作者,期待更多好文!

打赏
28人已打赏

发表新帖
热门标签
全部标签>
西北区每日一问
技术盲盒
【 社区to talk】
安全效果
干货满满
技术笔记
每日一问
信服课堂视频
GIF动图学习
新版本体验
技术咨询
2023技术争霸赛专题
功能体验
产品连连看
安装部署配置
通用技术
秒懂零信任
技术晨报
自助服务平台操作指引
原创分享
标准化排查
排障笔记本
玩转零信任
排障那些事
SDP百科
深信服技术支持平台
畅聊IT
答题自测
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
安全攻防
上网策略
测试报告
日志审计
问题分析处理
流量管理
每日一记
运维工具
云计算知识
用户认证
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
产品预警公告
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
社区帮助指南
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
每周精选
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记
高手请过招
升级&主动服务
高频问题集锦
社区新周刊
POC测试案例
全能先锋系列
云化安全能力

本版版主

1
0
1

发帖

粉丝

关注

本版热帖

本版达人