介绍QinQ的基本知识、配置方法和配置实例。
介绍QinQ的定义、目的和受益。
QinQ(802.1Q-in-802.1Q)技术是一项扩展VLAN空间的技术,通过在802.1Q标签报文的基础上再增加一层802.1Q的Tag来达到扩展VLAN空间的功能。由于报文有两层802.1QTag(一层公网Tag,一层私网Tag),即802.1Q-in-802.1Q,所以称之为QinQ协议。
随着以太网技术在运营商网络中的大量部署(即城域以太网),利用802.1Q VLAN对用户进行隔离和标识受到很大限制。因为IEEE802.1Q中定义的VLANTag域只有12个比特,仅能表示4096个VLAN,但在实际应用中,尤其是在城域以太网中,需要大量的VLAN来隔离用户,4096个VLAN远远不能满足需求,于是QinQ技术应运而生。
QinQ最初主要是为拓展VLAN的数量空间而产生的。它是通过在原有的802.1Q报文的基础上增加一层802.1Q标签来实现的,使得VLAN空间扩展到4094×4094(0和4095为协议保留取值),满足了网络对VLAN数量的需求。同时,在公网的传输过程中,设备只根据外层VLAN Tag转发报文,而用户的私网VLANTag将被当作报文的数据部分进行传输。
随着城域以太网的发展以及运营商精细化运作的要求,QinQ的双层标签又有了进一步的使用场景。它的内外层标签可以代表不同的信息,如内层标签代表用户,外层标签代表业务。另外,QinQ报文带着两层Tag穿越运营商网络,内层Tag透明传送,也是一种简单、实用的VPN技术。因此它又可以作为核心MPLSVPN在城域以太网VPN的延伸,最终形成端到端的VPN技术。
介绍QinQ的实现原理。
QinQ是指在802.1Q VLAN的基础上增加一层802.1Q VLAN标签,从而拓展VLAN的使用空间。在公网的传输过程中,设备只根据外层VLANTag转发报文,并根据报文的外层VLAN Tag进行MAC地址学习,而用户的私网VLAN Tag将被当作报文的数据部分进行传输。
如图5-1所示,用户网络A和B的私网VLAN分别为VLAN1~10和VLAN 1~20。运营商为用户网络A和B分配的公网VLAN分别为VLAN 3和VLAN 4。当用户网络A和B中带VLANTag的报文进入运营商网络时,报文外面就会被分别封装上VLAN 3和VLAN 4的VLAN Tag。这样,来自不同用户网络的报文在运营商网络中传输时被完全分开,即使这些用户网络各自的VLAN范围存在重叠,在运营商网络中传输时也不会产生冲突。当报文穿过运营商网络,到达运营商网络另一侧PE设备后,报文会被剥离运营商网络为其添加的公网VLANTag,然后再传送给用户网络的CE设备。
QinQ报文有固定的格式,就是在802.1Q的标签之上再打一层802.1Q标签,即QinQ可以多层叠加。
QinQ报文比802.1Q报文多四个字节,因此建议用户在组网时适当增加运营商网络中各接口的最大帧长(至少为1504字节)。目前交换机缺省支持的最大帧长超过1504字节,不需要手动配置。有关接口最大帧长的相关配置,请参见“配置接口允许通过的超大帧长度”。
QinQ的实现方式可分为以下两种:
通过使用灵活QinQ技术,在能够隔离运营商网络和用户网络的同时,又能够提供丰富的业务特性和更加灵活的组网能力。
灵活QinQ功能是对基本QinQ功能的扩展,它比基本QinQ的功能更灵活,二者之间的主要区别是:
基本QinQ:对进入二层QinQ接口的所有帧都加上相同的外层Tag。
灵活QinQ:根据不同的内层Tag或符合流分类规则的帧,加上不同的外层Tag,对于用户VLAN的划分更加细致。
标签协议标识TPID(Tag Protocol Identifier)是VLAN Tag中的一个字段,表示VLAN Tag的协议类型,IEEE 802.1Q协议规定该字段的取值为0x8100。
IEEE802.1Q协议定义的以太网帧的VLAN Tag结构如图5-3所示。802.1Q Tag位于SA(Source Address)和Length/Type之间。设备可以根据TPID值来识别报文是否携带对应的VLAN Tag,当接口收到报文时,根据设备的TPID值与报文相应的字段进行比较,如果二者一致,则表示报文中携带相应的VLANTag,如果不一致,则表示报文未携带VLAN Tag。
不同的制造商设备互连,当配置了QinQ功能时,各个制造商设备支持的内层TPID值均为0x8100,但是对于外层TPID值,各个制造商设备所使用的值可能不相同。为了实现不同制造商的设备兼容,用户可以通过修改TPID值,使发送到公网中的QinQ报文携带的TPID值与其他制造商的相同,从而实现与其他制造商的设备互通。
介绍基本QinQ的应用场景。
如图5-4所示,某数据中心中,租户1和租户2位于不同的地理位置,各个租户分别和核心/骨干网中的SwitchA、SwitchB相连,为了保证各业务之间的安全性和节省核心/骨干网VLANID,要求两分支流量通过核心/骨干网透明传输,相同租户之间互通,不同租户之间相互隔离。可以通过配置基本QinQ来实现上述需求,具体部署如下。
租户1和租户2外层VLAN规划如表5-1所示:
在SwitchA和SwitchB上通过如下思路配置QinQ二层隧道功能,使得相同租户之间可以互通,不同租户之间相互隔离。
在SwitchA上,对于进入接口Interface1的报文封装外层VLAN10,对于进入接口Interface2的报文封装外层VLAN20。
在SwitchB上,对于进入接口Interface1的报文封装外层VLAN10,对于进入接口Interface2的报文封装外层VLAN20。
SwitchA上的接口Interface3和SwitchB上的接口Interface3允许VLAN10和VLAN20的报文通过。
如图5-5所示,某数据中心中,租户拥有办公业务服务器和生产业务服务器,其中VLAN10~VLAN30承载生产业务,VLAN31~VLAN50承载办公业务,租户位于不同的地理位置A地和B地,并且通过核心/骨干网中的SwitchA、SwitchB相连。为了保证各业务之间的安全性和节省核心/骨干网VLAN ID,要求两地的流量通过核心/骨干网透明传输,相同业务之间可以互通,不同业务之间相互隔离。可以通过在SwitchA和SwitchB上配置灵活QinQ来实现上述需求,具体部署如下。
租户外层VLAN规划如表5-2所示:
在SwitchA和SwitchB上通过如下思路配置灵活QinQ,使得相同业务之间可以互通,不同业务之间相互隔离。
在SwitchA上,对于进入接口Interface1的VLAN为VLAN10~VLAN30的报文封装外层VLAN100,对于进入接口Interface1的VLAN为VLAN31~VLAN50的报文封装外层VLAN200。
在SwitchB上,对于进入接口Interface1的VLAN为VLAN10~VLAN30的报文封装外层VLAN100,对于进入接口Interface1的VLAN为VLAN31~VLAN50的报文封装外层VLAN200。
SwitchA和SwitchB上的接口Interface2允许VLAN100和VLAN200的报文通过。
介绍QINQ的配置注意事项。
无需其他网元配合。
QINQ特性是交换机的基本特性,无需获得License许可即可应用此功能。
介绍QinQ的详细的配置过程。
配置基本QinQ功能后,对于从接口进来的报文,加上一层公网Tag,实现用户报文在公网内转发。
为了使私网与公网有效分离,并最大限度的节省VLAN资源。在设备提供的QinQ接口上,配置二层802.1QTag。内层Tag用于内部网络,外层Tag用于外部网络,从而最多可以提供4094×4094个VLAN,并满足私网不同用户之间相同VLAN可以透明传输。
缺省情况下,接口的类型为Access。当接口类型为dot1q-tunnel时,该接口不支持二层组播功能。
设备不支持通过dot1q-tunnel类型的接口接入到TRILL网络。
缺省情况下,所有接口的缺省VLAN ID为1。
缺省情况下,接口类型是Access。
叠加后的外层VLAN必须是设备上已经存在的VLAN,叠加前的VLAN可以不创建。
如果配置三条以上指定VLAN范围段的port vlan-stacking,且配置会引起至少两次范围段合并,则需要每条命令都commit,否则可能导致流量丢包 。例如,分别配置port vlan-stackingvlan 30 to 60 stack-vlan 100、port vlan-stacking vlan 20 to 30 stack-vlan 100、port vlan-stacking vlan 60 to 70 stack-vlan 100,会先后引起20~60和20~70两次范围段合并,此时就需要每条命令都commit。
配置举例结合组网需求、配置思路来了解实际网络中QinQ的应用场景,并提供配置文件。
配置举例中出现的接口类型仅作示例,实际使用中请以设备上存在的接口类型为准。
如图5-6所示,某数据中心的租户1位于不同的地理位置,租户2位于不同的地理位置。SwitchA和SwitchB为数据中心的边缘设备,通过核心/骨干网连接。
采用如下的思路配置QinQ:
在SwitchA和SwitchB上均创建VLAN100和VLAN200,配置连接租户的接口为QinQ类型,并分别加入VLAN。实现不同租户添加不同的外层VLAN Tag。
配置SwitchA和SwitchB上连接核心/骨干网的接口加入相应VLAN,实现允许VLAN100和200的报文通过。
# 在SwitchA上创建VLAN100和VLAN200
# 在SwitchB上创建VLAN100和VLAN200
# 在SwitchA上配置接口10GE1/0/1、10GE1/0/2的类型为QinQ,10GE1/0/1的外层tag为VLAN100,10GE1/0/2的外层tag为VLAN200。SwitchB的配置与SwitchA类似,不再赘述。
# 在SwitchA上配置接口10GE1/0/3加入VLAN100和VLAN200。SwitchB的配置与SwitchA类似,不再赘述。
从数据中心一处租户1内任意VLAN的一台Server ping另外一处租户1同一VLAN内的Server,如果可以ping通则表示租户1内部可以互相通信。
从数据中心一处租户2内任意VLAN的一台Server ping另外一处租户2同一VLAN内的Server,如果可以ping通则表示租户2内部可以互相通信。
从数据中心一处租户1内任意VLAN的一台Server ping另外一处租户2同一VLAN内的Server,不能ping通,则表示租户之间是互相隔离的。
SwitchA的配置文件
Switch的配置文件
如图5-7所示,某数据中心中,租户拥有办公业务服务器和生产业务服务器,其中VLAN10~VLAN30承载生产业务,VLAN31~VLAN50承载办公业务,租户位于不同的地理位置A地和B地,并且通过核心/骨干网中的SwitchA、SwitchB相连。为了保证各业务之间的安全性和节省核心/骨干网VLAN ID,要求两地的流量通过核心/骨干网透明传输,相同业务之间可以互通,不同业务之间相互隔离。
# 在SwitchA上创建VLAN100和VLAN200
# 在SwitchB上创建VLAN100和VLAN200
# 配置SwitchA的接口10GE1/0/1。
# 配置SwitchB的接口10GE1/0/1。
# 在SwitchA上配置接口10GE1/0/2加入VLAN100和VLAN200。SwitchB的配置与SwitchA类似,不再赘述。
从数据中心A地租户VLAN10~VLAN30的一台生产业务Server ping B地租户同一VLAN内的生产业务Server,可以ping通则表示租户内部生产业务服务器可以互相通信。
从数据中心A地租户VLAN31~VLAN50的一台办公业务Server ping B地租户同一VLAN内的办公业务Server,可以ping通则表示租户内部办公业务服务器可以互相通信。
从数据中心A地租户VLAN10~VLAN30的一台生产业务Server pingB地租户内VLAN31~VLAN50的办公业务Server,不能ping通,则表示不同业务之间是互相隔离的。
SwitchA的配置文件
SwitchB的配置文件
联系客服