Интеграция виртуальной сети Xentaur и реальной сети

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

Перейти к: навигация, поиск
Короткий URL: xentaur/real_network

< Xentaur

Нужно:

  1. Настроить коммутатор
  2. Настроить хост-систему

Содержание

[править] Настройка коммутатора

Настройку можно выполнить вручную, или воспользоваться скриптом для автоматизации создания VLAN'ов. Пример скрипта есть на странице VLAN.

[править] Создание нетегированных каналов

Разместите порты по одному (два или больше) в отдельном VLAN'е. Трафик не должен тегироваться.

Количество VLAN'ов должно быть больше или равно максимальному количеству виртуальных мостов, которые будут использоваться в ваших топологиях.

Например, если вы планируете строить топологии, содержащие до 20 мостов, вам понадобится 20 VLAN'ов.

Для удобства будем нумеровать VLAN'ы начиная с 100:

  • VLAN 101
  • VLAN 100

и т.д.

Допустим, мы будем использовать на коммутаторе порты с 20 по 40. Разместим эти порты в соответствующих VLAN'ах.

  • порт 21 — VLAN 101
  • порт 22 — VLAN 102
  • порт 23 — VLAN 103
  • ...
  • порт 39 — VLAN 119

[править] Создание тегированных каналов

Через порт 20 пусть передаётся трафик всех этих VLAN'ов в тегированном виде.

[править] Настройка хост-системы

Необходимо сделать так, что трафик виртуальных мостов внутри хост-системы тегировался бы тегами созданных на коммутаторе VLAN'ов и отправлялся через сетевой интерфейс. Этот сетевой интерфейс должен быть подключён к коммутатору через интерфейс с тегированным трафиком (в нашем примере это интерфейс 20), на котором поддерживаются все нужные VLAN'ы. <sh/>

  1. !/bin/sh

iface=eth0 iface_ip=192.168.15.254 first_vlan=100 last_vlan=120 bridge_prefix=br

for vlan in `seq ${first_vlan} ${last_vlan}` do

   vconfig add ${iface} ${vlan}
   /etc/xen/scripts/network-bridge start vifnum=$[vlan-100] bridge=${bridge_prefix}${vlan} netdev=${iface}.${vlan} 

done

ifconfig ${iface} 0.0.0.0 ifconfig ${iface}.${last_vlan} ${iface_ip}

Будет создано указанное количество (20+1) мостов, которые будут подключены к соответствующим VLAN'ам (номер моста+100).

В последнем VLAN'е размещён домен 0. Порт этого VLAN'а нужна включить в ту сеть, которую раньше был включен сетевой интерфейс домена 0.


[править] Изменение топологии

[править] Пример

Xentaur-topology-example2.png

Здесь:

  • windows1, linux1 и mac1 — реальные хосты;
  • cisco1 — реальный маршрутизатор;
  • cat1 и cat2 — реальные коммутаторы;
  • остальное — виртуальные машины и виртуальные мосты.

Описание топологии:

import os
domain=os.environ['xendomain']

network='netw'

domains =       [ 'qua1',   'qua2',   'dyn3',     'qua4',   'qua5',   'dyn6',    'cisco1', 'linux1', 'windows1', 'mac1' ]
domain_types =  [ 'quagga', 'quagga', 'xenomips', 'quagga', 'quagga', 'xenomips','cisco',  'linux',  'windows', 'macosx' ]
bridges =       [ 
                  'br1',
                  'br2',
                  'br3',
                  'br4',
                  'br5',
                  'br6',
                  'cat1',
                  'cat2',
                ]

vbridges_table ={
        'qua1'      : [ 'br1' ],
        'qua2'      : [ 'br2', 'br5' ],
        'dyn3'      : [ 'br1', 'br2', 'br3' ],
        'qua4'      : [ 'br3', 'br4', 'br6' ],
        'qua5'      : [ 'br5' ],
        'dyn6'      : [ 'br5',  'br6' ],
        'cisco1'    : [ 'br6','cat1'],
        'linux1'    : [ 'cat1'],
        'windows1'  : [ 'cat2'],
        'mac1'      : [ 'cat1'],
}

bridge_bridge_table = {
    'cat2' : [ 'br1' ],
}

hidden_bridges = []
broken_links = []
temporary_links = []

real_bridges=['cat1', 'cat2']
real_nodes=['cisco1','cisco2']

N=domains.index(domain)
if domain_types[N] == 'quagga':
    memory = 64
else:
    memory = 400

xenomips_dir='/home/nata/xenomips-images/'
ios_name='C7200-AD.BIN'
npe_type='npe-400'

Небольшая ремарка для Dynamips:

Если вы хотите увидеть интерфейс хост-системы, в которой работает эмулятор, используйте подключение tap, для сетевых модулей dynamips.

Полученный tap-интерфейс соединяйте через brctl addbr

brctl addbr br104
ip link set br104 up
dynamips ...
brctl addif br104 dyn104
ip link dyn104 up
ifconfig br104 promisc
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
Xentaur Stand 1.jpg