Рубрика:
Администрирование /
Сети
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
АЛЕКСАНДР РУДЕНКО, администратор информационной безопасности в ЗАО «Молдавская ГРЭС», a.rudikk@gmail.com
Mininet – эмулятор компьютерной сети
Строим и конфигурируем виртуальные компьютерные сети любых масштабов в рамках одной виртуальной машины без использования сетевого оборудования!
Что это и для чего это?
Работая над статьей, посвященной Open vSwitch [1], и проходя по различным ссылкам в поисках какой-нибудь полезной информации, я открыл для себя проект под названием Mininet [2].
Будучи активным читателем технической и компьютерной литературы, журналов и новостей, думал, что все самое интересное я уже изучил и попробовал. Но этот проект меня искренне удивил.
Я не уверен в практической ценности данного решения для большинства читателей, но мой личный интерес к нему подтолкнул к написанию статьи.
Mininet – это эмулятор компьютерной сети. Под компьютерной сетью подразумеваются простые системы – хосты, коммутаторы, а также OpenFlow-контроллеры.
С помощью простейшего синтаксиса в примитивном интерпретаторе команд легко разворачиваются сети из произвольного количества хостов, коммутаторов в различных топологиях, и все это в рамках одной виртуальной машины (ВМ).
На всех хостах можно изменять сетевую конфигурацию, пользоваться стандартными утилитами (ipconfig, ping) и даже получать доступ к терминалу.
Коммутаторы умеют добавлять различные правила и маршрутизировать трафик.
В общем, получается довольно интересная вещь, позволяющая познакомиться с устройством и функционированием компьютерных сетей без необходимости использования какого-либо сетевого оборудования.
Как это работает
Начиная с версии 2.6.24 ядром Linux поддерживаются механизмы виртуализации и изоляции – Cgroups [3], которые позволяют обеспечить сетевыми интерфейсами, таблицами маршрутизации и ARP-таблицами процессы в рамках одной операционной системы. Это один из видов виртуализации на уровне ОС, позволяющий запустить множество однотипных процессов в изолированном и ограниченном по ресурсам окружении.
Подобные техники позволяют Mininet создавать в пространстве ядра или пользователя коммутаторы, OpenFlow-контроллеры и хосты и взаимодействовать в рамках моделируемой сети. В качестве виртуальных коммутаторов используется адаптированная реализация Open vSwitch.
Основная функциональность проекта Mininet реализована на Python, за исключением некоторых утилит, написанных на Си. Практически любая произвольная топология может быть описана с помощью специального синтаксиса на Python.
В Интернете можно найти множество интересных лабораторных работ на базе проекта Mininet, решающих различные задачи. Например, реализация простого маршрутизатора [4].
Как этим пользоваться
Вся работа с виртуальной сетью Mininet, а именно развертывание сети желаемой топологии, изменение различных параметров хостов или коммутаторов и многое другое, производится в простом интерпретаторе команд – mn.
$ sudo mn
Статью целиком читайте в журнале «Системный администратор», №12 за 2013 г. на страницах 18-21.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|