请选择 进入手机版 | 继续访问电脑版

设为首页 收藏本站
思科服务支持社区 点击关注
思科服务支持社区

  
 找回密码
 立即注册

扫一扫,访问微社区

搜索
热搜: 邮件服务器
查看: 1542|回复: 2

【原创】How to sniffer Dummy VLAN on L2VPN ?

[复制链接]
发表于 2018-4-25 16:55:32 | 显示全部楼层 |阅读模式
什么是dummy vlan?

由于EVC平台在入端口可以通过rewrite命令剥离VLAN tag,这样导致在PW中没有任何tag,在Type 4时会有问题,两边VLAN的QOS无法传递给对端,所以就有了这个所谓的dummy vlan,它不是一个真正的VLAN,他只是传递一些QOS字段并且占一个位。那么dummy VLAN长什么样?其实大鹏之前的文章里已经详细介绍了EVC的各种行为,我这里只是介绍抓dummy VLAN的“心路历程”以及dummy VLAN的“样子”~

测试Topology:
起始测试环境为VPLS BGP auto discovery + LDP Sig,在76的入向抓包


测试步骤

1. 默认Type 5,在CE1 ping 带cos 5,ASR9k-1在AC上不配置rewrite,透传的VLAN是否带着802.1p?根据抓包信息,正常带着802.1p,详细看“bgp-ldp-vlan-cos5.pcapng”;另外有个疑问,既然type 5支持VLAN透传,为什么还要Type 4?答案请看文章结束部分


2. 通过下面方式,把VPLS从Type 5 改成Type 4,抓包确认802.1p
  1. l2vpn
  2. bridge group
  3.   bridge-domain
  4.    transport-mode vlan passthrough
复制代码
在不配置rewrite时,跟Type 5一样,没有添加dummy VLAN,详细看“bgp-ldp-vlan-cos5-type4.pcapng”


3. 加上rewrite,看能否看到这个dummy vlan
根据抓包信息,也不行,仍然没有dummy vlan,详细看”bgp-ldp-vlan-cos5-type4-rewrite.pcapng”,不是说加了rewrite和Type 4,就会加上dummy VLAN tag么?结果为什么没有?


4. 经过查找,发现自己忽略了一个问题,这个问题我以前总结过。。。看来什么不用都会忘记呀,如果感兴趣可以去看我以前的帖子“【原创】EoMPLS between ASR9k and ME3750”:
In case of Type 4 pseudowire (Ethernet VLAN), if you strip off the tag with rewrite you’ll
be left without any tags. To facilitate this we add so-called ‘dummy tag‘.
‘transport-mode vlan passthrough‘ is special version of Type 4 PW, which doesn’t insert dummy tag. So, in this case in order to keep original dot1q tag, we should not use ‘rewrite’ command.

5. 好吧,加了passthrough的Type 4比较特殊,配置后是不会加dummy VLAN的,那不加passthrough试试?!另外听说martini的可以,那就先试试martini的吧,很遗憾,改成martini后,尝试下还是不行,没有dummy VLAN:
  1. RP/0/RSP0/CPU0:ASR9001-1(config-if)#do sh run l2vpn
  2. Mon Dec  2 11:53:22.423 UTC
  3. l2vpn
  4. router-id 1.1.1.1
  5. bridge group test
  6.   bridge-domain vpls1
  7.    transport-mode vlan passthrough
  8.    interface GigabitEthernet0/0/0/0.20
  9.    !
  10.    vfi test-v
  11.     neighbor 3.3.3.3 pw-id 100
  12.     !
  13.    !
  14.   !
复制代码

