Отслеживание прохождения маркированного трафика QoS Печать
Добавил(а) microsin   

В случае проблем с IP-телефонией для тестирования работы политик QoS могут использоваться следующие команды.

1. Команда вывода информации о политике шейпинга трафика на интерфейсе:

show policy-map interface output

Результат вывода команды:

router#show policy-map interface output 
 Ethernet1 
  Service-policy output: to_division
 
   Class-map: limit2M (match-all)
     1754642 packets, 833828906 bytes
     5 minute offered rate 46000 bps, drop rate 0 bps
     Match: access-group 110
     Traffic Shaping
           Target/Average  Byte   Sustain   Excess    Interval  Increment
             Rate          Limit  bits/int  bits/int  (ms)      (bytes) 
         4000000/2000000  12500  50000     50000     25        12500   
       Adapt  Queue     Packets   Bytes     Packets   Bytes     Shaping
       Active Depth                         Delayed   Delayed   Active
       -      0         1754643   837745873 37372     40724971  no
 
     Service-policy : voip-p
 
       Class-map: voip (match-all)
         221281 packets, 16268602 bytes
         5 minute offered rate 0 bps, drop rate 0 bps
         Match: access-group 160
         Queueing
           Strict Priority
           Output Queue: Conversation 72 
           Bandwidth 50 (%)
           Bandwidth 1000 (kbps) Burst 25000 (Bytes)
           (pkts matched/bytes matched) 414/30474
           (total drops/bytes drops) 0/0
         QoS Set
           precedence 5
             Packets marked 221281
 
       Class-map: class-default (match-any)
         1533360 packets, 817558790 bytes
         5 minute offered rate 46000 bps, drop rate 0 bps
         Match: any 
         Queueing
           Flow Based Fair Queueing
           Maximum Number of Hashed Queues 64 
       (total queued/total drops/no-buffer drops) 0/0/0
 
   Class-map: class-default (match-any)
     122958 packets, 10165654 bytes
     5 minute offered rate 0 bps, drop rate 0 bps
     Match: any

Число в выделенной жирным шрифтом строке (Packets marked ...), обозначающее количество ушедших пакетов с маркировкой (в данном примере precedence 5) должно увеличиваться при каждой новой команде show policy-map interface output.

2. Отправка маркированного ping.

router#ping        
Protocol [ip]: 
Target IP address: aaa.bbb.ccc.ddd
Repeat count [5]: 1000
Datagram size [100]: 
Timeout in seconds [2]: 
Extended commands [n]: y
Source address or interface: 
Type of service [0]: 0x64
Set DF bit in IP header? [no]: 
Validate reply data? [no]: 
Data pattern [0xABCD]: 
Loose, Strict, Record, Timestamp, Verbose[none]: 
Sweep range of sizes [n]: 
Type escape sequence to abort.
Sending 1000, 100-byte ICMP Echos to aaa.bbb.ccc.ddd, timeout is 2 seconds:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!
Success rate is 100 percent (1000/1000), round-trip min/avg/max = 1/6/104 ms
router#

В ответ на запрос Type of Service вводится шестнадцатеричное (в указанном примере использовалось число 0x64, где символ ‘x’ указывал на шестнадцатеричный формат числа) либо десятичное значение для ToS-байта целиком (для всех 8-ми бит). Например, для передачи трафика IP-телефонии с повышенным приоритетом у нас используется ToS-байт 0xA0 (что соответствует IP-precendence уровня 5 или, в терминах DSCP, классу обслуживанию 5 с приоритетом удаления 0). Указанный байт появляется один-в-один в ToS-байте пакета.

Команда ping в операционных системах w2k, XP, windows 2003 может тоже отправлять трафик с установленным приоритетом (опция -v TOS).

[Windows]

В операционных системах Windows (начиная с Windows 2000) маркированный ping можно отправить следующей командой:

C:\Users\admin>ping -v 0xA0 mail.ru
 
Обмен пакетами с mail.ru [217.69.139.200] с 32 байтами данных:
Ответ от 217.69.139.200: число байт=32 время=53мс TTL=50
Ответ от 217.69.139.200: число байт=32 время=53мс TTL=50
Ответ от 217.69.139.200: число байт=32 время=69мс TTL=50
Ответ от 217.69.139.200: число байт=32 время=69мс TTL=50
 
Статистика Ping для 217.69.139.200:
    Пакетов: отправлено = 4, получено = 4, потеряно = 0
    (0% потерь)
Приблизительное время приема-передачи в мс:
    Минимальное = 53мсек, Максимальное = 69 мсек, Среднее = 61 мсек

[Linux, FreeBSD]

Пример отправки маркированного ping:

[root@localhost ~]# ping -Q 0xA0 10.50.11.112
PING 10.50.11.112 (10.50.11.112) 56(84) bytes of data.
64 bytes from 10.50.11.112: icmp_seq=0 ttl=255 time=1.06 ms
64 bytes from 10.50.11.112: icmp_seq=1 ttl=255 time=0.815 ms
64 bytes from 10.50.11.112: icmp_seq=2 ttl=255 time=0.826 ms
64 bytes from 10.50.11.112: icmp_seq=3 ttl=255 time=0.811 ms
64 bytes from 10.50.11.112: icmp_seq=4 ttl=255 time=0.836 ms
 
--- 10.50.11.112 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4000ms
rtt min/avg/max/mdev = 0.811/0.871/1.069/0.102 ms, pipe 2

[Анализ наличия маркированых пакетов в трафике]

Процесс по шагам:

1. Настраиваем access-list для фильтрации маркированного трафика:

ip access-list extended deb-l
 permit ip any any precedence critical log
 permit ip any any precedence flash log
 permit ip any any

Здесь precedence critical означает поле приоритета ToS-байта равное 5, а precedence flash - равное 3 (см. таблицу имен кодов приоритета в описании байта ToS). Вместо имен приоритетов можно использовать их номера, например precedence critical заменяется на precedence 5.

2. Привязываем наш access-list к нужному интерфейсу (в данном примере внешний интерфейс маршрутизатора).

interface Ethernet1
 ip address a.b.10.45 255.255.255.252
 ip access-group deb-l in

3. Сброс статистики:

clear logging

4. Просмотр статистики (если есть пакеты с повышенным приоритетом, то в логе будут появляться записи access-list deb-l):

show logging

Иногда просмотру статистики в консоли мешает настроенный на сервер лог - все сообщения пишутся на сервер, а в ответ на команду show logging в консоли самих сообщений access-листа deb-l не видно. Чтобы решить проблему, нужно поискать в конфигурации команду вида logging d.e.100.77 (d.e.100.77 - IP сервера syslog, часто Cisco Works), и временно запретить эту команду (no logging d.e.100.77), а после тестирования трафика вернуть все назад.

5. Удобно также пользоваться командой #show access-lists deb-l, будет выведено что-то наподобие такого:

#show access-lists deb-l
Extended IP access list deb-l
   10 permit ip a.b.0.0 0.0.255.255 any precedence critical log (113 matches)
   20 permit ip any any (4930402 matches)

Здесь в скобках видна статистика срабатывания фильтра - в скобках указано, сколько произошло совпадений с каждым условием фильтра. Если повторять ввод этой команды несколько раз, то сразу видно, работает access-list, или нет (работает ли привязка к интерфейсу, например, и активен ли канал) - в скобках строки permit ip any any должно постоянно меняться количество срабатываний. Можно также контролировать срабатывание фильтра на отслеживаемый трафик (permit ip a.b.0.0 0.0.255.255 any precedence critical log), но это уже бывает удобнее делать командой show logging.

См. также подобный пример в статье [1].

Внимание! Нельзя удалять во время работы маршрутизатора уже привязанный к интерфейсу access-list (это может понадобиться, например, для вставки в него строк), иначе возможная полная блокировка работы маршрутизатора (потребуется перезагрузка). Удалять access-list (no ip access-list extended deb-l) можно только после его отвязки от интерфейса:

interface Ethernet1
 no ip access-group deb-l in

Для упрощения проверки канала на прохождение маркированного трафика есть удобная программа ping5b [2] (в файле readme.txt архива есть описание работы с программой).

Увеличить

[Ссылки]

1Как отследить, проходит или нет через циску нужный трафик.
2. ping5b.zip - программа пинга, документация.