Jump to content
Калькуляторы

QoS. Изменение поля dscp с помощью policy-map на Catalyst 6500

Всем доброго времени суток.

Сразу оговорюсь, что я начинающий сетевик и еще только учусь и мне приятно будет пообщаться с умными знающими людьми.

 

При настройке QoS на оборудовании Catalyst 6500 столкнулась с такой проблемой: при применении policy-map, который ловит нужные пакеты по  IP Source/IP Destination и делает ремапинг поля DSCP (set dscp ef), в направлении input на SVI , в действительности получается, что поле DSCP при этом НЕ меняется, а поле EXP в заголовке MPLS меняется согласно mls qos maps. При этом счетчики отловленных пакетов по policy-map растут (использовала команды sh policy-map interface vl87 и sh mls qos ip vl87). То, что поле DSCP не перезаписывается подтверждено дампом (см. в самом конце). 

Также приложен файл со схемой и некоторыми комментариями для визуалов.

Может, кто сталкивался, помогите пожалуйста.

Заранее благодарю)))

 

Опишу тему более подробно, для тех кто осилит много букв и конфигов))) 

 

Настройка физ. порта:

!

interface GigabitEthernet3/3
 switchport
 switchport trunk encapsulation dot1q
 switchport trunk allowed vlan 87
 switchport mode trunk
<---->
 wrr-queue random-detect min-threshold 3 70 70 70 70 70 70 70 100 
 wrr-queue cos-map 1 8 0 
 wrr-queue cos-map 2 7 1 
 wrr-queue cos-map 2 8 2 
 wrr-queue cos-map 3 7 3 
 wrr-queue cos-map 3 8 4 
 priority-queue cos-map 1 5 6 7 
 mls qos vlan-based

 

Настройка SVI:

!

interface Vlan87
 description SKAT_users
 ip vrf forwarding SKAT
 ip address 10.120.2.1 255.255.255.0
 service-policy input test2
!

Настройка Policy Map:

Policy Map test2
    Class test2
      set dscp ef
!
Class Map match-all test2
   Match access-group name test2
!
Extended IP access list test2 
    10 permit ip host 10.120.2.2 host 10.120.1.2

!

Команды show:

!

sh ver
Cisco IOS Software, s72033_rp Software (s72033_rp-ADVENTERPRISEK9-M), Version 15.1(2)SY7, RELEASE SOFTWARE (fc4)
System image file is "sup-bootdisk:/s72033-adventerprisek9-mz.151-2.SY7.bin"
Cisco IOS Software, s72033_rp Software (s72033_rp-ADVENTERPRISEK9-M), Version 15.1(2)SY7, RELEASE SOFTWARE (fc4)
cisco WS-C6506-E (R7000) processor (revision 1.1) with 983008K/65536K bytes of memory.
!

sh module
Mod Ports Card Type                              Model              Serial No.
--- ----- -------------------------------------- ------------------ -----------
  1   24  CEF720 24 port 1000mb SFP              WS-X6724-SFP       SAL08517BHU
  3   48  48-port 10/100/1000 RJ45 EtherModule   WS-X6148A-GE-TX    SAD09050D8N
  5    5  Supervisor Engine 720 10GE (Active)    VS-S720-10G        SAD121300EY
  6    4  CEF720 4 port 10-Gigabit Ethernet      WS-X6704-10GE      SAD08290CJ7

Mod MAC addresses                       Hw    Fw           Sw           Status
--- ---------------------------------- ------ ------------ ------------ -------
  1  0012.7f51.3f64 to 0012.7f51.3f7b   2.1   12.2(14r)S5  15.1(2)SY7   Ok
  3  0013.7f2d.2b70 to 0013.7f2d.2b9f   1.0   8.4(1)       15.1(2)SY7   Ok
  5  001e.4aab.0c18 to 001e.4aab.0c1f   2.0   8.5(2)       15.1(2)SY7   Ok
  6  0011.936f.2b5c to 0011.936f.2b5f   1.5   12.2(18r)S1  15.1(2)SY7   Ok

Mod  Sub-Module                  Model              Serial       Hw     Status 
---- --------------------------- ------------------ ----------- ------- -------
  1  Centralized Forwarding Card WS-F6700-CFC       SAL085073J9  2.0    Ok
  5  Policy Feature Card 3       VS-F6K-PFC3C       SAD1214074L  1.0    Ok
  5  MSFC3 Daughterboard         VS-F6K-MSFC3       SAD121406GH  1.0    Ok
  6  Centralized Forwarding Card WS-F6700-CFC       SAL1318P93A  4.1    Ok

Mod  Online Diag Status 
---- -------------------
  1  Bypass
  3  Bypass
  5  Bypass
  6  Bypass

