首页 > 其他分享 >08.以太网交换基础+VLAN原理

08.以太网交换基础+VLAN原理

时间:2024-07-08 14:58:00浏览次数:18  
标签:VID 08 VLAN 端口 MAC 地址 tag 以太网

一、以太网协议介绍

冲突域

在共享网络(集线器hub)中,整个集线器就是一个冲突域,如果你用我也用那就信号冲突,结果全军覆没,什么数据都无法传输。

为此引入了CSMA/CD机制,这样就能有效避免冲突。

终端设备不停地检测共享线路的状态

-->如果线路空闲,会有一个随机延迟,然后开始发送数据(见缝插针)

-->如果线路忙,那就候着

但是随机延迟也有可能出现恰巧同时发送的情况,如果冲突了就停止发送数据

以太网交换机就不会有这个顾虑,一个端口就是一个冲突域,不同端口不同冲突域,互不影响,该发发,该收收。

广播域

广播报文

目的MAC地址为FFFF-FFFF-FFFF的帧,叫做二层广播帧

交换机收到广播后的默认行为:交换机收到广播后,默认会在一个广播域中泛洪(除接收端口外其他所有端口发送一份),在同一个广播域中设备无论你愿不愿意,都会收到。

广播域的范围

一个交换机默认就在一个广播域中。

每一个网口与一个网卡对应,交换机的一个网口就有一张网卡

将高低电平转换成bit流(通过网口的铜片),然后封装以太网II帧

或者将bit流转换成高低电平。

二、以太网帧介绍

EthernetII

EthernetII帧【(46+18=64)-(1500+18=1518)】

DMAC:目的MAC地址,6字节,标明帧的接收者

SMAC:源MAC地址,6字节,标明帧的发送者

Type:类型字段,2字节,用于标识上层承载的协议类型

用户数据:46-1500字节

如果数据超过了1500字节(MTU),就要分片

如果不足46字节(ARP),就要使用垫片(全0)填充---Wireshark不显示

FCS:校验和,4字节---Wireshark不显示

     

802.3 一样是协议使用,例如生成树,了解即可。

MAC地址

为什么有了IP地址又要有MAC地址?

使用16进制表示,很少场合使用二进制的

0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F

0000-1111-2222   

00-00-11-11-22-22  

0000.1111.2222

都正确

要根据实际场合来进行配置

前24bit是OUI,厂商代码。

单播MAC地址

1.第1字节最后一个bit为0的MAC地址,就一定是单播MAC地址

2.出厂就烧录在网卡上的,理论上无法修改

3.可以作为源和目的地址

4.理论上全局唯一,但是至少要保证一个广播域内唯一

广播MAC地址

1.48bit全为1  FFFFFFFFFFFF

2.只能作为目的MAC,所有广播域设备均能收到该数据帧

组播MAC地址

1.第1字节最后一个bit为1,但是所有bit不全为1

2.只能作为目的MAC地址不可以是源MAC地址

3.只有在这个组播组的设备才能接受并处理。

单播帧

单播帧:源和目的MAC地址均为单播MAC地址的帧

只发给一个目的终端

广播帧

源MAC地址为单播,目的MAC地址为广播,一个广播域的用户都会收到,效率较低,但是无耐之举

组播帧

组播MAC地址

1.第一字节最后一个bit为1,其他47bit不全为1,则是组播MAC地址

2.只能作为目的,不能作为源MAC地址

3.只能在同一个组播组的终端能收到(效率比广播高)

三、以太网交换机介绍

接入:提供更多的是高速的端口 ,以及联动网络提供接入的安全(比如楼层交换机)

聚合:连接核心和接入,一般网关在汇聚,很多的策略在这里实施(比如一栋楼的接入交换机的汇聚)

核心:性能最高,价格最高

接入:每个班级的班主任 汇聚:教研室主任 核心:二级学院院长

