documentation.suse.com / SUSE Edge 文档 / 查错 / Edge 网络 (NMC) 查错

47 Edge 网络 (NMC) 查错

SL Micro EIB 映像中注入了 NMC,后者用于在系统引导时通过 Combustion 配置 Edge 主机的网络。在 Metal3 工作流程中,它也会作为检查过程的一部分执行。当主机首次引导时或在 Metal3 检查过程中,可能会发生问题。

常见问题
  • 主机首次引导时无法正常引导:格式错误的网络定义文件可能导致 Combustion 阶段失败,进而使主机回退到 root 外壳。

  • 未正确生成文件:确保网络文件符合 NMState 格式。

  • 网络接口配置不正确:确保 MAC 地址与主机上使用的接口匹配。

  • 接口名称不匹配:内核参数 net.ifnames=1 会启用网络接口的可预测命名方案,因此不再使用 eth0 命名方案,而是采用 enp2s0 等其他命名方案。

日志
  • Combustion 日志:由于 nmc 在 Combustion 阶段使用,可在待置备的主机上使用 journalctl -u combustion 检查 Combustion 日志。

  • NetworkManager 日志:在 Metal3 部署工作流程中,nmc 是 IPA 执行过程的一个环节,它通过 systemd 的 ExecStartPre 功能作为 NetworkManager 服务的依赖项运行。可以在 IPA 主机上使用 journalctl -u NetworkManager 检查 NetworkManager 日志(参见第 49 章 “定向网络置备查错,了解如何在主机通过 IPA 引导时访问主机)。

查错步骤
  1. 验证 yaml 语法:nmc 配置文件是 yaml 文件,可使用 yamllint 或类似工具检查其语法正确性。

  2. 手动运行 nmc:由于 nmc 是 EIB 容器的一部分,可使用本地 Podman 命令来调试问题。

    1. 创建一个用于存储 nmc 文件的临时文件夹。

      mkdir -p ${HOME}/tmp/foo
    2. 将 nmc 文件保存到该位置。

      ❯ tree --noreport ${HOME}/tmp/foo
      /Users/johndoe/tmp/foo
      ├── host1.example.com.yaml
      └── host2.example.com.yaml
    3. 以 nmc 为入口点执行 generate 命令来运行 EIB 容器,模拟 nmc 在 combustion 阶段执行的任务:

      podman run -it --rm -v ${HOME}/tmp/foo:/tmp/foo:Z --entrypoint=/usr/bin/nmc registry.suse.com/edge/3.3/edge-image-builder:1.2.0 generate --config-dir /tmp/foo --output-dir /tmp/foo/
      
      [2025-06-04T11:58:37Z INFO  nmc::generate_conf] Generating config from "/tmp/foo/host2.example.com.yaml"...
      [2025-06-04T11:58:37Z INFO  nmc::generate_conf] Generating config from "/tmp/foo/host1.example.com.yaml"...
      [2025-06-04T11:58:37Z INFO  nmc] Successfully generated and stored network config
    4. 观察临时文件夹中生成的日志和文件。

Documentation survey