!

sh mls qos
  QoS is enabled globally
  Port QoS is enabled globally
  Policy marking depends on port_trust
  QoS ip packet dscp rewrite enabled globally
  QoS serial policing mode disabled globally
  Input mode for GRE Tunnel is Pipe mode
  Input mode for MPLS is Pipe mode
  QoS is vlan-based on the following interfaces:  Gi3/3  Te6/2 
  QoS Trust state is DSCP on the following interface: Te6/2 
  Vlan or Portchannel(Multi-Earl) policies supported: Yes
  Egress policies supported: Yes
  QoS 10g-only mode supported: Yes [Current mode: Off]
  Global Policy-map: ingress[]
!

sh mls qos maps 
   policed-dscp-norm-burst-map:                                  (dscp= d1d2)
     d1 :  d2 0  1  2  3  4  5  6  7  8  9 
     -------------------------------------
      0 :    00 01 02 03 04 05 06 07 08 09 
      1 :    10 11 12 13 14 15 16 17 18 19 
      2 :    20 21 22 23 24 25 26 27 28 29 
      3 :    30 31 32 33 34 35 36 37 38 39 
      4 :    40 41 42 43 44 45 46 47 48 49 
      5 :    50 51 52 53 54 55 56 57 58 59 
      6 :    60 61 62 63 

   policed-dscp-max-burst-map:                                  (dscp= d1d2)
     d1 :  d2 0  1  2  3  4  5  6  7  8  9 
     -------------------------------------
      0 :    00 01 02 03 04 05 06 07 08 09 
      1 :    10 11 12 13 14 15 16 17 18 19 
      2 :    20 21 22 23 24 25 26 27 28 29 
      3 :    30 31 32 33 34 35 36 37 38 39 
      4 :    40 41 42 43 44 45 46 47 48 49 
      5 :    50 51 52 53 54 55 56 57 58 59 
      6 :    60 61 62 63 

   dscp-cos-map:                                  (dscp= d1d2)
     d1 :  d2 0  1  2  3  4  5  6  7  8  9 
     -------------------------------------
      0 :    00 00 00 00 00 00 00 00 01 01 
      1 :    01 01 01 01 01 01 02 02 02 02 
      2 :    02 02 02 02 03 03 03 03 03 03 
      3 :    03 03 04 04 04 04 04 04 04 04 
      4 :    05 05 05 05 05 05 05 05 06 06 
      5 :    06 06 06 06 06 06 07 07 07 07 
      6 :    07 07 07 07 

   dscp-exp-map:                                  (dscp= d1d2)
     d1 :  d2 0  1  2  3  4  5  6  7  8  9 
     -------------------------------------
      0 :    00 00 00 00 00 00 00 00 01 01 
      1 :    01 01 01 01 01 01 02 02 02 02 
      2 :    02 02 02 02 03 03 03 03 03 03 
      3 :    03 03 04 04 04 04 04 04 04 04 
      4 :    05 05 05 05 05 05 05 05 06 06 
      5 :    06 06 06 06 06 06 07 07 07 07 
      6 :    07 07 07 07 


   cos-dscp-map:
         cos:   0  1  2  3  4  5  6  7 
     ------------------------------------
        dscp:   0  8 16 24 32 46 48 56 

   precedence-dscp-map:
      ipprec:   0  1  2  3  4  5  6  7 
     ------------------------------------
        dscp:   0  8 16 24 32 46 48 56 

   exp-dscp-map:
         exp:   0  1  2  3  4  5  6  7 
     ------------------------------------
        dscp:   0  8 16 24 32 46 48 56 

!

sh queueing interface g3/3
Interface GigabitEthernet3/3 queueing strategy:  Weighted Round-Robin

  Port QoS is enabled globally
  Queueing on Gi3/3: Tx Enabled Rx Enabled

