Dynamips

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

Перейти к: навигация, поиск
stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.


Dynamips — эмулятор маршрутизатора Cisco, работающий на системах с архитектурами i386 и x86-64. Первоначально эмулятор поддерживал только платформу 7200 маршрутизатора Cisco, но сейчас существует возможность эмуляции и других платформ, в том числе маршрутизаторы Cisco серии 3600 (3620, 3640 и 3660), серии 3700 (3725, 3745) и серии 2600 (от 2610 до 2650XM, 2691).

Может выполняться под Linux и Windows.


Содержание

[править] Эмулируемое оборудование

В настоящий момент эмулятор поддерживает такие платформы:

  • Cisco 7200 (NPE-100 to NPE-400)
  • Cisco 3600 (3620, 3640 and 3660)
  • Cisco 2691
  • Cisco 3725
  • Cisco 3745

По умолчанию эмулируется Cisco 7206VXR с NPE-200 (256 Mb памяти DRAM).

Перейти на эмуляцию другой платформы можно с помощью опции -P (например, -P 3725 или -P 3600).

Для платформы 7200 возможна замена типа NPE с помощью опции -t. Можно выбирать из npe-100, npe-150, npe-175, npe-200, npe-225, npe-300 and npe-400. А вот npe-g1 не работает.

Для платформы 3600, по умолчанию эмулируется 3640 с 128 MB памяти. Это можно изменить с помощью опции -t. Не забывайте, что шасси и IOS зависят друг от друга; образ для c3660 не будет работать на c3640 и наоборот.

Note-icon.gif

Эмуляция карты PCMCIA пока что невозможна для Cisco 3600.

[править] Опции командной строки

[править] Обзор

  • -l <log_file> — Задать файл для ведения журнала работы, по умолчанию: dynamips_log.txt
  • -j — Отключить JIT-компилятор, очень медленно
  • --exec-area <size> — Установить размер области выполнения (exec area size), по умолчанию: 64 Mb
  • --idle-pc <pc> — Установить значение показателя простоя (idle PC), по умолчанию: выключено
  • --timer-itv <val> — Интервал проверки IRQ таймера, по умолчанию: 1000
  • -i <instance> — Установить идентификатор экземпляра (instance ID)
  • -r <ram_size> — Установить размер виртуальной оперативной памяти
  • -o <rom_size> — Установить размер виртуальной ROM-памяти
  • -n <nvram_size> — Установить размер памяти NVRAM
  • -m <mac_addr> — Установить MAC-адрес шасси (по умолчанию генерируется автоматически)
  • -C <cfg_file> — Импортировать конфигурационный файл IOS в NVRAM
  • -X — Не использовать файл для симуляции оперативной памяти (быстрее)
  • -R <rom_file> — Загрузить альтернативный ROM (, по умолчанию: embedded)
  • -k <clock_div> — Установить делитель часов (clock divisor), по умолчанию: 4
  • -T <port> — Вывести консоль на TCP-порт <port>
  • -U <si_desc> — Вывести консоль на последовательный интерфейс <si_desc> (по умолчанию на терминал)
  • -A <port> — Вывести AUX на TCP-порт <port>
  • -B <si_desc> — Вывести AUX на последовательный интерфейс <si_desc> (по умолчанию порт AUX отсутствует)
  • --disk0 <size> — Установить размер PCMCIA ATA диска disk0:
  • --disk1 <size> — Установить размер PCMCIA ATA диска disk1:
  • -a <cfg_file> — Конфигурационный файл виртуального ATM-коммутатора (Virtual ATM switch)
  • -f <cfg_file> — Конфигурационный файл виртуального Frame-Relay-коммутатора (Virtual Frame-Relay switch)
  • -E <cfg_file> — Конфигурационный файл виртуального Ethernet-коммутатора (Virtual Ethernet switch)
  • -b <cfg_file> — Конфигурационный файл виртуального моста (Virtual bridge)
  • -e — Показать список сетевых устройств хост-системы

