Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Настройка сети для kvm

332 views
Skip to first unread message

Konstantin Fadeyev

unread,
Apr 2, 2011, 3:20:01 PM4/2/11
to
Здравствуйте!

Возникла задача ввести в уже существующую локальную сеть виртуальную
машину на kvm.
В сети существуют и работают DHCP и DNS. Хост, на котором крутится
kvm, получает адреса и разрешает имена. В общем с ним всё в норме. У
меня возникли трудности с тем же самым для гостевой ОС. Я только
осваиваю kvm поэтому начал с его настройки с помощью virt-manager, так
то вроде всё работает, только вот сети моей виртуалка не видит. Там
была преднастроенное сетевое соединение, но через него работает только
инет.
Мне же нужно чтоб на виртуалке была сеть словно в саму виртуалку
воткнуты провода. Эмн, например в ВиртуалБоксе это выглядит как мост
на аппаратный интерфейс. Как это реализовать? Не обязательно через
графический интерфейс.

--
Константин Фадеев

Alexey Boyko

unread,
Apr 2, 2011, 4:30:02 PM4/2/11
to
Sat, 02 Apr 2011 22:15:43 +0300 було написано Konstantin Fadeyev
<jre...@gmail.com>:
Нужно точно также сделать мост. в виртуалбоксе оно делается как-то
прозрачно,
через ядерный модуль. для kvm нужно вручную.

Если сейчас у вас dhcp запускается на eth0, то нужно запустить kvm на tap0,
tap0 и eth0 нужно объединить в br0, и запускать dhcp на br0.


--
xmpp:ale...@boyko.km.ua

Mikhail A Antonov

unread,
Apr 2, 2011, 4:30:02 PM4/2/11
to
02.04.2011 23:15, Konstantin Fadeyev пишет:
На хосте делаем мост (требуется пакет bridge-utils)
в /etc/network/interfaces
{
<...>
auto lan0
iface lan0 inet static
address 172.16.1.1
netmask 255.255.255.224
bridge_ports eth0
bridge_fd 5
bridge_hello 2
bridge_maxage 10
bridge_stp off
bridge_maxwait 5
<...>
}

Скриптик для поднятия сети:
cat /etc/kvm/kvm-lan0
#!/bin/bash
ifconfig $1 up; brctl addif lan0 $1

(не забудь ему chmod +x сделать)

Ну и в запуск гостя:
-net nic,vlan=0,model=virtio,macaddr=52:54:00:12:17:70 -net
tap,vlan=0,ifname=<vmname><num>,script=/etc/kvm/kvm-lan0

<vmname> - я обычно сюда пишу короткое имя виртуалки
<num> - номер, начиная с нуля (для виртуалок с несколькими интерфейсами)

--
Best regards,
Mikhail.


--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org
Archive: http://lists.debian.org/4D9786D...@solarnet.ru

Dmitri V. Ivanov

unread,
Apr 2, 2011, 4:40:02 PM4/2/11
to

Например создать на машине мост (bridge) с IP-адресом и добавлять в этот
же мост tap виртуальной машины. Ставим пакет bridge-utils и читаем в нем
документацию. Как сделать чтобы при запуске kvm tap виртуальной машины
добавлялся к нужному мосту вроде даже пример с kvm был (она там скрипт
запускает).


--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

Archive: http://lists.debian.org/20110402200...@intex.spb.ru

Nicholas

unread,
Apr 2, 2011, 5:00:02 PM4/2/11
to
Можно при запуске сказать:

kvm -daemonize -vnc 127.0.0.1:3 -m 256 -hda vm-clean_os.qcow2 &


--
Sincerely,
Nicholas


--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

Archive: http://lists.debian.org/in82ij$9iq$1...@dough.gmane.org

Mikhail A Antonov

unread,
Apr 2, 2011, 5:10:02 PM4/2/11
to
02.04.2011 20:55, Nicholas пишет:

> Можно при запуске сказать:
>
> kvm -daemonize -vnc 127.0.0.1:3 -m 256 -hda vm-clean_os.qcow2 &
>
И что будет?

Вот запуск реальной машины
/usr/bin/kvm -name "zimbra" -m 4096 -vnc [::]:70 -hda /dev/vg0/zimbrasys
-hdb /dev/vg0/zimbradata -boot c \