Trust boundary disabled

  Port is untrusted
  Extend trust state: not trusted [COS = 0]
  Default COS is 0
    Queueing Mode In Tx direction: mode-cos
    Transmit queues [type = 1p3q8t]:
    Queue Id    Scheduling  Num of thresholds
    -----------------------------------------
       01         WRR                 08
       02         WRR                 08
       03         WRR                 08
       04         Priority            01

    WRR bandwidth ratios:  100[queue 1] 150[queue 2] 200[queue 3] 
    queue-limit ratios:     50[queue 1]  20[queue 2]  15[queue 3]  15[Pri Queue]

    queue tail-drop-thresholds
    --------------------------
    1     70[1] 100[2] 100[3] 100[4] 100[5] 100[6] 100[7] 100[8] 
    2     70[1] 100[2] 100[3] 100[4] 100[5] 100[6] 100[7] 100[8] 
    3     100[1] 100[2] 100[3] 100[4] 100[5] 100[6] 100[7] 100[8] 

    queue random-detect-min-thresholds
    ----------------------------------
      1    40[1] 70[2] 70[3] 70[4] 70[5] 70[6] 70[7] 70[8] 
      2    40[1] 70[2] 70[3] 70[4] 70[5] 70[6] 70[7] 70[8] 
      3    70[1] 70[2] 70[3] 70[4] 70[5] 70[6] 70[7] 100[8] 

    queue random-detect-max-thresholds
    ----------------------------------
      1    70[1] 100[2] 100[3] 100[4] 100[5] 100[6] 100[7] 100[8] 
      2    70[1] 100[2] 100[3] 100[4] 100[5] 100[6] 100[7] 100[8] 
      3    100[1] 100[2] 100[3] 100[4] 100[5] 100[6] 100[7] 100[8] 

    WRED disabled queues:    

    queue thresh cos-map
    ---------------------------------------
    1     1      
    1     2      
    1     3      
    1     4      
    1     5      
    1     6      
    1     7      
    1     8      0 
    2     1      
    2     2      
    2     3      
    2     4      
    2     5      
    2     6      
    2     7      1 
    2     8      2 
    3     1      
    3     2      
    3     3      
    3     4      
    3     5      
    3     6      
    3     7      3 
    3     8      4 
    4     1      5 6 7 

    Queueing Mode In Rx direction: mode-cos
    Receive queues [type = 1q2t]:
    Queue Id    Scheduling  Num of thresholds
    -----------------------------------------
       1         Standard            2


    queue tail-drop-thresholds
    --------------------------
    1     100[1] 100[2] 

    queue thresh cos-map
    ---------------------------------------
    1     1      0 1 2 3 4 5 6 7 
    1     2      


  Packets dropped on Transmit:
    BPDU packets:  0

    queue thresh             dropped  [cos-map]
    ------------------------------------------------------------------

    1     8                  246598  [0 ]
    2     7                       0  [1 ]
    2     8                       0  [2 ]
    3     7                       0  [3 ]
    3     8                       0  [4 ]
    4     1                       0  [5 6 7 ]

  Packets dropped on Receive:
    BPDU packets:  0

    queue thresh            dropped  [cos-map]
    ------------------------------------------------------------------
    1     1                       0  [0 1 2 3 4 5 6 7 ]

!

sh ip vrf SKAT
  Name                             Default RD          Interfaces
  SKAT                             65000:90            Vl87
!

Сбор статистики и анализ:

!

sh policy-map interface vl87

 Vlan87 

  Service-policy input: test2

    class-map: test2 (match-all)
      Match: access-group name test2
      set dscp 46:
      Earl in slot 5 :
    1418106 bytes
    5 minute offered rate 256 bps
    aggregate-forwarded 1418106 bytes

    Class-map: class-default (match-any)
      0 packets, 0 bytes
      5 minute offered rate 0000 bps, drop rate 0000 bps
      Match: any 
        0 packets, 0 bytes
        5 minute rate 0 bps
!
sh mls qos ip vl87
   [In] Policy map is test2   [Out] Default.
 QoS Summary [IPv4]:      (* - shared aggregates, Mod - switch module)

          Int Mod Dir  Class-map DSCP  Agg  Trust Fl   AgForward-By   AgPoliced-By
                                       Id         Id                              
-----------------------------------------------------------------------------------
          Vl87  5  In      test2   46    2     No  0        1420758              0

                                                          
!

При запуске пинга с полем TOS=0x20 (т.е. DSCP=cs1)с удаленного hostA (10.120.1.2), который находится за сетью MPLS (vrf SKAT), на hostB (10.120.2.2), который подключен через сеть LAN к данному cs6506 (vrf SKAT) видно, что отправляются ICMP request c полем TOS=0x20(т.е. DSCP=cs1), которые пройдя через сеть MPLS, прилетают на hostВ в неизмененном виде  TOS=0x20(DSCP=cs1), что совпадает с моими ожиданиями.

 

Dump on hostA:
17:16:22.888238 44:8a:5b:04:1c:a2 > 00:21:d8:10:5c:00, ethertype 802.1Q (0x8100), length 102: vlan 87, p 0, ethertype IPv4, (tos 0x20, ttl 64, id 53095, offset 0, flags [DF], proto ICMP (1), length 84)
    10.120.1.2 > 10.120.2.2: ICMP echo request, id 26405, seq 1, length 64

 

Dump on hostВ (access, следовательно, поля P-bit нет):