Опции, специфичные для Cisco 7200 series:

  • -t <npe_type> — Выбрать тип NPE, по умолчанию: "npe-200"
  • -M <midplane> — Выбрать Midplane ("std" или "vxr")
  • -p <pa_desc> — Задать адаптер портов (Port Adapter)
  • -s <pa_nio> — Привязать сетевой интерфейс (Network IO interface) к адаптеру портов

Опции, специфичные для Cisco 3600 series ("dynamips -P 3600 --help"):

  • -t <chassis_type> — Выбрать тип шасси, по умолчанию: "3640"
  • --iomem-size <val> — Память ввода/вывода (в процентах, по умолчанию: 5)
  • -p <nm_desc> — Задать сетевой модуль (Network Module)
  • -s <nm_nio> — Привязать сетевой интерфейс к сетевому модулю (Network Module)

Опции, специфичные для Cisco 2691 series ("dynamips -P 2691 --help"):

  • --iomem-size <val> — Память ввода/вывода (в процентах, по умолчанию: 5)
  • -p <nm_desc> — Задать сетевой модуль (Network Module)
  • -s <nm_nio> — Привязать сетевой интерфейс к сетевому модулю (Network Module)

Опции, специфичные для Cisco 3725 series ("dynamips -P 3725 --help"):

  • --iomem-size <val> — Память ввода/вывода (в процентах, по умолчанию: 5)
  • -p <nm_desc> — Задать сетевой модуль (Network Module)
  • -s <nm_nio> — Привязать сетевой интерфейс ввода/вывода к сетевому модулю (Network Module)

Опции, специфичные для Cisco 3745 ("dynamips -P 3745 --help"):

  • --iomem-size <val> — Память ввода/вывода (в процентах, по умолчанию: 5)
  • -p <nm_desc> — Задать сетевой модуль (Network Module)
  • -s <nm_nio> — Привязать сетевой интерфейс ввода/вывода к сетевому модулю (Network Module)

[править] Дополнительная информация об опциях

-k <clock_div> :

   Указать часовой делитель (целый) часов хост-системы.
   Играясь значением делителя можно подогнать время внутри эмулятора
   к реальному времени. Просмотреть время внутри операционной системы IOS
   можно с помощью команды <tt>show clock</tt>

--idle-pc <pc> :

   Функция "idle PC" позволяет исполнять эмулятор маршрутизатора
   без 100-процентной нагрузки на процессор. Это даёт возможность 
   исполнять одновременно множество эмуляторов на одной машине.

   Для того чтобы определить значение "idle PC", запустите эмулятор
   с интересующим образом IOS и, желательно, пустой конфигурацией 
   (не обязательно, но точность будет выше). Когда образ завершит загрузку, 
   подождите приглашения <tt>Press RETURN to get started!</tt>
   и нажмите Enter. Подождите секунд 5, после чего нажмите "Ctrl-] + i".
   На протяжении 10 секунд будет собираться статистика. После этого эмулятор
   выведет значения, которые нужно передать опции <tt>--idle-pc</tt>.
   Возможно, придётся перепробовать несколько значений, прежде чем найдётся
   оптимальное. Для того чтобы проверить, хорошее значение вы нашли
   или нет, нужно загрузить образ IOS и проверить нагрузку на CPU, 
   когда в эмуляторе висит приглашение консоли. Если нагрузка маленькая, 
   значит оптимальное значение найдено. Его нужно запомнить и использовать
   в дальнейшем.

   Важное замечание
   ==================
      * Значение idle PC специфично для каждого образа IOS. Для каждого нового
        образа нужно находить значение idle-pc заново.

      * Не запускайте процесс, когда на экране приглашение автоконфигуратора 
        операционной системы IOS (autoconfiguration)


--exec_area <size> :

   Область исполнения (exec area) хост-системы, которая используется для
   для JIT-трансляции (хранит код архитектуры основной системы, 
   соответствующий страницам MIPS-кода).



