Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: KVM\настройка сети  (Прочитано 31474 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Protey

  • Автор темы
  • Новичок
  • *
  • Сообщений: 43
    • Просмотр профиля
KVM\настройка сети
« : 09 Января 2010, 20:14:59 »
есть KVM. одна гостевая система (для начала)
каким образом настроить таки в ней сеть?
перепробовал уже КУЧУ манов. например:
http://www.opennet.ru/tips/info/1815.shtml
https://help.ubuntu.com/community/KVM/Networking
http://www.linux-kvm.org/page/Networking
http://hrafn.me/2009/12/kvm-bridge-i-virtualnye-mashiny/
и т.д.
делаю по ману ubuntu.com:
пишу в терминале
Цитировать
sudo invoke-rc.d networking stop
далее добавляю в /etc/network/interfaces
Цитировать
auto br0
iface br0 inet dhcp
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0
потом
Цитировать
/etc/init.d/networking restart
и вижу:
Цитировать
* Reconfiguring network interfaces...
resolvconf: Error: /etc/resolv.conf must be a symlink
run-parts: /etc/network/if-down.d/resolvconf exited with return code 1
resolvconf: Error: /etc/resolv.conf must be a symlink
resolvconf: Error: /etc/resolv.conf must be a symlink
run-parts: /etc/network/if-down.d/resolvconf exited with return code 1
There is already a pid file /var/run/dhclient.br0.pid with pid 9310
killed old client process, removed PID file
Internet Systems Consortium DHCP Client V3.1.2
Copyright 2004-2008 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/

Listening on LPF/br0/00:18:f3:02:bb:e4
Sending on   LPF/br0/00:18:f3:02:bb:e4
Sending on   Socket/fallback
DHCPRELEASE on br0 to 77.106.109.189 port 67
resolvconf: Error: /etc/resolv.conf must be a symlink
resolvconf: Error: /etc/resolv.conf must be a symlink
run-parts: /etc/network/if-up.d/000resolvconf exited with return code 1
Internet Systems Consortium DHCP Client V3.1.2
Copyright 2004-2008 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/

Listening on LPF/br0/00:18:f3:02:bb:e4
Sending on   LPF/br0/00:18:f3:02:bb:e4
Sending on   Socket/fallback
DHCPDISCOVER on br0 to 255.255.255.255 port 67 interval 5
DHCPOFFER of 79.136.129.140 from 79.136.129.129
DHCPREQUEST of 79.136.129.140 on br0 to 255.255.255.255 port 67
DHCPACK of 79.136.129.140 from 79.136.129.129
resolvconf: Error: /etc/resolv.conf must be a symlink
bound to 79.136.129.140 -- renewal in 1168856 seconds.
resolvconf: Error: /etc/resolv.conf must be a symlink
run-parts: /etc/network/if-up.d/000resolvconf exited with return code 1

меняю в xml файле настройки на
Цитировать
<interface type='bridge'>
      <mac address='00:18:f3:02:bb:e4'/>
      <source bridge='br0'/>
    </interface>

после этого, пропадает интернет на всей машине, и в гостевой системе ничего не пингуется..
---------------------------------------
делал по другому мануалу

создаю интерфейс br0:
Цитировать
sudo /usr/sbin/brctl addbr br0
далее скрипт сохраняю в нужное место
Цитировать
#!/bin/sh
set -x

switch=br0

if [ -n "$1" ];then
        /usr/bin/sudo /usr/sbin/tunctl -u `whoami` -t $1
        /usr/bin/sudo /sbin/ip link set $1 up
        sleep 0.5s
        /usr/bin/sudo /usr/sbin/brctl addif $switch $1
        exit 0
else
        echo "Error: no interface specified"
        exit 1
fi

и запускаю под рутом (само собой, с подстановкой своих значений)
Цитировать
qemu-system-x86_64 -hda /path/to/hda.img -net nic,macaddr=$macaddress -net tap

в мануале этого не было, но, насколько я понял, нужно было для br0 определить ip адреса
Цитировать
ifconfig br0 192.168.254.254 netmask 255.255.255.0
далее, в гостевой системе в /etc/network/interfaces задаю все настройки для eth0, при этом, использую ip интерфейса br0 хост-системы в качестве шлюза. сохраняю, перезагружаю
в итоге опять-таки ничего не пингуется.

каким все-таки образом мне привести в рабочее состояние? уже столько времени и нервов потратил, что сил моих больше нет.
« Последнее редактирование: 18 Декабря 2015, 06:14:11 от it0r »

Оффлайн Hrafn

  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: KVM и настройка сети
« Ответ #1 : 10 Января 2010, 20:28:11 »
Я автор поста с hrafn.me. У меня работает точно так, как у меня и было написано. Никаких дополнительных скриптов для поднятия сети или смены настроек я не делал. Там все прозрачнее. Попробуйте не по всем сразу рекомендациям делать, а по какой-то одной. Иначе получается каша и ничего в итоге не ясно, что было сделано и в каком виде.
/ Den siste viking...

Оффлайн Protey

  • Автор темы
  • Новичок
  • *
  • Сообщений: 43
    • Просмотр профиля
Re: KVM и настройка сети
« Ответ #2 : 11 Января 2010, 15:04:20 »
Я автор поста с hrafn.me. У меня работает точно так, как у меня и было написано. Никаких дополнительных скриптов для поднятия сети или смены настроек я не делал. Там все прозрачнее. Попробуйте не по всем сразу рекомендациям делать, а по какой-то одной. Иначе получается каша и ничего в итоге не ясно, что было сделано и в каком виде.
я и так делал все по порядку. ничего не работает.
вот сейчас поставил себе virtualbox вместо KVM, но сеть работает только под НАТом. никаких бриджей так же не могу сделать нормально (пинга нет и все тут)
вот по этой статье все проделывал: http://www1.opennet.ru/tips/info/1877.shtml

НО и под НАТом пинг какой-то странный на ВСЕ без исключения адреса (даже на шлюз):
Цитировать
64 bytes from 95.170.139.10: icmp_seq=1 ttl=58 time=4.68 ms
64 bytes from 95.170.139.10: icmp_seq=2 ttl=58 time=1.13 ms
64 bytes from 95.170.139.10: icmp_seq=3 ttl=58 time=1.14 ms
64 bytes from 95.170.139.10: icmp_seq=4 ttl=58 time=503 ms
64 bytes from 95.170.139.10: icmp_seq=5 ttl=58 time=1.48 ms
64 bytes from 95.170.139.10: icmp_seq=6 ttl=58 time=1.39 ms
64 bytes from 95.170.139.10: icmp_seq=7 ttl=58 time=4.59 ms
64 bytes from 95.170.139.10: icmp_seq=8 ttl=58 time=1.36 ms
64 bytes from 95.170.139.10: icmp_seq=9 ttl=58 time=501 ms
64 bytes from 95.170.139.10: icmp_seq=10 ttl=58 time=1.35 ms
смущают строки с цифрами более 500 мс. они иногда проскакивают, причем, с разным интервалом времени между ними
« Последнее редактирование: 11 Января 2010, 15:14:02 от Protey »

Оффлайн Hrafn

  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: KVM и настройка сети
« Ответ #3 : 11 Января 2010, 15:20:35 »
Так, давайте по порядку. Если делали по моей заметке, то желательны подробности, что именно не работает вместе с конфигами и т.д.
/ Den siste viking...

Оффлайн Protey

  • Автор темы
  • Новичок
  • *
  • Сообщений: 43
    • Просмотр профиля
Re: KVM и настройка сети
« Ответ #4 : 11 Января 2010, 15:37:19 »
Так, давайте по порядку. Если делали по моей заметке, то желательны подробности, что именно не работает вместе с конфигами и т.д.
последний раз я не по вашей статье настраивал, а по той, что по ссылке указана, с opennet

Оффлайн Hrafn

  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: KVM и настройка сети
« Ответ #5 : 12 Января 2010, 17:24:16 »
Тогда вы определитесь, что вы настраивать собираетесь: KVM или Виртуалбокс. Иначе, получается каша.
Если соберетесь делать, выкладывайте наконец конфиги свои и объясмните нормально, что уже было сделано, и что не работает.
А для начала попробуйте просто бридж поднять, забудьте на время про виртуалки. Будут ошибки - пишите точно, вместе с конфигами.
/ Den siste viking...

Оффлайн Александр Фёдоров

  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Re: KVM и настройка сети
« Ответ #6 : 31 Марта 2010, 12:45:40 »
Здравия всем.

Подскажите, пожалуйста, кто разобрался.
Условия следующие:
- Машина AMD Phenom II X4 925 и т.д., поддержка виртуализации в BIOS включена, 2 сетевые карты;
- Ubuntu 9.10 (поставил пока desktop с GUI, чтобы проще экспериментировать);
- Установил пакеты kvm, libvirt, bridge-utils и все, что они за собой потянули;

Тесты:
- создал и запустил гостевые машины в KVM, работают, выход в интернет есть.

Задача:
- Создать мост на одном из сетевых интерфейсов (второй оставить для хостовой машины), так, чтобы IP-адреса машины получали от DHCP-сервера в сети. И так, чтобы машины видели сетевые ресурсы и были бы видимы для других компьютеров.

Что делал:
- изучил что такое мост :) Linux Bridge;
- пробовал делать все по инструкции Creating a networ bridge on the host;
- читал темы на этом форуме, посвященные бриджам и KVM.

