Настройка сети для виртуального окружения на основе 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
|
|
|
|
Раздел: Корень / Безопасность / Виртуализация - Xen, OpenVZ, KVM, Qemu |
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
| |
|
|