Что такое эмулятор локальной сети
Программы для создания локальной сети
Локальная сеть между двумя или более компьютерами открывает много новых возможностей для пользователей. Но реализовать ее можно только при наличии подключения между устройствами через специальный кабель или по Wi-Fi. К счастью, существует множество специальных приложений, позволяющих создать виртуальную локальную сеть через интернет, даже если ПК расположены в разных странах, чтобы можно было общаться, передавать файлы, осуществлять звонки и подключаться в кооперативные игры.
Hamachi
Самым популярным и эффективным средством для создания локальной сети является Hamachi. Используя интернет-соединение, оно позволяет создать виртуальную сеть в формате клиент-сервер, организовать собственный сервер или подключиться к существующему. Для этого нужно знать специальный идентификатор (присваивается автоматически) и пароль, заданный пользователем. Присутствует множество настроек, в которых можно определить практически все — от внешнего вида приложения до технических параметров.
Подключенные пользователи могут переписываться друг с другом, передавать файлы и вместе играть в компьютерные игры, в которых сервера не предусмотрены разработчиком. Бесплатная версия открывает все функции, но с ограничениями. Таким образом, вы сможете создать не более одной сети, к которой смогут подключиться не более пяти компьютеров. При наличии одной из лицензий эти ограничения или расширяются, или убираются вовсе.
Radmin VPN
Radmin VPN является отличным аналогом Hamachi с таким же перечнем функций, даже интерфейс крайне схож. Приложение полностью бесплатно и позволяет создавать локальную сеть в несколько кликов. Система использует безопасный VPN-туннель с качественным шифрованием данных, посредством которого можно передавать файлы и переписываться, не беспокоясь о сохранности данных. Максимальная скорость соединения может достигать 100 Мбит/с.
Программа отлично подходит для объединения нескольких компьютеров и получения удаленного доступа. Геймеры тоже смогут использовать ее в качестве средства для совместной игры. Интерфейс выполнен на русском языке, а на официальном сайте можно ознакомиться не только с возможностями, но и с подробным руководством по использованию.
CommFort
На очереди платная программа для создания локальной сети, которая по большей части предназначена для предприятий. CommFort позволяет объединять неограниченное количество компьютеров, создавать видеоконференции между ними, обмениваться файлами и сообщениями, обеспечивать удаленный доступ другому участнику сервера и многое другое. Помимо этого, реализована система объявлений и новостей, доступная всем пользователям.
Для ознакомления со всеми возможностями можно воспользоваться бесплатной 30-дневной версией, в которой доступен сервер на 5 клиентов. В платной версии ограничения убираются. Доступна годовая и вечная лицензия, а также три их варианта: Business (20 клиентов), ViceoConf Business (60 клиентов + конференции) и All-In (все функции + неограниченное количество пользователей).
Wippien
Wippien — бесплатное приложение с открытым исходным кодом, являющееся простым сервисом для организации виртуальных сетей между неограниченным количеством компьютеров. Возможностей у программы не так много, однако этого вполне хватит для многих целей. В ней можно вести переписку в сервисах ICQ, MSN, Yahoo, AIM, Google Talk, а также передавать файлы по P2P-подключению. Для этого используется технология VPN с надежным шифрованием.
При необходимости можно использовать Wippien для кооперативных игр. Для этого достаточно организовать сеть, подключиться к ней с друзьями, после чего заходить в игру. Русский интерфейс не предусмотрен.
NeoRouter
NeoRouter — профессиональное кроссплатформенное приложение, позволяющее создавать виртуальные VPN-сети для множества целей, обеспечивая таким образом удаленный доступ между компьютерами и позволяя передавать данные по P2P. Предусмотрен контроллер домена и корпоративный сетевой экран. Доступно две версии: домашняя и для бизнеса. Каждая из них обладает своими возможностями и приобретается отдельно.
Приложение может быть установлено на компьютер или просто запущено с флешки. Имеется пробная версия, работающая 14 дней. При покупке лицензии определяющим фактором является количество компьютеров, которые будут подключаться к сети — их может быть от 8 до 1000.
Garena Plus
Об этой программе слышал практически каждый любитель видеоигр. Garena Plus не похожа на предыдущие решения, ведь это не просто средство для создания локальных сетей, а целое сообщество геймеров с поддержкой огромного количества игр и готовых серверов. Здесь можно добавлять друзей, получать опыт профиля, собирать лобби, общаться, отправлять файлы и многое другое.
Для использования платформы необходимо зарегистрироваться, однако сделать это можно с помощью социальных сетей, например, Facebook. На сегодняшний день Garena Plus поддерживает 22 онлайн-игры, среди которых Warcraft 3: Frozen Throne, Left 4 Dead 1 и 2, CS: Source, CS 1.6, Starcraft и многие другие. Приложение распространяется на бесплатной основе и имеет русифицированный интерфейс. Примечательно, что время от времени в рамках данной платформы проводятся любительские турниры.
LanGame++
Рассмотрим еще одно приложение для создания локальной сети с целью совместной игры. LanGame++ распространяется бесплатно и поддерживает как английский, так и русский языки. На официальном сайте есть электронная почта и ICQ разработчика, по которым можно получить поддержку. Доступно два режима работы: сервер и клиент. В первом случае пользователь сам «хостит» локальную сеть, во втором подключается к уже созданной, если у него есть адрес и пароль.
Стоит отметить необычную функцию, которой нет ни в одном из перечисленных в статье решений. LanGame++ позволяет сканировать локальную сеть на наличие игровых серверов и подключиться к ним. За 10 секунд программа проверяет более 60 тысяч IP-адресов. В список поддерживаемых входят практически все популярные игры от FIFA и Minecraft до Quake и S.T.A.L.K.E.R.
Мы рассмотрели несколько наиболее популярных приложений, предназначенных для организации локальной сети между удаленными устройствами. Одни из них нацелены на компьютерные игры, другие разработаны специально организации для удаленного доступа, передачи файлов, осуществления видеоконференций и других задач, подходящих для корпоративных целей.
Помимо этой статьи, на сайте еще 12483 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.
Отблагодарите автора, поделитесь статьей в социальных сетях.
8 альтернатив Hamachi
Hamachi – популярная программа для быстрого создания локальной сети между компьютерами, которые на самом деле находятся в разных сетях. Но у неё есть определённые ограничения.
Поэтому если вы хотите поиграть по сетке с друзьями, то вам может помочь одна из этих утилит.
GameRanger
GameRanger — игровой клиент виртуальной локальной сети. Несмотря на то что GameRanger не обладает таким количеством функций, как некоторые его аналоги, уровень безопасности, предлагаемый им, очень высок. Вам не придётся беспокоиться о перебоях в соединении.
В то время как другие программы для виртуальных локальных сетей используют драйверы для эмуляции подключения по локальной сети, GameRanger использует собственный клиент, поэтому пинг всегда низкий. GameRanger — определённо одна из лучших альтернатив Hamachi.
Цена: бесплатно; Серебряное членство — 19,95$/год; Золотое членство — 39,95$/год.
Wippien
Wippien — одно из самых «лёгких» приложений для эмуляции соединения по локальной сети. Если всё, что вам нужно, — это играть в игры в локалке, то Wippien, имеющий вес около 2 МБ, будет лучшей альтернативой Hamachi.
Программа устанавливает прямое P2P-соединение между двумя компьютерами. Поскольку Wippien — программа с открытым исходным кодом, распространяется она бесплатно. Если у вас есть необходимые знания, вы можете пойти дальше, изменив приложение под свои личные потребности.
Цена: бесплатно (с открытым исходным кодом).
NetOverNet
NetOverNet — это очень простой клиент для имитации виртуальных локальных сетей. Первоначально это был эмулятор VPN, но благодаря простому интерфейсу и возможности подключения нескольких компьютеров, а также предоставлению каждому компьютеру собственных регистрационных данных для входа в систему, он приобрёл популярность среди геймеров.
Вы можете получить доступ к другим компьютерам, подключённым к сети, и обмениваться с ними данными. В бесплатной версии количество соединений ограничено, а при внесении платы возможности расширяются.
Цена: бесплатно; базовая версия — 5$/месяц; расширенная — 10$/месяц.
Radmin VPN
Radmin VPN — одна из лучших альтернатив Hamachi, так как в нём нет ограничения на количество соединяющихся пользователей (геймеров). Radmin обеспечивает скорость до 100 Мбит/сек., и у вас не будет проблем с пингом. Кроме того, эта программа, создающая безопасный VPN-туннель, отличается очень простым интерфейсом и настройками.
Цена: бесплатно.
FreeLAN
FreeLan — это бесплатная альтернатива Hamachi. Это программное обеспечение пользуется большой популярностью, так как представляет собой один из самых простых VPN-клиентов для создания собственной частной сети. FreeLan имеет открытый исходный код и может быть настроен в соответствии с вашими потребностями. Он обеспечивает высокую скорость и практически не создаёт задержек при игре.
Недостатком FreeLan является то, что он не предоставляет вам интерфейс для работы, и вы должны вручную редактировать конфигурацию. Впрочем, в сети вы можете найти полезные инструкции по настройке.
Цена: бесплатно.
SoftEther
SoftEther — очень мощное программное обеспечение для создания VPN-сети, поддерживающее практически все операционные системы. Несмотря на то что интерфейс программы может показаться довольно простым, SoftEther полон полезных функций. SoftEther реализует туннелирование SSL-VPN по протоколу HTTPS и проход через брандмауэры.
Для обеспечения конфиденциальности он предлагает 256-битное шифрование AES и 4096-битное шифрование RSA. Начать работать с SoftEther может быть немного сложно, но как только вы это сделаете и полностью ознакомитесь со всеми функциями программы, она станет для вас одной из лучших альтернатив Hamachi.
Цена: бесплатно.
ZeroTier
ZeroTier поддерживает практически все операционные системы, а также имеет собственные мобильные приложения для Android и iOS. ZeroTier обеспечивает низкий уровень пинга, и хотя это VPN-клиент, он полезен для настройки виртуальных локальных сетей. ZeroTier имеет огромное сообщество, и вам не придётся беспокоиться, если у вас возникнут какие-либо проблемы при настройке вашей локальной сети.
Цена: бесплатно; базовая версия — 29$/месяц; профессиональная версия — 100$/месяц.
NeoRouter
NeoRouter позволяет создавать и контролировать частные и публичные серверы, использующие интернет. Он обеспечивает высокий уровень безопасности, а также разблокирует для вас веб-сайты.
Существует поддержка всех популярных операционных систем, таких как Windows, Mac OS X, Linux и т.д. Кроме того, NeoRouter доступен как в App Store, так и в Play Store. Это очень хорошая альтернатива Hamachi, если вы хотите иметь безопасное соединение во время игры.
Цена: бесплатно; платно — 99$.
Создаём виртуальную локальную сеть
Эту статью написал не я, а мой друг, который пока не присутствует на хабре. Если хотите, можете отправить инвайт на mail@feduza.ru
Когда-то давно мне попалась на глаза программа Hamachi, с помощью которой можно создать виртуальную локальную сеть, не имея «реальных» IP-адресов. Но в какой-то момент мне захотелось получить подобный сервис собственной реализации.
Тут на помощь мне пришел OpenVPN.
Итак, задача:
Имея VPS под Debian Lenny, создать виртуальную локальную сеть с клиентами под Linux и Windows XP.
Настройка сервера:
Конечно подразумевается, что на нашем VPS IP-адрес белый и разрешено использование tun.
Подключаемся к серверу и устанавливаем openvpn и openssl:
apt-get install openvpn
apt-get install openssl
Копируем содержимое папки easy-rsa в директорию openvpn:
Заходим в директорию /etc/openvpn/easy-rsa/2.0
Открываем текстовым редактором файл vars и в его конце видим:
export KEY_COUNTRY=«US»
export KEY_PROVINCE=«CA»
export KEY_CITY=«SanFrancisco»
export KEY_ORG=«Fort-Funston»
export KEY_EMAIL=«me@myhost.mydomain»
Редактируем параметры в кавычках так, как нам хочется.
Выполняем следующие команды:
Последняя команда создает сертификат для нашего сервера, используя параметры, которые мы прописали в файле vars, за исключением Common Name, его пишем сами.
Генерим ключик для сервера:
В пункте Common Name пишем server.
Теперь для клиента:
В пункте Common Name пишем client1.
Создаем ключ Диффи — Хеллмана:
Копируем файлы ca.crt ca.key dh1024.pem server.crt server.key в папку openvpn:
cd /etc/openvpn/easy-rsa/2.0/keys
cp ca.crt ca.key dh1024.pem server.crt server.key /etc/openvpn
Переходим в /etc/openvpn/ и открываем/создаем файл openvpn.conf следующего содержания:
port 1194
proto tcp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 172.16.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
user nobody
group users
persist-key
persist-tun
status openvpn-status.log
verb 3
client-to-client
в ifconfig должен появиться сетевой адаптер tun0 c IP 172.16.0.1.
Настройка клиента под Linux:
Для начала опять же ставим openvpn.
Теперь надо передать на клиентскую машину файлы ca.crt client1.crt client1.key
(лежат в директории /etc/openvpn/easy-rsa/2.0/keys/ сервера)
и положить их папку /etc/openvpn/
после чего открыть/создать файл /etc/openvpn/openvpn.conf:
client
dev tun
proto tcp
remote реальный_IP-адрес_нашего_сервера 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
comp-lzo
verb 3
(в нашем случае имя клиента — client1)
Теперь запускаем openvpn:
Настройка клиента под Windows XP:
Качаем и устанавливаем Openvpn GUI.
Кидаем нужные файлы (см.предыдущий пункт) в папку C:\Program Files\OpenVPN\config\,
после чего в трее находим значок openvpn gui, жмём правой кнопкой и выбираем «Connect».
Подключение остальных клиентов:
Заходим на сервере в папку /etc/openvpn/easy-rsa/2.0
Выполняем команды:
Эмулятор локальной сети для игр или зачем они нужны
LogMeInHamachi или лучший эмулятор локальной сети
Без зазрения совести можно назвать детище компании LogMeIn лучшим среди всех эмуляторов для того, чтобы вместе с друзьями играть по сети. Эмулятор имеет удобный, минималистичный интерфейс, в котором разберется даже ребенок. Легкие настройки и создание собственного сервера в считанные минуты – это все сохраняет за Hamachi первенство в борьбе с конкурентами. Hamachi поддерживает любые игры, единственное что необходимо, так это то, чтобы в игре была возможность использования локальной сети. С этим эмулятор справляется на «ура», и качество соединения с его помощью зависит только от интернета самого юзера, так, будто он играет просто в любимую игру с помощью своего интернет подключения. Hamachi помимо свойств эмулятора локальной сети для игр, обладает возможность сделать защищенный мост между двумя и/или более компьютерами, создав виртуальную частную сеть (VPN) между пользователями. Защита, которую использует Hamachi во время подключения пользователей, использует алгоритм AES-256, шифрующий данные, сдвигая их в определенном порядке.
Программы для создания виртуальной локальной сети
Если у вас нет лицензии игры, или вы просто не хотите мучиться с постоянным копированием и вставкой ip-адреса, то можете просто скачать и установить имитатор LAN — это программа для соединения нескольких компьютеров. С помощью таких программ можно с легкостью играть в пиратские или даже лицензионные игры по сети, а иногда и находить там друзей.
Таких программ на самом деле достаточно и найти подходящую может каждый. Бывает и такое, что одна из программ может не работать или не поддерживать нужную игру, как зачастую бывает с Hamachi или другими программами, поэтому вы можете поискать решение проблемы в интернете или же воспользоваться другой программой.
В чем минусы?
Что мы имеем в Tunngle? Да, это эмулятор локальной сети, со своими обязанностями он справляется, но в нем очень много ненужного. Например, очень и очень много рекламы в бесплатной версии программы, которая буквально закрывает экран программы и не дает взаимодействовать, прося «подождать» или «заплатить». Не очень приятно, согласитесь? Второй ее минус — слишком много «коммуникации». Кому-то совершенно не нужны чаты в программе, которая используется для игры по локальной сети, не нужны и пустые комнаты в огромном списке. Да, и для того, чтобы создать свою комнату, нужно будет отыскать эту функцию в огромном количестве окон и выпадающих меню.
Evolve
Программа представляет собой неплохой аналог Tunngle, однако она менее популярна в аудитории. Зато в этой программе нет рекламы и всплывающих окон, которые так раздражают геймеров. Тут же вам не придется возиться с настройками, потому что все делается автоматически. Но при всех его плюсах, существуют и минусы. В Evolve отсутствует поиск комнат, который присутствует в Tunngle. Вместо этого есть что-то наподобие умного поиска. Необходимо просто зайти в игру, и программа сама найдет все существующие комнаты, к которым можно подключиться.
Правда, что Tunngle работает не со всеми играми?
Третий минус – игра может работать только с заявленными играми в списке. То есть, если какой-нибудь условный CallofDuty 3 не заявлен в списке игр для локальной сети, у вас и не получится в него поиграть, в отличии от того же Hamachi. Как играть по сети с таким большим количеством минусов и не легче ли найти какое-то другое решение, чем загрязнять свой компьютер рекламой? Единственное, что хочется сказать, что все недостатки чисто субъективны и кому-то, возможно, понравится иметь огромный список комнат в своем эмуляторе локальной сети.
Как играть в старые игры по сети? Программы для игры по локалке и интернету
Приветствую всех!
Игра с компьютером, конечно, увлекательна, но гораздо интереснее противостоять не боту, а реальному человеку! Не исключено, что он сделает какую-нибудь ошибку, не стандартный шаг, чем-то удивит. К тому же, многие опытные геймеры играют куда интереснее и лучше ботов.
Но если со многими современными сетевыми играми проблем с коннектом особых не возникает (WOW, Танки, GTA и пр.), то вот с играми несколько постарше — у многих пользователей появляются трудности.
Подведение итогов
Выбор программы для эмуляции игры по локальной сети остается только за геймером и его товарищами – этот факт бесспорный, да и эти две программы не единственные в сети, чтобы пользоваться только ими, но хочется сказать вот что. Tunngle находится в состоянии закрытия, а причины этого не называются. Hamachi же до сих пор «на плаву» и работает без перебоев, каждый день. На примере этих двух эмуляторов локальной сети можно выявить лидера и встать на его сторону, чтобы с комфортом играть с товарищами по сети. По мнению большинства пользователей, Hamachi является лучшим эмулятором, который в настоящее время пользуется наибольшей популярностью среди геймеров.
Mininet — эмулятор компьютерной сети
Статья опубликована в журнале «Системный Администратор»
Освоим построение и конфигурирование виртуальных компьютерных сетей любых масштабов в рамках одной виртуальной машины.
Что это и для чего
Работая над статьей, посвященной Open vSwitch, проходя по различным ссылкам в поисках хоть какой-нибудь полезной информации, открыл для себя проект под названием mininet [1]. Будучи активным читателем технической и компьютерной литературы, журналов и новостей, думал, что все самое интересное я уже изучил и попробовал. Но, этот проект меня искренне удивил. Я не уверен в практической ценности данного решения для большинства читателей, но мой личный интерес к нему подтолкнул к написанию статьи. Mininet — это эмулятор компьютерной сети. Под компьютерной сетью подразумеваются простые компьютеры — хосты, коммутаторы, а так же OpenFlow-контроллеры. С помощью простейшего синтаксиса в примитивном интерпретаторе команд можно разворачивать сети из произвольного количества хостов, коммутаторов в различных топологиях и все это в рамках одной виртуальной машины(ВМ). На всех хостах можно изменять сетевую конфигурацию, пользоваться стандартными утилитами(ipconfig, ping) и даже получать доступ к терминалу. На коммутаторы можно добавлять различные правила и маршрутизировать трафик. В общем, получается довольно интересная вещь, позволяющая познакомиться с устройством и функционированием компьютерных сетей без необходимости использования какого либо сетевого оборудования.
Как это работает
Начиная с версии 2.6.24, ядром Linux поддерживаются механизмы виртуализации и изоляции – Cgroups[2], которые позволяют обеспечить сетевыми интерфейсами, таблицами маршрутизации и ARP-таблиами процессы в рамках одной операционной системы. Это один из видов виртуализации на уровне ОС, позволяющий запустить множество однотипных процессов в изолированном и ограниченном по ресурсам окружении. Подобные техники позволяют Mininet создавать в пространстве ядра или пользователя коммутаторы, OpenFlow-контроллеры и хосты, и взаимодействовать в рамках моделируемой сети. В качестве виртуальных коммутаторов используется адаптированная реализация Open vSwitch’a. Основная функциональность Mininet реализована на Python, за исключением некоторых утилит написанных на Си. Практически любая произвольная топология может быть описана с помощью специального синтаксиса на Python. В интернете можно найти множество интересных лабораторных работ на базе mininet, решающих различные задачи. Например реализация простого маршрутизатора[3].
Как этим пользоваться
Вся работа с виртуальной сетью mininet, а именно развертывание сети желаемой топологии, изменение различных параметров хостов или коммутаторов и т. п., производится в простом интерпретаторе команд – mn.
Запущенный без параметров, mn перейдет в режим интерпретации команд. При этом по умолчанию будет создана минимальная сеть, состоящая из двух хостов (h1, h2), коммутатора (s1) и OpenFlow-контроллера (c1).
*** Creating network *** Adding controller *** Adding hosts: h1 h2 *** Adding switches: s1 *** Adding links: (h1, s1) (h2, s1) *** Configuring hosts h1 h2 *** Starting controller *** Starting 1 switches s1 *** Starting CLI: mininet>
Интерпретатор mininet использует ряд собственных команд, позволяющих управлять виртуальной сетью практически как настоящей. Ниже приведены примеры основных возможностей.
Вывести список всех хостов, коммутаторов и контроллеров можно с помощью команды nodes
available nodes are: h1 h2 c0 s1
посмотреть топологию сети, а именно сопоставление портов коммутатора и хостов можно с помощью команды net:
c0 s1 lo: s1-eth1:h1-eth0 s1-eth2:h2-eth0 h1 h1-eth0:s1-eth1 h2 h2-eth0:s1-eth2
вывести конфигурацию сетевого интерфейса конкретного хоста можно с помощью классической команды ifconfig перед которой необходимо указать имя конкретного узла:
mininet> h1 ifconfig
h1-eth0 Link encap:Ethernet HWaddr 96:0d:f2:1a:e3:91 inet addr:10.0.0.1 Bcast:10.255.255.255 Mask:255.0.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:11 errors:0 dropped:0 overruns:0 frame:0 TX packets:6 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:846 (846.0 B) TX bytes:468 (468.0 B)
lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
В приведенной выше команде, вместо имени хоста можно указать конкретный коммутатор, тогда будет выведена конфигурация его портов.
Любой из портов коммутатора можно выключить и включить по желанию:
mininet> link s1 h1 down mininet> link s1 h1 up
Посмотреть таблицу маршрутизации конкретного хост можно аналогично с использованием привычной команды route:
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.0.0.0 * 255.0.0.0 U 0 0 0 h1-eth0
Ну и конечно же выполнить пинг, как же без него:
mininet> h1 ping h2
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data. 64 bytes from 10.0.0.2: icmp_req=1 ttl=64 time=4.11 ms 64 bytes from 10.0.0.2: icmp_req=2 ttl=64 time=0.252 ms ^C — 10.0.0.2 ping statistics — 2 packets transmitted, 2 received, 0% packet loss, time 4999ms rtt min/avg/max/mdev = 0.066/0.779/4.119/1.495 ms
пинг каждого с каждым:
В принципе, на каждом из хостов, указывая предварительно его имя, можно выполнять большинство стандартных команд linux. Например посмотреть процессы любого из хостов или коммутаторов поможет все тот же ps:
Кроме проверки доступности узлов с помощью ping можно еще протестировать пропускную способность между узлами с помощью старого доброго iperf:
mininet> iperf h1 h2
*** Iperf: testing TCP bandwidth between h1 and h2 waiting for iperf to start up…*** Results: [‘1.35 Gbits/sec’, ‘1.36 Gbits/sec’]
Забегая немного вперед, скажу, что пропускная способность интерфейсов может быть ограниченна от 10 до 1000 Mbit/s. Но об этом немного ниже.
Ну и в конце концов, можно просто получить терминал к любому из узлов:
На каждом из виртуальных хостов, помимо стандартных процессов есть возможность запускать сторонние сервисы. Например это может быть простой веб-сервер на Python:
и попробовать подключиться к нему с другого узла:
—2013-11-06 03:44:17— https://10.0.0.1/ Connecting to 10.0.0.1:80… connected. HTTP request sent, awaiting response… 200 OK Length: 248 [text/html] Saving to: `STDOUT’ … (вывод сокращен)
можно завершить работу веб-сервера, если необходимо:
mininet> h1 kill %python
Виртуальная сеть mininet не существует постоянно — она создается при вызове mn с какими-то конкретными параметрами или без таковых и уничтожается при выходе из интерпретатора. Все это происходит почти мгновенно. Даже крупная сеть с несколькими сотнями хостов и десятками коммутаторов создается в считанные секунды. И все это на однопроцессорной виртуальной машине с одним гигабайтом оперативной памяти.
Корректно свернуть всю виртуальную сеть и выйти в оболочку ОС можно командой quit. В случае если работа интерпретатора была завершена некорректно, избавиться от повисших процессов и прочих служебных данных можно командой
Усложним топологию
Как и в реальном, физическом мире, построение сети в эмуляторе Mininet начинается с топологии. Топология определяет сколько будет хостов, коммутаторов а так же каким образом они будут объедены в сеть.
Существует четыре базовых топологи, которые можно использовать, «не заморачиваясь» с синтаксисом Python — они уже описаны и реализованы в виде параметров mn. Ниже приведены подробности про каждую из них.
mininal. Используется по умолчанию при запуске mn без параметров. В этом случае создаются два хоста, подключенные к одному коммутатору, который, в свою очередь управляется OpenFlow-контроллером. В данной топологии нельзя задать произвольное число хостов или коммутаторов.
single. Как и в случае с minimal, все хосты подключаются к одному коммутатору. Единственное отличие — это возможность указать их количество.
$ sudo mn —topo single,24
*** Creating network *** Adding controller *** Adding hosts: h1 h2 h3 h4 h5 h6 h7 h8 h9 h10 h11 h12 h13 h14 h15 h16 h17 h18 h19 h20 h21 h22 h23 h24 *** Adding switches: s1 *** Adding links: (h1, s1) (h2, s1) (h3, s1) (h4, s1) (h5, s1) (h6, s1) (h7, s1) (h8, s1) (h9, s1) (h10, s1) (h11, s1) (h12, s1) (h13, s1) (h14, s1) (h15, s1) (h16, s1) (h17, s1) (h18, s1) (h19, s1) (h20, s1) (h21, s1) (h22, s1) (h23, s1) (h24, s1) *** Configuring hosts h1 h2 h3 h4 h5 h6 h7 h8 h9 h10 h11 h12 h13 h14 h15 h16 h17 h18 h19 h20 h21 h22 h23 h24 *** Starting controller *** Starting 1 switches s1 *** Starting CLI: mininet>
linear. Топология описывает сеть в которой все хосты подключены к собственным коммутаторам, которые в свою очередь соединены между собой.
$ sudo mn —topo linear,6
*** Creating network *** Adding controller *** Adding hosts: h1 h2 h3 h4 h5 h6 *** Adding switches: s1 s2 s3 s4 s5 s6 *** Adding links: (h1, s1) (h2, s2) (h3, s3) (h4, s4) (h5, s5) (h6, s6) (s1, s2) (s2, s3) (s3, s4) (s4, s5) (s5, s6) *** Configuring hosts h1 h2 h3 h4 h5 h6 *** Starting controller *** Starting 6 switches s1 s2 s3 s4 s5 s6 *** Starting CLI: mininet>
tree. Древовидная топология, наиболее сложная из перечисленных. Здесь в качестве параметров можно указать глубину иерархии коммутаторов (depth) а так же число подключенных к ним хостов (fanout).
$ sudo mn —topo tree,depth=3,fanout=4
Команда, представленная выше построит сеть с классической трехуровневой моделью. Когда к каждому коммутатору уровня доступа(access) будут подключены по четыре хоста. Коммутаторы доступа в свою очередь будут включены в распределение(distribution) из четырех коммутаторов которые в свою очередь заводятся в единое ядро(core). К сожалению, такие возможности как стекирование коммутаторов или агрегация каналов а так же стандартные VLAN’ы не реализованы в mininet, что делает данную модель не совсем реалистичной. Но в общих чертах она довольно схожа.
В случае если есть базовые познания Python и необходима особенная топология, ее можно описать самостоятельно, аналогично примеру указанному в ссылках[4].
Построить сеть используя собственную топологию, можно с помощью ключа —custom:
$ sudo mn —custom / /topo-2sw-2host.py —topo mytopo
Параметры сети
По умолчанию, все объекты сети mininet соединяются виртуальными гигабитными каналами. В этом можно убедиться выполнив команду iperf в интерпретаторе mininet, которая проведет тестирование пропускной способности между двумя объектами сети.
*** Iperf: testing TCP bandwidth between h1 and h2 waiting for iperf to start up…*** Results: [‘1.26 Gbits/sec’, ‘1.28 Gbits/sec’] mininet>
Правда, не совсем понятно, почему тест показывает немного завышенные результаты. Думаю это как то связанно с особенностями виртуальной среды. Возможно, при использовании каналов по умолчанию (1 Gb), ограничения не применяются вовсе.
Следует иметь в виду, что коммутатор, работающий в пользовательском пространстве, а не в пространстве ядра, выполняется значительно медленнее.
$ sudo mn —switch user —test iperf
… *** Iperf: testing TCP bandwidth between h1 and h2 *** Results: [‘360 Mbits/sec’, ‘360 Mbits/sec’] … (вывод сокращен)
При желании, можно ограничить пропускную способность каналов до произвольных значений. А в добавок к этому есть возможность указать задержки в канале(latency).
$ sudo mn —link tc,bw=10,delay=10ms
Команда выше, разворачивает сеть по умолчанию, с пропускной способностью между узлами ограниченной в 10 Mbit/s и минимальными задержками в 10 ms.
Теперь пинг между узлами будет идти с задержкой в 10 ms.
Выводы
Виртуализация, везде и всюду. Начиная от уже классической серверной и заканчивая виртуальными Ethernet-портами в современных блейд-системмах. Виртуализируется все, и mininet — еще один хороший тому пример. Возможно, именно этим проект меня и зацепил. Даже сейчас, познакомившись поближе, честно говоря не вижу в нем какой то практической ценности. Особенно, для уже состоявшегося технического специалиста. Но сама реализация интересна и возможно, это решение сможет послужить для кого то инструментом моделирования а различные эксперименты помогут разобраться в принципах работы вычислительных сетей. В Интеренете доступны различные практические задачи и лабораторные работы построенные на базе mininet. Они широко используются в таких небезызвестных учебных заведениях, как Стэнфорд, Принстон и возможно, будут полезны вам.