Xgu.ru теперь в Контакте  — приходите и подключайтесь.
Пока мы работаем над следующими видео, вы можете подключиться в Контакте. Познакомимся и обсудим новые страницы и ролики.

Vk-big.pngYoutube-big.jpeg

Инсталляция Xentaur

Материал из Xgu.ru

Перейти к: навигация, поиск
Автор: Игорь Чубин
Короткий URL: Xentaur/installation
Mercurial-logo.png

Репозиторий проекта
http://xgu.ru/hg/xentaur

< Xentaur


На этой странице детально рассматривается процедура инсталляции Xentaur.


Содержание

[править] Инсталляция Xen

Необходимо подготовить хост-систему Xen.

Подробнее:

Добавьте в /etc/modules:

loop max_loop=128
netloop nloopbacks=128

Это повысит количество сетевых интерфейсов vif, создаваемых в домене 0, и использующихся для связи с гостевыми доменами, и количество loopback-устройств, необходимых для подключения виртуальных дисков, базирующихся на файлах.

[править] Инсталляция дополнительного программного обеспечения

  • bridge-utils
  • graphviz
  • ipython

[править] Инсталляция Xentaur

В настоящий момент доступна инсталляция только из Mercurial-репозитория.

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

%$ hg clone http://xgu.ru/hg/xentaur

В результате в текущем каталоге будет создан каталог xentaur/, содержащий код проекта Xentaur.

[править] Инсталляция машины Xenomips

Для выполнения этого пункта потребуется:

  • Каталог, куда можно будет складывать образы виртуальных машин;
  • Образы IOS; желательно распаковать их, чтобы ускорить загрузку виртуальных машин в будущем.

Это необязательный пункт. Инсталляция выполняется с помощью скрипта build-xenomips-image.

В его начале есть несколько настроечных переменных, которые нужно будет установить перед началом инсталляции.

DYNAMIPS_BUILD=yes                # Нужно ли выполнять сборку Dynamips
XENOMIPS_FS_BUILD=yes            # Нужно ли собирать файловую систему Xenomips
CONFIG_FS_BUILD=yes              # Нужно ли создавать пустую ФС для хранения конфигурационных файлов Xenomips
IOS_FS_BUILD=yes                 # Нужно ли создавать файловую систему с IOS

XENOMIPS_DIR="files/"            # источник файлов Xenomips
XENOMIPS_IMAGES_DIR="/xen/images/" # Местоположение образов Xenomips
IOS_DIR="ios/"                     # Местоположение образов IOS
SSH_OPEN_KEY=files/id_dsa.pub

#Xenomips FS
XENOMIPS_FS_SIZE=2048k                  # size in 1k blocks
XENOMIPS_FS_NAME=${XENOMIPS_IMAGES_DIR}/xenomips1.img

# Config FS
CONFIG_FS_SIZE=1000k
CONFIG_FS_NAME=${XENOMIPS_IMAGES_DIR}/xenomips-configXXX.img  # XXX will be automagically substitued with
CONFIG_FS_NUMBER=10                                           # the number of the Xenomips instance

# IOS FS
IOS_FS_SIZE=2048k
IOS_FS_NAME=${XENOMIPS_IMAGES_DIR}/xenomips-ios1.img

DEBIAN_MIRROR=ftp://debian.org.ua/debian
DISTRO=etch
PACKAGES="openssh-server libc6-xen libelf1 libpcap0.8 screen nfs-common quagga tcpdump telnet ntpdate hping3 ntp nmap netcat socat"
DYNAMIPS_SOURCES=http://www.ipflow.utc.fr/dynamips/dynamips-0.2.7.tar.gz
DYNAMIPS_BUILD_DIR=dynamips/
PIXEMU_SOURCES=http://xgu.ru/download/pemu_public2007-07-02.tar.bz2
PIXEMU_BUILD_DIR=dynamips/
KERNEL_VERSION=`uname -r`


WORK_DIR=${XENOMIPS_FS_NAME%%.img}
WORK_DIR2=/tmp/xenomips-build

Создание каталога для хранения образов xenomips:

%# cd xentaur
%# mkdir ../xentaur-images

Этот каталог должен быть указан в переменной XENOMIPS_IMAGES_DIR.

Icon-caution.gif

Надо добавить автоматическую загрузку модуля iptable_nat, без которого замечены необъяснимые глюки с сеансами TCP между dynamips и quagga, работающими на разных узлах

