mut - Multicast UDP Tunnel
mut служит для организации передачи/приёма мультикастовых UDP-пакетов для ОС Windows, Linux, FreeBSD
- между разными интерфейсами на одном компьютере
- по туннелям, через произвольное количество подсетей
- для перевода вещательных потоков с одного адреса на другой
- для заполнения диапазона вещания без создания серверов
Часто в локальных сетях (и не только) надо "раздать" пользователям мультикастовое радио и телевидение, связать мультикастовые чаты или речевые чаты типа NetPhone, в компьютерных клубах связать Counter Strike, WarCraft3 или другие игры, в которых пользователи находятся в разных подсетях. Реже надо бывает обеспечить полноценную связь с "пробросом" мультикастовых пакетов для организации полноценного соединения удалённых офисов.
Рутеры, как правило, не умеют перебрасывать мультикастовые-броадкастовые пакеты из одной подсети в другую, поэтому при организации связи удалённых офисов через VPN, пользователи одного офиса всё-равно "не видят" другого офиса в сетевом окружении. Многие знают про mrouted, который позволяет перебрасывать мульткастовые пакеты с интерфейса на интерфейс, однако, при связи через туннели, промежуточные сегменты, Wi-Fi и т.п., возможности mrouted стремятся к нулю, собственно, поэтому и возникла необходимость в программе, которая позволяет перебрасывать широковещательные пакеты через любое количество сегментов, т.е. возникла необходимость в программе, способной туннелировать мультикастовые пакеты.
Ниже показаны возможные схемы работы mut.
Передача мультикастовых пакетов через туннель: роутеры связаны туннелями через интернет, а в локальной сети повляются мультикастовые пакеты других сетей; таким способом через VPN можно связать несколько удалённых офисов. Для организации такой схемы достаточно всего лишь одного "белого" адреса.
Передача мультикастовых пакетов между интерфейсами одного маршрутизатора; таким способом можно связать игровые компьютеры разных подсетей.
Организация мультикастового видеовещания. Видеосервер, находящийся в сети LAN5, передаёт на роутер сети LAN1 видеосигнал по туннелю через сети LAN4 и CROSS-LAN. CROSS-LAN - это обычно кольцевая волоконно-оптическая линия, соединяющая разные районы. В сетях CROSS-LAN, LAN4, LAN5 мультикастовое вещание не ведётся, т.к. нет потребителей видеосигнала. Для уменьшения транзитного трафика через сети LAN4 и LAN5 раздача видеопотока для сетей LAN2 и LAN3 ведётся с роутера сети LAN1
mut - создаёт туннели для переброски мультикастовых и броадкастовых UDP-пакетов. Он может передавать выбранные мультикастовые/броадкастовые пакеты с заданными параметрами из одной подсети в другую, как с интерфейса на интерфейс, так и по TCP протоколу, передавая и принимая мультикастовые пакеты с требуемыми параметрами с указанного в настройке интерфейса. Более того, можно принять мультикастовый пакет с одного порта или адреса, а передать его на другой порт или адрес, сохранив данные в неприкосновенности. Версии mut написаны под ОС Windows и Linux. Для того, чтобы программное обеспечение было совместимым не только с PC, но и работало на embedded системах без глобальных патчей, mut для Linux был написан без кернел-модулей, к сожалению в Windows-версии без NDIS-драйвера обойтись не удалось, т.к. большинство версий Windows позволяют формировать пакеты с "чужими" адресами только кернел-драйверам.
mut создаёт слушающий мультикастовый/броадкастовый UDP сокет на указанном интерфейсе: в конфигурации допустимо указание ANY_IP=0.0.0.0, но для избежания неожиданных ошибок лучше явно указывать какой интерфейс слушает и передаёт пакеты. Принятый пакет пересылается по туннелю по TCP-протоколу на другой компьютер, где также установлен mut, причём неважно из какой ОС был передан или принят пакет: Linux и Windows версии mut - совместимы. Основную проблему переброски мультикаста/броадкаста - подавление петель - mut решает установкой фильтров. Первоначально фильтров не было, а для подавления петель производилась идентификация пакетов по контрольной сумме, но в последствии, для увеличения производительности туннеля, задание конфигурации пришлось несколько усложнить необходимостью задания фильтров, зато производительность программы значительно выросла.
Новая программная модель настолько эффективно использует производительность системы, что появилась возможность раздачи мультикастовых видеопотоков потребителям прямо с серверов-маршрутизаторов, а не с отдельного сервера, как ранее, что в свою очередь приводит к значительной экономии бюджета, т.к. не требуются траты на отдельный сервер для формирования видеопотока, а также не требуются траты на обслуживание дополнительной единицы оборудования.
mut оформлен в виде демона под Linux и в виде сервиса для Windows. Файл конфигурации состоит из одной секции [options] в которой указываются глобальные установки и множества секций [bridge], в которой указывают слоты, описывающие соединяемые мостом узлы. В Linux версии взаимодействие управление mut через командную строку, в Windows-версии взаимодействие производится через стандартный менеджер управления сервисами Windows.
Здесь можно скачать подробное описание mut с примерами конфигурации для сложной сети с Wi-Fi участками. Инсталляция для Linux будет выложена несколько позже