【数通网络交换基础梳理2】三层设备、网关、ARP表、VLAN、路由表及跨网段路由下一跳转发原理
一、不同网段如何通讯
同网段可以依靠二层交换机通讯,网络中存在多个网段192.168.1.1/24 172.16.1.1/24 173.73.1.1/24情况下如何互相通讯?上节留一下的问题,这节继续讲解。
1、这里以Ping命令讲解,PC1 ping173.73.1.2,ping会构建一个固定格式的ICMP请求数据包,然后由ICMP协议将这个数据包连同IP地址173.73.1.2一起交给IP层协议。
2、IP协议会查看目的IP地址是否和源IP在同一网段,如果在同一网段就直接查找ARP缓存表,查找目的MAC,如果目的IP地址和源IP不在同一网段,那么就将数据包发送到网关由网关转发。
3、假设PC1电脑设定的网关是192.168.1.1,那么IP协议知道了目的IP,但是不知道目的MAC,所以会在交换机查找MAC地址表,看里面有没有目的MAC。很遗憾没有,因为环境里并没有配置网关IP,所以A会发一个ARP广播到192.168.1.X整个网段,来查找IP是192.168.1.1 的MAC,物理上就不存在192.168.1.1这个设备,自然就没有设备来响应这个ARP广播,所以最终,无法知道目的MAC,就无法将数据包往下一个层传递。
回到最开始IOS七层模型:
发送数据的过程是从上到下打包,接收数据是从下至上拆分。
二、何为网关
网关:网关实质上是一个网络通向其他网络的IP地址。本网段内通讯不需要配置网关,跨网段访问需要依靠网关,即我不知道怎么走的数据包全部告诉我的上级即网关。
PC1连接 路由器的G0/0/0,路由器G0/0/0接口配置了192.168.1.1,这就是PC1的网关地址。
PC2连接路由器的E0/0/0,路由器E0/0/0接口配置了172.16.1.1,这就是PC2的网关地址。
PC3连接路由器的G0/0/1,路由器E0/0/1接口配置了173.73.1.1,这就是PC3的网关地址。
如下图因为三台PC全部在同一个设备上,所以配置网关正常通讯。
这里注意一下:三层设备即可以配置地址在物理接口,也可以配置vlanif逻辑接口,在对应设备的物理接口配置vlan,都可以达到网关的效果。
问:网关IP一定要是.1吗?
网关无须固定某个特定IP,看工程师的习惯和想法。我们把网关理解为飞机,你现在要出门游玩、逛街,配置网关理解为我们选择的航班,坐上航班即可到达想要去的目的地,这就是网关。至于你选择哪个时间段哪个航空公司哪都是你的自由和个人喜好,网关可以取消再重新配置,但是考虑网络动荡和影响使用最好一次定好。
那同段依靠MAC地址表通讯,跨网段如何通讯?如果目标主机不在同一个链路(设备)上ARP包该如何广播?交换机如何转发?
二、ARP协议及ARP表
ARP 协议的全称是 Address Resolution Protocol(地址解析协议),它是一个通过用于实现从 IP 地址到 MAC 地址的映射,即询问目标 IP 对应的 MAC 地址的一种协议。
在发送者给其他的网络设备发送数据的时候,是以数据帧的形式发送的,数据帧被网卡解析成电信号或者光信号传递到对端。数据帧里太网帧头由源MAC地址和目的MAC地址组成的,如果发送者只知道目的主机的IP地址,不知道目的主机的MAC地址,就不能把这个数据包转化成数据帧发走。而ARP 协议就是负责地址解析的,使用目的主机IP地址来解析对方的MAC地址。
注:如果发送者和接收者在同一个网络内,ARP解析的就是接收者的MAC地址。如果发送者和接收者不在同一个网络内,ARP解析的就是这个网络内网关的接口MAC地址。
注2:ARP是广播的方式,广播只在同一个广播域中传递,不同的广播域之间通信必须需要三层设备。二层交换机只处理MAC地址,不处理IP,这就决定了他只能在同一个广播域中传播信息。要在两个不同广播域之间那必定要三层设备来帮忙。
延伸:ARP表与网关的关系
作为二层交换机,有MAC地址表没有的ARP表。作为一个可网管的三层设备或者说可配置网关IP地址的设备,怎么能没有ARP表呢。简而言之,ARP 就是一种解决地址问题的协议,它以 IP 地址为线索,定位下一个应该接收数据分包的主机 MAC 地址。如果目标主机不在同一个链路(设备)上,那么会查找下一跳路由器的 MAC 地址。
三、三层设备
三层设备,只能基于IP 通信。具有转发和路由功能,隔离子网,隔离广播域。 连接两个或多个网络的硬件设备,将从端口上接收的数据包,根据数据包的目的地址智能转发出去。注:三层设备即可以在物理接口配置IP地址,也可以配置vlanif逻辑接口。
1、路由器
三层设备,只能基于ip 通信。具有转发和路由功能,隔离子网,隔离广播域。 路由器是连接两个或多个网络的硬件设备,将从端口上接收的数据包,根据数据包的目的地址智能转发出去。路由器主要分为两个端口类型:LAN口和WAN口。
WAN口:配置公网IP,接入到互联网,转发来自LAN口的IP数据包。
LAN口:配置内网IP(网关),连接内部交换机。
2、三层交换机
二层交换机+路由功能=三层交换机。当我们需要在不同的 LAN 或 VLAN 之间传输数据时,二层交换机就无法满足了。这时需要三层交换机,因为它们将数据包路由到目的地的技术是IP 地址和子网划分。二层交换机能够基于数据链路层的 MAC 地址,进行数据帧或 VLAN 的传输功能。三层交换机能够基于网络层的 IP 地址,实现路由选择以及分组过滤等功能。
四、路由器和三层交换机的区别
1、路由器的物理层和数据链路层除了 IEEE 802 标准以外,还支持其它各种协议,包括 ATM、SDH、串口等。 网络层和传输层也一样,支持TCP/IP 协议簇以外的协议簇,比如 IPX 、AppleTalk 等。这些功能都是由运行在
路由器一般由基于网络处理器或多核的路由引擎执行数据包交换, CPU上的软件来完成,对比三层交换机,速度会慢不少,但是也有很多功能必须由路由器 CPU 来处理,比如远程接入、安全功能等。
2、三层交换机一般只支持以太网的数据链路层协议和 IP 网络的网络层协议。由硬件结合实现数据的高速转发。简单的二层交换机和路由器的叠加,三层路由模块直接叠加在二层交换的高速背板总线上,突破了传统路由器的接口速率限制,速率可达几十Gbit/s。算上背板带宽,这些是三层交换机性能的两个重要参数。简洁的路由软件使路由过程简化。大部分的数据转发,除了必要的路由选择交由路由软件处理,都是又二层模块高速转发,路由软件大多都是经过处理的高效优化软件,并不是简单照搬路由器中的软件。
3、路由器是三层设备,可是三层交换机却可以同时工作在三层和二层;
网络上的一张图:
五、VLAN
在第一章一笔带过,这里穿插讲一下VLAN,上面提到二层交换机可以进行数据帧或 VLAN 的传输功能,也可以使用 VLAN 分隔广播域,位于同一个 VLAN 下的终端才能进行数据帧交互。何为VLAN?
VLAN全称“Virtual LAN”,中文意思为“虚拟局域网”,是对连接到的第二层交换机端口的网络用户的逻辑分段,不受网络用户的物理位置限制而根据用户需求进行网络分段。VLAN可以根据网络用户的位置、作用、部门或者根据网络用户所使用的应用程序和协议来进行分组。基于交换机的虚拟局域网能够为局域网解决冲突域、广播域、带宽问题。
扩展:为什么要用VLAN?
一台二层交换机PC1发送广播包询问所有端口谁是PC2的时候设备资源使用是巨大的,如果一个网络中有上百台设备那很难想象会耗费多大资源。所以用VLAN隔离广播域,降低不必要的设备资源损耗。
二层交换机通过使用 VLAN 分隔广播域,位于同一个 VLAN 下的终端才能进行数据帧交互。对于不同 VLAN 的终端有通信需求时,就必须使用路由功能,也就是需要额外添加路由器。
二层交换机和路由器组合使用,才能完成跨 VLAN 的通信,但使用三层交换机就不需要其它网络设备,能够直接完成不同 VLAN 之间的通信。
VLAN 及VLANIF 配置实验
vlan batch 2 3 ##创建Vlan
int g 0/0/3 ##进入接口模式
port link-type access ##配置接口类型,终端一般为access
port default vlan 2 ##配置vlan
quit ##退出接口模式
int g 0/0/1
port link-type access
port default vlan 2
quit
int g 0/0/2
port link-type access
port default vlan 3
quit
int g 0/0/4
port link-type access
port default vlan 3
验证配置:
PC3C ping 同VLAN2的PC1C网络正常,ping PC4C无法通讯,因为二层交换机虽然可以配置vlan隔离广播域但是无法跨Vlan通讯。
跨VLAN 访问实验:
在上面的基础上增加以下配置:
int vlanif 2 ##进入vlan2虚拟子接口
ip address 192.168.1.3 24 ##配置子接口地址
quit
int vlanif 3
ip address 172.16.3.3 24
然后给终端配上对应的vlan子接口地址即网关。
注:网关可以是vlanif子接口ip地址,也可以直接在物理接口配置ip地址。
测试:
六、路由表
1、路由表记录着下一跳NextHop
路由表中记录着不同网段的信息。路由表中记录的信息有的需要手动添加(称为静态路由表),通过路由协议自动获取的(称为动态路由表),我们的主机直接连到路由器上(中间无三层网络设备)这种情况是直连路由,属于静态路由。
注:PC1网段的主机要与PC3网段的主机通信,则数据会先发送给指定的网关,由网关选择网段继续通信,所以发送的数据包起始中ip地址不变,源ip地址就是当前主机的ip地址,目的ip地址就是不同网段的主机的ip地址,但是链路层由于数据要先发给路由器,那么目的mac就是路由器的mac地址,然后路由器选择其他网段,则源mac变成路由器另一个网口的mac地址,目的mac就是目标主机的mac地址,所以整个过程网络层的一直不变,但是链路层一直再变。
2、当网络中有多个路由器是,两个主机需要通信路由器需要记录下一跳信息,下一跳的目的就是指定当前自己网段的主机要访问其他网段的主机时从这个路由器应该跳到哪个路由器。
六、路由下一跳
在下面这一张图中,我们可以简单理解为PC1的下一跳为路由器AR1的G0/0/0接口,下一跳可以为接口可以为IP地址。
我们查看一下路由器的路由表:
去往173.73.1.0/24 网段的下一跳是173.73.1.1
去往192.168.1.0/24 网段的下一跳是192.168.1.1
七、不同VLAN、跨网段、路由配置实验
交换机1、交换机2分别连接到一台防火墙上,要求使VLAN 2、VLAN3、VLAN5、VLAN6中的终端可互相访问。注:新手在配置互联时需理解,无论是配置物理接口互联、还是vlanif逻辑接口通过端口vlan互联其原理都是保证网络通讯,因为有些情况下物理接口有限就可以使用vlanif接口。
交换机1配置:
vlan batch 2 3 192 ##创建Vlan
int g 0/0/3 ##进入接口模式
port link-type access ##配置接口类型,终端一般为access
port default vlan 2 ##配置vlan
quit ##退出接口模式
int g 0/0/1
port link-type access
port default vlan 2
quit
int g 0/0/2
port link-type access
port default vlan 3
quit
int g 0/0/4
port link-type access
port default vlan 3
quit
int vlanif 2 ##进入vlan2虚拟子接口
ip address 192.168.1.3 24 ##配置子接口地址
quit
int vlanif 3
ip address 172.16.3.3 24
quit
int vlanif 192
ip address 192.168.3.2
quit
int g0/0/5
port link-type access
port default vlan 192
quit
ip route-static 172.16.30.0 24 192.168.3.1
ip route-static 172.16.29.0 24 192.168.3.1
交换机2配置:
vlan batch 2 3 193 ##创建Vlan
int g 0/0/2 ##进入接口模式
port link-type access ##配置接口类型,终端一般为access
port default vlan 6 ##配置vlan
quit ##退出接口模式
int g 0/0/3
port link-type access
port default vlan 6
quit
int g 0/0/4
port link-type access
port default vlan 5
quit
int g 0/0/5
port link-type access
port default vlan 5
quit
int vlanif 6 ##进入vlan2虚拟子接口
ip address 172.16.30.1 24 ##配置子接口地址
quit
int vlanif 5
ip address 172.16.29.1 24
quit
int vlanif 193
ip address 192.168.2.2
quit
int g0/0/1
port link-type access
port default vlan 193
quit
ip route-static 192.168.1.0 24 192.168.2.1
ip route-static 172.16.3.0 24 192.168.2.1
防火墙配置:
vlan batch 192 193
int vlanif 192 ##进入vlan2虚拟子接口
ip address 192.168.3.1 ##配置子接口地址
quit
int vlanif 193
ip address 192.168.2.1
quit
int e0/0/1
port link-type access
port default vlan 193
quit
int e0/0/0
port link-type access
port default vlan 192
quit
ip route-static 192.168.1.0 24 192.168.3.2
ip route-static 172.16.3.0 24 192.168.3.2
ip route-static 172.16.30.0 24 192.168.2.2
ip route-static 172.16.29.0 24 192.168.2.2
测试:
全部正常通讯。
八、拓展
上文实验中互联全部走的Vlanif逻辑接口,这种情况下有不好的一点是会出现设备之间互联vlan的创建,修改成物理接口互联也可以。如果存在分保、等保检查可能要如实登记多个vlan和网段信息,好处是减少广播包。欢迎提出其他问题。
相关文章:

【数通网络交换基础梳理2】三层设备、网关、ARP表、VLAN、路由表及跨网段路由下一跳转发原理
一、不同网段如何通讯 同网段可以依靠二层交换机通讯,网络中存在多个网段192.168.1.1/24 172.16.1.1/24 173.73.1.1/24情况下如何互相通讯?上节留一下的问题,这节继续讲解。 1、这里以Ping命令讲解,PC1 ping173.73.1.2…...

Java-排序链表问题
Java-排序链表问题题目题解方法:自顶向下归并排序算法题目 给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 示例 1: 示例 2: 示例 3: 提示: *链表中节点的数目在范围 [0, 5 * 104]…...

c++之二叉树【进阶版】
前言 在c语言阶段的数据结构系列中已经学习过二叉树,但是这篇文章是二叉树的进阶版,因为首先就会讲到一种树形结构“二叉搜索树”,学习二叉搜索树的目标是为了更好的理解map和set的特性。二叉搜索树的特性就是左子树键值小于根,右…...

【数据库】 SQLServer
SQL Server 安装 配置 修改SQL Server默认的数据库文件保存路径_ 认识 master :是SQL Server中最重要的系统数据 库,存储SQL Server中的元数据。 Model:模板数据库,在创建新的数据库时,SQL Server 将会复制此数据…...
Linux 4.19 内核中 spinlock 概览
Linux内核中 spinlock相关数据结构和代码实现涉及的文件还是挺多的,这篇博客尝试从文件的角度来梳理一下 spinlock的相关数据结构和代码实现,适合想大概了解 Linux内核中 spinlock从上层 API到底层实现间的调用路径和传参变化,尤其适合了解 s…...
TensorFlow 1.x学习(系列二 :1):基本概念TensorFlow的基本介绍,图,会话,会话中的run(),placeholder(),常见的报错
目录1.基本介绍2.图的结构3.会话,会话的run方法4.placeholder5.返回值异常写在前边的话:之前发布过一个关于TensorFlow1.x的转载系列,自己将基本的TensorFlow操作敲了一遍,但是仍然有很多地方理解的不够深入。所以重开一个系列&am…...