Вопрос:
1. основное препятствие - это то, что все адреса должны быть динамическими, т.е. получаться по DHCP (далее уже буду настраивать резервирование на DHCP-сервере);
2. Каким образом в KVM переключить виртуальные машины с использования Usermode Networking на режим моста? Если есть такое решение для GUI-менеджера виртуальных машин (virt-manager), будет еще лучше.



Пользователь решил продолжить мысль 31 Марта 2010, 11:19:22:
Итак, что получилось сделать:

Изменил файл /etc/network/interfaces до вида:
auto lo
iface lo inet loopback

auto br0
iface br0 inet dhcp
    bridge_ports    eth1
    bridge_stp      off
    bridge_maxwait  0
    bridge_fd       0

Намеренно не трогал eth0, его подцепил Network Manager.
Сейчас хостовая машина работает нормально, ifconfig выдает следующее:
(Нажмите, чтобы показать/скрыть)

Из него видно, что:
- поднялся интерфейс br0, который получил IP-адрес от DHCP-сервера;
- нормально работает eth0, который тоже получил IP-адрес от DHCP-сервера;
- eth1 работает в режиме моста, на нем нет выделенного IP-адреса, что и должно быть;
- есть еще некий виртуальный интерфейс virbr0, которому назначен некий статический IP-адрес. Я нашел, что этот интерфейс определяется в XML-файле настроек подключения KVM (/etc/libvirt/qemu/networks/default.xml)
(Нажмите, чтобы показать/скрыть)