典型的三层结构,并不是一定都需要三层,一些小的soho,可能就接入和核心即可,甚至只有核心,但是大的园区网,一般而言都是有三层结构

二层vs三层处理

以太网二层交换机转发数据的端口,只是根据数据帧的目的MAC地址,查询MAC地址表进行转发。不动数据帧,因此叫做二层处理,不消耗游戏币,TTL不变。

路由器或者三层交换机需要根据三层的目的IP地址,查询路由表寻找相应的出口口和下一跳,因此需要处理到第三层,因此需要拆除二层的帧,因此这是三层处理,一次三层处理,TTL减少1

交换机工作原理

二层交换机就干两件事:学习+转发

学习

一个数据帧进入交换机,交换机就学习数据帧的源MAC地址,从而形成MAC地址表

用于后续的转发

转发

根据目的MAC地址查找MAC地址表

泛洪:除了接收端口外其他端口均发送一份

转发:从一个 端口进,从另外一个端口出去

丢弃:顾名思义,丢掉

泛洪

情况一 目的MAC地址是广播或者组播

除接收端口外所有其他端口转发(泛洪)

情况二 目的MAC地址是单播MAC地址

若查MAC地址表找不到,则认为是未知单播帧,除接收端口外所有其他端口转发(泛洪)

精确转发

目的MAC地址是单播MAC地址

若查MAC地址表能找到,则认为是已知单播帧,精确从某个端口转发(Forwarding转发)

丢弃

如果是单播帧,且同一个端口进同一个端口出,则丢弃(Discard)

例子

Q:如果交换机收到了一个数据帧,源MAC地址已经在MAC地址表中了,那么交换机如何处理?

A:如果是同一个接口,收到相同的源MAC地址,那么就刷新老化时间(从头开始倒计时),MAC表默认老化时间为300s。

如果是不同接口,更新MAC表项(对应的端口进行调整)

Q:在实际网络中,交换机一般都不会有设备的MAC地址,那么是否第一个传输的数据都是泛洪的呢?

A:??

四、同网段数据通信全过程

五、VLAN原理与配置

什么是VLAN

为什么要VLAN

一个交换机默认就是一个广播域(收到广播后,除了接收端口以外全部来一份)

但是效率太低了,如果是多个部门都在一个广播域,那么不同都会收到大量的广播包

Q:192.168.10.1/24和192.168.20.1/24在一个以太网广播域,当192.168.10.1/24访问192.168.10.254/24的时候,发送ARP报文请求,那么192.168.20.1/24是否会收到?

A:

解决思路
方法1 路由器

路由器一个端口一个广播域,能够很好解决,但是路由器端口有限,而且价格高。不实用

方法2 VLAN

VLAN :Vlrtual Local Area Network,在一个交换机上逻辑划分多个广播域,从而减少广播的影响范围,节约网络带宽

特点

  1. 一个VLAN就是一个广播域。

Q:192.168.10.1/24和192.168.10.2/24分别位于不同的VLAN,再不做额外配置的情况下是否可以通信?

A:

  1. 一个VLAN一个网段,一个网段一个VLAN
  2. 灵活配置

带来的问题

不同VLAN如何通信?

VLAN的基本原理

通过VLAN Tag区分不同VLAN数据

VLAN Tag的结构

  1. 位于源MAC地址和数据之间
  2. 结构

TPID:标识802.1Q的帧

PRI:优先级,用于QoS

CFI:在以太网中是0

VID:12bit,VLAN ID,用于标识是哪个VLAN的数据,取值范围是0-4095,可用范围为1-4094

注意:

1.计算机无法识别tag信息,因此发送和接受都是不带有tag的

2.交换机内部为了区分不同的VLAN,必须带有标签进行转发。

用的最多的就是基于端口的VLAN,其他作为了解即可

基于接口的VLAN

基于端口

1.配置简单,容易实现,是工程应用中使用最最最广泛的

2.如果发生变化,则需要手动调整

3.默认都是属于VLAN1,即PVID值为1

