Назад | Перейти на главную страницу

миграция с физического на виртуальный (kvm) с сохранением IP гостя и его повторным использованием на хосте

Я хочу выполнить миграцию сервера BSD с физического на виртуальный, сохранив IP-адрес. Целевой виртуальный хост - Linux / KVM.

Текущая установка: у меня был сервер BSD с отказавшим оборудованием. Я только что заменил его новым сервером, а его HardWare слишком новое, чтобы BSD могла использовать его напрямую.

Итак, у меня Linux на новом сервере, и я хочу переместить BSD в виртуализацию с помощью KVM.

У меня есть полный дамп жесткого диска старого сервера.

Проблема в том, что у меня только единственный реальный IP-адрес, и я должен использовать этот IP-адрес как в гостевой, так и в хост-системе.

Я хочу использовать гостевой IP-адрес, потому что это почтовый сервер, и я хочу, чтобы мой реальный IP-адрес использовался в заголовках почты.

Использование IP на хосте связано с тем, что у меня нет другого IP.

TCP-сервисы машин:

Порты 22,25,53,110 будут просто перенаправлены от хоста к гостю с помощью iptables. Если возможно, я бы также перенаправил гостевой DNS-сервер в realIP.

Как мне настроить сеть KVM и libvirt для достижения одинакового использования IP в гостевой и на хосте?

Ух ... это НЕ рекомендуемый способ делать что-то, но то, что должно работать, будет:

  • включить переадресацию IP на хосте
  • назначить реальный IP хосту
  • назначить реальный IP-адрес для интерфейса обратной связи на гостевой системе
  • назначать IP-адреса в частной подсети между хостом и гостем
  • настроить NAT на хосте для входящих подключений DNAT к частному IP-адресу гостя
  • настроить NAT на хосте для исходящих соединений SNAT с частного IP гостя на реальный IP
  • настроить NAT на гостевом компьютере для входящих подключений DNAT к реальному IP
  • настроить NAT на гостевом компьютере для исходящих подключений SNAT к частному IP гостя

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

Для этого:

  1. Хост-системы должны быть настроены с вашим «НАСТОЯЩИМ IP».
  2. Ваша гостевая ОС должна быть настроена для работы в сети NAT.
  3. Услуги, которые вы хотите обслуживать от вашего гостя, должны быть перенаправлены хостом.

Это единственное, что я могу придумать для достижения того, чего вы хотите, у вас не может быть двух физических или виртуальных машин с одним и тем же IP-адресом.

Вам нужен хост на IP-адресе только для целей управления?

Вы можете рассмотреть что-то вроде этой установки:

  • Прикрепите реальный IP-адрес к виртуальному сетевому адаптеру в BSD VM
  • Добавьте вторую виртуальную сетевую карту к BSD VM, создайте (частный IP) подсеть только для этого, назначьте статический IP в этом диапазоне для VNIC
  • Подключите сетевой адаптер хоста к частной подсети на другом IP-адресе

В зависимости от вашей платформы виртуализации это может потребовать разного объема работы. Я сделал что-то похожее на это для брандмауэра хоста ESXi, доступного к общедоступному IP-адресу, когда у меня не было доступа к аппаратному брандмауэру (размещая виртуальную машину на общедоступном IP-адресе, хост ESXi доступен только через сеть vswitch).

ОЧЕНЬ ВАЖНО. При такой настройке вам потребуется подключиться через виртуальную машину BSD, чтобы выполнять удаленное обслуживание самого хоста. Если у хоста возникли проблемы и вы потеряли соединение, вам потребуется доступ KVM для решения. Тоже не очень хорошее решение.

[РЕДАКТИРОВАТЬ] Я только что понял, что snap опубликовал этот же ответ надо мной - упс, я не прочитал все сообщения, прежде чем ответить ... Я добавлю +1 к его сообщению.

Вместо того, чтобы настраивать хост с реальным IP и гостем с частным IP, вы можете сделать наоборот: настроить гостя с реальным IP (потому что он запускает службы) и настроить частную сеть между хостом и гостем. Хосту не обязательно иметь (реальный) IP-адрес, привязанный к интерфейсу моста, который соединяет реальный сетевой интерфейс с гостем. Для доступа к хосту вам нужно сначала пройти через гостя.

Преимущество этого решения в том, что вам не нужен NAT, и, таким образом, ваш гость может без проблем запускать любые протоколы и без настройки правил NAT на хосте. Другое дело, что ваш хост будет более безопасным, потому что он не будет доступен напрямую из Интернета.

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