6. 不加“passthrough”试试,root cause跳出来了。。。其实文档里有写的,只是没仔细看
VPLS只支持passthrough的Type 4,所以在IOX VPLS的场景下,是不会加这个dummy VLAN tag的
  1. RP/0/RSP0/CPU0:ASR9001-1(config-l2vpn-bg-bd-vfi-pw)#show configuration
  2. Mon Dec  2 11:56:14.071 UTC
  3. Building configuration...
  4. !! IOS XR Configuration 5.1.0
  5. l2vpn
  6. pw-class test
  7.   encapsulation mpls
  8.    transport-mode vlan   <<<
  9.   !
  10. !
  11. bridge group test
  12.   bridge-domain vpls1
  13.    no transport-mode
  14.    vfi test-v
  15.     neighbor 3.3.3.3 pw-id 100
  16.      pw-class test
  17.     !
  18.    !
  19.   !
  20. !
  21. !
  22. end

  23. RP/0/RSP0/CPU0:ASR9001-1(config-l2vpn-bg-bd-vfi-pw)#commit
  24. Mon Dec  2 11:56:16.766 UTC

  25. % Failed to commit one or more configuration items during a pseudo-atomic operation. All changes made have been reverted. Please issue 'show configuration failed' from this session to view the errors
  26. RP/0/RSP0/CPU0:ASR9001-1(config-l2vpn-bg-bd-vfi-pw)#show configuration failed
  27. Mon Dec  2 11:56:20.391 UTC
  28. !! SEMANTIC ERRORS: This configuration was rejected by
  29. !! the system due to semantic errors. The individual
  30. !! errors with each failed configuration command can be
  31. !! found below.

  32. l2vpn
  33. bridge group test
  34.   bridge-domain vpls1
  35.    vfi test-v
  36.     neighbor 3.3.3.3 pw-id 100
  37.      pw-class test
  38. !!% Invalid argument: Only ethernet/vlan passthrough transport mode is supported in VPLS    <<<
  39.     !
  40.    !
  41.   !
  42. !
  43. !
复制代码

继续抓包


由于时间关系,当时没有改成EoMPLS,所以暂时放弃了,以上实验发生在2013-12-2日
时间匆匆,一转眼到了2014-12-25日,这回正好处理9k L2vpn load balance的问题,乱序可以通过CW(control word)来解决,那么如果有dummy VLAN是不是也可以解决?没有见过dummy VLAN的包,所以毕竟不知道dummy VLAN到底插在什么位置,既然是路由器自己加的,是否可以插在2层头前,最底层label的后面,那么就可以代替CW解决乱序了?想知道!

看来是躲不了了,继续寻找dummy VLAN,拓扑结构类似,地址都一样,只不过设备和端口变了,起始测试环境为EoMPLS+Type 5,两边VLAN不一致,9k-1是VLAN20,9k-2是VLAN10,抓包在9k-1的出口。配好FAT label和CW,抓包,发现能抓到 FAT label和CW(话说label多了看着比较爽呀,如果再加几个VLAN,那么就更好看了~嘿嘿),但仍然没有Dummy VLAN,因为VPLS默认是Type 5,详细配置看“eompls-config.cfg”,详细抓包看“eompls-fat-cw.pcapng”

  1.   Flow Label flags configured (Tx=1,Rx=1), negotiated (Tx=1,Rx=1) <<<
  2.     PW Status TLV in use
  3.       MPLS         Local                          Remote                        
  4.       ------------ ------------------------------ -----------------------------
  5.       Label        16013                          16012                        
  6.       Group ID     0xe000100                      0x10000600                    
  7.       Interface    TenGigE0/5/0/1.20              TenGigE0/6/1/1.1              
  8.       MTU          1500                           1500                          
  9.       Control word enabled                        enabled   <<<                  
  10.       PW type      Ethernet                       Ethernet  <<<                 
  11.       VCCV CV type 0x2                            0x2                           
  12.                    (LSP ping verification)        (LSP ping verification)      
  13.       VCCV CC type 0x7                            0x7                           
  14.                    (control word)                 (control word)               
  15.                    (router alert label)           (router alert label)         
  16.                    (TTL expiry)                   (TTL expiry)                  
  17.       ------------ ------------------------------ -----------------------------
复制代码

7. 改Type 4,在pw-class里加如下信息,重新建立,清CE ARP,抓包,ping测试,不同tos ping~~哦了,这回终于抓到了dummy VLAN!可惜的是这个VLAN不在L2 Header和底层Label之间,而是跟原始VLAN同一个地方,所以不能解决乱序问题,但dummy VLAN会传递优先级,详细看“eompls-fat-cw-dummy.pcapng”


