前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >当一个数据帧在经过Access、trunk链路的时候分别经历了什么样的过程?

当一个数据帧在经过Access、trunk链路的时候分别经历了什么样的过程?

作者头像
网络之路一天
发布2024-01-08 19:18:58
2730
发布2024-01-08 19:18:58
举报
文章被收录于专栏:网络之路网络之路

了解数据经过的整个过程(需要用心看)

这一篇来详细了解下整个数据在该网络中是如何传递的,对于我们深入了解access以及Trunk的处理过程是非常有帮助的。(建议先看一遍,自己看是否能够去理解,然后配合视频在看一次,反复看,直到理解为止)

(1)这里以pc2访问server1为例,PC2发现server1与自己在一个网段内,又不知道它的MAC地址,于是发送ARP请求 , 源MAC PC2 | 目的MAC F | 类型ARP | ARP请求 7

(2)该ARP请求进入办公区一交换机的E0/0/2口时,由于该接口属于access vlan 10,进入的数据又是一个untag帧,所以会打入pvid的tag,这个时候数据帧变成了, 源MAC PC2 | 目的MAC F | VLAN Tag 10 | 类型ARP | ARP请求

(3)办公区一交换机收到该数据包后,读取以太网头部,其中源MAC会记录到MAC地址表中(源接口E0/0/2、源接口所在的VLAN10、以及MAC地址 PC2三个内容),目的MAC为全F,交换机进行泛洪处理,从除源接口所在VLAN内的其他接口发送。 源MAC PC2 | 目的F | VLAN Tag 10 | 类型ARP | ARP请求

(4)办公区一交换机发现E0/0/1属于trunk,并且配置里面允许了vlan 10通过,则会从该接口发送出去,Trunk的规则是当数据帧的VLAN ID与Trunk的PVID不同,列表又包含该VLAN ID通过,则保持Tag不变,直接发送出去。 源MAC PC2 | 目的MAC F | VLAN Tag 10 | 类型ARP | ARP请求

(5)核心交换机的G0/0/1收到该数据帧后,读取以太网头部参数,发现接口处于Trunk模式,列表里面允许了vlan 10通过与数据帧所携带的Tag一致,接收该数据帧,并且把源MAC等信息记录在MAC表中,发现目的MAC为全F,同样交换机进行泛洪处理,从除源接口所在VLAN内的其他接口发送出去,这里G0/0/3为Trunk模式,列表包含该数据帧的VLAN ID,直接发出。 源MAC PC2 | 目的MAC F | VLAN Tag 10 | 类型ARP | ARP请求

(6)办公区三交换机从E0/0/1口收到该数据帧,由于该接口是Trunk,读取数据帧的以太网头部后发现是带有VLAN ID的,检查接口配置中是否有该ID,有则接收数据包,同时交换机进行MAC地址学习以及泛洪的操作,发现E0/0/3属于access VLAN 10,从该接口发出的同时,会执行剥离标签的动作。 源MAC PC2 |目的MAC F | | 类型ARP | ARP请求

最终服务器收到的是一个untag的ARP请求,服务器回应的流程也是一样的。

最终服务器收到的是一个untag的ARP请求,服务器回应的流程也是一样的。

  • 重点记录

(1)pc与服务器不管时候发送还是接收,通常情况下都是untag的数据。

(2)access接口进入的时候会打入PVID标签,出去的时候会剥离标签,所以用于对接处理不了untag数据这种终端,简单理解通常情况下接终端的口配置成access即可。

(3)Trunk链路适合网络设备之间进行对接,比如该环境下交换机之间对接,利用一根物理线路可以通过多个VLAN ID。

(4)一个带有VLAN tag的数据进入Trunk链路时,必须Trunk链路允许了该ID才能通过,否则会被丢弃。

(5)一个带有VLAN tag的数据要从trunk链路出去时,必须trunk链路允许了该ID才能通过,并且会检查PVID是否跟数据的VLAN ID一致,如果一致会剥离标签发送,如果不一致,则保持原ID不变发送出去。

(6)可以发现一个带有VLAN tag的数据 ,只要trunk列表中允许通过了,那么这个数据包在传输的过程中始终是保持tag发送的,直到目的地交换机接口access被剥离,这种效率是最高的,因为交换机不需要执行打入标签以及剥离标签的动作,只需要检查trunk接口中是否允许了该ID通过。(所以如果接口没有允许,那么该对应的数据就通不过了,这个是常见的一个故障)