javaEE 初阶 — 关于 IPv4、IPv6 协议、NAT(网络地址转换)、动态分配 IP 地址 的介绍
文章目录1. IPv42. IPv63. NAT4. 动态分配 IP 地址1. IPv4 在互联网的世界中只有 0 和1 ,所以每个人都有一个由 0 和 1 组成的地址来让别人找到你。 这段由 0 和 1 组成的地址叫 IP 地址,这是互联网的基础资源,可以简单的理解为互联网的土地。…...

《Qt 6 C++开发指南》简介
我们编写的新书《Qt 6 C开发指南》在2月份终于正式发行销售了,这本书是对2018年5月出版的《Qt 5.9 C开发指南》的重磅升级。以下是本书前言的部分内容,算是对《Qt 6 C开发指南》的一个简介。1.编写本书的目的《Qt 5.9C开发指南》是我写的第一…...

CleanMyMac是什么清理软件?及使用教程
你知道CleanMyMac是什么吗?它的字面意思为“清理我的Mac”,作为软件,那就是一款Mac清理工具,Mac OS X 系统下知名系统清理软件,是数以万计的Mac用户的选择。它可以流畅地与系统性能相结合,只需简单的步骤就…...

Linux小黑板(9):共享内存
"My poor lost soul"上章花了不少的篇幅讲了讲基于管道((匿名、命名))技术实现的进程间通信。进程为什么需要通信?目的是为了完成进程间的"协同",提高处理数据的能力、优化业务逻辑的实现等等,在linux中我们已经谈过了一个通信的大类…...

