CCIE SP—MPLS L2VPN EVC & QinQ

什么是EVC:

1、Ethernet Virtual Circuit 是一种新的CLI结构,主要针对与以太接口。
2、EVC支持在7600上,而且IOS版本至少为12.2(33)SRB。
3、EVC仅仅支持在ES20和SIP400这两种线卡上。
4、新的Features将仅被EVC支持,如Selective QinQ 和 Double tag 传送。

EVC CLI命令模型:

interface <type><slot/port>
service instance <id> ethernet <evc-name> (ID 是端口的范围, evc-name是全局唯一的)
<match criteria commands>
—VLAN tags, MAC, CoS, Ether type
<rewrite commands>
—VLAN tags pop/push/translation
<forwarding commands>
—L2 P2P or Multipoint Bridging
<feature commands>
—QoS, ACL, etc


service instance <id> ethernet <evc-name>
1、ES20一个端口最大可标识8K个用户,整个板卡最大可标识16K个用户。
但是每个Bridge-domain只支持120个instance实例,而且在ES20 20*1 G的线卡中,每10个端口上每个Bridge-domain仅支持60个instance实例。

2、所谓instance实例,可以代表一种业务,如PPPOE、Lan或IPTV等。

<match criteria commands>

匹配vlan标记,可以分以下4种:
1、匹配选择单层标签
encapsulation dot1q {any | “<vlan-id>[,<vlan-id>[-<vlain-id>]]”}

2、匹配选择双层标签
encapsulation dot1q <vlan-id> second-dot1q {any | “<vlan-id>[,<vlan-id>[-<vlain-id>]]”}
第一个vlan标签必须是固定的数,不能是一个范围,这个标签是下接交换机打的第二层标签(可以说是下接交换机的全局vlan)。
第二个vlan标签可以使“any”,可以是一个范围,也可以是多个点,这层标签是底层标签,也就是DSLAM打得标签。
如果数据包的标签超过2层,那么设备只查找2层。

3、匹配所有标签
encapsulation default
匹配所有有标签或者没标签的,这些数据没有被其他指定的instances实例所匹配。

4、匹配无标签
encapsulation untagged
匹配无标签数据帧,例如native vlan。

在匹配的过程中,EVC支持Non-Exact匹配,例如“encapsulation dot1q 10”那么所有首层标签为10的数据都匹配。
在一个端口下,EVC也支持Longest tag匹配,现匹配双层标签,然后匹配单层标签,如下图所示:

<rewrite commands>
选择完标签后,就是动作了,rewrite就是动作,是否弹出就在这里定义了。动作主要分3大类:
1、PoP 弹出标签
Router(config-if-srv)#rewrite ingress tag pop ?
1  Pop the outermost tag    >>> 弹出1层标签
2  Pop two outermost tags   >>> 弹出2层标签

2、Ingress 压入标签
Router(config-if-srv)#rewrite ingress tag pop ?
1  Pop the outermost tag
2  Pop two outermost tags

3、传送标签
Router(config-if-srv)#rewrite ingress tag translate ?
1-to-1  Translate 1-to-1
1-to-2  Translate 1-to-2
2-to-1  Translate 2-to-1
2-to-2  Translate 2-to-2

Router(config-if-srv)#rewrite ingress tag translate 2-to-2 ?
dot1ad  Dot1ad vlan tag
dot1q   Translate ethertype of dot1q

Router(config-if-srv)#$ress tag translate 2-to-2 dot1q 1 second-dot1q ?
<1-4094>  VLAN id
这种传送有问题,就是只能传送具体的,不能传送范围,所以在透传双层标签时不采用这种方法。

注意:不论是弹出还是压入都需要在后面打上symmetric,这表明在流量进入时可能pop出一个标签,但流量回来后,会自动ingress一个标签。

分着写pop和ingress是不正确的。如以下写法是错误的
service instance 3 ethernet
encapsulation dot1q 10
rewrite ingress tag pop 1
rewrite egress tag push dot1q 10