(7)一个数据包在整个交换网络中的传递离不开access与trunk的配合,要学会access与trunk的运用。

  • 规则细节部分

怎么理解接收不带Tag的报文处理以及发送帧处理过程

之前一直在讲解有Tag的数据是如何通过Trunk的,其实Trunk也能够实现access的功能的,只是看起来不容易被理解,不如access这么直观,那么怎么试下呢?就是依靠PVID,是的,Trunk里面也有PVID的概念,它的作用是什么呢?

  • 当收到一个不带Tag报文的数据,会打上PVID,前提是该PVID在允许通过的列表里面。
  • 当发出去的时候,如果该数据带有Tag,与PVID相同,且在允许列表里面,会执行一个动作,剥离Tag发送出去。

这规则是不是很耳熟,没错,跟access的规则是一样的,实现的效果也是一样,那么Trunk的pvid默认情况下是vlan1,列表也允许vlan1通过,其余vlan需要是需要手动允许(比如10与30是手动配置的,1默认是存在的)。access默认情况下也属于vlan1。

用当前环境做一个小的修改,验证下。

[bg1]interface Ethernet0/0/2

[bg1-Ethernet0/0/2]undo port default vlan

[bg1-Ethernet0/0/2]port link-type trunk

[bg1-Ethernet0/0/2]port trunk allow-pass vlan 10 // 允许VLAN 10

[bg1-Ethernet0/0/2]port trunk pvid vlan 10 // PVID修改成VLAN 10

E0/0/2是对接PC2的,当PC2的数据包发送过来后,由于是untag数据,trunk的规则是打上PVID的VLAN tag,如果允许通过则接收,这个就是Trunk处理不打标签的数据的规则。(该效果就等同于default vlan 10)

博主经验分享:Trunk很少用于对接常见的终端,大部分适用于网络设备之间的对接,透传多个vlan tag场景,如果以后学习到无线以及虚拟化场景,trunk的PVID会用的非常频繁(有兴趣可以看看我的华为无线课程)

  • H3C实验练习

这个拓扑简化了下,配置思路一样,对接PC的使用access模式,交换机之间对接使用trunk。(PC手动设置下地址)

办公区1交换机

[H3C]sysname bg1

[bg1]vlan 10

[bg1-vlan10]vlan 30

[bg1-vlan30]q

[bg1]interface g1/0/1

[bg1-GigabitEthernet1/0/1]port access vlan 10[bg1-GigabitEthernet1/0/1]interface g1/0/2

[bg1-GigabitEthernet1/0/2]port access vlan 30

[bg1-GigabitEthernet1/0/2]quit

[bg1]interface g1/0/3

[bg1-GigabitEthernet1/0/3]port link-type trunk

[bg1-GigabitEthernet1/0/3]port trunk permit vlan 10 30 //命令有点小区别

[bg1-GigabitEthernet1/0/3]save //H3C可以任意模式下保存配置

办公区2交换机

[H3C]sysname bg2

[bg2]vlan 10

[bg2-vlan10]vlan 30

[bg2-vlan30]q

[bg2]interface g1/0/1

[bg2-GigabitEthernet1/0/1]port access vlan 10

[bg2-GigabitEthernet1/0/2]port access vlan 30

[bg2-GigabitEthernet1/0/2]quit

[bg2]interface g1/0/3

[bg2-GigabitEthernet1/0/3]port link-type trunk

[bg2-GigabitEthernet1/0/3]port trunk permit vlan 10 30 //命令有点小区别

[bg2-GigabitEthernet1/0/3]save //H3C可以任意模式下保存配置

整个通信到流程都是一样,access跟trunk是标准技术,不管思科 华为 华三的设备都是可以通用的,因为实现的机制一样,大家都遵循一样的协议。

(1)在一个VLAN交换网络中,以太网帧有两种形式出现:

  • 无标记帧(Untagged帧):简称untag,原始、没有打上4字节VLAN的标签的帧。
  • 有标记帧(Tagged帧):打上了4字节VLAN标签的帧。

(2)常见的设备中哪些带Tag,哪些不带

  • 个人PC、服务器(直接安装Windows、Linux服务器)、傻瓜交换机是只能收到untag帧
  • 企业交换机、路由器、AC、防火墙、服务器(企业虚拟化)是可以收发Tag帧以及untag帧

