Здравствуйте.
Задача такая: настроить под Ubuntu 10.10 внутреннюю сеть из нескольких виртуальных машин (гипервизор --- KVM). Причём, они должны видеть друг друга, видимы host'ом и выходить в Интернет --- я так понимаю «usermode», который «из коробки» мне не подходит, нужен мост. Из внешней сети, выходит, видимы не должны быть, иначе есть вероятность возникновения конфликтов IP-адресов.
1. Пока не понимаю, как задаётся адрес, под которым host будет виден гостям.
2. В качестве шлюза, в настройках гостей надо прописывать свой статический IP или внутренний --- тогда какой? см. п.1.
3. Виртуальные машины устанавливал с помощью vmbuilder. Написал bash-сценарий create_rsoivm.sh:
#!/bin/bash
readonly vmbasename="rsoivm"
readonly logfile="log.txt"
read -p "Enter VMs' numbers [first count]: " first count
echo > $logfile
for (( i=first; i < first + count; ++i )); do
echo -n "Creating VM '$vmbasename$i'... "
vmbuilder kvm ubuntu \
--overwrite --verbose \
--config=$vmbasename.cfg \
--firstboot=$PWD/firstboot.sh \
--firstlogin=$PWD/firstlogin.sh \
--destdir=$vmbasename$i \
--ip=192.168.0.10$i \
--hostname=$vmbasename$i \
&>> $logfile
if [ $? -eq 0 ]; then
echo "[OK]"
else
echo "[Failed]"
break
fi
done
if [ $i -eq first + count ]; then
echo "All VMs has been created successfully."
else
echo "Faile to create VM '$vmbasename$i'."
fi
firstboot.sh:
# This script will run the first time the virtual machine boots
# It is ran as root.
# Install openssh-server
apt-get update
apt-get install -qqy --force-yes openssh-server
firstlogin.sh --- пуст.
rsoivm.cfg:
[DEFAULT]
part = vmbuilder.partition
user = ivirtual
name = I.Virtual
pass = letmein
arch = amd64
domain = icn.bmstu.ru
mask = 255.255.255.0
gw = 192.168.55.151
tmpfs = -
#tmpfs = suid,dev,size=2G ???
mem = 512
cpus = 1
[ubuntu]
suite = maverick
flavour = virtual
mirror = http://ru.archive.ubuntu.com/ubuntu
addpkg = openssh-server, unattended-upgrades, vim-nox, acpid
#components = main,universe,restricted,multiverse
[kvm]
libvirt = qemu:///system
bridge = br0
#virtio_net = true
/etc/network/interfaces:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
auto br0
iface br0 inet static
address 192.168.55.151
netmask 255.255.255.0
gateway 192.168.55.1
bridge_ports eth0
bridge_stp off
bridge_maxwait 0
bridge_fd 0
ifconfig:
br0 Link encap:Ethernet HWaddr 00:90:f5:8c:4a:ac
inet addr:192.168.55.151 Bcast:192.168.55.255 Mask:255.255.255.0
inet6 addr: fe80::290:f5ff:fe8c:4aac/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:53316 errors:0 dropped:0 overruns:0 frame:0
TX packets:132684 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:7655331 (7.6 MB) TX bytes:45518674 (45.5 MB)
eth0 Link encap:Ethernet HWaddr 00:90:f5:8c:4a:ac
inet6 addr: fe80::290:f5ff:fe8c:4aac/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:894951 errors:0 dropped:0 overruns:0 frame:0
TX packets:663689 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:760742337 (760.7 MB) TX bytes:231216188 (231.2 MB)
Interrupt:46 Base address:0xe000
lo Link encap:Локальная петля (Loopback)
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:6946 errors:0 dropped:0 overruns:0 frame:0
TX packets:6946 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:990901 (990.9 KB) TX bytes:990901 (990.9 KB)
virbr1 Link encap:Ethernet HWaddr 96:ae:c5:c7:9d:a3
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::94ae:c5ff:fec7:9da3/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:58 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:8940 (8.9 KB)
vnet0 Link encap:Ethernet HWaddr fe:54:00:49:53:39
inet6 addr: fe80::fc54:ff:fe49:5339/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:25 errors:0 dropped:0 overruns:0 frame:0
TX packets:104215 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:1882 (1.8 KB) TX bytes:12638839 (12.6 MB)
vnet1 Link encap:Ethernet HWaddr fe:54:00:16:8b:0f
inet6 addr: fe80::fc54:ff:fe16:8b0f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:43 errors:0 dropped:0 overruns:0 frame:0
TX packets:8428 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:2638 (2.6 KB) TX bytes:1232011 (1.2 MB)
wlan0 Link encap:Ethernet HWaddr 00:21:5d:91:9d:22
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Через virt-viewer подсоединиться к виртуальным машинам получается. Вот /etc/network/interfaces одной из них:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.0.101
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.55.151
dns-nameservers 192.168.55.151
dns-search icn.bmstu.ru
При перезагрузке сети на виртуальной машине
sudo /etc/init.d/networking restart
В какой-то момент стал грешить на сетевые настройки в virsh. sudo cat default.xml: <network> <name>default</name> <bridge name=«virbr%d» /> <forward/> <ip address=«192.168.122.1» netmask=«255.255.255.0»> <dhcp> <range start=«192.168.122.2» end=«192.168.122.254» /> </dhcp> </ip> </network> Попробовал настроить свою. sudo cat rsoinet.xml:
<network>
<name>rsoinet</name>
<bridge name="virbr1" stp="off" />
<domain name="icn.bmstu.ru" />
<forward dev="eth0" mode="route" />
<ip address="192.168.0.1" netmask="255.255.255.0">
<dhcp>
<range start="192.168.0.2" end="192.168.0.254" />
</dhcp>
</ip>
</network>
Может мне надо интерефейсы vnetX добавлять brctl'ом? Или в /etc/network/interfaces прописывать «bridge_ports vnet.*»?
ping'и от VM к host'у и между VM'ами не проходят.
man interfaces, brigde-utils-interfaces, brctl читал. На форумах много всего перечитал. Ubuntu Community --- тоже. В общем, уже третий день бьюсь --- сеть не заводится. Уже отчаялся сам разобраться. У кого есть опыт --- помогите.