Как включить доступ к консоли KVM virsh для Ubuntu Linux виртульной машины
Как включить доступ к консоли KVM virsh для Ubuntu Linux виртульной машины
Я выполнил все ваши инструкции и установил KVM с Ubuntu Linux в качестве новой гостевой виртуальной машины. Однако я не могу использовать команду: «virsh console vm». Как настроить и включить доступ к консоли, чтобы получить доступ к оболочке на недавно созданной виртуальной машине Ubuntu Linux 16.04 LTS?
Активация последовательной консоли в гостевом Ubuntu Linux 16.04 LTS — отличный способ войти в систему и решить проблемы.
3 января стартует курс «SQL-injection Master» © от команды The Codeby
За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.
На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.
Запись на курс до 10 января. Подробнее .
Пример нашего установленного экземпляра
- KVM IP хоста: 192.168.2.15
- KVM гостевая операционная система: Ubuntu Linux 16.04 LTS
- KVM гостевой IP: 192.168.2.45
- KVM гостевое имя: ubuntu-box1
- KVM гостевое имя пользователя: vivek
- KVM гостевой пароль: hidden-secrete
Как настроить доступ к консоли Ubuntu 16.04 KVM Guest
Во-первых, вам нужно войти с помощью ssh или VNC клиента в гостевой Ubuntu.
Осуществляем вход с помощью ssh
В этом примере, я осуществляю вход, используя ssh клиент, из моей рабочей станции (или введите команду на самом хосте KVM) в Ubuntu Linux VM guest:
После входа получите доступ к корневой оболочке:
Осуществляем вход с помощью
Введите следующую команду на вашем KVM хосте:
Пожалуйста. обратите внимание на значение порта (т. е. 5901). Вам нужно использовать SSH-клиент для настройки туннеля и клиента VNC для доступа к удаленному серверу vnc. Введите следующую команду переадресации портов SSH из вашей клиентской или настольной системы Linux/Unix/MacOS:
После того, как вы установили туннель ssh, вы можете указать в VNC свой IP 127.0.0.1 (localhost) адрес и порт 5901. В VNC клиенте это можно сделать следующим образом:
Рисунок 01: Графический клиент VNC для подключения к консоли сервера Ubuntu Linux 16.04 LTS
Войдите в свою виртуальную машину:
Рисунок 02: Вход в мою гостевую виртуальную машину Ubuntu
Настройте последовательную консоль в гостевой Ubuntu
Наконец, введите следующие две команды, чтобы включить последовательную консоль в гостевой системе для доступа к соединению с помощью команды «virsh console»:
Примеры возможных выводов данных:
Как получить доступ к консоли Ubuntu 16.04 KVM Guest с узла KVM
Для того чтобы увидеть список запущенных виртуальных машин введите:
Примеры возможных выводов данных:
Введите следующую команду с хоста KVM для входа в гостевой файл с именем ubuntu-box1
Используйте комбинацию клавиш Ctrl + ] для того, чтобы выйти из консоли.
Установка и настройка гипервизора KVM на CentOS
14.02.2020
VyacheslavK
CentOS, KVM, Linux, Виртуализация
Комментариев пока нет
В данной статье мы рассмотрим установку и базовую настройку гипервизора KVM на сервере под управлением Linux CentOS. Покажем, как создать виртуальную машину в KVM, изменить ее настройки, установить гостевую операционную систему и основные команды управления ВМ.
KVM (Kernel-based Virtual Machine) средство виртуализации в среде Linux, которое использует аппаратную виртуализацию на базе Intel VT или AMD SVM. С помощью KVM вы можете создавать изолированные виртуальные машины с собственным виртуальным аппаратным обеспечением: сетевыми картами, дисками, видеокартами и другими устройствами. На виртуальные машины можно уставить любую ОС (не только Linux).
Установка KVM в CentOS
При настройке KVM на сервере, нужно начать с проверки вашего процессора. Нужно узнать, поддерживает ли аппаратную виртуализацию CPU, установленный на вашем сервере. Из консоли сервера, выполните команду:
# cat /proc/cpuinfo | egrep «(vmx|svm)»
Если ваш процессор поддерживает технологию VT-x, у вас должен быть примерно такой вывод:
Если же команда ничего не выдала, но ваш процессор точно поддерживает виртуализацию, проверьте, вохможно данная опция отключена в BIOS сервера. Ищите параметры “Intel Virtualization Technology” или “SVM MODE”.
На моем сервере поддержка данной технологии включена, поэтому можно приступать к установке необходимых компонентов в CentOS через пакетный менеджер yum/dnf:
# yum install libvirt libvirt-python libguestfs-tools qemu-kvm virt-install –y
- qemu-kvm – сам гипервизор KVM;
На сервер будет установлено большое количество пакетов, следите, чтобы у вас не возникло ошибок в процессе установки.
Теперь нужно добавить сервис libvirtd в автозагрузку и запустить его:
# systemctl enable libvirtd
# systemctl start libvirtd
Проверьте, загрузились ли модули ядра kvm_intel и kvm:
[root@localhost /]# lsmod | grep kvm
Если у вас ничего не выводится, перезагрузите сервер и проверьте повторно.
Настройка сети в KVM
Теперь создадим каталоги, в которых будут храниться диски виртуальных машин и iso образы:
Чтобы созданные виртуальные машины имели доступ в интернет, нам нужно настроить сеть через bridge. Для этого потребуется пакет bridge-utils, проверьте установлен ли он в Linux командой:
# rpm -qa | grep bridge-utils
Если нужно, установите его:
# yum install bridge-utils -y
После установки пакетов для KVM, в системе появился сетевой интерфейс virbr0:
Чтобы создать сетевой мост(bridge), нужно настроить файл конфигурации для сетевого интерфейса сервера:
# cp /etc/sysconfig/network-scripts/ifcfg-enp1s0f0 /etc/sysconfig/network-scripts/ifcfg-enp1s0f0_bak – делаем бэкап файла
# nano /etc/sysconfig/network-scripts/ifcfg-enp1s0f0 — открываем для редактирования
Удалите все содержимое и замените на следующее:
В вашем случае, имя интерфейса может отличаться (смотрите через команду ip a).
После чего создайте файл:
Где укажите свои данные: IP-адрес сервера и основной шлюз. После правки конфигурационных файлов сетевых интерфейсов нужно перезапустить есервис:
# service network restart
Чтобы проверить состояние bridge, используйте команду:
Последним шагом нужно настроить перенаправление сетевого трафика:
# echo -e «net.ipv4.ip_forward=1» >> /etc/sysctl.conf && sysctl -p
Теперь перезапустите сервис libvirtd:
# service libvirtd restart
На этом базовая настройка KVM закончена, можно создать виртуальную машину.
KVM: создание виртуальной машины
Перед созданием виртуальной машины, я скачал образ CentOS 8 с официального зеркала в директорию /vz/iso:
# cd /vz/iso && wget https://mirror.yandex.ru/centos/8.1.1911/isos/x86_64/CentOS-8.1.1911-x86_64-dvd1.iso
Чтобы создать новую виртуалную машину KVM, выполните:
virt-install -n test-centos
—noautoconsole
—network=bridge:br0
—ram 2048 —arch=x86_64
—vcpus=4 —cpu host —check-cpu
—disk path=/vz/disk/test-centos.img,size=32
—cdrom /vz/iso/CentOS-8.1.1911-x86_64-dvd1.iso
—graphics vnc,listen=IP,password=123456789
—os-type linux —os-variant=rhel7 —boot cdrom,hd,menu=on
- test-centos — имя ВМ;
- noautoconsole – после создания не нужно подключаться к консоли виртуальной машины автоматически;
- network – тип сети(в нашем случае bridge);
- ram — количество оперативной памяти в ВМ;
- vcpus – количество ядер процессора (настройка vCPU в KVM);
- disk – виртуальный диск, path – путь до диска. size – объем (в дальнейшем его можно расширить/уменьшить);
- сdrom – виртуальный cdrom, в который монтируется iso образ для установки гостевой ОС;
- graphics — параметры подключения к машине с помощью графической консоли. Мы подключаемся через VNC, поэтому в listen указывает IP сервера, где создали ВМ и пароль для подключения в консоли виртуальной машины (password).
Чтобы ВМ загружалась автоматически, выполните:
# virsh autostart test-centos
Подключение к ВМ на KVM через VNC, установка ОС
Чтобы подключиться к виртуальной машине через VNC, нам нужно узнать порт, на котором она работает:
[root@local vz]# virsh vncdisplay test-centos
означает, что порт для подключения по VNC 5900, если у вас будет другой результат, просто прибавляйте к 5900 цифру, которую выдаст вам команда.
Для подключения по VNC к серверам, я использую утилиту TightVNC. Запустите ее и укажите IP-адрес сервера и VNC порт, который мы узнали ранее (через двойное двоеточие).
Нажмите “Connect”, в открывшемся окне укажите пароль, который задали при создании ВМ. Если все сделали верно, у вас откроется консоль сервера, на которой запущена установка CentOS (или другой ОС, образ которой вы смонтировали).
Если у вас на сервере установлен файервол, откройте сетевые порты для VNC 5900-5910 в firewalld/iptables, этого количества должно хватить. После установки гостевой ОС на виртуальную машину, запустите ВМ с консоли сервера:
Чтобы выключить виртуальную машину KVM, используйте команду:
# virsh shutdown test-centos
Чтобы вывести список всех зарегистрированных виртуальных машин KVM:
Если вы предпочитаете графической управление, можете испольховат графическую консоль KVM — virt-manager.
На этом базовая настройка сервера для KVM и создание виртуальной машины окончено. На KVM можно создать неограниченное количество виртуальных машин, все зависит от ресурсов вашего сервера и ваших потребностей.
Предыдущая статья Следующая статья
Установка и настройка KVM под управлением DEBIAN
Сегодня хочу поделиться с вами одним из своих наработанных мануалов, который отточен многоразовым применением, про который с уверенностью могу сказать, что «точно работает!» без лишних танцев с бубном.
Ориентирована статья скорее на начинающих системных администраторов, чем на гуру (для них тут ничего нового нет 🙂 ), и в ней я постараюсь раскрыть рабочий и довольно быстрый вариант развертывания сервера виртуальных машин, стараясь при этом охватись как можно больше нюансов и подводных камней.
Однако, буду рад вниманию знающих и опытных админов, которые, возможно, дадут дельные советы и помогут поправить ошибки, если таковые имеются.
Начнем с того, что если Вы читаете это, то у вас уже готова ОС CentOS 6 (я использовал версию 6.3), причем для установки гостевых ВМ разной битности (32 или 64), хост-сервер (физический сервер, на котором и будем устанавливать KVM вместе с ВМ) должен быть именно с 64-битной ОС.
Все действия выполняются из-под пользователя root.
Итак, приступим к руководству.
1. Шаг — Подготовка
Посмотрим информацию по процессору
1. HT — Hyper-Threading support
Реализация технологии одновременной мультипоточности. Технология увеличивает производительность процессора при определённых рабочих нагрузках. Если включена, то система определяет два логических процессора на один физический процессор (ядро). Присутствует исключительно в сериях процессоров Intel Xeon, Pentium 4, Atom, Core i3, Core i5, Core i7.
2. LM — Long Mode (x86-64 support)
Грубо говоря, если указана, процессор выполнен по 64-битной технологии (также имеет названия: x86-64, x64, AMD64, Intel64, EM64T). Это расширение архитектуры x86 с полной обратной совместимостью. В процессорах Intel поддержка появилась с поздних Pentium 4, у AMD — c Athlon64.
3. VMX (Intel), SVM (AMD) — Hardware virtualization support
Поддержка процессором технологий Intel VT-x или AMD-V означает наличие дополнительных инструкций для предоставления прямого доступа к ресурсам процессора из гостевых систем. Позволяет приблизить производительность гостевых систем к реальным и сократить затраты производительности на поддержание хостовой платформы. В настоящий момент Virtual Machine Extensions поддерживается во многих процессорах Intel & AMD, хотя подобные расширения имеют и другие процессорные архитектуры, например, Cell.
4. SSE*, SSSE*, XMM*, 3DNow!, MMX и пр.
Различные наборы инструкций для процессоров. Широко используются компиляторами в целях оптимизации кода под конкретную архитектуру.
5. AES — Intel Advanced Encryption Standard
Этот довольно спорный набор инструкций увеличивает производительность при кодировании/декодировании AES, присутствующий только у серии Intel Xeon. Часто используется фанатами Intel для подкрепления крутизны серверной линейки CPU, хотя довольно известен тот факт, что процессоры AMD более сильны в криптовании данных, например, в алгоритме SHA.
Проверяем, поддерживает ли CPU аппаратную виртуализацию:
Если вывод не пустой и искомые флаги подсвечены цветом, значит — процессор поддерживает аппаратную виртуализацию.
Кому интересно, все действия выполнялись на конфигурации Intel Xeon Quad Core E3-1230 3.20 GHz / 8GB / 2x 1TB.
Устанавливаем KVM и библиотеки виртуализации:
# apt-get install qemu-kvm libvirt-bin virtinst uml-utilities
теперь нужно вклчючить возможность форвардинга и проксирования arp запросов
добавим в /etc/sysctl.conf
Запускаем сервис KVM
Смотрим, загружен ли модуль KVM
Должны получить вывод:
В данном случае видим, что загружен модуль kvm_intel, так как произволитель CPU — Intel.
Проверка подключения к KVM
Должны получить вывод:
2. Шаг — Создание хранилища для виртуальных машин (Storage Pool)
[urlspan]Здесь[/urlspan] приводится описание, как настроить хранилище разных видов.
В рассматриваемом же примере описан простой тип хранилища — для каждой ВМ создается свой файл *.img под виртуальный жесткий диск (или диски — если добавить их несколько), размещены они будут в директории /guest_images.
Только у нас эта директория будет точкой монтирования отдельного жесткого диска хост-сервера, специально отведенного для этих нужд.
Безопасность сохранения данных и то, что нужно создавать как минимум зеркальный raid массив, чтобы не потерять данные ВМ в случае сбоя жесткого диска, мы не будем, так как это — отдельная тема.
Просмотрим список физических дисков на хост-сервере:
На жестком диске sda установлена ОС, его не трогаем, а вот на sdb создаем раздел на все свободное место диска с файловой системой ext4:
(более подробно про следующие операции можно почитать [urlspan]здесь[/urlspan])
Выбираем диск для редактирования
Создаем новый раздел
Создаем файловую систему ext4 на всем свободном месте диска /dev/sdb
Создаем точку монтирования нашего жесткого диска для файлов виртуальных машин:
//***************В разработке*****************************//
Многие советуют отключить вообще [urlspan]Selinux[/urlspan], однако мы выберем иной путь. Мы настроим его правильно.
Если выполнение этой команды не будет успешным, надо установить дополнительный пакет. Сначала узнаем, какой пакет предоставляет данную команду
После этого снова:
Отредактируем файл /etc/fstab для того, чтобы при перезагрузке хост-сервера раздел с ВМ монтировался автоматически
Добавляем строку по примеру тех, что уже имеются в файле
Сохраняем файл и продолжаем создание хранилища:
Проверяем, создалось ли оно:
Добавляем в автозагрузку:
3. Шаг — Настройка сети на хост-сервере
Положим, что для выхода «в мир» использовался интерфейс eth0 и он был соответствующим образом настроен.
На нем настроен IP-адрес 10.110.10.15 из /24 сети, маска — 255.255.255.0, шлюз 10.110.10.1.
Продолжаем, создаем сетевой интерфейс типа «bridge» на хост-сервере
Содержимое файла
. Важно.
DEVICE=«eth0» Имя интерфейса должно остаться таким, как было в системе. Если у вас для выхода в Интернет использовался интерфейс eth1, тогда редактировать надо его.
Когда проверили все, перезагружаем сеть:
Проверяем состояние подключения типа «bridge»:
Получаем что-то вроде этого
Делаем настройки в iptables, чтобы трафик виртуалок «ходил» через соединение типа bridge
Опционально: можно улучшить быстродействие соединения bridge, поправив настройки в /etc/sysctl.conf
4. Шаг — Установка новой виртуальной машины
Установка CentOS на гостевую ВМ:
Примечание 1:
VMName_2 — имя новой виртуальной машины
–ram 1024 — кол-во виртуальной памяти
–arch=x86_64 — архитектура ОС виртуалки
–vcpus=1 — кол-во виртуальных процессоров
–os-type linux — тип ОС
–disk pool=guest_images_dir,size=50 — размещение хранилища, размер вирт. диска
–network=bridge:br0
Примечание 2:
Если на ВМ нужна «белая сеть», тогда ставим
—network=bridge:br0
Если на ВМ требуется «серая сеть», тогда ставим
—network=bridge:virbr0
В этом случае для ВМ будет присвоен серый IP по DHCP от хост-сервера.
—graphics vnc,listen=0.0.0.0,keymap=ru,password=some.password.here
Тут указываем пароль для подключения к ВМ по vnc
Установка Windows на гостевую ВМ:
Примечание:
Параметры такие же, как и в примере с установкой CentOS. Но есть различия.
При установке ОС Windows не увидит виртуального жесткого диска, поэтому надо подгрузить дополнительный виртуальный cdrom с драйверами /iso/virtio-win.iso — расположение файла ISO с драйверами виртуального диска. Взять можно отсюда.
Выполняем команду на установку новой ВМ, затем подключаемся по [urlspan]vnc[/urlspan] к хост-серверу для продолжения установки ОС. Для того, чтобы узнать порт для подключения, выполняем:
При установке новой ВМ, порт vnc-сервера увеличится на 1. При удалении ВМ, порт освобождается,
и затем выдается новой ВМ. То есть, номер порта последней ВМ не обязательно самый большой из 590…
Чтобы узнать, на каком порту vnc виртуалка с определенным названием, вводим:
где VMName_1 — имя ВМ, :3 — номер по порядку порта, начиная с 5900, то есть подключаться надо на порт 5903, но в программе UltraVNC сработает и так 10.110.10.15:3
Примечание
Если при создании ВМ вылетает ошибка Permission denied, kvm не может открыть файл диска ВМ *.img,
значит, надо разрешить выполнение действий qemu-kvm из-под root (предполагается, что управление
ВМ производится из-под специально созданного для этих целей пользователя, например, libvirt). Но мы обойдемся и пользователем root.
Находим и раскомментируем в нем строки:
Полезно знать:
Конфиги ВМ находятся здесь /etc/libvirt/qemu/
Для того, чтобы отредактировать параметры (добавить процессор, ОЗУ или еще что-то),
ищем конфиг ВМ с нужным названием, редактируем:
К примеру, можно указать статический порт vnc для конкретной ВМ, чтобы всегда подключаться к нужному порту
Теперь у этой ВМ порт vnc будет — 5914. Не забудьте перезагрузить libvirtd для применения изменений. Саму ВМ тоже следует перезагрузить. Поэтому изменяйте конфигурационный файл ВМ пока она выключена, далее выполняйте service libvirtd reload, затем стартуйте ВМ.
Команды для управления ВМ:
5. Шаг — Настройка сети в случае «серых» IP-адресов в ВМ
Если на 4 шаге вы выбрали серую сеть для новой ВМ (—network=bridge:virbr0), то надо выполнить следующие действия (на хост-сервере!) для проброса трафика на ВМ
Разрешить форвардинг трафика на уровне ядра ОС:
Здесь 10.110.10.15 — белый (внешний) IP хост-сервера. 192.168.122.170 — серый IP-адрес гостевой ОС.
На примере установки ОС CentOS на гостевой машине, когда установка перешла в графический режим, и предлагает подключиться на локальный порт 5901 гостевой ОС.
Подключаемся из ПК, за которым сидите, по vnc к 10.110.10.15:5910 или 10.110.10.15:10 тоже сработает в UltraVNC.
По такому же принципу можно прокинуть порт (стандартный) RDP 3389 или SSH 22 в гостевую ОС.
6. Шаг — Подготовка к управлению виртуальными машинами удаленного сервера с удобным графическим интерфейсом (используя virt-manager)
Есть много способов «прокинуть» графику удаленного сервера на ПК, за которым выполняете действия администрирования. Мы остановимся на ssh-туннелировании.
Положим, что вы выполняете действия с локального ПК под управлением Windows (в операционных системах под управлением Linux сделать это куда легче :), нужно выполнить всего одну команду ssh -X username@12.34.56.78, конечно, с оговоркой, что на удаленном сервере X11 forwarding разрешен и вы сидите за локальным Linux ПК c графической оболочкой), тогда нам необходимо
1. Всем знакомый PuTTY,
2. Порт сервера X для Windows — Xming
3. В настройках PuTTY включить «Enable X11 Forwarding»
Сделать, как показано на картинке:
В момент подключения к удаленному серверу Xming должен быть уже запущен.
На хост-сервере с CentOS для SSH включить X11 Forwarding, для этого отредактируйте файл sshd_config:
Устанавливаем virt-manager на хост-сервере:
Еще один компонент
7. Шаг — Непосредственный запуск virt-manager
После этого надо перезайти по SSH к удаленному серверу. Xming должен быть запущен.
Запускаем графическую утилиту управления виртуальными машинами
Откроется окно virt-manager
Консоль управления ВМ
Конфигурация ВМ и ее изменение
Надеюсь, читателю понравилась статья. Лично я, прочитай бы подобную в своё время, резко сократил бы потраченное время на то, чтобы перелопатить множество мануалов от разных админов, для разных ОС; сохранил бы кучу времени, потраченное на гугление, когда появлялись все новые и новые нюансы.
KVM мостовая сеть не работает
Затем я создал виртуальную машину с помощью virt-manager. Я пробовал несколько раз, но гость не может подключиться к сети! Любая помощь?
brctl showmacs br0:
* В госте * Мне не удалось скопировать вставить информацию из гостя, потому что не могу ssh к нему. Он не получил IP от DHCP. Не будет работать даже после ручной настройки.
прелиминарии
Это следующее работает для меня для Ubuntu 12.04. Вы должны отключить брандмауэр вашего компьютера во время тестирования, чтобы он не мешал.
Файл / etc / default / qemu-kvm должен быть таким же, как изначально установлен.
Вам нужно будет установить bridge-utils qemu-kvm и libvirt-bin . Любые пользователи, использующие виртуальные машины, должны быть добавлены в группу libvirtd.
Кажется, больше нет необходимости добавлять возможность CAP_NET_ADMIN.
Настройка сети
Сетевым режимом по умолчанию является режим пользователя, также называемый SLIRP. Он использует предопределенный мост virbr0, который NAT направляется на гостевой компьютер. NAT-маршрутизация использует функцию ядра ip_forwarding и iptables . В режиме моста в гостевой системе используется виртуальный мост, к которому подключается (ненумерованный) интерфейс Ethernet и на котором у хоста и гостя есть свои сетевые интерфейсы.
Следующие диаграммы могут прояснить различия:
Вы можете увидеть, как сеть пользователя по умолчанию определяется с помощью:
Я могу настроить мостовой режим с помощью следующих подходов:
В / etc / network / interfaces (из той части поста, которую вы упоминаете в своем вопросе):
Перезагружать; и убедитесь, что беспроводная сеть не активна. Проверьте IP-маршрут по умолчанию с ip route . Это должен быть интерфейс br0.
Примечание: если ваш Ethernet не подключен, когда это изменение будет сделано, вам нужно подключить кабель Ethernet и получить носитель, или загрузка будет зависать в течение двух минут, и у вас не будет возможности сети. Это связано с тем, что интерфейс eth0 Находясь в этом файле, должен подойти, прежде чем загрузка может продолжаться нормально.
NB. Как правило, вы не можете использовать беспроводную сеть вместо eth0 из-за невозможности использования нескольких MAC-адресов (я полагаю, что им нужен второй для моста).
В качестве альтернативы вы можете отключить использование Ethernet и убедитесь , что он не имеет IP — адрес, и что не существует маршрут по умолчанию устанавливается с ip route . Затем:
Вы также можете указать здесь статический IP-адрес, а также указать маршрут по умолчанию и адрес DNS. Для этого примера dhclient это делается.
Вот моя таблица маршрутов:
Использование KVM
Затем я могу загрузить машину с мостовым подключением с помощью:
В -netdev tap марке параметров Sudo требования. При запуске виртуальной машины qemu-kvm выполняет следующие команды:
Это делается с помощью / etc / qemu-ifup
Интерфейс виртуальной машины vnet0 добавлен к мосту br0, потому что маршрут по умолчанию, используемый выше, использует этот интерфейс моста. Если бы этого не было, вместо этого интерфейс крана был бы добавлен к интерфейсу virbr0. Поскольку он не подключен к Интернету, в моих экспериментах NAT использовался для подключения гостя к хосту и Интернету. Вы можете направить vnet0 на конкретный мост в / etc / default / qemu-kvm. Используя virt-manager ниже, вы можете явно указать, к какому мосту подключаться.
Из-за вышеупомянутых команд, выпущенных qemu-kvm, и -netdev tap,id=tunnel,ifname=vnet0 параметра, виртуальная машина vm подключена к туннелю vnet0, а туннель подключен к мосту br0.
Теперь я могу напрямую подключиться к этой гостевой виртуальной машине с другого компьютера в моей сети.
Мой хост ifconfig (обратите внимание на интерфейс vnet0, который появляется в моей сети, когда виртуальная машина работает):
Моя конфигурация моста во время работы виртуальной машины:
Обратите внимание, что как интерфейс виртуальной машины vnet0, так и интерфейс eth0 подключены к мосту br0.
И MAC на интерфейсе br0:
Обратите внимание, что интерфейс br0 соединяет мой хост-компьютер с тем же мостом, который используется гостем.
Вы можете проверить, что вы соединены мостом, а не NAT направлен в вашу собственную сеть с помощью traceroute 8.8.8.8 . Если первый узел является маршрутизатором вашей сети, а не IP-адресом гостя, ваша сеть должна работать правильно.
вирт-менеджер
Будьте уверены, что вы установили virt-manager и hal . hal Пакет является предложил зависимость для virt-manager и используется для определения сетевой конфигурации вашей системы при создании или редактировании гостей.
Определив мост br0, как описано выше, я создал виртуальную машину с помощью virt-manager:
Я был в состоянии пойти непосредственно к остальной части моей домашней сети и к Интернету от этого гостя. Я также смог подключиться к нему с другого (не хостового, не гостевого) компьютера Ubuntu в моей домашней сети.
Вот очень длинная kvm команда, запускаемая virt-manager (для сравнения с EApubs или кем-то еще, имеющим проблемы с этим):
Вот сетевая часть описания виртуальной машины в /etc/libvirt/qemu/quantal.xml
Согласно этой ссылке, для производительности и надежности лучше всего установить модель сетевого устройства virtio , вы можете сделать это в virt-viewer, нажав кнопку i , перейдя к настройке NIC и установив «Модель устройства». «к virtio . Вы также можете добавить это в XML выше, добавив строку:
В итоге
Все это заняло 12.04 было:
- Установка virt-manager, bridge-utils, qemu-kvm и связанных пакетов
- Убедитесь, что каждый пользователь, желающий использовать kvm, входит в группу libvirtd.
- Определение / etc / network / interfaces, как указано выше (которые соответствуют цитируемой статье)
- Перезагрузитесь, убедившись, что Ethernet подключен и беспроводная связь (если есть) отключена.
- Либо запустите kvm для образа напрямую, например -device e1000,netdev=tunnel -netdev tap,id=tunnel,ifname=vnet0 , либо создайте виртуальную машину с помощью virt-manager, указав сетевой мост br0 на шаге 4 -> панель «Дополнительные параметры».
Никаких дальнейших изменений в сети, возможностях, шаблонах или конфигурациях не потребовалось.
Чтобы выставить услугу вашего нового гостя в Интернете, вам необходимо:
- Подготовьте и настройте любую службу брандмауэра, которая вам понадобится.
- Либо назначьте статический адрес в вашей гостевой конфигурации или в вашей службе DHCP.
- Если вы используете NAT-маршрутизатор, откройте порт для внедряемой вами службы, направив его на IP-адрес гостя.
Не забудьте протестировать и снова включить службу брандмауэра для вашего главного компьютера. Может потребоваться любая запись для пересылки трафика гостю.