<forwarding commands>
这里包括了L2 P2P 或者 Multipoint Bridging
Router(config-if-srv)#bridge-domain 10 split-horizon
这里的10代表是全局vlan,所以一台设备上最多支持4k个domain。
split-horizon代表domain 10下的实例是不能通信的,如果需要通信,no掉水平分割就可以了。

<feature commands>
在讨论的案例中暂时没有涉及到QOS的东西,所以暂时不考虑。

EVC/EFP 转发模型:

EFP – Ethernet Flow Point
EVC – Ethernet Virtual Circuit
关于SWIDB的定义,其实类似与子接口,详细的说明可以到这里去查看。

由于关于EVC映射的类型有多种,所以就存在多种不同的配置:

P2P local connect
P2P xconnect
MP local bridging
MP local bridging + xconnect
MP local bridging + xconnect + L3 termination
L3 termination

一篇文章讲不了这么多,所以结合下列实例说明映射种类,下面的实例中可能只包含上面说到的几种。

应用EVC框架的简单配置实例:

拓扑说明:

1、DSLAM下联了众多业务,其中PPPOE、小区LAN业务,需要走BAS SE800;IPTV和NGN业务需要走NGN网。
2、在DSLAM这个层次,对下面的业务已经打了一层标签,也就是Dot1Q,如上所示,vlan3、vlan4等,是DSLAM的全局VLAN。
额外说明DSLAM针对PPPOE的工作过程:
———————————————————————————-
1. 客户拨号,封装PPPOE,到达modem后,把数据帧转成ATM信源,此工作在modem上完成,从modem出去后就是ATM信源模式了。
2. 等信元到达DSLAM(2层交换功能,可看成为SW)后,由DSLAM把信源转换为数据帧,出DSLAM后就是IP数据网了。在转换数据帧时,DSLAM可分为2种类型,一种是转换在用户板来做,另一种是在上行板来做。

用户板
当从电话线中以信元的方式传送到DSLAM时,DSLAM直接把信元转换成数据帧,出DSLAM后,就进入IP数据网。

上行板
当从电话线中以信元的方式传送到DSLAM时,DSLAM不直接转换,而是把信元转到相应的芯片上处理-转化,然后出DSLAM进承载网。这个过程可以看成两个router在工作,一个是LAC接入router,跑ATM信元封装,然后从LAC以ATM传输到上行Router,也就是LNS,由LNS来做转换(信元到数据帧)。

现在一台DSLAM的客户接入量大约为1150个左右,接入类型类似RJ21那种一根线有多个口(多个用户在一根线上,在DSLAM上的客户包括了所有常话客户,如果需要变更是否开通ADSL,只需在DSLAM把相应的端口打开就可以了)。
———————————————————————————-
3、在SW1和SW2这个层面上,打上第二层标签,也就是常说的QinQ隧道,如图所示vlan11和vlan12,这些vlan是SW1的全局VLAN。
4、PPPOE 1、2、3是一个公司下不同地段的分公司,他们之间需要互通,但不会通过BAS上网。

在7609上,需要做的就是把数据业务分开处理,一部分走BAS,一部分走NGN。

7600相关配置:

下联SW1的端口配置:
——————————–
interface gig 1/1/1
service instance 10 Ethernet <—“10”代表PPPOE
encapsulation dot1q 11 second-dot1q 3 – 4 <—匹配外层标签11,内层标签3 – 4,也就是PPPOE1,2
bridge-domain 50 <—“50” 与全局vlan对应,所以一台设备上只支持4096个domain;默认情况下,split-horizon是关闭的,所以同域的不同instance实例可以互访,这样就满足上面4的要求了。
!
service instance 11 Ethernet <—“20”也代表PPPOE
encapsulation dot1q 12, second-dot1q 8 <—匹配外层标签12,内层标签8,也就是PPPOE3
bridge-domain 50
!
service instance 12 Ethernet <—“12”代表LAN
encapsulation dot1q 11, second-dot1q 6 <—匹配外层标签11,内层标签6
rewrite ingress tag pop 1 symmetric<—弹出第一层标签
bridge-domain 11 split-horizon <—这条命有打签的动作,之前不是已经弹出1个标签了么,这时就得再加上一个标签然后传出去,用这种方法做到透传双层标签,因此在给本设备划分domain时需要对SW1这个层面的vlan分配情况进行调研,并且也得考虑其他实例domain的划分。在这里,domain只能设置为11。
!
service instance 13 Ethernet   <— “13”代表IPTV
encapsulation dot1q 11, second-dot1q 8
rewrite ingress tag pop 2 symmetric   <— 为了终结双层标签,这时要弹出2层标签
bridge-domain 60 split-horizon <— 与全局vlan60匹配,用SVI来终结,由于考虑到回包的问题,所以内外层标签必须是固定的,而不能是一个范围
!
service instance 14 Ethernet   <— “14”代表NGN
encapsulation dot1q 11, second-dot1q 9
rewrite ingress tag pop 2 symmetric   <— 弹出双层标签
bridge-domain 61 split-horizon
!
inter vlan 50   <— DSLAM下3个分公司互访
!
inter vlan 11   <— Lan业务,直接透传到BAS上
!
inter vlan 60   <— 终结IPTV,把此vlan地址路由出去
ip add 11.11.11.1 255.255.255.0
!
inter vlan 61   <— 终结NGN业务
ip add 12.12.12.1 255.255.255.0

上联BAS的端口配置:
——————————–
interface gig 1/1/10
switchport
switchport trunk allowed vlan 11
switchport mode trunk

上联NGN的端口配置:
——————————–
interface gig 1/1/9
no sw
ip add 33.33.33.1 255.255.255.0 <—直接走3层路由

注意:如果终结双层标签后,需要用到VPLS或Eompls,只需在终结vlan下配置xconnect就可以,其他配置可以参考之前的文档。

anyShare分享到:
你可以留言,或者trackback 从你的网站

6 Responses to “CCIE SP—MPLS L2VPN EVC & QinQ”

  1. Johnson说道:

    很不錯的原創文章! 對於學習MPLS的人來說很有用處!

  2. rtytry说道:

    Cisco EVC介绍的很好,但分类有点问题,似乎不该放到L2VPN内。service instance的三种转发动作:connect、xconnect、bridge-domain,Connetc是本地互连,并且可以支持IWF;xconnect 相当于点到点EOMPLS;加入Bridge-domain的话,是可以关联VLAN-Interface做三层终结的,当然入PW也可以,甚至可以实现PW into VRF。图一里显示的很准确。

  3. frank说道:

    呵呵~多谢rtytry的提议!
    EVC是Cisco提出的一种新的框架,从功能上看感觉是要取代BASE的产品,但它现在还不能提供认证功能(没深入研究过,ISP也不会直接拿76+ES20取代BASE)。虽然它在功能及feature上还在不断完善,但从EVC的版本更新上来看,之后肯定会更强大。

    至于它放到L2VPN是否合适,讨论起来就没什么意义了,现在EVC跟灵活QinQ用的很广。所以直接扔到L2VPN了。

  4. rtytry说道:

    EVC是MEF的标准,可以看下,cisco只是把抽象的东西作成了自己的一套命令行而已.C76的这套EVC架构,首先实现了VLAN的Local significant,你的文章里也写的本来76的VLAN 是global的;其次,这个东西不是取代BASE的,个人感觉是用在METRO ethernet的,用于个人的multi-play和企业业务.

  5. h-vpls说道:

    呵呵,看了你的博客,我真的感叹你的技术的厉害,很感谢你无私的奉献。

  6. garthdawn说道:

    非常感谢!敬佩你的技术和分享精神!

留言哦