The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Настройка сети для виртуального окружения на основе KVM
Имеется машина с Ubuntu Linux, имеющая один сетевой интерфейс. При помощи гипервизора KVM создано
два гостевых окружения - debian01 и debian02. Задача организовать сетевую связь
(виртуальная LAN) между
гостевыми системами и корневой системой и обеспечить выход в интернет, через
сетевой интерфейс корневой системы.

Настройка корневой системы.

Первым делом нужно создать виртуальный Ethernet коммутатор на базе пакета VDE,
при помощи которого будет создан виртуальный интерфейс tap0, через который будет организована связь
между гостевыми окружениями.
Создаем интерфейс:
   sudo vde_switch -tap tap0 -daemon

Проверяем:
   ifconfig tap0

   tap0      Link encap:Ethernet  direcciónHW 00:ff:1b:e7:76:46
   DIFUSIÓN MULTICAST  MTU:1500  Métrica:1
   RX packets:1 errors:0 dropped:0 overruns:0 frame:0
   TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
   colisiones:0 txqueuelen:500
   RX bytes:53 (53.0 B)  TX bytes:0 (0.0 B)

Привязываем адреса виртуальной сети (192.168.254.0/255):
   ifconfig tap0 192.168.254.254 netmask 255.255.255.0

для гостевых окружений, адрес 192.168.254.254 будет использоваться в роли шлюза.


Настройка гостевых систем.

Настраиваем в гостевом окружении сетевой интерфейс eth0 (выделяем первому - IP 192.168.254.1,
второму - 192.168.254.2 и т.д.)
Содержимое /etc/network/interfaces

   # loopback
   auto lo
   iface lo inet loopback

   allow-hotplug eth0
   #iface eth0 inet dhcp
   iface eth0 inet static
   address 192.168.254.1
   netmask 255.255.255.0
   network 192.168.254.0
   broadcast 192.168.254.255
   gateway 192.168.254.254


Для предотвращения виртуальных окружений под одним MAC адресом, меняем MAC виртуальных карт:

   sudo aptitude install macchanger

Создаем скрипт /etc/network/if-pre-up.d/macchange, меняющий MAC

   #!/bin/sh
   if [ ! -x /usr/bin/macchanger ]; then
      exit 0
   fi
   /usr/bin/macchanger -a eth0

Перезапускаем гостевые окружения (вместо $IMAGE подставляем путь к окружению):
   sudo /usr/bin/vdeq /usr/bin/kvm $IMAGE -m 512 -localtime -k es


Настройка выхода гостевых систем в интернет.

Проверяем на корневой системе, включен ли форвардинг пакетов между интерфейсами:
   sysctl net.ipv4.ip_forward

Если выдало 0, то форвардинг отключен, включаем:
   sudo -w sysctl net.ipv4.ip_forward=1

и сохраняем в /etc/sysctl.conf строку
   net.ipv4.ip_forward = 1

В скрипте инициализации, после поднятия tap0 интерфейса, включаем трансляцию адресов:

   sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
 
01.11.2008 , Источник: http://www.debianadmin.com/create-a...
Ключи: kvm, tap, virtual, ethernet, nat, switch / Лицензия: CC-BY
Раздел:    Корень / Безопасность / Виртуализация - Xen, OpenVZ, KVM, Qemu

Обсуждение [ RSS ]
  • 1, mma (?), 05:16, 03/11/2008 [ответить]  
  • +/
    У меня на свежей kvm ничего настраивать не надо в ручную - оно само делает - стартуешь виртуальную машину, на клиенте ИП получаешь по dhcp и вуаля - и внешняя сеть доступна и внутренняя.
     
     
  • 2, pavlinux (ok), 20:36, 05/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Гонишь! Особенно про видимость внутренней сети.
    Венда не увидит подсеть 192.168/24, так как через NAT, а от встроенного DHCP получает 10/8

      

     

  • 3, mv (??), 22:17, 05/11/2008 [ответить]  
  • +/
    Сравните с тем, как оно сделано в Федоре:

    yum install virt-manager

     
  • 4, r0mik (??), 22:05, 06/11/2008 [ответить]  
  • +/
    чет муторно как-то...

    modprobe tun
    tunctl -u юзер -t tap0
    tunctl -u юзер -t tap1
    tunctl -u юзер -t tapN
    ifconfig tap0 up
    ifconfig tap1 up
    ifconfig tapN up
    brctl addbr br0
    brctl addif br0 tap0 tap1 tapN
    ifconfig br0 192.168.0.1/24

    kvm -net nic,macaddr=00:00:00:33:22:11 -net tap,ifname=tap0,script=no,downscript=no
    -net nic,macaddr=00:00:44:33:22:11 -net tap,ifname=tap1,script=no,downscript=no


    но это все никому ненужно так как все создается автоматом с помощью скрипта kvm-ifup и удаляетсо kvm-ifdown

     
     
  • 5, pavlinux (ok), 00:13, 08/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    чет муторно как-то...

    modprobe -q tun
    brctl addbr br0;
    ifconfig br0 192.168.0.1 up;

    j=0;

    for user in $1
       do
          tunctl -u $user
          ifconfig tap$j promisc up
          brctl addif br0 tap$j;
          kvm -net nic -net tap,ifname=tap$j,script=no &
          ((j++))
    done

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру