2.11. 使用带有 PCI 地址的 nmstatectl 使用动态 IP 地址配置以太网连接
您可以使用声明 Nmstate API 配置 DHCP 和 IPv6 无状态地址自动配置(SLAAC)的以太网连接,并根据其 PCI 地址将配置分配给设备。nmstate 可确保结果与配置文件匹配或回滚更改。
先决条件
- 服务器配置中存在物理以太网设备。
- 网络中有 DHCP 服务器和 SLAAC。
- 受管主机使用 NetworkManager 配置网络。
-
您知道设备的 PCI 地址。您可以使用
ethtool -i < interface_name> | grep bus-info命令显示 PCI 地址。 -
nmstate软件包已安装。
步骤
创建包含以下内容的 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这些设置为 ID 为
0000:00:14.3的设备定义以太网连接配置文件。连接从 DHCP 服务器检索 IPv4 地址、IPv6 地址、默认网关、路由、DNS 服务器和搜索域,以及 IPv6 无状态地址自动配置(SLAAC)。将设置应用到系统:
# nmstatectl apply ~/create-ethernet-profile.yml
验证
以 YAML 格式显示当前状态:
# nmstatectl show <interface_name>显示 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显示 IPv4 默认网关:
# ip route show default default via 192.0.2.254 dev <interface_name> proto static metric 102显示 IPv6 默认网关:
# ip -6 route show default default via 2001:db8:1::fffe dev <interface_name> proto static metric 102 pref medium显示 DNS 设置:
# cat /etc/resolv.conf search example.com nameserver 192.0.2.200 nameserver 2001:db8:1::ffbb使用
ping工具验证这个主机是否可以向其他主机发送数据包:# ping <host-name-or-IP-address>