您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

交换机中tag、untag的理解

2024/3/10 19:04:11发布25次查看
交换机 中tag、untag的 理解 情况列举 switch收发 switch对标记的处理 remark access (接收) tagged = pvid 不接收 注:部分高端产品可能接收。 access (接收) tagged =/ pvid 不接收 注:部分高端产品可能接收。 access (接收) untagged 接收 增加tag=pvid
交换机中tag、untag的理解
情况列举 switch收发 switch对标记的处理 remark
access (接收) tagged = pvid 不接收 注:部分高端产品可能接收。
access (接收) tagged =/ pvid 不接收 注:部分高端产品可能接收。
access (接收) untagged 接收 增加tag=pvid 从pc
access (发送) tagged = pvid 转发 删除tag
access (发送) tagged =/ pvid 不转发 不处理
access (发送) untagged 无此情况 无此情况 无此情况
trunk (接收) tagged = pvid 接收 不修改tag
trunk (接收) tagged =/ pvid 接收 不修改tag
trunk (接收) untagged 接收 增加tag=pvid
trunk (发送) tagged = pvid if passing then 转发 删除tag
trunk (发送) tagged =/ pvid if passing then 转发 不修改tag
trunk (发送) untagged 无此情况 无此情况 无此情况(注)
hybrid (接收) tagged = pvid 接收 不修改tag 对端是trunk
hybrid (接收) tagged =/ pvid 接收 不修改tag 对端是trunk
hybrid (接收) untagged 接收 增加tag=pvid 类trunk
hybrid (发送) tagged = pvid tag 和 untag 中列出的vlan可以passing 看tag项和untag项
hybrid (发送) tagged =/ pvid tag 和 untag 中列出的vlan可以passing 看tag项和untag项
hybrid (发送) untagged 无此情况 无此情况 无此情况(注)
我来解释一下
收报文:
acess端口1、收到一个报文,判断是否有vlan信息:如果没有则打上端口的pvid,并进行交换转发,如果有则直接丢弃(缺省)
发报文:
acess端口: 1、将报文的vlan信息剥离,直接发送出去      
收报文:
trunk端口: 1、收到一个报文,判断是否有vlan信息:如果没有则打上端口的pvid,并进行交换转发,如果有判断该trunk端口是否允许该 vlan的数据进入:如果可以则转发,否则丢弃
发报文:
trunk端口: 1、比较端口的pvid和将要发送报文的vlan信息,如果两者相等则剥离vlan信息,再发送,如果不相等则直接发送
收报文:
hybrid端口: 1、收到一个报文
      2、判断是否有vlan信息:如果没有则打上端口的pvid,并进行交换转发,如果有则判断该hybrid端口是否允许该vlan的数据进入:如果可以则转发,否则丢弃
发报文:
hybrid端口:1、判断该vlan在本端口的属性(disp interface 即可看到该端口对哪些vlan是untag, 哪些vlan是tag)
      2、如果是untag则剥离vlan信息,再发送,如果是tag则直接发送
================================
以下是神码大学郑老师的讲解,更清楚直观
先呈请一下上面的几个帖子的术语:
tag为ieee802.1q协议定义的vlan的标记在数据帧中的标示;
access端口,trunk端口是厂家对某一种端口的叫法,并非ieee802.1q协议的标准定义;
这个数据交换的过程比较复杂,如果想解释的话,首先要了解一下几个ieee802.1q协议的定理;
1、下面是定义的各种端口类型对各种数据帧的处理方法;
————————tagged数据帧 tagged数据帧 untagged数据帧   untagged数据帧
————————in             out               in                     out
tagged端口___原样接收     原样发送     按端口pvid打tag标记 按照pvid打tag标记
untagged端口_丢弃       去掉tag标记   按端口pvid打tag标记 原样发送
2、所谓的untagged port和tagged port不是讲述物理端口的状态,而是将是物理端口所拥有的某一个vid的状态,所以一个物理端口可以在某一个vid上是untagged port,在另一个vid上是tagged port;
3、一个物理端口只能拥有一个pvid,当一个物理端口拥有了一个pvid的时候,必定会拥有和pvid的tag等同的vid,而且在这个vid上,这个物理端口必定是untagged port;
4、pvid的作用只是在交换机从外部接受到可以接受untagged 数据帧的时候给数据帧添加tag标记用的,在交换机内部转发数据的时候pvid不起任何作用;
5、拥有和tag标记一致的vid的物理端口,不论是否在这个vid上是untagged port或者tagged port,都可以接受来自交换机内部的标记了这个tag标记的tagged 数据帧;
6、拥有和tag标记一致的vid的物理端口,只有在这个vid上是tagged port,才可以接受来自交换机外部的标记了这个tag标记的tagged 数据帧;
以下是神州数码对命令的定义(各个厂家对命令的定义可能不一定一致,但是都必须遵循上面的定理):
1、trunk端口就是在一个物理端口上增加这个交换机所有vlan的vid标示,并且除了和这个物理端口pvid标示一致的vid标示为untagged port外,在其他的vid上都是tagged port;
2、access端口就是指拥有一个和pvid标记相同的vid的物理端口,在这个vid上,遵循定理一定为untagged port;
在了解了以上的基础理论之后,我们在来看一下楼主的问题:
一个数据包从pc机发出经过access端口->trunk端口->trunk->access->pc数据包发生了怎么样的变化?
我们先把上述的描述变换为ieee802.1q的标准描述:
一个数据包从pc机发出经过(untagged 数据帧)
access端口(pvid定义为100,vid=100=untagged port)->
trunk端口(pvid定义为1〈出厂配置,没有更改〉,vid=1=untagged port,vid=100=tagged port)->
另一个交换机的trunk端口(pvid定义为1〈出厂配置,没有更改〉,vid=1=untagged port,vid=100=tagged port)->
另一个交换机的access端口(pvid定义为100,vid=100=untagged port)->
pc数据包发生了怎么样的变化?(untagged 数据帧)
首先假设两台交换机刚刚开机(mac地址表为空)从pc机发出的数据帧进入交换机的access端口以后,会按照这个端口的pvid打100的tag标记,根据交换机的转发原理,交换机会把这个数据帧转发给vid=100的所有端口(除了进口以外),这个过程叫做vlan flood;参照上面的定理1;
由于trunk端口拥有vid=100,所以才可接受这个标记tag为100的tagged数据帧;参照上面的定理5;
由于trunk端口在vid=100上为tagged port,所以在发送数据帧出交换机的时候,不改变tagged数据帧的结构;参照上面的定理1;
到了另一个交换机的trunk端口的时候,由于trunk端口拥有vid=100,所以才可接受这个标记tag为100的tagged数据帧;参照上面的定理6;
另一个交换机的trunk端口,接收到标记tag为100的tagged数据帧,并不作任何的更改;参照上面的定理1;
另一个交换机收到到标记tag为100的tagged数据帧,根据交换机的转发原理,交换机会把这个数据帧转发给vid=100的所有端口(除了进口以外);参照交换机交换原理(受到一个未知目的mac数据帧);
这样另一个交换机的access端口就可以收到标记tag为100的tagged数据帧;参照上面的定理5;
另一个交换机的access端口在发出标记tag为100的tagged数据帧的时候,会去掉tag标记,转发untagged数据帧给pc;参照上面的定理1;
这样pc机就收到了这个数据;
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product