Что интересно, этот IP-адрес я нигде в машинах не встречал, в них адреса назначаются из диапазона 10.x.x.x

Осталось, соответственно 2 вопроса:
1. Как же создавать машины в режиме работы сети public bridge, а не Usermode Networking?
2. Что это за virbr0 и надо ли с ним что-то делать?

Пользователь решил продолжить мысль 31 Марта 2010, 17:16:11:
Ура!

Нашел еще одну инструкцию Virt-manager bridged networking.

Как раз в ней нашел, что для того, чтобы подцеплялся сетевой мост надо, чтобы virt-manager запускался с правами рута или так:
gksu virt-manager
с остальными интерфейсами я пока не разбирался. Есть не просят, пока и ладно :)
« Последнее редактирование: 31 Марта 2010, 17:16:11 от Александр Фёдоров »

Оффлайн MadKox

  • Активист
  • *
  • Сообщений: 441
  • =)
    • Просмотр профиля
    • Моя страница на Launchpad
Re: KVM и настройка сети
« Ответ #7 : 01 Апреля 2010, 18:39:57 »
Внимательно читай https://help.ubuntu.com/community/KVM/Networking.
Особенно раздел Converting an existing guest. В общих чертах суть такова:

1. Мост нужен для того, чтобы гости смогли получать доступ в сеть наравне (а вернее через) с физическим интерфейсом.