(3)access模式下,一个接口只能加入一个VLAN,适合对接处理不了Tag帧的设备,这样在进入的时候打上对应的Tag,出来的时候,剥离Tag交给终端设备,既可以完成通信,又实现了VLAN带来的效果。

(4)trunk模式下,一个接口可以传递多个VLAN,可以理解属于多个VLAN下,适合交换机之间对接,只要列表允许通过,Tag保持不变(只有untag的数据会打上PVID的报文进入,以及出去的时候数据VLAN ID=PVID会剥离)

(5)VLAN的作用总结

  • 限制广播域:广播域被限制在一个VLAN内,节省了带宽,避免不必要的资源浪费,实际隔离各种广播包,比如ARP、DHCP等,这些消息发出去,整个广播域内的设备与机器都会收到,但是不会影响其他的广播域(一个VLAN属于一个广播域)
  • 增强局域网的安全性:VLAN间的所有数据包是相互隔离的,不会影响到其他VLAN用户。
  • 提高了网络的健壮性:故障被限制在一个VLAN内,本VLAN内的故障(比如中毒、出现攻击)不会影响其他VLAN的正常工作。
  • 灵活构建虚拟网:当有一定的经验后,可以通过VLAN灵活的来设计,满足客户的需求(这个在案例会讲解实战)
  • 实用的命令(细节部分建议看视频)

(1)vlan创建命令

华三

华为

1、单个创建:vlan 11 //比如不连续的2、连续创建:vlan 11 to 20 //连续的3、创建所有:vlan all //所有VLAN创建4、删除vlan,前面加一个undo即可

1、创建单个vlan:vlan 11 2、连续或者不连续:vlan batch 11 to 20 | vlan batch 11 13 153、创建所有:vlan batch 2 to 40944、删除vlan,前面加一个undo即可

(2)trunk相关

华为:port trunk allow-pass vlan,后面可以放行明细,或者直接跟一个参数all,表示所有vlan都允许通过

华三:port trunk permit vlan ,后面可以放行明细,或者直接跟一个参数all,表示所有vlan都允许通过

(3)模式切换问题

华三

华为

不管是从access切换到trunk,trunk切换到access都可以直接输入模式切换即可 举例:interface GigabitEthernet1/0/4 port link-mode bridge port link-type trunk port trunk permit vlan 1 10 30 [bg1-GigabitEthernet1/0/4]port link-type a[bg1-GigabitEthernet1/0/4]port access vlan 30//直接切换是没任何提示的,这也是要注意的,虽然方便,但是也容易出现“误伤”

V2R5版本之前(老版本)不支持直接切换,只能先还原,然后在切换,否则会提示错误。 举例:access切换到trunk之前演示过了,这里说下trunk还原。 [core]interface g0/0/6[core-GigabitEthernet0/0/6]display thisinterface GigabitEthernet0/0/6 port link-type trunk port trunk allow-pass vlan 10 30 [core-GigabitEthernet0/0/6]undo port trunk allow-pass vlan 10 30[core-GigabitEthernet0/0/6]port link-type a//还原到默认的配置,就可以开始切换了,否则会提示错误,工作中还有一种比较容易进入误区的是 [core-GigabitEthernet0/0/6]undo port trunk allow-pass vlan all[core-GigabitEthernet0/0/6]port link-type aError: Please renew the default configurations. //提示不是默认配置 nterface GigabitEthernet0/0/6 port link-type trunk undo port trunk allow-pass vlan 1 //默认VLAN1是允许通过的,而undo vlan all,会把VLAN 1给禁止掉,所以提示不是默认配置。另外如果有PVID的话也需要还原哦。undo port trunk pvid vlan 。 新版本以后可以直接切换,会有提示是否切换。

(4)查看接口所属VLAN(排错跟查看非常有用)

(5)查看VLAN包含的接口(这个得配合视频看)

华为:display vlan

华三:display vlan brief

(6)vlan描述

//现在大部分都可以写中文了,这个在实际中很有用,可以很直观的知道这个VLAN的作用,不管是对于自己还是其他维护人员来说都非常方便。

display current-configuration configuration vlan:可以只看VLAN配置相关的命令

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-06-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 网络之路博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档