基于MAC的VLAN划分

实现方式

通过交换机内部维护一个MAC地址与VLANid的对应表来实现。当交换机收到计算机发送的untagged帧时,交换机将分析帧中的源MAC地址,然后查询MAC地址表和VLAN ID的对应表,将其划入到对应的VLAN中。

特点

1.灵活度高,划分复杂

2.如果伪造MAC地址,则基于MAC地址就被欺骗

以太网二层接口类型

Access

Access端口(私家车)

如果设置交换机接口PVID=10,那么

接收
  1. 收到untagged的数据帧,接收后在交换机内部打上PVID=10的TAG
  2. 带有tag,且tag的VID=PVID,则接受,并打上PVID的值
  3. 带有tag,但tag的VID≠PVID,则丢弃

发送

因为终端无法识别tag,因此剥离tag后发送

应用场景

一般用于连接PC、服务器和其他终端设备,在一些场合也可以连接路由器。

Trunk

为什么要Trunk?

两个交换机均有vlan 10 和vlan 20,那么交换机互联的端口配置成Access,那么PVID应该是10还是20才能让vlan10的互访,vlan20的互访?很显然无法实现,这个时候就需要一个类似于Trunk的公共通道的出现。

Trunk端口(公交车)

接收

Trunk接口收到一个untagged的数据帧,打上VID=PVID的tag。如果该VID的tag在Trunk接口的允许通过列表中,接收该帧,如果不在允许列表则丢弃。

Trunk接口收到一个tagged的数据帧,如果该VID的tag在Trunk接口的允许通过列表中,接收该帧,如果不在允许列表则丢弃。

发送

由于在交换机内部都是打上标签的,因此在发送的时候

如果tag中的VID=PVID,并且在Trunk接口的允许通过列表中,则剥离tag后发送,如果不在允许列表则丢弃。

如果tag中的VID≠PVID,但在Trunk接口的允许通过列表中,则直接发送,如果不在允许列表则丢弃。

应用场景

用于设备互联(交换机、AP等)

Access和Trunk的例子

  1. vlan命令用来创建VLAN并进入VLAN视图
  2. undo vlan用来删除指定的vlan
  3. vlan batch批量创建

  1. 需要切换端口类型,默认为Hybrid
  2. 如果多次配置port default vlan vian-id,则最后配置的生效

port default vlan 10

port default vlan 20

port default vlan 30

则端口最终的缺省vlan为30

注意,要先创建VLAN,在将接口加入该VLAN

否则报错

或者使用display port vlan active进行查看

Link Type:链路类型

PVID:10

发送VLAN10的数据的时候,不带有标签

             接收不带标签的数据的时候,进入设备打上tag为10的标签。

VLAN List:

U:10  --->VLAN10的数据不带标签发送

           ---->接收到不带标签的,打上VLAN10的标签

T:20 --->VLAN20的数据打上标签后发送(带标签发)

         ---->收到带有tag为20的标签的数据,原封不动接收。(带标签收)

Hybrid

华为交换机的默认接口模式,类似于Trunk,只是在发送帧的时候有些区别,新增了tagged通过列表(和Trunk类似),以及Untagged通过列表(允许多个VLAN数据以untagged形式发送,Trunk仅允许VID=PVID的通过)

port trunk allow-pass vlan xxx

Trunk :allow-pass --->Hybrid :tagged +untagged vlan

关于tagged和untagged列表

在接收时候,两个列表加起来等于allow-pass vlan,只要在这两个列表中,就能从此端口进入。是否打标签和PVID进行比较。

在发送的时候,如果是tagged列表,则携带标签发送,如果是untagged列表,则剥离标签发送,如果都不在则丢弃

接收(与Trunk相同)

Hybrid接口收到一个untagged的数据帧,打上VID=PVID的tag。如果该VID的tag在Hybrid接口的允许通过列表(untagged+tagged列表)中,接收该帧,如果不在允许列表则丢弃。

