2.9. 使用带有 PCI 地址的 nmstatectl 使用动态 IP 地址配置以太网连接


使用 nmstatectl 工具通过 Nmstate API 配置以太网连接。Nmstate API 确保设置配置后结果与配置文件匹配。如果有任何失败,nmstatectl 会自动回滚更改以避免系统处于不正确的状态。

您可以使用 Nmstate 配置从 DHCP 服务器和 IPv6 无状态地址自动配置(SLAAC)检索其 IP 地址、网关和 DNS 设置的以太网连接。您可以根据其 PCI 地址而不是接口名称,为设备分配连接配置集。

先决条件

  • 服务器配置中存在物理以太网设备。
  • 网络中有 DHCP 服务器和 SLAAC。
  • 受管主机使用 NetworkManager 配置网络。
  • 您知道设备的 PCI 地址。您可以使用 ethtool -i < interface_name&gt; | grep bus-info 命令显示 PCI 地址。
  • nmstate 软件包已安装。

步骤

  1. 创建包含以下内容的 YAML 文件,如 ~/create-ethernet-profile.yml

    ---
    interfaces:
    - name: <profile_name>
      type: ethernet
      state: up
      identifier: pci-address
      pci-address: 0000:00:14.3
      ipv4:
        enabled: true
        auto-dns: true
        auto-gateway: true
        auto-routes: true
        dhcp: true
      ipv6:
        enabled: true
        auto-dns: true
        auto-gateway: true
        auto-routes: true
        autoconf: true
        dhcp: true
    Copy to Clipboard Toggle word wrap

    这些设置为 ID 为 0000:00:14.3 的设备定义以太网连接配置文件。连接从 DHCP 服务器检索 IPv4 地址、IPv6 地址、默认网关、路由、DNS 服务器和搜索域,以及 IPv6 无状态地址自动配置(SLAAC)。

  2. 将设置应用到系统:

    # nmstatectl apply ~/create-ethernet-profile.yml
    Copy to Clipboard Toggle word wrap

验证

  1. 以 YAML 格式显示当前状态:

    # nmstatectl show <interface_name>
    Copy to Clipboard Toggle word wrap
  2. 显示 NIC 的 IP 设置:

    # ip address show <interface_name>
    2: <interface_name>: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        link/ether 52:54:00:17:b8:b6 brd ff:ff:ff:ff:ff:ff
        inet 192.0.2.1/24 brd 192.0.2.255 scope global noprefixroute <interface_name>
           valid_lft forever preferred_lft forever
        inet6 2001:db8:1::fffe/64 scope global noprefixroute
           valid_lft forever preferred_lft forever
    Copy to Clipboard Toggle word wrap
  3. 显示 IPv4 默认网关:

    # ip route show default
    default via 192.0.2.254 dev <interface_name> proto static metric 102
    Copy to Clipboard Toggle word wrap
  4. 显示 IPv6 默认网关:

    # ip -6 route show default
    default via 2001:db8:1::fffe dev <interface_name> proto static metric 102 pref medium
    Copy to Clipboard Toggle word wrap
  5. 显示 DNS 设置:

    # cat /etc/resolv.conf
    search example.com
    nameserver 192.0.2.200
    nameserver 2001:db8:1::ffbb
    Copy to Clipboard Toggle word wrap
  6. 使用 ping 工具验证这个主机是否可以向其他主机发送数据包:

    # ping <host-name-or-IP-address>
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat