KVM с одним IP-адресом хоста и другой подсетью для машин

KVM с одним IP-адресом хоста и другой подсетью для машин

Я уже настроил хост KVM с правильными конфигурациями IP, но мой хост заставил меня создать DHCP и использовать его для назначения IP-адресов машинам. Я хочу посмотреть, есть ли более простой способ сделать это (или лучший). Когда я впервые занялся этим, я не нашел ничего, что указало бы мне правильное направление. Я только что установил Debian 6.0 x64, поэтому у меня ничего не установлено. Я вошел в систему, запросил следующую информацию и изменил пароль с того, который был установлен на моем хосте.

У меня есть система Debian 6.0 x64 со следующей начальной сетевой конфигурацией (вместо моей реальной первой октавы подставлено 255):

# tail /etc/network/interfaces
auto  eth0
iface eth0 inet static
address   255.9.24.80
broadcast 255.9.24.95
netmask   255.255.255.224
gateway   255.9.24.65

# default route to access subnet
up route add -net 255.9.24.64 netmask 255.255.255.224 gw 255.9.24.65 eth0

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

IP: 255.46.187.152 /29
Маска: 255.255.255.248
Трансляция: 255.46.187.159

Используемые IP-адреса: 255.46.187.153 – 255.46.187.158

Мне нравится интерфейс Cloudmin, поэтому я хочу попробовать использовать его, если смогу, для администрирования своих гостей.

Итак, мои вопросы:

Как лучше всего настроить хост-систему, чтобы можно было использовать дополнительные IP-адреса подсети на гостевых компьютерах и сделать их доступными из Интернета?

Мне также нужно разместить DNS-сервер, что означает, что одной из этих виртуальных машин должны быть назначены два IP-адреса, доступные из внешнего мира. Как это сделать с помощью Cloudmin? У меня возник вопрос по этому поводу здесь:Несколько IP-адресов, назначенных одной виртуальной машине KVMНо я только что переформатировал весь сервер и пытаюсь найти лучший способ сделать это.

Информация о машине:

# ip route show
255.9.24.64/27 via 255.9.24.65 dev eth0
255.9.24.64/27 dev eth0  proto kernel  scope link  src 255.9.24.80
default via 255.9.24.65 dev eth0

brctl is empty

# ip addr list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
  valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether c8:60:00:54:b5:d8 brd ff:ff:ff:ff:ff:ff
inet 255.9.24.80/27 brd 255.9.24.95 scope global eth0
inet6 fe80::ca60:ff:fe54:b5d8/64 scope link
  valid_lft forever preferred_lft forever

Спасибо за любую помощь, которую вы можете мне оказать.

EDIT: Я установил kvm и cloudmin:

aptitude install qemu-kvm libvirt-bin
wget http://cloudmin.virtualmin.com/gpl/scripts/cloudmin-kvm-debian-install.sh
./cloudmin-kvm-debian-install.sh

Перезагрузил и теперь моя сетевая конфигурация выглядит так:

# device: eth0
iface eth0 inet manual

# default route to access subnet


iface br0 inet static
    address 255.9.24.80
    netmask 255.255.255.224
    broadcast 255.9.24.95
    network 255.9.24.64
    bridge_ports eth0
    gateway 255.9.24.65

Я установил в Cloudmin начальный IP как 255.46.187.153 и конечный IP как 255.46.187.158. CIDR - 29, а шлюз - 255.46.187.152.

Я установил гостевую систему с ubuntuserver 12.04 x64, которая могла получать и извлекать интернет-ресурсы во время установки, но теперь не может ни к чему обратиться, и к ней ниоткуда нельзя получить доступ. Ее сетевая конфигурация такова:

iface eth0 inet static
 address 255.46.187.153
 netmask 255.255.255.224
 broadcast 255.46.187.159
 gateway 255.46.187.152
 dns-nameservers <host provided nameservers>

И не могу пропинговать google.com через DNS или прямой IP, не могу пропинговать виртуальную машину извне или с хоста. Есть какие-нибудь идеи сейчас?

решение1

Настроенный на госте шлюз не является IP-адресом хост-машины, я бы попробовал следующую конфигурацию на госте:

auto eth0
iface eth0 inet static
       address 255.46.187.153
       netmask 255.255.255.255
       gateway 255.9.24.80
       pointopoint 255.9.24.80
       dns-nameservers <host provided nameservers>
       up ip addr add 255.46.187.154 dev eth0

также на хосте, не забудьте добавить маршрут к гостю, добавьте это в /etc/network/interfaces

iface eth0 inet static
       (...)
       up route add -host 255.46.187.153 dev br0
       up route add -host 255.46.187.154 dev br0

таким образом вы можете использовать сетевые и широковещательные адреса для гостей (255.46.187.152 и 255.46.187.159)

некоторые ресурсы, извините, не на английском:

http://www.ingent.net/ca/2012/03/server-virtualization-kvm-hetzner/(каталонский)

http://wiki.hetzner.de/index.php/KVM_mit_Nutzung_aller_IPs_-_the_easy_way(Немецкий)

решение2

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

iptables --table nat --append POSTROUTING --out-interface br0 -j MASQUERADE
iptables --append FORWARD --in-interface br0 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward

Редактировать: Извините за "МАСКАРАД", я просто скопировал-вставил скрипт, который у меня был. В вашем случае он вам не нужен. Но он может быть полезен в другом случае, например, когда вы хотите дать своим виртуальным машинам частные IP-адреса.

Связанный контент