当前位置:   article > 正文

当一个数据帧在经过Access、trunk链路的时候分别经历了什么样的过程?_trunk发送和接收数据包过程

trunk发送和接收数据包过程

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

这一篇来详细了解下整个数据在该网络中是如何传递的,对于我们深入了解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 15

3、创建所有:vlan batch 2 to 4094

4、删除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  this

interface  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 a

Error: 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配置相关的命令

“承上启下”

链路类型的理论入门阶段已经完毕了,可能很多朋友还听说了另外一种类型叫做hybrid,这种对于入门的朋友来说其实可以暂时跳过,它使用的场景比较特别,对于新手来说暂时没有了解的必要,工作中呢,绝大部分场景access与trunk都能解决,所以这里博主把hybrid放入了进阶的课程里面,下一篇我们不讲解新的内容,来讲讲实际规划,来看几种网络拓扑以及熟悉下WEB怎么去创建VLAN以及划分VLAN。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/244913?site
推荐阅读
相关标签
  

闽ICP备14008679号