Cisco 7200 Port Adapter Description "<pa_desc>":
------------------------------------------------
   Формат: slot:pa_driver

   slot: количество физических слотов (начинается с 0)

   pa_driver: имя адаптера, находящегося в слоте:
        - C7200-IO-FE  (FastEthernet, только слот 0)
        - PA-FE-TX     (FastEthernet, слоты от 1 до 6)
        - PA-4E        (Ethernet, 4 портов)
        - PA-8E        (Ethernet, 8 портов)
        - PA-4T+       (Serial, 4 портов)
        - PA-8T        (Serial, 8 портов)
        - PA-A1        (ATM)


=== Описание сетевого модуль Cisco 3600 ===

   Формат: slot:nm_driver

   slot: количество физических слотов (начинается с 0)

   nm_driver: имя модуля, находящегося в слоте:
        - NM-1E        (Ethernet, 1 порт)
        - NM-4E        (Ethernet, 4 порта)
        - NM-1FE-TX    (FastEthernet, 1 порт)
        - NM-4T        (Serial, 4 порта)
        - NM-16ESW     (комутационный модуль Ethernet, 16 портов)
        - Leopard-2FE  (Cisco 3660 FastEthernet в слоте 0, используется автоматически)


=== Описание сетевого модуля Cisco 2691/3725/3745 ===

   Формат: slot:nm_driver

   slot: количество физических слотов (начинается с 0)

   nm_driver: имя модуля, находящегося в слоте:
        - NM-1FE-TX    (FastEthernet, 1 порт)
        - NM-4T        (Serial, 4 порта)
        - NM-16ESW     (коммутационный модуль Ethernet, 16 портов)
        - GT96100-FE   (2 интегрированных порта, используется автоматически)


NIO binding to Port Adapter "<pa_nio>" and Network Modules "<nm_nio>":
----------------------------------------------------------------------

   Формат: slot:port:netio_type[:netio_parameters]

   slot       : количество физических слотов (начинается с 0)
   port       : порт внутри указанного слота (начинается с 0)

   netio_type : хост-интерфейс, использующийся для связи с другими устройствами

        unix:<local_sock>:<remote_sock>
           UNIX-сокеты. Могут использоваться только для связи в пределах хост-системы.
           <local_sock> автоматически создаётся и представляет сетевую карту.
           <remote_sock> файл, использующийся другим интерфейсом.
           (например, "/tmp/local:/tmp/remote")

        vde:<control_sock>:<local_sock>
           Для коммутаторов UML (User Mode Linux) и для VDE-коммутаторов.
           VDE это "Virtual Distributed Ethernet".
           Подробнее: http://sourceforge.net/projects/vde/

        tap:<tap_name>
           Использовать виртуальное ethernet-устройство.
           <tap_name> — имя этого устройства (например, "tap0")

        gen_eth:<dev_name>
           Использовать настоящее ethernet-устройство для связи.
           Используется libpcap0.9 или WinPcap. Работает на Unix/Linux
           и на Windows.

           <dev_name> имя Ethernet-устройства (например. "eth0")

           Список устройств можно определить с помощью ключа "-e".

        linux_eth:<dev_name>
           Use a real ethernet device for communication (Linux specific).
           <dev_name> is the name of the Ethernet device (ex. "eth0")

        udp:<local_port>:<remote_host>:<remote_port>
           Использовать UDP-сокет для соединения. 
           <local_port> локальный порт, на котором ведётся прослушивание.
           <remote_host> удалённый хост, к которому выполняется подключение.
           <remote_port> порт удалённого хоста, к которому выполняется подключение.
        (например, "1000:somehost:2000" и "2000:otherhost:1000" с двух сторон)

        tcp_cli:<host>:<port>
           Клиентская сторона TCP-соединения.
           <host> — IP-адрес сервера.
           <port> — порт сервера.

        tcp_ser:<port>
           Серверная сторона TCP-соединения.
           <port> — порт, на котором нужно вести прослушивание

        null
           Dummy netio (для тестирования и отладки), параметры не нужны.



Привязка VTTY к настоящему последовательному порту "<si_desc>":
----------------------------------------------------

   Формат: <device>{:baudrate{:databits{:parity{:stopbits{:hwflow}}}}}}

   device: имя символьного устройства, например, /dev/ttyS0
   baudrate: baudrate
   databits: количество битов данных
   parity: бит чётности: N=нет, O=нечётный, E=чётный, 
   stopbits: количество стоповых битов
   hwflow: аппаратный контроль потока (0=отключён, 1=включён)

   Поле с именем устройства обязательно, а остальные опциональны.
   (по умолчанию: 9600, 8, N, 1, нет аппаратного управления потоком)

   Обратите внимание, что escape-последовательности (описанные ниже)
   недоступны через serial-интерфейс, поскольку они пересекаются с 
   кодами используемыми в протоколах инкапсуляции для последовательных
   соединений.

[править] Escape-последовательности

В любой момент можно нажать комбинацию ^] (Ctrl + ]), после чего нажать один из следующих символов:

   o : показать список VM-объектов
   d : показать список устройств
   r : показать дамп регистров MIPS CPU
   t : показать дамп записей MIPS TLB
   m : вывести дамп последнего обращения к памяти
   s : приостановить эмуляцию процессора
   u : возобновить эмуляцию процессора
   q : выйти из эмулятора
   b : показать дамп дерева блока инструкций
   h : статистика хэш-таблицы JIT
   l : статистика кэша MTS64
   c : записать конфигурацию IOS на диск (ios_cfg.txt)
   j : статистика не-JIT режима
   i : определить указатель счётчика простоя (idling pointer counter)
   x : эксперименты (возможны любые глюки!)
   ^]: отправить ^]

Если нажать клавишу, которой нет в этом списке, будет показана справка.

Note-icon.gif

На Windows системах вместо "Ctrl + ]", возможно, придётся нажимать "Ctrl + $".

[править] Виртуальный мост

Виртуальный мост используется для эмуляции разделяемого (shared) сегмента между экземплярами эмуляторов.

Любой экземпляр эмулятора может использоваться как виртуальный мост.

Конфигурационный файл, задаваемый с помощью опции -b содержит список дескрипторов с таким синтаксисом:

  interface_name:netio_type[:netio_parameters]

Пример:

# Connection to instance "I0"
I0:udp:10000:127.0.0.1:10001

# Connection to instance "I1"
I1:udp:10002:127.0.0.1:10003

# Connection to instance "I2"
I2:udp:10004:127.0.0.1:10005

IO-экземпляр нужно запускать с такими параметрами:

  dynamips ios.bin -p 1:PA-FE-TX -s 1:0:udp:10001:127.0.0.1:10000

[править] Виртуальный Ethernet-коммутатор

Виртуальный Ethernet-коммутатор используется для эмуляции Ethernet-сети между экземплярами эмулятора. Сейчас коммутатор поддерживает 802.1Q, поддержка ISL пока отсутствует, но она может появиться в следующих выпусках (хотя это очень маловероятно).

Любой экземпляр эмулятора может использоваться как виртуальный Ethernet-коммутатор.

Конфигурационный файл (указывается с помощью ключа -E) должен содержать список NetIO-дескрипторов (представляющих интерфейсы) и список свойств интерфейсов (порт доступа/транковый порт; информация о VLANах и так далее).

Описание интерфейса напоминает описание адаптеров портов:

  IF:interface_name:netio_type[:netio_parameters]

1) Настройка порта доступа:

синтаксис: ACCESS:interface_name:vlan_id

2) Настройка транкового порта 802.1Q

синтаксис: DOT1Q:interface_name:native_vlan

Native VLAN не тегируется; на Cisco по умолчанию native VLAN с номером 1.

Пример конфигурационного файла:

IF:E0:udp:10000:127.0.0.1:10001
IF:E1:udp:10002:127.0.0.1:10003
IF:E2:gen_eth:eth0

DOT1Q:E0:1
ACCESS:E1:4
DOT1Q:E2:1

[править] Виртуальный ATM-коммутатор

Виртуальная фабрика ATM-коммутатора используется для эмуляции ATM-магистрали (ATM backbone) между эмуляторами. Использование этого звена не обязательно; вы можете соединять коммутаторы напрямую ATM-порты соединениями точка-точка. Обратите внимание на то, что поддерживается только коммутация VP/VC и нет поддержки ILMI/QSAAL/... или другие ATM-протоколов.

Любой экземпляр эмулятора может использоваться как виртуальный ATM-коммутатор.

Пример конфигурационного файла (задаётся опцией -a):

# Virtual Interface List
IF:A0:udp:10001:127.0.0.1:10000
IF:A1:udp:10002:127.0.0.1:10003
IF:A2:udp:10004:127.0.0.1:10005

# VP connection between I0 and I1
VP:A0:10:A1:20
VP:A1:20:A0:10

# VP connection between I0 and I2
VP:A0:11:A2:30
VP:A2:30:A0:11

# VC connection between I1 and I2
VC:A1:5:2:A2:7:3
VC:A2:7:3:A1:5:2

В этом примере у нас три виртуальных интерфейса: A0, A1 и A2. Синтаксис такой же как и для адаптеров портов:

  IF:interface_name:netio_type[:netio_parameters]

Можно делать как VP, так и VC-коммутацию.

1) VP-коммутация

синтаксис: VP:input_if:input_vpi:output_if:output_vpi

2) VC-коммутация

синтаксис: VC:input_if:input_vpi:input_vci:output_if:output_vpi:output_vci


[править] Проверка виртуального ATM-коммутатора

Конфигурационный файл ("atm.cfg"):

IF:A0:udp:10003:127.0.0.1:10001
IF:A1:udp:10004:127.0.0.1:10002
# a0/vpi=1/vci=100 connects to a1/vpi=2/vci=200
VC:A0:1:100:A1:2:200
VC:A1:2:200:A0:1:100

Вызов dynamips:

./dynamips -p 1:PA-A1 -s 1:0:udp:10001:127.0.0.1:10003 \
           -p 2:PA-A1 -s 2:0:udp:10002:127.0.0.1:10004 \
           -a atm.cfg IOS.BIN

Обратите внимание на то, что входные порты интерфейсов IOS это выходные порты ATM-коммутатора и наоборот.

Конфигурация IOS:

ip cef
ip vrf test
 rd 1:1
 route-target both 1:1
int a1/0
 no shut
int a1/0.2 p
 ip addr 1.1.1.1 255.255.255.0
 pvc 1/100
interface a2/0
 no shut
interface a2/0.2 p
 ip vrf forwarding test
 ip addr 1.1.1.2 255.255.255.0
 pvc 2/200
!

# ping 1.1.1.2
!!!!!

[править] Виртуальный коммутатор Frame-Relay

Виртуальная фабрика FR-коммутатора используется для эмуляции FR-магистрали (FR backbone) между эмуляторами. Использование этого звена не обязательно; вы можете соединять коммутаторы напрямую соединениями точка-точка.

Любой экземпляр эмулятора может использоваться как виртуальный FR-коммутатор.

Существует только базовая реализация протокола LMI (ANSI Annex D), которая может быть и не во всём соответствует правилам, но работает с Cisco IOS. Хорошо, что Cisco IOS умеет определять протокол LMI автоматически.

Пример конфигурационного файла (задаваемого опцией -f):

# Virtual Interface List
IF:S0:udp:10001:127.0.0.1:10000
IF:S1:udp:10002:127.0.0.1:10003

# DLCI switching between S0 and S1
VC:S0:200:S1:100
VC:S1:100:S0:200

В примере у нас два виртуальных интерфейса: S0 и S1. Синтаксис такой же как и для адаптеров портов:

  IF:interface_name:netio_type[:netio_parameters]

синтаксис настройки коммутации DLCI:

  VC:input_if:input_dlci:output_if:output_dlci

В представленном выше примере коммутатор настроен так, что передаёт пакеты с интерфейса S0 с DLCI 200 на интерфейс S1 с DLCI 100 и наоборот.

[править] Сборка Dynamips

[править] Сборка Dynamips под Linux

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


Сборка выполняется вызовом одной команды make. Со всеми вспомогательными операциями процесс выглядит так:

        DYNAMIPS_SOURCES=http://www.ipflow.utc.fr/dynamips/dynamips-0.2.7.tar.gz
        DYNAMIPS_BUILD_DIR=dynamips/
        DESTDIR=/usr/local/dynamips/

        mkdir -p ${DYNAMIPS_BUILD_DIR}/
        cd ${DYNAMIPS_BUILD_DIR}/
        wget $DYNAMIPS_SOURCES
        tar xfz dynamips*tar*
        cd dynamips*/
        perl -p -i -e s@^PCAP_LIB=.*@PCAP_LIB=-lpcap@ Makefile
        make
        make install DESTDIR=${DESTDIR}

[править] Сборка Dynamips под Mac OS X

     $ curl 'http://www.mr511.de/software/libelf-0.8.6.tar.gz' -o libelf.tgz
     $ tar -zxf libelf.tgz
     $ cd libelf-0.8.6
     $ ./configure --prefix=/usr/local
     $ make
     $ sudo make install ...
     $ cd ../dynamips-0.2.5 && make
     $ ./dynamips ../../c7200-ik9su2-mz.124-13b.bin
     Cisco 7200 Simulation Platform (version 0.2.5-x86)
     ...
     Cisco IOS Software, 7200 Software (C7200-IK9SU2-M), Version 12.4(13b), RELEASE SOFTWARE (fc3)
     Technical Support: http://www.cisco.com/techsupport
     Copyright (c) 1986-2007 by Cisco Systems, Inc.
     Compiled Wed 25-Apr-07 03:18 by prod_rel_team
     Image text-base: 0x60008F10, data-base: 0x6258C180
     ...
     Router>

Источник: [1]

[править] Построение сетей на Dynamips

[править] Построение сетей вручную

[править] Dynagen

[править] GNS3

Gns3.png

[править] Xenomips и Xentaur

Если проекты Dynagen и GNS3 предназначаются для построения сетей, объединяющих между собой виртуальные маршрутизаторы Dynamips, то Xenomips и Xentaur идут дальше и объединяют не только виртуальные маршрутизаторы, но и виртуальные машины, работающие под управлением разнообразных операционных систем. Это, во-первых, позволяет исследовать вопросы совместной работы разнородных систем (например, демона маршрутизации quagga и маршрутизатора Cisco), а во-вторых, не ограничиваться использованием одних лишь маршрутизаторов и коммутаторов в сети, а добавлять в неё и серверные и клиентские системы.