Hybrid接口收到一个tagged的数据帧,如果该VID的tag在Hybrid接口的允许通过列表(untagged+tagged列表)中,接收该帧,如果不在允许列表则丢弃。

发送

需要从Hybrid接口发送的数据

如果发送数据的tag的VID不在untagged通过列表中,也不在tag通过列表中,则丢弃

如果发送数据的tag的VID在untagged通过列表中,则剥离tag后发送。

如果发送数据的tag的VID在tagged通过列表中,则直接带着tag后发送。

收方向参考Trunk

Q:如果Hybrid的PVID=10,tagged列表中也包含10,那么是剥离标签发送,还是带有标签发送?

A:tagged列表的优先级高于pvid,因此携带tag为10的标签发送

查询命令 display port vlan active

Hybrid接口举例

可以通过clear configuration interface g0/0/1来清除接口下的配置,但是注意,清楚后端口处于shutdown状态。

主机1  <--> 192.168.10.1/24

主机2  <--> 192.168.10.2/24

主机2  <--> 192.168.10.10/24

情况一 主机1访问主机2

由于主机1判断主机2位于同网段,直接发送ARP Request主机2的MAC地址。广播报文到达SW1的Port1口,由于是Port 1 的PVID=10,并且在untagged列表中允许VID=10的数据进入,因此ARP报文打上VID=10的标签进入。但是只能在允许VID=10的线路发送,Port2不允许发送(只允许20,100不带标签发送),因此主机2无法收到ARP Request,通信失败。

情况二 主机1访问服务器

由于主机1判断服务器位于同网段,直接发送ARP请求服务器的MAC地址。广播报文到达SW1的Port1口,由于是Port 1 的PVID=10,并且在untagged列表中允许VID=10的数据进入,因此ARP报文打上VID=10的标签进入。并且在允许VID=10的接口上泛洪,因此可以在SW1的G0/0/3接口泛洪,并且是携带标签发送给SW2的Port3口。

SW2的Port3口的tagged允许列表中包含vlan10,因此允许进入,广播继续在SW2允许VID=10的端口泛洪,因此可以从G0/0/1泛洪出去,因为G0/0/1的untagged列表允许VID=10通过,因此ARP Request不带标签从G0/0/1发送,此时到达了服务器。服务器缓存主机1的ARP信息,并回复ARP Reply。

 

ARP Reply报文到达SW2的G0/0/1端口,G0/0/1端口PVID=100,并且在Untagged列表中允许VID=100的通过,因此能够从G0/0/1接口进入,打上VID=100的tag。通过查询MAC地址表,发现需要从SW2的G0/0/3发送,且G0/0/3的tagged列表允许VID=100的通过,ARP Reply携带VID=100标签从SW2的G0/0/3端口发送

到达SW1的G0/0/3接口,该接口的tagged列表允许VID=100的通过,因此arp reply携带VID=100的标签进入SW1,查表后从G0/0/1发送。SW1的G0/0/1接口的untagged列表允许VID=100的数据通过,因此arp reply剥离VID=100的标签后从G0/0/1接口发送值主机1。

后续主机1和服务器通信同理,主机2和服务器通信类似。

VLAN应用

VLAN标号建议连续,以保证VLAN资源合理利用,最常用的是基于接口的

一般VLAN是和网络号呼应

例如

VLAN

网络号

10

192.168.10.0/24

20

192.168.20.0/24

30

192.168.30.0/24

标签:VID,08,VLAN,端口,MAC,地址,tag,以太网
From: https://blog.csdn.net/J_JJD/article/details/140267507