Создание каталога с образами IOS и его наполнение:

%# mkdir ../ios

Этот каталог должен быть указан в переменной IOS_DIR.

Для сборки dynamips, которую выполняет скрипт, необходимо установить в системе пакеты:

  • libelf
  • libelf-dev
  • libpcap0.8
  • libpcap0.8-dev
  • build-essential

И скрипт использует при сборке:

  • lsof
%# apt-get install debootstrap libelf1 libelf-dev libpcap0.8 libpcap0.8-dev build-essential lsof

После того как система подготовлена, необходимо проверить правильность путей в скрипте, а затем запускать скрипт инсталляции.

%# ./build-xenomips-image

В результате сборки должны получиться файлы:

  • xenomips1.img — образ виртуальной машины Xenomips
  • xenomips-config1.img — файл для сохранения конфигурации виртуальной машины Xenomips
  • xenomips-ios1.img — файл с образом файловой системы, хранящей IOS'ы, под управлением которых будет работать Dynamips.

Файл xenomips-config1.img хранит конфигурацию одного экземпляра Xenomips. Если экземпляров будет несколько (что естественно), файл должен быть размножен. Количество его копий указывайте в переменной CONFIG_FS_NUMBER сборочного скрипта.

[править] Подготовка конфигурационного файла сети

Скопируйте пример описания сети в каталог /etc/xen:

%# cp examples/fabergeN /etc/xen/myfirstnetN

Отредактируйте этот файл.

  1. Укажите правильные initrd и kernel. В конфигурационном файле xen указаны kernel и ramdisk. Они должны указывать на существующие в системе файлы.
  2. Введите описание вашей сети.
  3. Укажите каталог с образами систем. Он содержится в переменной xenomips_dir

(Создайте ссылку на конфиг с одноименным названием но суффиксом .py в /etc/xen)

Пример описания сети:

domains =       [ 'qua1',   'qua2',   'dyn3',     'qua4',   'qua5',   'dyn6',   ]
domain_types =  [ 'quagga', 'quagga', 'xenomips', 'quagga', 'quagga', 'xenomips', ]
bridges =       [
                  'vlan101',
                  'vlan102',
                  'vlan103',
                  'vlan104',
                  'vlan105',
                  'vlan106',
                ]

vbridges_table ={
                  'qua1'    : [ 'vlan101' ],
                  'qua2'    : [ 'vlan102', 'vlan105' ],
                  'dyn3'    : [ 'vlan101', 'vlan102', 'vlan103' ],
                  'qua4'    : [ 'vlan103', 'vlan104', 'vlan106' ],
                  'qua5'    : [ 'vlan104' ],
                  'dyn6'    : [ 'vlan105',  'vlan106' ],
                 }


Это описание соответствует топологии:


Xentaur-topology-example.png

[править] Первый запуск

Установите имя вашего конфигурационного файла в файле xentaur:

xen_config_name='fabergeN'

Имя вашего файла должно быть указано вместо fabergeN.

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

Графическое изображение схемы можно получить следующим образом:

%# ./xentaur.py graph
%# gqview xenomips.png

Gentoo-icon.png

Если при построении схемы сети возникает ошибка Renderer type: "jpg" not recognized.... вероятно, graphviz, присутствующий в системе, не поддерживает форматы вывода jpg и png. Подробное описание проблемы и решения здесь [1].

Создайте конфигурационный файл screen, который облегчит подключение к консолям виртуальных устройств:

%# ./xentaur.py screen
%# screen -c ~/.screenrc_xentaur

Посмотреть код запуска можно так:

%# ./xentaur.py start

Если код в порядке, запуск виртуальных устройств выполняется командой:

%# ./xentaur.py start-all | sh -s

Изнутри screen можно запустить управляющую консоль Xentaur. Лучше всего запускать её на экране 0.

%# ./xentaur.py shell


Xentaur
Xentaur

Инсталляция и использование Xentaur
Инсталляция | Консоль | Интеграция с реальной сетью | Описание сети
(репозиторий: http://xgu.ru/hg/xentaur)
Компоненты
Узлы: Xen | Xenomips (Dynamips + Pixemu + Xen) | Qemu
Сеть: linux bridges | ebtables | vnet | gvpe | vde | QoS в Linux | iptables
Управление: IPython | GNU Screen