17:17:37.056589 00:18:74:b0:30:00 > 00:15:60:56:cc:e4, ethertype IPv4 (0x0800), length 98: (tos 0x20, ttl 63, id 6294, offset 0, flags [DF], proto ICMP (1), length 84)
    10.120.1.2 > 10.120.2.2: ICMP echo request, id 26423, seq 1, length 64

!

Чудеса начинаются в обратном направлении при пересылки ICMP echo reply от hostB к hostA. hostB вставляет тоже самое значение tos в ICMP echo reply, но cs6506 не перезаписывает поле DSCP на значение ef, как указано в policy-map, и передается через сеть MPLS с TOS=0x20(т.е. DSCP=cs1), но пр этом поле EXP в заголовке MPLS перезаписывается согласно mls qos maps.

 

Dump on hostB:

17:17:37.056639 00:15:60:56:cc:e4 > 00:18:74:b0:30:00, ethertype IPv4 (0x0800), length 98: (tos 0x20, ttl 64, id 38947, offset 0, flags [none], proto ICMP (1), length 84)
    10.120.2.2 > 10.120.1.2: ICMP echo reply, id 26423, seq 1, length 64

 

Dump on hostA:
17:16:22.888834 00:21:d8:10:5c:00 > 44:8a:5b:04:1c:a2, ethertype 802.1Q (0x8100), length 102: vlan 87, p 1, ethertype IPv4, (tos 0x20, ttl 63, id 22406, offset 0, flags [none], proto ICMP (1), length 84)
    10.120.2.2 > 10.120.1.2: ICMP echo reply, id 26405, seq 1, length 64

 

Если сделать traceroute с hostB (10.120.2.2) на hostA (10.120.1.2), при TOS=0x20(т.е. DSCP=cs1), то видно что Exp=5

 

traceroute from 10.120.2.1 to 10.120.1.2
1. 10.120.2.1
 2. 172.18.0.45
    [MPLS: Lbl 56 Exp 5 S 0 TTL 1]
    [MPLS: Lbl 1049 Exp 5 S 1 TTL 1]
 3. 172.18.0.10
    [MPLS: Lbl 1198 Exp 5 S 0 TTL 1]
    [MPLS: Lbl 1049 Exp 5 S 1 TTL 1]
 4. 10.120.1.1
 5. 10.120.1.2
!
cs1-6500#sh mls qos maps 
dscp-exp-map:                                  (dscp= d1d2)
     d1 :  d2 0  1  2  3  4  5  6  7  8  9 
     -------------------------------------
      0 :    00 00 00 00 00 00 00 00 01 01 
      1 :    01 01 01 01 01 01 02 02 02 02 
      2 :    02 02 02 02 03 03 03 03 03 03 
      3 :    03 03 04 04 04 04 04 04 04 04 
      4 :    05 05 05 05 05 05 05 05 06 06 
      5 :    06 06 06 06 06 06 07 07 07 07 
      6 :    07 07 07 07 

 

 

 

QoS_cs6506.jpg

Edited by ElfenLied

Share this post


Link to post
Share on other sites

Респект за описание проблемы. Чем помочь, правда, не знаю, но подача материала божественна.

Share this post


Link to post
Share on other sites
7 hours ago, vurd said:

Респект за описание проблемы. Чем помочь, правда, не знаю, но подача материала божественна.

Спасибо за комплимент))))) я стралась как лучше описать проблему.

 

Share this post


Link to post
Share on other sites
7 часов назад, ElfenLied сказал:

Спасибо за комплимент))))) я стралась как лучше описать проблему.

 

Тоже хотел бы отметить ваше описание проблемы. Редко где такое встретишь, когда инженер сначала сам покопается, а уже потом спрашивает у других. По делу, а если мплс отключить, метка будет меняться?

Share this post


Link to post
Share on other sites
On 19.01.2018 at 5:54 AM, VolanD666 said:

Тоже хотел бы отметить ваше описание проблемы. Редко где такое встретишь, когда инженер сначала сам покопается, а уже потом спрашивает у других. По делу, а если мплс отключить, метка будет меняться?

VolanD666,

на сети по всей трассе на cs6506 прописала отдельный влан (L2 switching) без участия MPLS. Да, поле DSCP перемаркировывается согласно ожиданиям как с помощью такого полисера:

!

Policy Map test2
    Class ANY
      set dscp ef

!

так и с  помощью такого:

Policy Map test
    Class ANY
     police cir 1024000 bc 192000 be 384000
       conform-action set-dscp-transmit ef
       exceed-action drop 
       violate-action drop 

!
Class Map match-all ANY 
   Match access-group name ANY
!
Extended IP access list ANY 
    10 permit ip any any

 

Попробовала для интереса через сеть MPLS использовать полисер с установкой поля DSCP при помощи police ... conform-action set-dscp-transmit ef: все равно метка не меняется на ef как я хочу.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now