Detr源码解读(mmdetection)
Detr源码解读(mmdetection) 1、原理简要介绍 整体流程: 在给定一张输入图像后,1)特征向量提取: 首先经过ResNet提取图像的最后一层特征图F。注意此处仅仅用了一层特征图,是因为后续计算复杂度原因,另外&am…...

一个.Net Core开发的,撑起月6亿PV开源监控解决方案
更多开源项目请查看:一个专注推荐.Net开源项目的榜单 项目发布后,对于我们程序员来说,项目还不是真正的结束,保证项目的稳定运行也是非常重要的,而对于服务器的监控,就是保证稳定运行的手段之一。对数据库、…...

C语言数据结构初阶(2)----顺序表
目录 1. 顺序表的概念及结构 2. 动态顺序表的接口实现 2.1 SLInit(SL* ps) 的实现 2.2 SLDestory(SL* ps) 的实现 2.3 SLPrint(SL* ps) 的实现 2.4 SLCheckCapacity(SL* ps) 的实现 2.5 SLPushBack(SL* ps, SLDataType x) 的实现 2.6 SLPopBack(SL* ps) 的实现 2.7 SLP…...

K8S常用命令速查手册
K8S常用命令速查手册一. K8S日常维护常用命令1.1 查看kubectl版本1.2 启动kubelet1.3 master节点执行查看所有的work-node节点列表1.4 查看所有的pod1.5 检查kubelet运行状态排查问题1.6 诊断某pod故障1.7 诊断kubelet故障方式一1.8 诊断kubelet故障方式二二. 端口策略相关2.1 …...