相关文章

  • 机械学习—零基础学习日志008(PAC模型)
    PAC模型——概率近似正确模型拿到一个数据,得到一个模型, 是真实的结果。因此  可以表示成预测结果准不准的公式。比方说西瓜切开之后,是不是好西瓜就是y,而这个根据颜色,纹理,根蒂,判断西瓜好不好就是模型f(x)。表示式希望其差别小于一个很小的数,比如说0.0001,那非常准确,......
  • 计算机网络之以太网
    上文内容:总线局域网以及冲突的解决方法1.以太网的起源1.1起源60年代末期,夏威夷大学NormanAbramson等研制ALOHA无线网络系统,实现Oahu岛上的主机和其它岛及船上的读卡机和终端通信; 出境信道+地址:主机到终端; 入境信道-终端到主机;200-1500毫微秒未收应答,随机重发;70......
  • FPGA以太网学习-RGMII与GMII
    以太网口都叫RJ45接口,从功能角度说,网口只是信号连接,本身没有通信能力。PHY(物理层),这边需要一个芯片,将并行的以太网数据到符合以太网物理层链路数据传输格式的电平信号转换。上图PHY右边是经过编码后的串行数据信号,左侧是提供多种并行信号。网络变压器连接串行信号和网口。MII接......
  • SM5308调试问题以及解决办法
     第一版pcb打板后测试整体电路,只有sm5308充电管理芯片出问题,无法开机通电,输出也不稳定,时好时坏,只有在接上usb充电后才能正常工作。这个芯片在之前做的迷你充电宝方案中是没问题的,才将它移植到毕设上,所以电路图也是没问题的。测试时采用多种方案,先是对比可以使用板子和新焊接......
  • java08
    面相对象编程对于复杂的实务,为了从宏观上把握,从整体上合理分析,我们需要面向对象的思路,在微观上,我们仍要面向过程编程本质,以类的方式组织代码,以对象组织数据三大特性:封装、继承、多态抽象对象静态方法拥有static的方法,可以直接通过类名来调用,和类一起加载非静态方法没有st......
  • 利用 STM32 实现多协议物联网网关:Modbus/Zigbee 到以太网/Wi-Fi 的数据桥接
    摘要: 随着物联网技术的飞速发展,不同通信协议之间的互联互通成为了构建智能化系统的一大挑战。本文将以实战项目为例,详细介绍如何利用STM32微控制器实现Modbus/Zigbee与以太网/Wi-Fi之间的协议转换,从而打通传感器数据上传至服务器的“最后一公里”。关键词: STM32,协议......
  • HCIA知识点<5>--Vlan:虚拟局域网
    前言前面我们介绍了静态路由与动态路由,今天我们来讲一下如何使一个路由器接口完成多个路由器接口的工作...在交换机和路由器在协同工作后,将原来的一个广播域在逻辑上,切分为多个虚拟的广播域。[SW1]displayvlan 查看vlan1.VID----VlanID   用来区分和标定不同的vl......
  • 入门PHP就来我这(纯干货)08
    ~~~~有胆量你就来跟着路老师卷起来!--纯干货,技术知识分享~~~~路老师给大家分享PHP语言的知识了,旨在想让大家入门PHP,并深入了解PHP语言。 1PHP对象的高级应用1.1final关键字final最终的、最后的。被final修饰过的类和方法就是“最终的版本”。被修饰的类不可以被继......
  • [题解]P1083 [NOIP2012 提高组] 借教室
    [题解]P1083[NOIP2012提高组]借教室解法\(1\):线段树-\(O((n+m)\logn)\)比较直观的一种做法,但是可能需要卡一下输入(这里没卡也过了,但要注意输入是\(10^6\)级的,为了保险一定要加)。#include<bits/stdc++.h>#definelc(x<<1)#definerc((x<<1)|1)#defineintlonglong......
  • 认识8086处理器
    8086处理器是英特尔(Intel)在1978年推出的一款16位微处理器,它是x86架构以及计算机科技发展史的重要里程碑。如今我们学习x86汇编绕不开8086处理器。通用寄存器8086处理器有八个十六位通用寄存器:AXBXCXDXSIDIBPSP。AXBXCXDX四个寄存器又可分为八个八位处理器。以......