我有一台主机(Openstack Newton 数据中心控制器),上面运行着以下服务:
- Maas-Rack-Controller (桥接 DHCP)
- Cloudify(多云管理 POC)
- Juju(尚无法引导……)
这些在 ZFS 上作为 LXD 容器运行。硬件是带有 SSD 驱动器的 Intel NUC 5i5MYHE 刀片。刀片被馈送一组 VLAN 中继,其中第一个 VLAN 未标记。这个未标记的 LVAN 是我们的核心数据中心网络。我有一个 Maas-Region-Controller 上游,它与机架控制器通信并对其进行管理。
MaaS 具有 DHCP 保留,不包括此网络上这些核心服务的前 10 个 IP 地址,并设置为当其他刀片服务器通过未标记的 VLAN 从 DHCP 池向内部机架控制器 PXE 引导时,通过未标记的 VLAN 将地址分配给其他刀片服务器上的 LXD Openstack 组件。
我可以轻松地将 LXD 桥接接口 IP 地址设置为 DHCP,因为从技术上讲我并不关心它,但所有这些所依赖的控制器主机需要保留范围内的静态地址。
Juju 需要 DHCP 分配才能完成其引导过程。
我正在寻找类似的东西,尽管由于显而易见的原因它不起作用:
# 环回网络接口 自动档 iface lo inet 环回 # 主网络接口 iface enp0s25 inet 手册 地址 192.168.199.5 网络掩码 255.255.255.0 网络 192.168.199.0 广播 192.168.199.255 网关 192.168.199.1 # dns-* 选项由 resolvconf 包实现(如果已安装) dns 名称服务器 192.168.199.1 192.168.1.1 8.8.8.8 dns 搜索 home.spyderdyne.net 自动 br0 iface br0 inet dhcp 桥接-ifaces enp0s25 桥接端口 enp0s25 启动 ifconfig enp0s25 启动
欢迎提出任何关于如何在具有静态 IP 的刀片上允许 DHCP 通过桥接器且不破坏 VLAN 的想法。我可能正在考虑某种子接口定义。
显然,我找不到任何地方涉及这一点,这可能代表一种奇怪的设置,但我正试图充分利用有限的资源和空间来完成这个项目。
答案1
我找到了答案。步骤如下:
步骤 1. 以某种方式在网络上启用 DHCP。为此,我将路由器从 DHCP 转发器更改为 DHCP 服务器。
第 2 步. 使用 /etc/network/interfaces 中的手动(静态)地址在“控制器”服务器上设置桥接设备。
# 环回网络接口 自动档 iface lo inet 环回 # 主网络接口 自动 br0 iface br0 inet 静态 地址 192.168.199.5 网络掩码 255.255.255.0 网关 192.168.199.1 dns 名称服务器 192.168.199.2 192.168.199.1 192.168.1.1 dns 搜索 home.spyderdyne.net 桥接-ifaces enp0s25 桥接端口 enp0s25 启动 ifconfig enp0s25 启动 iface enp0s25 inet 手册
步骤 3. 记录新桥接设备的硬件/MAC 地址:
root@rack2-controller0:~# ifconfig br0 br0:标志=4163 mtu 1500 inet 192.168.199.5 网络掩码 255.255.255.0 广播 192.168.199.255 inet6 fe80::baae:edff:fe7f:fd70 前缀长度 64 范围 ID 0x20 ether b8:ae:ed:7f:fd:70 txqueuelen 1000(以太网) RX 数据包 315449 字节 353143957 (353.1 MB) RX 错误 0 丢失 0 超限 0 帧 0 TX 数据包 217291 字节 16267645 (16.2 MB) TX 错误 0 丢失 0 超限 0 载波 0 冲突 0
步骤 4. 配置您的 DHCP 服务器以分配您想要分配给桥接设备的正确静态 IP 地址:
步骤 5. 安装 LXD:
root@rack2-controller0:~# lxd init 要使用的存储后端的名称(dir 或 zfs)[默认 = zfs]: 创建新的 ZFS 池(是/否)[默认=是]? 新 ZFS 池的名称 [默认=lxd]: 您想使用现有的块设备吗(是/否)[默认=否]? 是 现有块设备的路径:/dev/sda2 您是否希望 LXD 通过网络可用(是/否)[默认=否]?是 LXD 绑定的地址(不包括端口)[默认=全部]: 将 LXD 绑定到的端口 [默认=8443]: 新客户信任密码: 再次: 您是否希望自动更新过时的缓存图像(是/否)[默认=是]? 您想创建新的网桥吗(是/否)[默认=是]?否 LXD 已成功配置。
步骤 6. 编辑默认的 LXD 配置文件网络配置以包含桥接器:
root@rack2-controller0:~# lxc 配置文件编辑默认值 ### 这是配置文件的 yaml 表示。 ### 任何以 '# 开头的行将被忽略。 ### ### 配置文件由一组配置项和一组 ### 设备。 ### ### 示例如下: ### 名称:onenic ###配置: ### raw.lxc: lxc.aa_profile=unconfined ### 设备: ### eth0: ### nictype:桥接 ### 父级:lxdbr0 ### 类型:nic ### ### 注意,名称会显示,但不能更改 名称:默认 配置:{} 描述:默认 LXD 配置文件 设备: eth0: nictype:桥接 父级:br0
步骤 7.启动新的容器实例:
root@rack2-controller0:~# lxc 启动 ubuntu:yakkety rack2-maas-rack0 创建 rack2-maas-rack0 正在检索图像:100% 正在启动 rack2-maas-rack0 root@rack2-controller0:~# lxc 列表 +------------------+---------+------+------+------------+---------+-----------+ | 名称 | 州 | IPV4 | IPV6 | 类型 | 快照 | +------------------+---------+------+------+------------+---------+-----------+ | rack2-maas-rack0 | 运行 | | | 持久 | 0 | +------------------+---------+------+------+------------+---------+-----------+
步骤 8. 将新容器的网络设置设为所需的静态地址:
root@rack2-maas-rack0:~# cat /etc/network/interfaces # 此文件描述了系统上可用的网络接口 # 以及如何激活它们。有关更多信息,请参阅interfaces(5)。 # 环回网络接口 自动档 iface lo inet 环回 # 源接口 # 更改此文件之前,请检查 /etc/network/interfaces.d # 因为接口可能已在 /etc/network/interfaces.d 中定义 # 查看 LP:#1262951 #源 /etc/network/interfaces.d/*.cfg 自动 eth0 iface eth0 inet 静态 地址 192.168.199.6 网络掩码 255.255.255.0 网关 192.168.199.1 dns 名称服务器 192.168.199.1 192.168.1.1 8.8.8.8
步骤 9.安装 maas-rack-controller:
apt 安装 -y maas-rack-controller
步骤 10.将新的机架控制器添加到区域控制器:
root@rack2-maas-rack0:~# maas-rack 注册--url=http://192.168.199.2/5240/MAAS --secret=e613b300be30450c07a724ac77819aae
步骤 11.等待新的机架控制器与区域的其余部分同步:
步骤 12. 在其他 DHCP 服务器上禁用 DHCP:
步骤 13.配置 MaaS DHCP:
步骤 14:如果需要,添加 DHCP 保留。
步骤15。通过 MAC 地址手动配置主机通过 DHCP 设置静态地址,或者至少保留其地址以防止将来分配。
我必须等待新的机架控制器完成其同步操作,然后才能确定机架 DHCP 是否正常工作,但至少我已经启动并运行手动地址,并且现在应该能够运行 DHCP 服务器。