展开图:

  1. l2vpn
  2. pw-class CW
  3.   encapsulation mpls
  4.    transport-mode vlan <<<<
  5.   !
  6. !
  7. !
  8. RP/0/RSP0/CPU0:ASR9010-1#sh l2vpn xconnect detail
  9. Wed Dec 24 12:44:45.275 UTC

  10. Group VLAN20, XC V20, state is up; Interworking none
  11.   AC: TenGigE0/5/0/1.20, state is up
  12.     Type VLAN; Num Ranges: 1
  13.     VLAN ranges: [20, 20]
  14.     MTU 1500; XC ID 0x1c40002; interworking none
  15.     Statistics:
  16.       packets: received 45, sent 43
  17.       bytes: received 5020, sent 4750
  18.       drops: illegal VLAN 0, illegal length 0
  19.   PW: neighbor 3.3.3.3, PW ID 1, state is up ( established )
  20.     PW class CW, XC ID 0xc0000003
  21.     Encapsulation MPLS, protocol LDP
  22.     Source address 1.1.1.1
  23.     PW type Ethernet VLAN, control word enabled, interworking none
  24.     PW backup disable delay 0 sec
  25.     Sequencing not set
  26.     Flow Label flags configured (Tx=1,Rx=1), negotiated (Tx=1,Rx=1)

  27.     PW Status TLV in use
  28.       MPLS         Local                          Remote                        
  29.       ------------ ------------------------------ -----------------------------
  30.       Label        16013                          16012                        
  31.       Group ID     0xe000100                      0x10000600                    
  32.       Interface    TenGigE0/5/0/1.20              TenGigE0/6/1/1.1              
  33.       MTU          1500                           1500                          
  34.       Control word enabled                        enabled                       
  35.       PW type      Ethernet VLAN                  Ethernet VLAN   <<<<<
  36.       VCCV CV type 0x2                            0x2                           
  37.                    (LSP ping verification)        (LSP ping verification)      
  38.       VCCV CC type 0x7                            0x7                           
  39.                    (control word)                 (control word)               
  40.                    (router alert label)           (router alert label)         
  41.                    (TTL expiry)                   (TTL expiry)                  
  42.       ------------ ------------------------------ -----------------------------
  43.     Incoming Status (PW Status TLV):
  44.       Status code: 0x0 (Up) in Notification message
  45.     Outgoing Status (PW Status TLV):
  46.       Status code: 0x0 (Up) in Notification message
  47.     MIB cpwVcIndex: 3221225475
  48.     Create time: 24/12/2014 12:42:15 (00:02:28 ago)
  49.     Last time status changed: 24/12/2014 12:43:20 (00:01:23 ago)
  50.     Statistics:
  51.       packets: received 43, sent 45
  52.       bytes: received 4750, sent 5020
复制代码

8. 为了验证传递优先级,在9k-2的出口ten0/6/1/1.1抓包,看看是否已经转换成VLAN10,并携带正确的优先级,详细看抓包文件“eompls-9k-2-out-vlan-pri.pcapng”


9. Ok,终于做完了,不过还有两个小问题,dummy VLAN传递802.1p,使两端的QOS完整,那么在IOX的VPLS中,不支持dummy VLAN,那如何保证客户自己的QOS属性?其实很简单,直接用rewrite 1to1置换就可以了;还有一个问题,就是在刚测试时提到的,既然Type 4和 Type 5都支持传递VLAN,为什么还需要Type 4?因为Type 5只能在两端VLAN相同的情况下工作,但实际不可能保证两端VLAN一致,所以肯定需要rewrite,那么这时只能通过Type 4来传递VLAN了

各平台下默认VC Type:
Type of Service
CRS-1 VC Type
C12000 VC Type
76000 VC Type
ASR9000 VC Type
VPWS—Port mode
Type 5
Type 5
Type 5
Type 5
VPWS—Vlan mode
Type 4
Type 4
Type 5
Type 5
VPLS—Port mode
Type 5
Type 5
Type 5
Type 5
VPLS—Vlan mode
Type 5
Type 5
Type 5
Type 5

  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5
平均得分5 (1 评价)
发表于 2018-4-25 17:23:23 | 显示全部楼层
太复杂了,看不懂啊
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5
平均得分3 (1 评价)
 楼主| 发表于 2018-4-25 22:11:17 | 显示全部楼层
就是在l2vpn的场景下,确认什么是dummy vlan,什么时候会用到dummy vlan,整个文章主要cover找dummy vlan的整个过程,原有配置我没有贴,读者需要先了解BGP+BGP的VPLS部署,然后再看这个,会相对容易的多
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5
平均得分3 (1 评价)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver | 思科社区  

GMT+8, 2018-9-23 01:46 , Processed in 0.085620 second(s), 34 queries .

京ICP备09041801号-187

版权所有 :copyright:1992-2019 思科系统  重要声明 | 保密声明 | 隐私权政策 | 商标 |

快速回复 返回顶部 返回列表