5.8. 将虚拟网络接口(VIF)附加到裸机实例


要将裸机实例附加到裸机网络接口,云用户可以使用 Compute 服务(nova)或裸机置备服务(ironic)。

  • 计算服务:云用户使用 openstack server add network 命令。如需更多信息 ,请参阅将网络附加到实例

    注意

    ===

  • 在使用计算服务时,您必须在创建实例时明确声明端口。当 Compute 服务向裸机置备服务发出请求以创建实例时,计算服务会尝试记录要在裸机置备服务中附加的用户的所有 VIF 来生成元数据。
  • 在使用 Compute 服务时,您无法指定要附加 VIF 的物理端口。如果要明确声明要映射到哪个端口,则使用裸机置备服务来创建附加。===
  • 裸机置备服务:云用户使用 openstack baremetal node vif attach 命令将 VIF 附加到裸机实例。有关虚拟网络接口(VIF)的更多信息,请参阅 裸机置备服务虚拟网络接口(VIF)

以下流程使用裸机置备服务将裸机实例附加到网络。裸机置备服务使用通过网络服务创建的端口的 UUID 创建 VIF 附加。

流程

  1. 从您的工作站访问 OpenStackClient pod 的远程 shell:

    $ oc rsh -n openstack openstackclient
    Copy to Clipboard Toggle word wrap
  2. 检索您要将 VIF 附加到的裸机实例的 UUID:

    $ openstack server list
    Copy to Clipboard Toggle word wrap
  3. 检索您要附加到节点的 VIF 的 UUID:

    $ openstack port list
    Copy to Clipboard Toggle word wrap
  4. 可选:检索您要映射 VIF 的裸机端口的 UUID:

    $ openstack baremetal port list
    Copy to Clipboard Toggle word wrap
  5. 将 VIF 附加到裸机实例:

    $ openstack baremetal node vif attach [--port-uuid <port_uuid>] \
      <node> <vif_id>
    Copy to Clipboard Toggle word wrap
    • 可选:将 < port_uuid > 替换为要附加 VIF 的裸机端口的 UUID。
    • 将 & lt;node > 替换为您要附加 VIF 的裸机实例的名称或 UUID。
    • <vif_id > 替换为要附加到裸机实例的 VIF 的名称或 UUID。
  6. 退出 openstackclient pod:

    $ exit
    Copy to Clipboard Toggle word wrap

当云用户请求虚拟网络接口(VIF)连接到其裸机实例时,使用 openstack baremetal node vif attach 命令(如果没有声明的端口或端口组首选项),Bare Metal Provisioning 服务(ironic)通过评估以下条件来选择合适的未附加端口或端口组:

  1. 端口或端口组没有物理网络,或者具有与 VIF 可用物理网络之一匹配的物理网络。
  2. 首选使用物理网络到没有物理网络的端口和端口组的端口和端口组。
  3. 将端口组首选为端口。
  4. 首选启用 PXE 的端口。

当裸机置备服务将任何 VIF 附加到裸机实例时,它会明确为 VIF 绑定的物理端口设置 MAC 地址。如果节点已经处于 ACTIVE 状态,则 Networking 服务(neutron)会更新 VIF 附加。

当裸机置备服务取消绑定 VIF 时,它会向网络服务发出请求以重置分配的 MAC 地址,以避免与网络服务的唯一硬件 MAC 地址要求冲突。

5.8.2. 连接和分离虚拟网络接口

裸机置备服务具有一个 API,可用于管理虚拟网络接口之间的映射。例如,网络服务(neutron)和物理接口(NIC)中的接口。您可以为每个裸机节点配置这些接口,将虚拟网络接口(VIF)设置为物理网络接口(PIF)映射逻辑。

流程

  1. 从您的工作站访问 OpenStackClient pod 的远程 shell:

    $ oc rsh -n openstack openstackclient
    Copy to Clipboard Toggle word wrap
  2. 列出连接到裸机节点的 VIF ID:

    $ openstack baremetal node vif list <node>
    +--------------------------------------+
    | ID                                   |
    +--------------------------------------+
    | 4475bc5a-6f6e-466d-bcb6-6c2dce0fba16 |
    +--------------------------------------+
    Copy to Clipboard Toggle word wrap
    • <node> 替换为裸机节点的名称或 UUID。
  3. 附加 VIF 后,裸机置备服务会使用物理端口的 MAC 地址更新网络服务中的虚拟端口。检查这个端口地址:

    $ openstack port show 4475bc5a-6f6e-466d-bcb6-6c2dce0fba16 -c mac_address -c fixed_ips
    +-------------+-----------------------------------------------------------------------------+
    | Field       | Value                                                                       |
    +-------------+-----------------------------------------------------------------------------+
    | fixed_ips   | ip_address='192.168.24.9', subnet_id='1d11c677-5946-4733-87c3-23a9e06077aa' |
    | mac_address | 00:2d:28:2f:8d:95                                                           |
    +-------------+-----------------------------------------------------------------------------+
    Copy to Clipboard Toggle word wrap
  4. 在创建裸机节点的网络上创建一个新端口:

    $ openstack port create --network baremetal --fixed-ip ip-address=192.168.24.24 <port_name>
    Copy to Clipboard Toggle word wrap
  5. 从它所附加的裸机实例中删除端口:

    $ openstack server remove port <instance_name> 4475bc5a-6f6e-466d-bcb6-6c2dce0fba16
    Copy to Clipboard Toggle word wrap
  6. 检查列表中是否不再存在 IP 地址:

    $ openstack server list
    Copy to Clipboard Toggle word wrap
  7. 检查附加到节点的 VIFs 是否存在:

    $ openstack baremetal node vif list <node>
    $ openstack port list
    Copy to Clipboard Toggle word wrap
  8. 添加新创建的端口:

    $ openstack server add port <instance_name> <port_name>
    Copy to Clipboard Toggle word wrap
  9. 验证新 IP 地址显示新端口:

    $ openstack server list
    Copy to Clipboard Toggle word wrap
  10. 检查 VIF ID 是否为新端口的 UUID:

    $ openstack baremetal node vif list <node>
    +--------------------------------------+
    | ID                                   |
    +--------------------------------------+
    | 6181c089-7e33-4f1c-b8fe-2523ff431ffc |
    +--------------------------------------+
    Copy to Clipboard Toggle word wrap
  11. 检查网络服务端口 MAC 地址是否已更新,并与裸机置备服务端口之一匹配:

    $ openstack port show 6181c089-7e33-4f1c-b8fe-2523ff431ffc -c mac_address -c fixed_ips
    +-------------+------------------------------------------------------------------------------+
    | Field       | Value                                                                        |
    +-------------+------------------------------------------------------------------------------+
    | fixed_ips   | ip_address='192.168.24.24', subnet_id='1d11c677-5946-4733-87c3-23a9e06077aa' |
    | mac_address | 00:2d:28:2f:8d:95                                                            |
    +-------------+------------------------------------------------------------------------------+
    Copy to Clipboard Toggle word wrap
  12. 重新引导裸机节点,以便它可识别新的 IP 地址:

    $ openstack server reboot overcloud-baremetal-0
    Copy to Clipboard Toggle word wrap

    分离或附加接口后,裸机操作系统会删除、添加或修改已更改的网络接口。当您替换端口时,DHCP 请求会获取新的 IP 地址,但这可能需要一些时间,因为旧的 DHCP 租期仍然有效。要立即启动这些更改,请重新引导裸机节点。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat