物理到虚拟(kvm)迁移,保存guest虚拟机的IP并在主机上重新使用

我想做一个BSD服务器的物理到虚拟的迁移,保存IP地址。 目标虚拟主机是Linux / KVM。

目前的设置:我有一个失败的硬件BSD服务器。 我刚刚用一台新的服务器replace了它,而且它的硬件太新,不能直接用于BSD。

所以,我在新的服务器上安装了Linux,并且希望使用KVM将BSD移植到虚拟化中。

我有旧的服务器完整的硬盘转储。

问题是:我只有一个真正的IP,我应该使用这个IP在客人和主机。

我想在客人上使用IP,因为它是一个邮件服务器,我希望我的真实IP在邮件头中使用。

在主机上使用IP是因为我没有任何其他的IP。

机器的TCP服务是:

  • 在非标准端口的主机上sshd;
  • 在客人sshd
  • 客人smtp,客人POP3 / IMAP。
  • 发送SMTP,HTTP,FTP请求必须从来宾启用。

端口22,25,53,110将仅通过iptables从主机转发给客户。 如果可能的话,我也会将客人的DNS服务器转发到realIP。

我应该如何configurationKVMnetworkinglibvirt来实现在guest虚拟机和主机上的相同IP使用率?

呃…这不是build议的做事方式,但是应该做的是:

  • 在主机上打开IP转发
  • 分配真实的IP到主机
  • 将真实IP分配给guest虚拟机上的回送接口
  • 在主机和来宾之间的专用子网上分配IP
  • 将主机上的NAT设置为DNAT传入连接到来宾的专用IP
  • 将主机上的NAT设置为从客户的专用IP到真实IP的SNAT传出连接
  • 在来宾上设置NAT以将DNAT到达真实IP的传入连接
  • 在来宾上设置NAT,将SNAT出局连接设置为访客的私有IP

这是复杂和丑陋的,但可能会工作。 通过这种方式,真正的IP可以显示在例如邮件标题中,并且来宾会认为它是真实IP的所有者。

为了达到这个目的:

  1. 主机系统需要configuration您的“真正的IP”
  2. 您的客户操作系统将需要configurationNATnetworking
  3. 你想从你的客人提供的服务将需要由主机端口转发。

这是我能想到的唯一能达到你想要的,你不能有2台机器物理或虚拟共享相同的IP地址。

而不是用真实的IP和来宾与私人IPconfiguration主机,反之亦然:使用真正的IPconfiguration客人(因为它运行的服务),并build立一个主机和来宾之间的私人networking。 主机不需要将(真实)IP地址绑定到将真实networking接口连接到来宾的网桥接口。 要访问主机,你需要先通过客人。

这个解决scheme的好处是你不需要NAT,因此你的客户可以毫无问题地运行任何协议,也不需要在主机中configurationNAT规则。 另一件事是你的主机将更安全,因为它不能直接从互联网上访问。

缺点是,如果你的客人不工作,你不能使用它连接到主机来解决问题。 这可能是一个问题,如果你没有其他方式访问机器,例如,如果它在一个托pipe服务提供商。 在这种情况下,使用IP-KVM在紧急情况下访问主机可能是远程访问的解决scheme。

您是否需要IP地址上的主机才能进行pipe理?

你可以考虑这样的设置:

  • 将真实IP连接到BSD虚拟机中的虚拟网卡
  • 为BSD虚拟机添加第二个虚拟网卡,为此创build一个(私有IP)子网,在此范围内为VNIC分配一个静态IP
  • 将主机NIC连接到不同IP上的私有子网

根据您的虚拟化平台,这可能涉及不同的工作量。 当我无法访问硬件防火墙(将虚拟机置于公共IP上,ESXi主机只能通过vswitchnetworking访问)时,我已经做了类似的事情来防护暴露给公共IP的ESXi主机。

非常重要 – 使用此设置,您需要通过BSD VM进行连接,以便对主机本身执行远程维护。 如果主机有问题,并且您失去了连接,则需要KVM访问才能解决问题。 也不是一个漂亮的解决scheme

[编辑]我刚刚意识到pipe理单元已经发布了同样的答案在我上面 – woops,我没有通读所有的post,然后回复…我会+1他的职位。