RHEL 10 NetworkManager 双栈:nmcli 配置与验证
This content is not available in your language yet.
RHEL 10 的网络由 NetworkManager 管,nmcli 是主入口。双栈配置本身不难,难的是两个细节:IPv6 地址在 nmcli -g 里会被转义,以及改 DNS 后要 down/up 才生效。本页用 dummy 接口跑一遍,不动 eth0。
在 PVE 390 rhel10-lab(RHEL 10.2 x86_64)上实际执行:
nmcli --versionsudo nmcli con add type dummy ifname dummy0 con-name dummy0 \ ipv4.method manual ipv4.addresses 198.51.100.10/24 \ ipv6.method manual ipv6.addresses 2001:db8::10/64sudo nmcli con up dummy0nmcli -g IP4.ADDRESS,IP6.ADDRESS con show dummy0ip -br a show dummy0sudo nmcli con mod dummy0 ipv4.dns 192.0.2.53sudo nmcli con down dummy0 && sudo nmcli con up dummy0nmcli -g IP4.DNS con show dummy0ls /etc/NetworkManager/system-connections/ | grep dummy0sudo nmcli con delete dummy0E3 记录:plans/content-expansion/evidence/rhel/rhel-nm-dualstack/run.json(8 步,含每步输出 sha256)。
先给结论:keyfile 是持久层
Section titled “先给结论:keyfile 是持久层”nmcli con add/mod写/etc/NetworkManager/system-connections/<name>.nmconnection;nmcli con up/down把配置应用到设备;nmcli con show的-g输出是 GVariant 转义格式,IPv6 的:会变成\:;- 删除连接用
nmcli con delete,不是ip addr del。
建双栈 dummy
Section titled “建双栈 dummy”sudo nmcli con add type dummy ifname dummy0 con-name dummy0 \ ipv4.method manual ipv4.addresses 198.51.100.10/24 \ ipv6.method manual ipv6.addresses 2001:db8::10/64sudo nmcli con up dummy0用 dummy 的好处:不碰 eth0,不会把 SSH 弄断;验证完直接删。
地址显示:转义不是错误
Section titled “地址显示:转义不是错误”$ nmcli -g IP4.ADDRESS,IP6.ADDRESS con show dummy0198.51.100.10/242001\:db8\:\:10/64
$ ip -br a show dummy0dummy0 UNKNOWN 198.51.100.10/24 2001:db8::10/64 fe80::9c76:15ff:fe0b:bca6/64nmcli -g 里的 \: 是转义,不是地址多了反斜杠;要看“人读”的地址用 ip -br 或 nmcli con show dummy0。
DNS 修改要重连
Section titled “DNS 修改要重连”sudo nmcli con mod dummy0 ipv4.dns 192.0.2.53sudo nmcli con down dummy0sudo nmcli con up dummy0nmcli -g IP4.DNS con show dummy0# 192.0.2.53只 con mod 不 down/up,/etc/resolv.conf 可能仍是旧值;nmcli con mod 改的是配置,重连才触发应用。
持久化与删除
Section titled “持久化与删除”$ ls /etc/NetworkManager/system-connections/ | grep dummy0dummy0.nmconnection删除:
sudo nmcli con delete dummy0ip -br a show dummy0 2>&1 || true# Device "dummy0" does not exist. (可能短暂残留为空接口)nmcli con delete 会删 keyfile 并移除连接;内核 dummy 设备可能延迟消失,ip -br 再确认一次。
nmcli con show看连接是否存在、connection.autoconnect是否 yes;nmcli device status看设备是否connected;nmcli -f IP4.ADDRESS,IP6.ADDRESS,IP4.DNS con show <name>看配置;ip -br a/ip -6 route看内核实际状态;journalctl -u NetworkManager -n 50看应用失败原因;nmcli con up <name>手动触发,观察报错。
-
ipv4.method/ipv6.method是 manual 还是 auto; - 双栈地址/前缀/网关是否成对;
- DNS 改完是否 down/up;
-
nmcli -g的转义是否被误读; - keyfile 是否在
/etc/NetworkManager/system-connections/; - 删除后用
ip -br确认设备状态。
未实测与边界
Section titled “未实测与边界”- 未测试 DHCPv6/SLAAC 与 RA 场景;
- 未测试 bond/bridge/VLAN 上的双栈;
- 未测试
nmcli con mod对ipv6.addr-gen-mode的影响; - 未测试 NetworkManager 与 firewalld zone 的自动绑定。
- firewalld 规则不生效:nftables 后端排查 — 防火墙与 zone
- RHEL 运维基线 — 主机基线
- 官方:Configuring and managing networking