Смешанная сеть Xentaur. В сеть объединены виртуальные маршрутизаторы Cisco (серые); Linux-маршрутизаторы, в которых работает Quagga (серые с лошадью; реальные маршрутизаторы (розовые); виртуальные и реальные коммутаторы, подробнее.

Xenomips — это виртуальная машина Xenolinux, работающая в домене domU Xen. Внутри виртуальной машины работает dynamips (Cisco 7200 Simulator), интерфейсы которого подключены к сетевым интерфейсам виртуальной машины.

Упаковка Dynamips внутрь виртуальной машины Xen позволяет добиться нескольких интересных результатов:

  • Возможность построения гетерогенных виртуальных сетей. На базе Xen и Xenomips легко строить гетерогенные сети, сочетающие в себе виртуальные машины, работающие под управление различных операционных систем. Например, построение сети, состоящей из нескольких виртуальных маршрутизаторов Cisco, соединяющих между собой виртуальные системы Windows, Linux, BSD и другие, является очень простой задачей.
  • Унифицированные средства управления. Становятся едиными средства для управления виртуальными машинами Xen (Linux, FreeBSD, OpenSolaris, Windows) и Dynamips. Существующие и вновь создаваемые инструменты для управления виртуальными машинами Xen точно также могут применяться для управления машинами Dynamips. Это, в частности, относится к механизмам управления выделяемым процессорным временем и памятью.
  • Миграция и живая миграция виртуальных маршрутизаторов Dynamips. Состояние всей виртуальной сети целиком может быть запомнено и восстановлено в любой момент времени. Виртуальная сеть может быть целиком или частично перенесена с одной хост-системы на другую без остановки (и даже приостановки) её работы.
  • Управление трафиком между экземплярами Dynamips средствами Linux. Интерфейсы доменов Xen соединяются между собой с помощью мостов Linux. Все они видны в домене 0 Xen, и к трафику, проходящему через эти интерфейсы, применимы все стандартные механизмы управления: для управления трафиком между виртуальными маршрутизаторами становится доступным богатый инструментарий Linux. В частности, это позволяет использовать функционал iptables, ebtables, а также QoS-средств базовой Linux-системы.

С другой стороны, у упаковки Dynamips внутрь домена Xen есть и некоторые недостатки.

  • Память. Xenomips требует больше оперативной памяти на каждый экземпляр чем чистый Dynamips. Память потребляет ОС, под управлением которой работает виртуальная машина, выполняющая процесс Dynamips.
  • Интерфейсы Dynamips. В настоящий момент в Xenomips из всего богатства интерфейсов доступных в Dynamips используются только интерфейсы Ethernet. При желании от этого недостатка можно избавиться.

Для экономии ресурсов и исследования гетерогенных сетей, объединяющих в себе маршрутизаторы Cisco и UNIX/Linux, Xenomips может работать в режиме Linux-маршрутизатора. В этом случае внутри домена Xen исполняется не эмулятор Dynamips, а демон динамической маршрутизации Quagga. Такой экземпляр намного менее требователен к памяти, в нормальном режиме ему хватает 64MB.

Цель проекта Xentaur — разработка инструментов и методов быстрого построения виртуальных сетей и исследования их работы. Сети могут быть не только чисто виртуальными, но и смешанными: наряду с виртуальными узлами в них могут работать и обычные компьютеры и сетевые устройства.

Xentaur — распределённая система, она позволяет строить виртуальные сети, требующие для своей работы ресурсов множества компьютеров.

В Xentaur есть специальная управляющая консоль (Xentaur Shell), которая предназначена для управления всей виртуальной сетью и отдельными её устройствами. Виртуальная сеть представлена в виде объектно-ориентированной модели, объектами которой можно манипулировать при помощи командного интерпретатора iPython языка Python.

Консоли всех устройств подключаются через оконный менеджер GNU Screen. Каждая консоль занимает одно окно screen. Из Xentaur Shell можно выполнять массовую настройку устройств. Xentaur Shell через оконный менеджер передаёт управляющие последовательности на консоли устройств.

Например, настройка OSPF на всех устройствах, выглядит так:

In [3]: configure_ospf(domains)

(здесь In [3]: — приглашение интерпретатора).

Xentaur, зная о том, какой домен имеет какой тип (Cisco, Quagga или не маршрутизатор), сгенерирует команды настройки и отправит их на консоли (или не отправит, если устройство не поддерживает OSPF или не имеет текстовой консоли для настройки). Этот механизм позволяет сэкономить время на рутинных операциях по настройке сети.

Подробнее:

[править] Использование Dynamips в реальных сетях

[править] Дополнительная информация

[править] Материалы по эмуляторам на Xgu.ru

Эмуляторы сетей:

  • WANEM — эмулятор WAN
  • IMUNES (An Integrated Multiprotocol Network Emulator / Simulator)
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
Источник — «http://xgu.ru/wiki/Dynamips»