当前位置: 首页 > news >正文

二层、三层交换机之间到底有什么区别?

简单地说

  • 二层交换机,没有充当三层网关角色的能力Capability)。
  • 三层交换机,首先也是二层交换机。但是,它有一个额外的能力Capability),软件配置一下,可以充当三层网关的能力。

何谓三层网关(L3 Gateway)?

使得不同网段(广播域/VLAN)的通信成为可能,换句话说,就是三层网关可以帮助不同的网段主机互相通信。如果没有三层网关,就无法跨网段通信。

---------------------- 分界线---------------------

对于深度理解这两者的区别,可以继续阅读。

如果没有记错,无论是二层交换机还是三层交换机出厂的时候,都是二层交换机,即工作在二楼(层)。

工作在二楼的交换机,收发包裹,只关心有关二层的包裹信息,即

  • 目的MAC地址
  • 源MAC地址
  • Ethertype

干的活也很简单,就是根据包裹的二层信息“目的MAC地址”来寻找对应的出端口,然后把包裹从出端口扔出去,活就算干完了。 (Forwarding)

可是哪里有“目的MAC地址与出端口“的映射表呢?

这个表的名字叫”MAC Address Table”。

MAC Address Table也不可能天生就知道“目的MAC地址与出端口”的绑定关系吧,这个表里的条目是如何生成的?

包裹进入交换机端口的时候,记录其源MAC地址,记录其端口号,然后把两者的绑定关系,生成一个条目,记录在MAC Address Table里。并启动一个倒计时老化定时器(Aging Timer)。一个20分钟的定时器,当定时器归0即删除该条目。如果在归0之前,又有该源MAC地址的流量包裹进入端口,定时器满血复活,可以继续活20分钟。(Learning)

以上就是二层交换机干的活的汇总,准确地说,是一个非网管型二层交换机的干活汇总,非常easy,对吗?

读者可能会有不同意见,一个网管型的二层交换机不是有IP地址的吗?

是的,不光有IP地址,还有默认网关等等。

既然网管型的二层交换机有IP地址,它怎么会不关心包裹里的IP地址?否则它怎么接收属于它的包裹?

无需关心IP地址,只要二层交换机判断一个条件:

目的MAC地址 == 网管型的二层交换机自身的MAC

  • 如果yes,直接将包裹扔给网管型的二层交换机的TCP/IP协议栈。IP判断是否目的IP == 自己的IP地址,如果yes,继续进一步处理(TCP/UDP/ICMP处理流程)如果no,直接扔了
  • 如果no,按照上文的提到的Forwarding流程处理。

梳理一下:

  • 非网管型二层交换机,只有Learning、Forwarding 2个功能。
  • 网管型二层交换机,有Learning、Forwarding 2个功能。还有一个判断逻辑+ TCP/IP。

以上文字尽管是关于二层交换机的,和三层交换机仅有一步之遥。因为三层交换机是在网管型二层交换机的基础上,仅仅修改其判断逻辑,其它的都是一样一样的。

这个判断逻辑是这样的:

上文划线部分的判断逻辑修改为:

目的IP == 自己的IP地址

  • 如果yes,继续进一步处理(本地TCP/UDP/ICMP处理流程)。
  • 如果no,查询路由表,寻找出接口。如果yes,将IP包裹封装一个全新的二层MAC头扔出去。如果no,扔了。

划线加亮部分即为修改之后的逻辑,也是二层交换机与三层交换机的区别。

既然三层交换机仅仅是在二层交换机的基础之上做出的修改,所以三层交换机拥有二层交换机的一切功能。

一个拥有三层交换机功能(capability)的二层交换机在出厂之后,只要一个配置开关“no switchport” 即可将二层交换机端口,修改为三层交换机的接口。

这个命令“no switchport”背后的代码逻辑,就是上文所阐述的修改部分。用户还可以将三层交换机的接口修改回二层交换机的端口,命令是“switchport”,非常简单。

作者|车小胖谈网络|公众号

http://www.lryc.cn/news/233118.html

相关文章:

  • 【论文阅读】2736. 最大和查询-2023.11.17
  • 2. zk集群部署
  • 抖音快手判断性别、年龄自动关注脚本,按键精灵开源代码!
  • IDEA软件使用步骤
  • 设计模式-11-模板模式
  • 【技术分享】EIGRP stub实验
  • Python 爬虫 AES DES加密反爬
  • (论文阅读30/100)Convolutional Pose Machines
  • vue3实现数据大屏内数据向上滚动,鼠标进入停止滚动 vue3+Vue3SeamlessScroll
  • WPF显示3D图形
  • Xrdp+Cpolar实现远程访问Linux Kali桌面
  • 赚钱
  • Django command执行脚本
  • GLSL: Shader cannot be patched for instancing.
  • Django测试环境搭建及ORM查询(创建外键|跨表查询|双下划线查询 )
  • css 设置网页最小字体为12px
  • Failed to restart networking.service: Unit networking.service not found.
  • 基于单片机设计的水平仪(STC589C52+MPU6050)
  • 射频与微波综合测试仪-4958手持式微波综合测试仪
  • Redis内存淘汰机制
  • EXCEL——计算数据分散程度的相关函数
  • 详解如何使用Jenkins一键打包部署SpringBoot项目
  • 【JVM】内存区域划分、类加载机制(双亲委派模型图解)、垃圾回收(可达性分析、分代回收)
  • 解决 requests 2.28.x 版本 SSL 错误
  • hive数据质量规范
  • Jenkinsfile+Dockerfile前端vue自动化部署
  • SQL server从安装到入门(一)
  • Unexpected WSL error错误处理备忘
  • 计算机毕业设计 基于Vue的米家商城系统的设计与实现 Java实战项目 附源码+文档+视频讲解
  • Linux终端与交互式Bash