Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Рисунок 8. Маркировка платного трафика ИМТЦ «МГУ» в поле ToS
Недостатки этого способа в том, что при маркировке трафика провайдером затрачиваются значительные вычислительные ресурсы маршрутизаторов. Возможно, поэтому не все провайдеры используют маркировку, так как просто не могут себе это позволить.
Если вы изменили какие-то биты в пакете, то необходимо пересчитать и изменить контрольную сумму. А теперь представьте, что пакетов миллионы, в этом случае не так-то просто сохранить пропускную способность маршрутизатора, промаркировав при этом несколько терабайт пакетов за месяц.
Попытка выяснить в ИМТЦ «МГУ», кому и почему пришла в голову идея маркировать трафик так, а не по-другому, результатов не дала. «Так исторически сложилось, – был их ответ, – работавшему на то время администратору маркируемые биты, видимо, показались наиболее правильными, а после его ухода за ненадобностью никто ничего не менял».
При маркировке трафика решить проблемы ограничения скачивания чего-то лишнего гораздо проще, чем без таковой. А именно, если поставить скачиваться какой-нибудь фильм на ночь из российской части сети и установить фильтр на запрет прихода любых пакетов из зарубежной части, то можно смело сказать, что вместо скачанных гигабайт в случае изменения маршрутизации вы максимум получите несколько лишних килобайт платного трафика.
При подсчёте внешне маркированного трафика с помощью iptables первое, что приходит в голову – это воспользоваться расширением dscp:
iptables -A FORWARD -d 192.168.0.5 -m dscp --dscp 0x18
Это правило будет считать все пакеты, у которых установлены два бита маркировки, за исключением тех, у которых почему-то оказались поднятыми и другие биты, кроме отведённых двух.
Например, если поле dscp будет содержать значение 19 (биты 01 1001), то формально биты платности будут в таком пакете установлены, но считаться вышеустановленным правилом он уже не будет. Получится, что для подсчёта всех возможных случаев потребуется 16 правил (оставшихся битов 4, 24=16), что не очень-то и удобно, если учесть, что эти правила надо будет создавать на каждый адрес. От того, чтобы не писать так много правил, можно застраховаться. Например, перед проверкой дополнительно потребовать, чтобы пакеты, идущие на правило подсчёта, имели другие биты равными нулю.
Сделать это можно с помощью модуля ToS, реализующего более раннюю рекомендацию, биты которого не пересекаются с битами маркировки. Например:
iptables -N user-chain
iptables -A FORWARD -d 192.168.0.5 -m tos --tos Normal-Service -j user-chain