2. Настройки находятся в файле (по крайней мере по умолчанию) /etc/libvirt/qemu/имя-машины.xml

3. Если нужно использовать статику - выставляем в xml'ке тот же br0, логинимся через какой-нибудь virt-viewer или virt-manager и дальше как обычно настраиваем сеть (через /etc/network/interfaces)...

Попробую разъяснить на примере:
Например есть интернет и локалка, на хост машине 2 сетевухи, например eth0 смотрит в локалку (192.168.0.0/24), а eth1 смотрит в интернет (где имеем, например 2 свободных адреса - 10.10.10.10 и 10.10.10.11).
1. Нужно дать доступ к хост машине из локалки.
2. Нужно дать доступ к машине guest1 из локалки (при этом она должна занимать статический IP 192.168.0.23)
3. Нужно дать доступ к машине guest2 из локалки (при этом она должна получать IP через DHCP)
4. Нужно запретить доступ к хост машине из интернета.
5. Нужно "посадить" машины guest3 и guest4 на внешние адреса 10.10.10.10 и 10.10.10.11 соотв.

Реализация:
(подразумевается, что гости уже созданы)

1. Создаем мост с eth0:
auto br0
iface br0 inet static
        address 192.168.0.2
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        gateway 192.168.0.1
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0
Правим файл /etc/libvirt/qemu/guest1.xml и guest2.xml:
    <interface type='bridge'>
      <mac address='XX:XX:XX:XX:XX:XX'/>
      <source bridge='br0'/>
      <model type='virtio'/>
    </interface>
Т.е. назначаем им мост br0.
Далее заходим в консоль машины guest1, узнаем как зовут сетевой интерфейс (бывает меняется, если, например меняли ему MAC):
ifconfig -a
Далее правим /etc/network/interfaces:
iface eth0 inet static
address 192.168.0.23
netmask 255.255.255.0
gateway 192.168.0.1
auto eth0
А на машине guest2:
iface eth0 inet dhcp
auto eth0

Теперь интернет-интерфейс:
На хост-машине правим /etc/network/interfaces:
auto br1
iface br1 inet manual
        bridge_ports eth1
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0

Правим /etc/libvirt/qemu/guest3 и guest4:
    <interface type='bridge'>
      <mac address='XX:XX:XX:XX:XX:XX'/>
      <source bridge='br1'/>
      <model type='virtio'/>
    </interface>
Т.е. вешаем их на br1 и правим сетевые конфиги на самих машинах...
Теперь сама хост машина на интернет-интерфейсе никакого адреса получать не будет, а гости спокойно будут работать на внешних адресах...

ЗЫ А еще можно сделать гостя, который имеет и br0 и br1 интерфейсы и соответственно "живет" в 2-х сетях =)
Homo homini admini est...

Оффлайн Александр Фёдоров

  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Re: KVM и настройка сети
« Ответ #8 : 02 Апреля 2010, 10:21:25 »
MadKox, материал по ссылке я выучил почти наизусть :)

Фишка была в способе запуска virt-manager'a :) Если его запускать не от рута, то он не цепляет бридж-интерфейс. И любые настройки моста игнорируются.

Кроме того, у меня была задача не вручную прописать IP-адреса, а получить их от DHCP-сервера в основной сети. Это я все настроил и описал в предыдущем посте.

Правда теперь возникла незадача... Уж не знаю после чего, но перестала пинговаться вирт.машина с WinXP... Пока грешу на его обновления, т.к. машина с Ubuntu Server спокойно пингуется. И из машины WinXP пинг тоже идет.

Так что пока копаю дальше.

P.S.: ну и конечно скорость работы WinXP в вируальной машине очень далека от нативной...

Оффлайн MadKox

  • Активист
  • *
  • Сообщений: 441
  • =)
    • Просмотр профиля
    • Моя страница на Launchpad
Re: KVM и настройка сети
« Ответ #9 : 04 Апреля 2010, 01:27:04 »
virt-manager вообще, далек от совершенства...
Я предпочитаю им только создавать машины, и то, только те, которые требуют установки из образа, а после установки руками переписывать xml конфиг машины и рулить ей уже непосредственно из virsh'а...