Linux系统下命令行安装MySQL5.6+详细步骤
1、因为想在腾讯云的服务器上创建自己的数据库,所以我在这里是通过使用Xshell 7来连接腾讯云的远程服务器; 2、Xshell 7与服务器连接好之后,就可以开始进行数据库的安装了(如果服务器曾经安装过数据库,得将之前安装的…...

13.STM32超声波模块讲解与实战
目录 1.超声波模块讲解 2.超声波时序图 3.超声波测距步骤 4.项目实战 1.超声波模块讲解 超声波传感器模块上面通常有两个超声波元器件,一个用于发射,一个用于接收。电路板上有4个引脚:VCC GND Trig(触发)ÿ…...

逆向之Windows PE结构
写在前面 对于Windows PE文件结构,个人认为还是非常有必要掌握和了解的,不管是在做逆向分析、免杀、病毒分析,脱壳加壳都是有着非常重要的技能。但是PE文件的学习又是一个非常枯燥过程,希望本文可以帮你有一个了解。 PE文件结构…...
ACL是什么
目录 一、ACL是什么 二、ACL的使用:setacl与getacl 1)针对特定使用者的方式: 1. 创建acl_test1后设置其权限 2. 读取acl_test1的权限 2)针对特定群组的方式: 3)针对有效权限 mask 的设置方式…...

操作系统核心知识点整理--内存篇
操作系统核心知识点整理--内存篇按段对内存进行管理内存分区内存分页为什么需要多级页表TLB解决了多级页表什么样的缺陷?TLB缓存命中率高的原理是什么?段页结合: 为什么需要虚拟内存?虚拟地址到物理地址的转换过程段页式管理下程序如何载入内存?页面置…...

从零开始学习iftop流量监控(找出服务器耗费流量最多的ip和端口)
一、iftop是什么iftop是类似于top的实时流量监控工具。作用:监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等官网:http://www.ex-parrot.com/~pdw/iftop/二、界面说明>代表发送数据,< 代表接收数…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...
django blank 与 null的区别
1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是,要注意以下几点: Django的表单验证与null无关:null参数控制的是数据库层面字段是否可以为NULL,而blank参数控制的是Django表单验证时字…...

云安全与网络安全:核心区别与协同作用解析
在数字化转型的浪潮中,云安全与网络安全作为信息安全的两大支柱,常被混淆但本质不同。本文将从概念、责任分工、技术手段、威胁类型等维度深入解析两者的差异,并探讨它们的协同作用。 一、核心区别 定义与范围 网络安全:聚焦于保…...

QT开发技术【ffmpeg + QAudioOutput】音乐播放器
一、 介绍 使用ffmpeg 4.2.2 在数字化浪潮席卷全球的当下,音视频内容犹如璀璨繁星,点亮了人们的生活与工作。从短视频平台上令人捧腹的搞笑视频,到在线课堂中知识渊博的专家授课,再到影视平台上扣人心弦的高清大片,音…...

基于开源AI智能名片链动2 + 1模式S2B2C商城小程序的沉浸式体验营销研究
摘要:在消费市场竞争日益激烈的当下,传统体验营销方式存在诸多局限。本文聚焦开源AI智能名片链动2 1模式S2B2C商城小程序,探讨其在沉浸式体验营销中的应用。通过对比传统品鉴、工厂参观等初级体验方式,分析沉浸式体验的优势与价值…...
OpenGL-什么是软OpenGL/软渲染/软光栅?
软OpenGL(Software OpenGL)或者软渲染指完全通过CPU模拟实现的OpenGL渲染方式(包括几何处理、光栅化、着色等),不依赖GPU硬件加速。这种模式通常性能较低,但兼容性极强,常用于不支持硬件加速…...