-net nic,vlan=0,model=virtio,macaddr=52:54:00:12:17:70 -net

tap,vlan=0,ifname=zimbra0,script=/etc/kvm/kvm-serv0 \
-no-fd-bootchk -daemonize -usb -usbdevice tablet -balloon
virtio -smp 4


--
Best regards,
Mikhail.


--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

Archive: http://lists.debian.org/4D978E79...@solarnet.ru

Nicholas

unread,
Apr 2, 2011, 5:30:01 PM4/2/11
to
On 02.04.2011 21:00, Mikhail A Antonov wrote:
> 02.04.2011 20:55, Nicholas пишет:
>> Можно при запуске сказать:
>>
>> kvm -daemonize -vnc 127.0.0.1:3 -m 256 -hda vm-clean_os.qcow2&
>>
> И что будет?

Можно будет один раз залогиниться на них шелом, изнутри запустить
openvpn, получить внешний ip и забыть на какой машине запущен kvm.


--
Sincerely,
Nicholas


--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

Archive: http://lists.debian.org/in8418$h4k$1...@dough.gmane.org

Mikhail A Antonov

unread,
Apr 2, 2011, 6:00:02 PM4/2/11
to
02.04.2011 21:20, Nicholas пишет:

> On 02.04.2011 21:00, Mikhail A Antonov wrote:
>> 02.04.2011 20:55, Nicholas пишет:
>>> Можно при запуске сказать:
>>>
>>> kvm -daemonize -vnc 127.0.0.1:3 -m 256 -hda vm-clean_os.qcow2&
>>>
>> И что будет?
>
> Можно будет один раз залогиниться на них шелом, изнутри запустить
> openvpn, получить внешний ip и забыть на какой машине запущен kvm.
>
Попахивает почёсыванием правого уха левой ногой через голову.

--
Best regards,
Mikhail.


--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

Archive: http://lists.debian.org/4D979A17...@solarnet.ru

Konstantin Fadeyev

unread,
Apr 3, 2011, 3:40:01 AM4/3/11
to
В /etc/network/interfaces сделал так:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp

# Bridge for KVM
auto kvmbr0
iface kvmbr0 inet dhcp


bridge_ports eth0
bridge_fd 5
bridge_hello 2
bridge_maxage 10
bridge_stp off
bridge_maxwait 5

Интерфейс eth0 также получает адрес от DHCP, добавляю его в мост
который также получает адрес от DHCP. В принципе всё работает, вот
только не знаю насколько это правильно.

В virt-manager появилась возможность выбрать "Мост на kvmbr0", после
выбора, всё заработало как надо. Хотя смысл что к чему мне не совсем
понятен.

Сейчас попробую командную строку и скрипты запуска сети.

--
Константин Фадеев

Mikhail A Antonov

unread,
Apr 3, 2011, 12:50:01 PM4/3/11
to
03.04.2011 11:32, Konstantin Fadeyev пишет:
> В /etc/network/interfaces сделал так:
<...>

> # The primary network interface
> allow-hotplug eth0
> iface eth0 inet dhcp
Вот это лишнее. Закоменти или вообще удали.

> Интерфейс eth0 также получает адрес от DHCP, добавляю его в мост
> который также получает адрес от DHCP. В принципе всё работает, вот
> только не знаю насколько это правильно.

На интерфейсах, входящих в мост не должно быть никаких адресов.

> В virt-manager появилась возможность выбрать "Мост на kvmbr0", после
> выбора, всё заработало как надо. Хотя смысл что к чему мне не совсем
> понятен.

Не пробовал. Пускаю руками.

--
Best regards,
Mikhail.


--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

Archive: http://lists.debian.org/4D98A4EE...@solarnet.ru

Nikita A Menkovich

unread,
Apr 4, 2011, 4:30:03 AM4/4/11
to
А можно и без мостов обойтись.

sudo tunctl -b -u username -t vmname
sudo ifconfig vmname 0.0.0.0 up
sudo ip route add vm_ip dev vmname

2011/4/3 Mikhail A Antonov <ba...@solarnet.ru>:

--
Nikita A Menkovich
http://libc6.org/
JID: menk...@gmail.com
Tel: +7 (921) 423-96-48

Mikhail A Antonov

unread,
Apr 4, 2011, 5:50:01 AM4/4/11
to
04.04.2011 12:23, Nikita A Menkovich пишет:

> А можно и без мостов обойтись.
>
> sudo tunctl -b -u username -t vmname
> sudo ifconfig vmname 0.0.0.0 up
> sudo ip route add vm_ip dev vmname
>
А автоконфигурирование в IPv6 так заработает? А DHCP?
А что если эта vm это, например, openvpn-сервер и за ним соседние офисы?
А что если эта vm - шлюз во внешний интернет и от провайдера она
получает динамический IP? А ещё HN не является роутером.
Слишком много "если". Костыль какой-то.

--
Best regards,
Mikhail.


--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

Archive: http://lists.debian.org/4D99924A...@solarnet.ru

Konstantin Fadeyev

unread,
Apr 4, 2011, 12:20:02 PM4/4/11
to
Всем спасибо за реальную помощь!

Решил остановиться на следующем варианте.

В /etc/network/interfaces пишу так:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
# iface eth0 inet dhcp
# Для включения в мост интерфейс не должен быть настроен, "manual"
позволяет провести настройку интерфейса после поднятия по своему
усмотрению.
iface eth0 inet manual

# Bridge for KVM
auto kvmbr0
iface kvmbr0 inet dhcp
bridge_ports eth0
bridge_fd 5
bridge_hello 2
bridge_maxage 10
bridge_stp off
bridge_maxwait 5

Создаём мост при старте системы.

Пускаем машину с такими параметрами:

-net nic,vlan=0 -net tap,vlan=0,ifname=test0,script=/etc/kvm/kvm-ifup

Я тут внимательно покурил /etc/kvm/kvm-ifup, его возможностей хватает
для подключения к мосту. Причём даже очень.

И в результате получаем то что я хотел, ввод виртуальной машины в
существующую физическую сеть, как и обычный аппаратный компьютер.

--
Константин Фадеев

Mikhail A Antonov

unread,
Apr 4, 2011, 4:20:02 PM4/4/11
to
04.04.2011 20:14, Konstantin Fadeyev пишет:
> allow-hotplug eth0
> iface eth0 inet manual
eth0 вообще лишний в этой конфигурации. Эти строки можно спокойно
удалить. В остальном всё правильно. Относительно ifup - у меня просто
несколько машин с 2 и более интерфейсами. Надёжнее позвать отдельный
скрипт для ввода в нужный мост.

--
Best regards,
Mikhail.


--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

Archive: http://lists.debian.org/4D9A2679...@solarnet.ru

Korona Auto Ltd./ Andrey N. Prokofiev

unread,
May 3, 2011, 3:00:02 AM5/3/11
to
05.04.2011 00:13, Mikhail A Antonov пишет:

> 04.04.2011 20:14, Konstantin Fadeyev пишет:
>> allow-hotplug eth0
>> iface eth0 inet manual
> eth0 вообще лишний в этой конфигурации. Эти строки можно спокойно
> удалить. В остальном всё правильно. Относительно ifup - у меня просто
> несколько машин с 2 и более интерфейсами. Надёжнее позвать отдельный
> скрипт для ввода в нужный мост.
>

Я считаю что мост - не самое верное решение. Маршрутизируемая сеть более
удобна. У меня лично оно выглядит так:
auto virbr0
iface virbr0 inet static
address 192.168.200.1
netmask 255.255.255.0
pre-up brctl addbr virbr0
post-down brctl delbr virbr0

И cat /etc/dnsmasq.d/routednetwork:
interface=virbr0
dhcp-range=virbr0,192.168.200.200,192.168.200.250
domain=auto.local,192.168.200.1,192.168.200.255

--
WBR, Andrey N. Prokofiev
IT department of the Korona Auto Ltd.
Jabber ID: an...@korona-auto.com
E-mail: an...@korona-auto.com
Work Phone: +7-812-645-36-16 (ext. 100)

--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

Archive: http://lists.debian.org/4DBFA77...@korona-auto.com

0 new messages