zoukankan      html  css  js  c++  java
  • Access、Hybrid和Trunk

      以太网端口有三种链路类型:Access、Hybrid和Trunk。Access类型的端口只能属于1个VLAN,一般用于连接计算机的端口;Trunk类型的端口可以属于多个VLAN,可以接收和发送多个VLAN的报文,一般用于交换机之间连接的端口;Hybrid类型的端口可以属于多个VLAN,可以接收和发送多个VLAN的报文,可以用于交换机之间连接,也可以用于连接用户的计算机。Hybrid端口和Trunk端口的不同之处在于Hybrid端口可以允许多个VLAN的报文发送时不打标签,而Trunk端口只允许缺省VLAN的报文发送时不打标签。

      Access端口只属于1个VLAN,所以它的缺省VLAN就是它所在的VLAN,不用设置;

      Hybrid端口和Trunk端口属于多个VLAN,所以需要设置缺省VLAN ID。缺省情况下,Hybrid端口和Trunk端口的缺省VLAN为VLAN 1。如果设置了端口的缺省VLAN ID,当端口接收到不带VLAN Tag的报文后,则将报文转发到属于缺省VLAN的端口;当端口发送带有VLAN Tag的报文时,如果该报文的VLAN ID与端口缺省的VLAN ID相同,则系统将去掉报文的VLAN Tag,然后再发送该报文。

      (1)Trunk端口不能和isolate-user-vlan(isolate-user-vlan是利用hybrid端口对多个vlan的报文去除vlan tag的特性,通过对mac地址表项在各vlan的mac地址表间进行复制的方法,实现对网络中vlan资源的节约。)同时配置;Hybrid端口可以和isolate-user-vlan同时配置。但如果缺省VLAN是在isolate-user-vlan中建立了映射的VLAN,则不允许修改缺省VLAN ID,只有在解除映射后才能进行修改。

      (2) 本Hybrid端口或Trunk端口的缺省VLAN ID和相连的对端交换机的Hybrid端口或Trunk端口的缺省VLAN ID必须一致,否则报文将不能正确传输。

    以下案例请大家深入理解华为hybrid模式

    [Switch-Ethernet0/1]int e0/1

    [Switch-Ethernet0/1]port link-type hybrid

    [Switch-Ethernet0/1]port hybrid pvid vlan 10

    [Switch-Ethernet0/1]port hybrid vlan 10 20 untagged

    [Switch-Ethernet0/1] int e0/2

    [Switch-Ethernet0/2]port link-type hybrid

    [Switch-Ethernet0/2]port hybrid pvid vlan 20

    [Switch-Ethernet0/2]port hybrid vlan 10 20 untagged

      此时inter e0/1和inter e0/2下的所接的PC是可以互通的,但互通时数据所走的往返vlan是不同的。

      以下以inter e0/1下的所接的pc1访问inter e0/2下的所接的pc2为例进行说明

      pc1所发出的数据,由inter0/1所在的pvid vlan10封装vlan10的标记后送入交换机,交换机发现inter e0/2允许vlan 10的数据通过,于是数据被转发到inter e0/2上,由于inter e0/2上vlan 10是untagged的,于是交换机此时去除数据包上vlan10的标记,以普通包的形式发给pc2,此时pc1->p2走的是vlan10

      再来分析pc2给pc1回包的过程,pc2所发出的数据,由inter0/2所在的pvid vlan20封装vlan20的标记后送入交换机,交换机发现inter e0/1允许vlan 20的数据通过,于是数据被转发到inter e0/1上,由于inter e0/1上vlan 20是untagged的,于是交换机此时去除数据包上vlan20的标记,以普通包的形式发给pc1,此时pc2->pc1走的是vlan20

    tag就是普通的ethernet报文,报文结构的变化是在源mac地址和目的mac地址之后,加上了4bytes的vlan信息,也就是vlan tag头;untag就是普通的ethernet报文,比tag报文少了4 bytes字节。

    情况列举
     Switch收发 Switch对标记的处理

    1、

    Access (接收) Tagged = PVID 不接收 注:部分高端产品可能接收。

    Access (接收) Tagged =/ PVID 不接收 注:部分高端产品可能接收。

    Access (接收) Untagged 接收 增加tag=PVID 从PC

    Access (发送) Tagged = PVID 转发 删除tag

    Access (发送) Tagged =/ PVID 不转发 不处理

    Access (发送) Untagged 无此情况 无此情况 无此情况

    2、

    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 无此情况 无此情况 无此情况(注)

    3、

    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 无此情况 无此情况 无此情况

    4、

    收报文:

    Acess端口1、收到一个报文,判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有则直接丢弃(缺省)

    发报文:

    Acess端口: 1、将报文的VLAN信息剥离,直接发送出去

    5、

    收报文:

    trunk端口: 1、收到一个报文,判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有判断该trunk端口是否允许该 VLAN的数据进入:如果可以则转发,否则丢弃

    发报文:

    trunk端口: 1、比较端口的PVID和将要发送报文的VLAN信息,如果两者相等则剥离VLAN信息,再发送,如果不相等则直接发送

    6、

    收报文:

    hybrid端口:

    1、收到一个报文

    2、判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有则判断该hybrid端口是否允许该VLAN的数据进入:如果可以则转发,否则丢弃

    发报文:

    hybrid端口:

    1、判断该VLAN在本端口的属性(disp interface 即可看到该端口对哪些VLAN是untag, 哪些VLAN是tag)

    2、如果是untag则剥离VLAN信息,再发送,如果是tag则直接发送

  • 相关阅读:
    桟错误分析方法
    gstreamer调试命令
    sqlite的事务和锁,很透彻的讲解 【转】
    严重: Exception starting filter struts2 java.lang.NullPointerException (转载)
    eclipse 快捷键
    POJ 1099 Square Ice
    HDU 1013 Digital Roots
    HDU 1087 Super Jumping! Jumping! Jumping!(动态规划)
    HDU 1159 Common Subsequence
    HDU 1069 Monkey and Banana(动态规划)
  • 原文地址:https://www.cnblogs.com/s08243/p/6231984.html
Copyright © 2011-2022 走看看