Отслеживание прохождения маркированного трафика 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. 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. Как отследить, проходит или нет через циску нужный трафик. |