Skip to content
Search RHEL

This page uses Chinese content. Search opens the Chinese documentation.

    Browse this documentation

    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)上实际执行:

    Terminal window
    nmcli --version
    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/64
    sudo nmcli con up dummy0
    nmcli -g IP4.ADDRESS,IP6.ADDRESS con show dummy0
    ip -br a show dummy0
    sudo nmcli con mod dummy0 ipv4.dns 192.0.2.53
    sudo nmcli con down dummy0 && sudo nmcli con up dummy0
    nmcli -g IP4.DNS con show dummy0
    ls /etc/NetworkManager/system-connections/ | grep dummy0
    sudo nmcli con delete dummy0

    E3 记录:plans/content-expansion/evidence/rhel/rhel-nm-dualstack/run.json(8 步,含每步输出 sha256)。

    • 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。
    Terminal window
    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/64
    sudo nmcli con up dummy0

    用 dummy 的好处:不碰 eth0,不会把 SSH 弄断;验证完直接删。

    $ nmcli -g IP4.ADDRESS,IP6.ADDRESS con show dummy0
    198.51.100.10/24
    2001\:db8\:\:10/64
    $ ip -br a show dummy0
    dummy0 UNKNOWN 198.51.100.10/24 2001:db8::10/64 fe80::9c76:15ff:fe0b:bca6/64

    nmcli -g 里的 \: 是转义,不是地址多了反斜杠;要看“人读”的地址用 ip -br 或 nmcli con show dummy0。

    Terminal window
    sudo nmcli con mod dummy0 ipv4.dns 192.0.2.53
    sudo nmcli con down dummy0
    sudo nmcli con up dummy0
    nmcli -g IP4.DNS con show dummy0
    # 192.0.2.53

    只 con mod 不 down/up,/etc/resolv.conf 可能仍是旧值;nmcli con mod 改的是配置,重连才触发应用。

    $ ls /etc/NetworkManager/system-connections/ | grep dummy0
    dummy0.nmconnection

    删除:

    Terminal window
    sudo nmcli con delete dummy0
    ip -br a show dummy0 2>&1 || true
    # Device "dummy0" does not exist. (可能短暂残留为空接口)

    nmcli con delete 会删 keyfile 并移除连接;内核 dummy 设备可能延迟消失,ip -br 再确认一次。

    1. nmcli con show 看连接是否存在、connection.autoconnect 是否 yes;
    2. nmcli device status 看设备是否 connected;
    3. nmcli -f IP4.ADDRESS,IP6.ADDRESS,IP4.DNS con show <name> 看配置;
    4. ip -br a / ip -6 route 看内核实际状态;
    5. journalctl -u NetworkManager -n 50 看应用失败原因;
    6. nmcli con up <name> 手动触发,观察报错。
    • ipv4.method/ipv6.method 是 manual 还是 auto;
    • 双栈地址/前缀/网关是否成对;
    • DNS 改完是否 down/up;
    • nmcli -g 的转义是否被误读;
    • keyfile 是否在 /etc/NetworkManager/system-connections/;
    • 删除后用 ip -br 确认设备状态。
    • 未测试 DHCPv6/SLAAC 与 RA 场景;
    • 未测试 bond/bridge/VLAN 上的双栈;
    • 未测试 nmcli con mod 对 ipv6.addr-gen-mode 的影响;
    • 未测试 NetworkManager 与 firewalld zone 的自动绑定。