IT News: Digital Camera, OS, Laptop, Smartphone, Smart TV, Sound...

The Author's Project by Valeri N.Kravchuk
Сайт проверен Dr.Web
Меню сайта
  • Главная страница
  • Информация о сайте
  • Дневник
  • Каталог файлов
  • Обратная связь
  • Каталог сайтов
  • FAQ
  • Доска объявлений
  • Форум
  • Фотоальбом
  • Категории раздела
    Автомобильные гаджеты, ремонт... [220]
    Безопасность IT [484]
    Блоки питания, Power Banks, зарядки... [490]
    Видеорегистраторы [220]
    Гаджеты для спорта и здоровья... [190]
    Гаджеты, аксессуары... [625]
    Измерительная техника, инструменты [449]
    Накопители данных [226]
    Нетбуки, Ноутбуки, Ультрабуки [680]
    Мультиварки, блендеры и не только... [158]
    Планшеты [758]
    Радар-детекторы [26]
    Роботы-пылесосы [37]
    Своими руками [357]
    Сети, сетевые технологии, оборудование... [269]
    Смартфоны [4966]
    Фотокамеры, объективы, искусство фотографии.. [543]
    Умный дом [47]
    Электронные книги [96]
    CB, LPD, PMR- связь... [171]
    DECT, IP-телефоны [18]
    Drones, boats, cars... [108]
    electric cars [35]
    GPS-навигаторы, трекеры... [51]
    Linux и не только [4380]
    mini computers и не только... [409]
    News IT, Это интересно, ликбез... [1113]
    Smart TV, UltraHD, приставки, проекторы... [414]
    Smart Watch [263]
    Sound: наушники, плееры, усилители... [616]
    Windows 10... [298]
    Windows 11 [28]
    Погода

  • Метеорадар БРЕСТ
  • Погода в Бресте от www.yr.no

    Яндекс.Погода БРЕСТ

  • Интересные ссылки

    COMPIZOMANIA

    Наш опрос
    Оцените мой сайт
    Всего ответов: 1340
    Статистика
    Анализ веб сайтов

    Яндекс.Метрика

    Рейтинг@Mail.ru Яндекс цитирования

    Russian America Top. Рейтинг ресурсов Русской Америки.

    eXTReMe Tracker

    Правильный CSS!


    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Locations of visitors to this page
    Форма входа
    Главная » 2014 » Октябрь » 10 » Torrent-клиент на linux-шлюзе — миф или реальность?
    13:27
    Torrent-клиент на linux-шлюзе — миф или реальность?

    Torrent-клиент на linux-шлюзе — миф или реальность?

    Обзавёлся я как-то практически случайным образом материнской платой формата Mini-ITX на Intel Atom, и сразу же в голове мелькнула мысль: «Нешумный домашний сервер!..» (блок питания подойдёт ноутбучный + впаянный процессор с пассивным охлаждением). Подумано — сделано!

    Докупил корпус, память, один 2.5 HDD (запланировав через пару месяцев взять такой же для зеркала), а так же вторую сетевую карту для раздачи интернета в локальную сеть, и вот на моём почти-сервере красуется новенький (на то время) Debian Squeeze.

    Предвкушая вопрос «зачем понадобилось ядро именно с OpenVZ?», отвечу так: я из разряда людей, старающихся выжать из имеющегося всё и ещё чуть-чуть, поэтому, имея белую статику, было принято решение поднять web, mail и jabber сервера, плюс в качестве «и ещё чуть-чуть» заиметь там же torrent-качалку 24/7.

    Всё бы ничего, если бы не одно НО — torrent-клиент на шлюзе! Звучит [не]много бредово, не так ли? Но не спешите с выводами: подобный бред вполне себе имеет право на жизнь. Более того, было найдено рабочее решение, которое позволило мирно сосуществовать качалке с другими сервисами на (практически) одном и том же сервере, а так же не мешать клиентам локальной сети. Но обо всём по порядку…

    1. Немного теории


    Я не один раз встречал утверждение, что заниматься шейпингом входящего трафика — дело неблагодарное, т.к. он уже пришёл, а значит откусил часть/всю ширину вашего канала у вышестоящей раздающей стороны (например, у провайдера). Это утверждение верное, но, как всегда, есть нюансы…

    Во-первых, для tcp-соединений имеет место "медленный старт". Это значит, что пакеты между хостами не начнут отправляться сразу с максимальной скоростью. Вместо этого она (скорость) будет увеличиваться/уменьшаться постепенно с параллельной проверкой на подтверждения приёма пакетов и наличие потерь. Иными словами скорость отправки пакетов будет плавать, подстраиваясь под пропускную способность канала между хостами.

    Приняв во внимание такое поведение, мы можем искусственно занижать скорость прохождения пакетов, тем самым навязывая хостам снижение скорости передачи,

    Для tcp-соединений
     

    1. Шейпим только исходящий трафик


    как известно, шейпить трафик имеет смысл только для исходящего трафика, так как влетевший в интерфейс пакет либо форвардится на другой (в случае с маршрутизируемыми соединениями), либо сразу же попадает в программу, которой он предназначается, т.к.

    из чего вытекает, что если torrent-клиент слушает входящий по отношению к направлению трафика интерфейс, то всё, что прилетает на этот интерфейс (в данном случае WAN) будет попадать в программу без какой-либо задержки со всеми вытекающими…

    Тупик? Или всё же есть выход? Есть — venet-интерфейс на хостовой системе, который является виртуальной сетевой картой, работающей на третьем уровне OSI, и весь ip-трафик, прилетевший извне, перед тем, как попасть в контейнер, проходит через этот самый venet. Значит не всё так плохо: закинув torrent-клиент и остальные сервисы в контейнеры, я смогу преспокойно шейпить весь их трафик так же, как и для устройств, находящихся за физическим интерфейсом LAN.

    Развернув на хосте VZ-контейнеры, получилась такая вот схема:

    OpenVZ



    WAN — физический интерфейс, смотрящий в мир
    VENET — виртуальный L3-интерфейс, через который проходит весь трафик, идущий в контейнеры (подсеть 192.168.254.0/24)
    LAN — физический интерфейс, смотрящий в локальную сеть (подсеть 192.168.8.0/24)

    Практически готово за исключением того, что в динамическом шейпинге трафика может принимать участие только один интерфейс. Чувствуя, что в этом месте могут возникнуть вопросы, попробую пояснить чуть подробнее.

    У меня ширина канала в мир составляет 100 МБит/с, и абсолютно предсказуемо мне захотелось максимально использовать это в своих корыстных и не очень целях следующим образом:

    • если в какой-то промежуток времени что-то тянется извне torrent-клиентом (контейнер BitTorrent) и только им, то всю имеющуюся полосу нужно отдать ему
    • если во время скачивания torrent-клиентом чего-либо кто-то из локальной сети или подсети контейнеров начинает смотреть/качать с 80-го (или 443-го) порта, то torrent-трафик нужно зажать до, допустим, 1МБита/сек, а остальную ширину отдать под http-трафик
    • самое главное — всю ширину канала должны иметь возможность использовать любые устройства независимо от того, в какой подсети они находятся: за LAN-интерфейсом или за VENET-интерефейсом


    Звучит неплохо, не правда ли? А если ещё учесть, что 2-й пункт списка — малая доля требований, реализовав которые можно добиться идиллии из разряда «торренты тянутся, пинги бегают, youtube'чик смотрится, то желания воплотить это в жизнь появляется ещё больше.

    Но, как было сказано выше, в случае входящих соединений извне делить всю ширину WAN-интерфеса между двумя интерфейсами (LAN — для локальной сети, VENET — для подсети контейнеров) не предоставляется возможным, т.к. корневой класс, которому будет выделена (почти) вся доступная ширина канала должен может принадлежать корневой дисциплине, которая вешается только на одно устройство. В данном случае это может быть либо LAN, либо VENET, но никак не оба одновременно.

     

    http://habrahabr.ru/post/239949/

    Категория: Linux и не только | Просмотров: 531 | Добавил: laptop | Рейтинг: 3.0/1
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк - единственный из зверей, который может пойти в бой на более сильного противника.
    Если же он проиграл бой, то до последнего вздоха смотрит в глаза противника. После этого умирает...

    Праздники сегодня

    Поиск
    Календарь
    Архив записей
    Друзья сайта
  • Официальный блог
  • JEEP - the best! Mercedes - the best! Автомобильный портал города Бреста: технические характеристики с фото, авторынок, автоспорт...
    Наша кнопка
    IT новости с моего лаптопа...

    Внимание!
    Администратор сайта laptop.ucoz.ru не несет ответственности за содержание рекламных объявлений. Все используемые на сайте зарегистрированные товарные знаки принадлежат своим законным владельцам! Используемая со сторонних источников информация публикуется с обязательными ссылками на эти источники.
    Copyright Valeri N.Kravchuk © 2007-2024