LINUX.ORG.RU
ФорумAdmin

KVM как достучаться до виртуальной машины из Интернет

 ,


1

1

Подскажите пожалуйста. Имеется виртуальная машина KVM. Сеть организована с помощью BRIDGE. Каким образом можно достучаться до этой системы (до определенных ее портов) из Интернет?



Последнее исправление: aspolCoder (всего исправлений: 1)

Смотря, что в бридже, куда воткнут инет и какая маршрутизация. Схему рисуй, блин, телепаты в отпуске.

post-factum ★★★★★
()
Последнее исправление: post-factum (всего исправлений: 1)
Ответ на: комментарий от post-factum
[root@f640 sysconfig]# ifconfig
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 89.163.212.13  netmask 255.255.255.0  broadcast 89.163.212.255
        inet6 fe80::225:90ff:fee6:9aaa  prefixlen 64  scopeid 0x20<link>
        ether 00:25:90:e6:9a:aa  txqueuelen 1000  (Ethernet)
        RX packets 240516  bytes 15526593 (14.8 MiB)
        RX errors 0  dropped 10  overruns 0  frame 0
        TX packets 43636  bytes 63629594 (60.6 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp1s0f0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::225:90ff:fee6:9aaa  prefixlen 64  scopeid 0x20<link>
        ether 00:25:90:e6:9a:aa  txqueuelen 1000  (Ethernet)
        RX packets 252961  bytes 20364332 (19.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 81640  bytes 67252074 (64.1 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device memory 0xfea80000-feafffff

enp1s0f1: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 00:25:90:e6:9a:ab  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device memory 0xfe980000-fe9fffff

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 50267  bytes 64886948 (61.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 50267  bytes 64886948 (61.8 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:55:03:e3  txqueuelen 1000  (Ethernet)
        RX packets 176  bytes 19268 (18.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

vnet0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether fe:54:00:21:9a:f2  txqueuelen 1000  (Ethernet)
        RX packets 17109  bytes 2506327 (2.3 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 199842  bytes 13298078 (12.6 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@f640 sysconfig]# ip r
default via 89.163.212.1 dev br0
89.163.212.0/24 dev br0  proto kernel  scope link  src 89.163.212.13
169.254.0.0/16 dev br0  scope link  metric 1004
192.168.122.0/24 dev virbr0  proto kernel  scope link  src 192.168.122.1
[root@f640 sysconfig]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp1s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP qlen 1000
    link/ether 00:25:90:e6:9a:aa brd ff:ff:ff:ff:ff:ff
    inet6 fe80::225:90ff:fee6:9aaa/64 scope link
       valid_lft forever preferred_lft forever
3: enp1s0f1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000
    link/ether 00:25:90:e6:9a:ab brd ff:ff:ff:ff:ff:ff
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
    link/ether 00:25:90:e6:9a:aa brd ff:ff:ff:ff:ff:ff
    inet 89.163.212.13/24 brd 89.163.212.255 scope global br0
       valid_lft forever preferred_lft forever
    inet6 fe80::225:90ff:fee6:9aaa/64 scope link
       valid_lft forever preferred_lft forever
5: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
    link/ether 52:54:00:55:03:e3 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
6: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000
    link/ether 52:54:00:55:03:e3 brd ff:ff:ff:ff:ff:ff
7: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UNKNOWN qlen 1000
    link/ether fe:54:00:21:9a:f2 brd ff:ff:ff:ff:ff:ff
[root@f640 sysconfig]# iptables -L -v -n
Chain INPUT (policy ACCEPT 389 packets, 40509 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 94 packets, 15206 bytes)
 pkts bytes target     prot opt in     out     source               destination
aspolCoder
() автор топика
Ответ на: комментарий от aspolCoder

brctl show

если vnet0 подключен к br0 и к enp1s0f0, то машина будет иметь ip в той же сети что и br0. Маска br0 24 бита, это по идее означает что вам принадлежит вся сеть 89.163.212.0/24 и VM получила IP из этой же сети. В таком случае, если это публичная сеть то ничего делать не надо, доступ к VM будет напрямую по ее публичному IP. Если это внутренняя сеть за раутером, то надо просто настроить port forwarding на раутере тех потов которые должны быть проброшены к VM извне, точно так же как было бы сделано с нормальной физ. машиной.

dyasny ★★★★★
()
Ответ на: комментарий от aspolCoder

что это за адрес и откуда он взялся? если хост на 89.163.212.0/24 то траффик 192.168.205.0/24 куда ему бедняге девать?

dyasny ★★★★★
()
Ответ на: комментарий от aspolCoder

ну так поправить адреса для начала, или разобраться в том какие вообще адреса и сети имеются в распоряжении

dyasny ★★★★★
()

Почему ты не упоминаешь qemu?

slon
()
Ответ на: комментарий от aspolCoder

если есть доступ в интернет, то каким образом? что такое 192.168.205.254? если это раутер то port forwarding надо настраивать там. Плюс стена на самой VM, конечно

dyasny ★★★★★
()
Ответ на: комментарий от dyasny

Я возможно глупый вопрос задам, но действительно не понимаю, разве можно использовать kvm без эмулятора-гипервизора, единственным возможным на данный момент работающим вариантом для которой является qemu? То, что qemu можно использовать без kvm — я знаю, а наоборот, ведь нет никаких userspace средств на данный момент, верно?

Если так, то почему в который раз встречаю тред про «виртуальную машину KVM» где нет ни одного упоминания qemu.

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

Помоги пожалуйста.

slon
()
Ответ на: комментарий от slon

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

я надеюсь это не такой тонкий способ потроллить. само собой поятно что без qemu kvm мало что может, и любое упоминание kvm подразумевает и qemu тоже

dyasny ★★★★★
()
Ответ на: комментарий от dyasny

В настройках VM стоит опция получать IP автоматом. Он его успешно получает. Если хост-сервер его каким-то непонятным мне образом его не раздал. Тогда могу только предположить, что скорее всего это роутер провайдера его раздал.

aspolCoder
() автор топика
Ответ на: комментарий от dyasny

любое упоминание kvm подразумевает и qemu тоже

Ясно, спасибо, мне полегчало, сомнений (все больше накапливающихся с каждым таким тредом) теперь нет.

slon
()
Ответ на: комментарий от dyasny

это месный норкоман, забей на него

mos ★★☆☆☆
()
Ответ на: комментарий от aspolCoder

У тебя, видимо, гипервизор делает NAT для виртуалки. Портянку ifconfig с телефона читать лениво.

dhameoelin ★★★★★
()
Ответ на: комментарий от slon

Если так, то почему в который раз встречаю тред про «виртуальную машину KVM» где нет ни одного упоминания qemu.

Первая аналогия, которая пришла в голову, это linux и GNU.

spectr00 ★★★
()
Ответ на: комментарий от aspolCoder

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

dyasny ★★★★★
()
Ответ на: комментарий от aspolCoder

Гипервизор proxmox работает похожим, описанным способом. У вас только 1 внешний IP который настроен на хосте (гипервизоре), на устройстве br0. Для виртуальных машин настроен интерфейс vrbr0 который имеет адрес серой подсети. К этому же интерфейсу подключаются виртуальные машины (получается как будто это коммутатор). И, возможно, гипервизор раздает внутренние адреса из подсети. Но, тогда у ВМ адрес должен быть не 192.168.205.* а 192.168.122.* Не разобрались еще в ситуации? Если разобрались - опишите что было и решение?

GreyDjin
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.