Multi-Field
Last updated
Last updated
Наиболее часто встречающийся тип классификации на входе в DS-домен. Не доверяем имеющейся маркировке, а на основе заголовков пакета присваиваем класс.
Зачастую это способ вообще «включить» QoS, в случае, когда отправители не проставляют маркировку. Достаточно гибкий инструмент, но в то же время громоздкий — нужно создавать непростые правила для каждого класса. Поэтому внутри DS-домена актуальнее BA.
Схема та же:
Из практических примеров выше видно, что устройства сети по умолчанию доверяют маркировке приходящих пакетов.
Это прекрасно внутри DS-домена, но неприемлемо в точке входа. А давайте теперь не будем слепо доверять? На Linkmeup_R2 ICMP будем метить как EF (исключительно для примера), TCP как AF12, а всё остальное CS0. Это будет MF (Multi-Field) классификация.
Процедура та же, но теперь матчить будем по ACL, которые выцепляют нужные категории трафика, поэтому сначала создаём их. На Linkmeup_R2:
Далее определяем классификаторы:
А теперь определяем правила перемаркировки в политике:
И вешаем политику на интерфейс. На input, соответственно, потому что решение нужно принять на входе в сеть.
ICMP-тест с конечного хоста Trisolaran1. Никак сознательно не указываем класс — по умолчанию 0.
Политику с Linkmeup_R1 я уже убрал, поэтому трафик приходит с маркировкой CS0, а не CS7.
Вот два дампа рядом, с Linkmeup_R1 и с Linkmeup_R2:
Linkmeup_R1. E0/0.
Linkmeup_R2. E0/0.
Видно, что после классификаторов и перемаркировки на Linkmeup_R2 на ICMP-пакетах не только DSCP поменялся на EF, но и MPLS Traffic Class стал равным 5. Аналогичный тест с telnet 172.16.2.2. 80 — так проверим TCP:
Linkmeup_R1. E0/0.
Linkmeup_R2. E0/0.
ЧИТО — Что И Требовалось Ожидать. TCP передаётся как AF11. Следующим тестом проверим UDP, который должен попасть в CS0 согласно нашим классификаторам. Для этого воспользуемся iperf (привезти его в Linux Tiny Core изи через Apps). На удалённой стороне iperf3 -s — запускаем сервер, на локальной iperf3 -c -u -t1 — клиент (-c), протокол UDP (-u), тест в течение 1 секунды (-t1).
Linkmeup_R1. E0/0.
Linkmeup_R2. E0/0
С этого момента всё, что приходит в этот интерфейс, будет классифицировано согласно настроенным правилам.