VM 在虚拟网络中充当 DHCP/PXE 服务器?

VM 在虚拟网络中充当 DHCP/PXE 服务器?

我正在研究运行的概念验证斯塔基,一个 DHCP/PXE 服务器,为给定子网内的 VM 提供 Kickstart PXE 启动配置。我想要做的是设置至少两个 libvirt VM,其中一个是管理网络 DHCP 的 Stacki 前端,另一个是将从 Stacki 接收启动配置的空 VM。

我认为我至少需要以下这些东西:

  1. 桥接虚拟 NAT 网络,以便 Stacki 本身及其管理的虚拟机可以通过 NAT 传输到互联网和本地网络中的其他物理机器。
  2. Stacki 必须是管理桥接虚拟 NAT 网络并分配 IP 地址的 DHCP 服务器。
  3. Stacki 必须有一个静态 IP 地址。

有没有办法禁用网络中的 DHCP 并单独为我的 Stacki 前端分配一个静态 IP 地址?我是否忽略了需要设置的内容?

答案1

我不会费心在 NAT 网络上运行 DHCP 服务器。在 VM 场景中,只需为所有 Stacki 通信运行第二个网络,并在必要时设置路由以返回 NAT 网络,这样会更简洁。

我们(Stacki 开发人员)继续创建 Stacki Vagrant 盒,以使此过程变得更容易一些。它不能完美解决 OP 的问题(目前依赖于 VirtualBox),但它应该可以解决想要在虚拟机中“测试​​” Stacki 而不是其他虚拟机的问题。

Vagrantfile 和大部分(参见仓库中的第 2 个问题)你自己重建盒子所需的东西都在 GitHub 上StackiUp。我们还在 S3 上托管了一个 Vagrantbox。只需克隆该存储库并运行“vagrant box addhttp://stacki.s3.amazonaws.com/public/vm/vagrant/stackibox.json&& 流浪汉起来”。

最后要澄清的是,Stacki 是开源的,在 GitHub 上是免费的(根据 BSD 许可证)。我们还在我们的网站上托管 ISO,因此您不必自己构建它。专业版当然不是进行裸机配置所必需的。免费的 Stacki 几乎可以很容易地扩展和添加 Ansible 来处理安装后配置。

答案2

有没有办法禁用网络中的 DHCP 并单独为我的 Stacki 前端分配一个静态 IP 地址?我是否忽略了需要设置的内容?

为什么不为 Stacki 指定一个静态 IP,并在 DHCP 服务器上为其保留该 IP 地址?

它能解决问题吗?

答案3

您可以构建一个隐藏在物理主机中的整个网络。

  1. 创建桥梁

    brctl addbr br99
    

    或者在基于 Debian 的环境下,/etc/network/interfaces.d/bridges例如:

    iface br99 inet manual
            bridge_ports none
    

    因此有一个未使用的,你可以与许多虚拟主机共享。

  2. 创建一个网络管理器容器,具有 dhcp、pxe 等功能...使用网桥作为主要连接。

  3. 现在您可以创建新容器作为第一个容器的自定义容器。

一些优点:

  • 对 pertub 硬件主机的 dhcp 客户端没有风险
  • 快速且轻便

但:

  • 内部容器无需连接真实的互联网,因此无需下载安装,也无需升级。

下一步:

你可以在两座桥上架设第一个集装箱:

  • 使用纯虚拟桥,因为eth1 以太网卡的桥接,eth0
  • 配置 DHCPD 仅服务于 eth1
  • 启用路由和转发。
  • 通过一些 iptable 规则(用于伪装虚拟网络),这必须完成工作。

答案4

将 DHCP 角色分配给 PXE 服务器从来都不是一个好方法。最好依靠已经到位的(真实或虚拟)DHCP 基础架构,并将 PXE 服务器的 DHCP 组件设置为代理DHCP模式

您是否真的需要整个 1.2 GB 100 美元/节点的“Stacki”发行版来配置 Linux 操作系统?

相关内容