А насчет WinXP - оно скорее всего тормозить из-за того, что графика идет в VNC сеансе... Стоит попробовать, например, поставить на нативную винду VNC сервер и поюзать - тоже будет тормозить  ;)
Когда я с ней игрался, я настроил себе вход по RDP и через rdesktop у меня XP вполне комфортно бегала...
Homo homini admini est...

Оффлайн Александр Фёдоров

  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Re: KVM и настройка сети
« Ответ #10 : 04 Апреля 2010, 23:11:58 »
Видимо дело не только в графике...
Поставил себе рядом VirtualBox 3.6.1; скорость установки просто разительно отличается (почти в 2 раза).

Ну и вообще по работе. VB в схожих настройках с виртуальной виндой работает намного быстрее... Кроме того, у него уже есть поддержка аппаратной виртуализации. Надо будет ее попробовать. Если получится и с ней быстрее - то пока можно будет пользоваться VB и ждать когда KVM подрастет...

А с RDP к гостевым виндам у меня пока проблема какая-то... они вообще не пингуются из внешней сети, хотя в обратную все в порядке. Может быть что-то из-за связки с мостом. Пока не разобрался.

Оффлайн sydenis

  • Участник
  • *
  • Сообщений: 121
    • Просмотр профиля
Re: KVM и настройка сети
« Ответ #11 : 16 Июля 2010, 16:01:50 »
Если продолжать отталкиваться от оф.руководства https://help.ubuntu.com/community/KVM/Networking
то как сделать всё тоже самое тока используя командную строку qemu, а не шаманство с virt-manager.  Ибо нафиг мне лишнее звено в и без того сложной системе.
В руководстве доводят дело до создания моста, ничего не пишут про tun/tap и сразу перескакивают на конфиги virt-managerа...
Поэтому два вопроса: 
1. Если в руководстве пишут про мост, но не пишут про tap0, то значит можно как-то без tunctl штоли?
2. Как в этом случае должны выглядеть параметры для сети в командной строке qemu ?

sendmoreinfo

  • Гость
Re: KVM и настройка сети
« Ответ #12 : 17 Июля 2010, 12:17:02 »
Если продолжать отталкиваться от оф.руководства https://help.ubuntu.com/community/KVM/Networking
то как сделать всё тоже самое тока используя командную строку qemu, а не шаманство с virt-manager. 
<...>
Поэтому два вопроса: 
1. Если в руководстве пишут про мост, но не пишут про tap0, то значит можно как-то без tunctl штоли?
2. Как в этом случае должны выглядеть параметры для сети в командной строке qemu ?

Нет, просто libvirtd перед стартом qemu запускает tunctl.

Можно вообще не пользоваться virt-manager, а делать все через vmbuilder и/или virsh.

Оффлайн sydenis

  • Участник
  • *
  • Сообщений: 121
    • Просмотр профиля
Re: KVM и настройка сети
« Ответ #13 : 19 Июля 2010, 13:21:07 »
Можно вообще не пользоваться virt-manager, а делать все через vmbuilder и/или virsh.
вот этого я как раз и не догоняю :(
Зачем нужна какая-то дополнительная прокладка  - vmbuilder и/или virsh -если есть просто qemu с настройками в строке запуска?
Какую новую фунциональность даёт этот дополнительный софт?

sendmoreinfo

  • Гость
Re: KVM и настройка сети
« Ответ #14 : 19 Июля 2010, 23:55:22 »
Зачем нужна какая-то дополнительная прокладка  - vmbuilder и/или virsh -если есть просто qemu с настройками в строке запуска?
Какую новую фунциональность даёт этот дополнительный софт?

Я считаю, что машина должна работать, а человек -- думать.  Запоминать настройки qemu и создавать tun if в нужном порядке -- работа машины, и libvirt (а virsh -- ее самый простой клиент) ее делает.

vmbuilder -- средство развертывания виртуальных машин с нуля (без debian-installer, а через debootstrap).  Не идеальное, но вполне достойное.

 

Страница сгенерирована за 0.058 секунд. Запросов: 25.