Интересная проблема, упомянутая как в RFC 2597, так и в RFC 3246, - это проблема сохранения метки при туннелировании помеченного пакета. Когда пакет туннелируется, исходный пакет оборачивается-или инкапсулируется-внутри нового IP-пакета. Значение байта ToS находится внутри IP-заголовка теперь инкапсулированного пакета. Ой-ой. Что только что произошло с тщательно разработанной схемой классификации трафика? Ответ заключается в том, что сетевые устройства участвуют в отражении ToS при туннелировании.
Когда пакет туннелируется, значение байта ToS в инкапсулированном пакете копируется (или отражается) в IP-заголовке туннельного пакета. Это сохраняет классификацию трафика туннелированного приложения.
Аналогичная проблема возникает при отправке маркированного трафика из сетевого домена, который вы контролируете, в тот, который вам не принадлежит. Наиболее распространенный пример - отправка помеченного трафика из вашей локальной сети в сеть вашего поставщика услуг, пересекая его глобальную сеть. Поставщики услуг, как часть контракта на обеспечение связи, также часто предоставляют дифференцированные уровни обслуживания. Однако, чтобы они могли предоставлять дифференцированные услуги, трафик должен быть помечен таким образом, чтобы они могли его распознать. Их схема маркировки вряд ли будет такой же, как ваша схема маркировки, учитывая огромное количество возможных возможных схем маркировки.
Предлагается несколько решений этой дилеммы:
- Мутация DSCP: в этом сценарии сетевое устройство на границе между LAN и WAN переводит метку из исходного значения, назначенного в LAN, в новое значение, которое будет соблюдать SP. Перевод выполняется в соответствии с таблицей, настроенной сетевым инженером.
- Трансляция DSCP: для провайдеров SP нередко наблюдаются только первые три бита байта ToS, что восходит к временам IP Precedence, определенным еще в RFC791.
Во втором решении сетевой инженер сталкивается с проблемой создания современной схемы маркировки DSCP с использованием шести битов, даже если поставщик услуг будет обращать внимание только на первые три. Задача состоит в том, чтобы поддерживать дифференциацию. Например, рассмотрим схему, показанную в таблице ниже. Эта схема не решит проблему.
В этой таблице определены шесть уникальных значений DSCP для использования в локальной сети. Однако эти шесть уникальных значений уменьшаются до трех уникальных значений, если только первые три бита учитываются поставщиком услуг. Это означает, что некоторый трафик, который до попадания в сеть провайдера мог обрабатываться по-разному, теперь будет помещен в одну корзину. В этом примере EF и CS5, ранее уникальные, попадают в один и тот же класс, когда они покидают граничный маршрутизатор, поскольку оба начальных бита EF и CS5 равны 101. То же самое касается AF11, AF12 и AF13 - три ранее различных классы трафика, которые теперь будут обрабатываться одинаково при прохождении SP WAN, поскольку все они имеют одинаковое начальное значение 001 в начальных трех битах.
Способ решить эту проблему - создать схему маркировки DSCP, которая будет поддерживать уникальность в первых трех битах, как показано в таблице. Однако для этого может потребоваться сокращение общего количества классов трафика. Ограничение схемы первыми тремя битами для определения классов уменьшит общее количество классов до шести.
В таблице выше показана схема маркировки, использующая сочетание значений EF, AF и Class Selector, специально выбранных для сохранения уникальности первых трех битов.