QinQ报文格式 QinQ报文有固定的格式,就是在802.1Q的标签之上再打一层802.1Q标签,QinQ报文比正常的802.1Q报文多四个字节。 另外,对于QinQ报文的ETYPE值,不同的厂家有不同的设置,华为公司采用默认的0x9100,有些厂家采用0x8100,为了实现互通,瑞斯康达公司设备支持基于端口的QinQ协议配置,即用户可以在设备端口上设置QinQ protocol 0x8100(该值可以由用户任意指定),这样端口就会将报文外层VLAN tag中的ETYPE值替换为0x8100再进行发送,从而使发送到其他设备端口的QinQ报文可以被设备识别。 2.2 QinQ封装 QinQ封装是指如何把单层Q报文转换为双层Q报文,封装主要发生在城域网面向用户的UPE设备,一般在交换式的端口上进行,根据不同的封装依据,QinQ可以分为几种不同类型,包括基于端口的QinQ和基于流的QinQ两大类,另外,还可以在路由子接口上进行的特殊QinQ封装,具体如下: 2.2.1 基于端口的QinQ封装 基于端口的封装指进入一个端口的所有流量全部封装一个外层VLAN TAG,封装方式较为呆板。 2.2.2 基于流的QinQ封装 基于流的QinQ封装可以对进入端口的数据首先进行流分类,然后对于不同的数据流选择是否打外层TAG,打何种外层TAG,因此也叫灵活QinQ,灵活QinQ根据流分类的方法又可细分如下: 1) 根据报文中的VLAN ID区间分流 当同一用户的不同业务使用不同的VLAN ID时,可以根据VLAN ID区间进行分流,比如PC上网的VLAN ID范围是101~200,IPTV的VLAN ID范围是201~300,大客户的VLAN范围是301~400,面向用户的设备收到用户数据后,根据VLAN ID范围,对PC上网业务打上100的外层标签,对IPTV打上300的外层标签,对大客户打上500的外层标签。 2) 根据报文中的VLAN ID+Priority进行分流 不同的业务有不同的优先级,当同一用户的多种业务使用相同的VLAN ID时,可以根据不同业务的Priority进行区分,然后打上不同的外层标签。 3) 根据目的IP进行QinQ封装 当同一台PC既包括上网业务,又包括语音业务时,不同业务的目的IP不同,可以利用ACL对目的IP进行分流,然后打上不同的外层标签。 4) 根据ETYPE进行QinQ封装 当同一用户既包括PPPOE的上网业务,又包括IPOE的IPTV业务时,可以根据ETYPE进行数据分流,IPOE的协议号为0x0800,PPPOE的协议号为0x8863/8864,这样,上网业务和IPTV业务就能打上不同的外层标签。 三、典型案例配置3.1 EPON交换端口VLAN配置在EPON VLAN配置图中,OLT侧VLAN配置有两部分:交换口(包括上联交换口以及与PON口连接的交换口)和PON口,且这两部分配置相互独立。PON口VLAN配置已在上一节中详细描述,本节简要描述交换口在典型应用中的配置,有关交换端口VLAN的详细配置可参考《瑞斯康达交换机软件配置指导》中VLAN配置部分。 交换端口VLAN模式如下: 端口成员模式 | VLAN成员属性 | Access | access端口模式仅能被用户指定到一个VLAN中,从access端口转发出的数据包不携带802.1Q标记,不同VLAN的access端口不能互通。access端口主要用于连接终端用户;缺省情况下,所有端口以access模式存在于vlan 1中。 | Hybrid | Hybrid端口模式可以被用户任意指定到多个VLAN中,并且可以限制从该端口转发的数据包是否携带相应VLAN的802.1Q标记。同时Hybrid端口可以通过配置Native属性对进入端口的非802.1Q数据包进行VLAN分类。Hybrid模式可看作是用户自定义的端口VLAN混合模式; | Trunk | Trunk端口模式缺省情况存在于所有VLAN中,并且从该端口转发的数据包除Native VLAN外全部携带802.1Q标记。但是,用户可以通过allowed vlans属性限制Trunk端口所能转发的VLAN数据包。当交换机端口作为上联TAG端口时,可配置为trunk模式; | dot1q-tunnel | TUNNEL端口模式仅能被用户指定到一个VLAN中,从TUNNEL端口转发出的数据包不携带外层TAG标记,不同VLAN的TUNNEL端口不能互通。从TUNNEL端口进入的数据包可以被加上双层TAG标记。 | trunk double-tagging | 将端口配置为TRUNK模式,并使端口具备识别、处理外层TAG(即SP VLAN TAG)的能力; | hybrid double-tagging | 将端口配置为HYBRID模式,并使端口具备识别、处理外层TAG(即SP VLAN TAG)的能力; | hybrid dot1q-tunnel | 将端口配置为HYBRID模式,并使端口具备为进入端口的包强制(忽略数据包中可能存在的内层或外层TAG)添加外层TAG(即SP VLAN TAG)的能力; |
交换口VLAN模式配置命令如下: 命令 | 描述 | Config | 进入全局配置模式 | interface port port-id | 进入物理接口配置模式 | switchport mode {access | hybrid [double-tagging]| trunk [double-tagging]| [hybrid] dot1q-tunnel } | 设置端口的VLAN模式 | switchport access vlan vid | 设置Access、dot1q-tunnel端口的Access VLAN | switchport hybrid allowed vlan (all | vlan-list | add add-vlan-list | remove remove-vlan-list) | 设置Hybrid端口允许通过的VLAN:all,允许所有VLAN通过; vlan-list,允许通过的VLAN,直接覆盖原有配置;add add-vlan-list,在原有允许VLAN基础上增加允许VLAN;remove remove-vlan-list,在原有允许VLAN基础上删除允许VLAN | switchport hybrid untagged vlan (all | vlan-list | add add-vlan-list | remove remove-vlan-list) | 设置Hybrid端口允许通过的Untagged VLAN(Tagged变Untagged):all,允许所有VLAN通过;vlan-list,允许通过的VLAN,直接覆盖原有配置;add add-vlan-list,在原有允许VLAN基础上增加允许VLAN;remove remove-vlan-list,在原有允许VLAN基础上删除允许VLAN | switchport trunk allowed vlan (all | vlan-list | add add-vlan-list | remove remove-vlan-list) | 设置Trunk端口允许通过的VLAN: all,允许所有VLAN通过;vlan-list,允许通过的VLAN,直接覆盖原有配置;add add-vlan-list,在原有允许VLAN基础上增加允许VLAN;remove remove-vlan-list,在原有允许VLAN基础上删除允许VLAN | switchport native vlan vid | 设置Trunk、Hybrid端口的Native VLAN | switchport vlan mapping inner-vid add-outer outer-vid | 设置[hybrid] dot1q-tunnel模式下端口的基于内层VLAN的外层VLAN映射。 | switchport vlan mapping eth-type |
|