Подключение libvirt в ВМ (домен в xml файле) в содержатся файлы

Я пытаюсь изучить OVS и KVM и в целом понять основные мостовые сети в виртуальном мире (т. е. между OVS, хостом виртуальной машины и гостями KVM/Libvirt). Я использую ClearLinux (на основе systemd в) на хост.

My собственно вопрос еще в смелый, в остальной части этот пост, мы надеемся помочь людям советуешь мне на это.

EDIT:


получил указал на SU из инженерной сети StackExchange.
Если любой знает хорошие курсы по ОВС и КВМ, пожалуйста, дайте мне знать: -)


ссылки до сих пор:
https://libvirt.org/formatdomain.html
http://docs.openvswitch.org/en/latest/howto/libvirt/

Итак, я дошел до точки:

  1. наличие моста ovs (testbridge)
  2. подключил физический ethernet хоста (enp5s0) к testbridge
  3. создано два виртуальных крана устройства (virtualport1 и 2)
  4. подключен краны на testbridge

OVS выглядит так:

sudo ovs-vsctl show

010aff41-dc37-410d-87dc-842a1a2cebeb
    Bridge testbridge
        Port "virtualport2"
            Interface "virtualport2"
        Port "enp5s0"
            Interface "enp5s0"
        Port testbridge
            Interface testbridge
                type: internal
        Port "vnet0"
            Interface "vnet0"
        Port "virtualport1"
            Interface "virtualport1"
    ovs_version: "2.8.1"

'enp5s0' - это физический порт на хост. Это связано с Cisco SG-300 (общий интерфейс порта коммутатора, транкинг связка VLAN, общий pvid 25 и vlan 25 без меток).

существует внешний сервер DHCP, работающий на всех соответствующих VLAN.

у меня гость libvirt под названием 'debian' (бонусные баллы за creativity), который настроен на:

<interface type='bridge'>
  <mac address="00:16:3E:EF:61:91"/>
  <model type='virtio'/>
  <source bridge='testbridge'/>
  <virtualport type='openvswitch'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
<graphics type='vnc' port='-1' autoport='yes' sharePolicy='allow-exclusive' passwd='PleaseDontHaxorMe'>
  <listen type='address' listen='0.0.0.0'/>
</graphics>

в любом случае, вот где я застрял. Мой вопрос:
как я могу получить некоторую радость L3 в интерфейсе vnet0 (т. е. в гостевой виртуальной машине "debian"), поэтому у меня есть IP для VNC, чтобы провести установку (я использую debian netinst.iso)?

никогда не делал этого раньше, я вроде бы предположил, что это будет arp и придумать через DHCP и IP-адрес показать vnet0 хотел показать адрес ВМ VNC к нему...Хотя, очевидно, нет. Это вроде похоже на Л2 (как ниже):

ip address show vnet0
16: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq master ovs-system state UNKNOWN group default qlen 1000
    link/ether fe:16:3e:ef:61:91 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fc16:3eff:feef:6191/64 scope link
       valid_lft forever preferred_lft forever

но делать:

sudo ovs-appctl fdb/show testbridge

только, кажется, список mac на Порту 1 (enp5s0) не vnet0...

если я могу получить, что происходит, я также хотел узнать, как настроить "vnet0" на ovs testbridge:

  1. как порт доступа в vlan 100?
  2. как магистральный порт, на vlan 100, 150 и 151?
  3. в багажник все тегированных VLAN на что существуют на testbridge?
  4. то же, что и 3, но включая немаркированные VLAN?

EDIT 3:


https://blog.scottlowe.org/2012/11/07/using-vlans-with-ovs-and-libvirt/
Это в значительной степени охватывает выше, указывает. Также рассматривается использование XML-кода домена libvirt для исправления виртуальной машины. Еще не закончил, завтра проверю.


тем не менее, я, вероятно, могу работать эти последние 4 вещи из себя, если я могу получить VM собирается в первую очередь нюхать трафик на vnet0 и посмотреть, что на самом деле происходит...

Примечание.:
Я намеревался присоединить ВМ к virtualport1 но пропустил что-то и вместо него создать новый порт на testbridge под названием 'vnet0'. Довольно уверен, что это исправимо в libvirt domainxml с параметрами ovs здесь (уберет его позже, на данный момент, vnet0 есть!):
https://libvirt.org/formatdomain.html#elementsNICSBridge

EDIT 2:


Я думаю, что этот бит решена в соответствии с приведенной выше ссылке:

потяните uuid соответствующего порта, к которому вы хотите подключиться:

sudo ovs-vsctl list Port | grep 'name|_uuid'

добавить его в libvirt в области XML соответствующих ВМ:

<interface type='bridge'>
  <mac address="00:16:3E:EF:61:91"/>
  <model type='virtio'/>
  <source bridge='testbridge'/>
  <virtualport type='openvswitch'/>
    <parameters interfaceid='YOUR_UUID_GOES_HERE'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>

Ура

17
задан Chris
21.05.2023 8:31 Количество просмотров материала 3453
Распечатать страницу

1 ответ

ладно, оказывается я Ху это что-то ужасное....

все работало, я просто понятия не имел, как идти об установке без головы. Оказывается, это простой вопрос переадресации портов SSH как покрыты:

читать все о VM domain XML config (элемент по отношению к VNC в частности) здесь:

некоторые быстрые заметки об этом:

VNC Notes:
* Default - Guest binds it's VNC server to hosts loopback:
    <graphics type='vnc' port='-1' autoport='yes'/>
* The first guest gets screen 0/port 5900, the second guest gets screen 1/port 5901 etc.
* Requires SSH tunneling in order to gain access to the guest domain’s VNC console.
Better VNC Options:
    Guest listens on any host interface, port auto allocated:
        <graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0'/>
    Guest listens on specified IP, port auto allocated, password protected:
        <graphics type='vnc' port='-1' autoport='yes' passwd='correcthorsebatterystaple'>
          <listen type='address' address='192.168.120.15'/>
        </graphics>
    Guest listens on specified IP and port, password protected with screen share policy:
        <graphics type='vnc' port='5904' listen='192.168.120.15' sharePolicy='allow-exclusive' passwd='correcthorsebatterystaple'>
          <listen type='address'  listen='192.168.120.15'/>
        </graphics>
    Guest listens on specified IP, auto websocket, password protected with screen share policy:
        <graphics type='vnc' websocket='-1' listen='192.168.120.15' sharePolicy='allow-exclusive' passwd='correcthorsebatterystaple'>
          <listen type='address'  listen='192.168.120.15'/>
        </graphics>

в итоге: Убедитесь, что элемент XML домена виртуальной машины правильно настроен для VNC и используется iso netinst. Настройте мост OVS (если это то, что вы используете для виртуальной машины). Определите XML-код сети libvirt. Тогда в ВМ домен определение XML, подключить его к ранее определенной в libvirt сеть, которая использует ваш мост OVS.

Проверьте порт прослушивания виртуальной машины (отметив, что он относительно значения по умолчанию :0 означает все IP-адреса на 5900, 127.0.0.1:1 будет означать localhost на 5901 и т. д.).

sudo virsh vncdisplay $VM_NAME

SSH перенаправляет интерфейс на виртуальную машину, который обычно выглядит так:

ssh -N -L HOST_IP:HOST_PORT:localhost:5900 user@kvmhost

пересылка Localhost 5901 на VM 5900:

ssh -N -L 5901:localhost:5900 user@kvmhost

пересылка определенного внешнего IP-адреса на узле виртуальной машине. '- fNT' используется для фоновой переадресации SSH фактически не останавливая процесс, тем самым освобождая сеанс консоли, чтобы продолжать использовать его:

ssh -fNT -L 192.168.225.17:5901:localhost:5900 user@kvmhost
0
отвечен Chris 2023-05-22 16:19

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх