LINUX.ORG.RU
решено ФорумAdmin

Виртуальные машины KVM выпустить в инет

 , ,


1

1

С виртуалками только-только знакомлюсь и ничего в них не понимаю, поэтому нужна помощь гуру.

Задача такова. Есть полноценный сервер в ДЦ, на нём - последний Дебиан. На нём же создаю вирт машины для запуска изолированных процессов. На сервак даётся только один внешний IP. Основная задача сервака - сайты, которых там много и трогать их нельзя. Нужно из вирт машин пробросить некоторые порты наружу. Например, 90 - для апача(я там его повесил, для веб-интерфейса) и еще какой-нибудь типа 50505 для ssh. Больше, вроде, ничего не надо.

Как это грамотно реализовать, не навредив хост-машине?

brctl show
bridge name     bridge id               STP enabled     interfaces
virbr0          8000.fe54002e5bba       yes             vnet0

ifconfig
eth0      Link encap:Ethernet  HWaddr 54:04:a6:b2:11:34
          inet addr:х  Bcast:x  Mask:255.255.255.224
          inet6 addr: x Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:48319947 errors:0 dropped:0 overruns:0 frame:0
          TX packets:68716182 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:7104931972 (6.6 GiB)  TX bytes:84074648302 (78.3 GiB)
          Interrupt:30 Base address:0xe000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:11089056 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11089056 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:17462808488 (16.2 GiB)  TX bytes:17462808488 (16.2 GiB)

virbr0    Link encap:Ethernet  HWaddr fe:54:00:2e:5b:ba
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:12613 errors:0 dropped:0 overruns:0 frame:0
          TX packets:112807 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:748396 (730.8 KiB)  TX bytes:170203617 (162.3 MiB)

vnet0     Link encap:Ethernet  HWaddr fe:54:00:2e:5b:ba
          inet6 addr: fe80::fc54:ff:fe2e:5bba/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2955 errors:0 dropped:0 overruns:0 frame:0
          TX packets:47477 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500
          RX bytes:241407 (235.7 KiB)  TX bytes:35116987 (33.4 MiB)

Вирт машины создавал так:

virt-install --connect qemu:///system -n airvm -r 1024 --arch=i686 --vcpus=1 --os-type=linux --os-variant=debiansqueeze -c /home/virt/debian-6.0.6-i386-netinst.iso -f /home/virt/airvm.img --hvm --accelerate --vnc --network network=default,model=virtio --extra-args='console=tty0 console=ttyS0,115200n8' 



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

С виртуалками только-только знакомлюсь и ничего в них не понимаю, поэтому нужна помощь гуру.

Не лезь на продакшен сервер, вот тебе совет.

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

Я думаю как-то так

  • Создаешь виртуальную локальную сеть (Network XML format) между гостями и хостом;
  • С хоста на котором внешний IP пробрасываешь порт.
petav ★★★★★
()
Последнее исправление: petav (всего исправлений: 2)
Ответ на: комментарий от petav

Мне только не очень понятно, как это будет выглядеть в моих условиях.

Например, что у меня выступает как eth1 из примера по ссылке? Адрес вирт машины - 192.168.122.204

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

Т.е. как в моём случае будет выглядеть вот эта запись?

iptables -I FORWARD 1 -i eth0 -o eth1 -d 192.168.0.22 -p tcp -m tcp --dport 80 -j ACCEPT

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

Тогда мне вместо $INT_IP указывать адрес virbr0 или вирт машины?

MAzZY
() автор топика

Что-то у меня снова проблемы. Решил переделать вирт машину. Снёс её напрочь, создал заново, установил всё, настроил, порты так же пробросил, но они почему-то не работают. В iptables -L видно, что всё на месте, но связи нет. Что я мог упустить? Что нужно проверить?

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

У меня там вот такое.

net.ipv4.ip_forward=1
net.ipv4.conf.all.rp_filter=1
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.conf.all.forwarding=1
net.ipv4.conf.all.proxy_arp=1
Может что-то и лишнее даже

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

Видимо, стёр какие-то правила iptables. Сейчас нашел файл бэкапа, откатил, прокинул порты - работает.

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