前言:
现时同学们对“透传 trunk”大致比较重视,各位老铁们都需要学习一些“透传 trunk”的相关知识。那么小编也在网上搜集了一些关于“透传 trunk””的相关文章,希望你们能喜欢,我们一起来了解一下吧!作者:一天 首发公众号:网络之路博客(ID:NetworkBlog)
了解数据经过的整个过程(需要用心看)
这一篇来详细了解下整个数据在该网络中是如何传递的,对于我们深入了解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。
作者:一天,公众号:网络之路博客(ID:NetworkBlog)。让你的网络之路不在孤单,一起学习,一起成长。
标签: #透传 trunk