You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Netmiko调用commit方法未提交配置且无法退出Cisco IOS配置模式

问题核心原因

你代码的核心问题是device_type参数配置错误:

  • 从你给出的设备提示符RP/0/RP0/CPU0:cisco-lab-device可以判断,你操作的是Cisco IOS XR操作系统,而你代码中填的cisco_ios是适配传统IOS/IOS XE系统的驱动,这类系统不需要显式执行commit就会生效配置,也没有适配IOS XR的commit交互逻辑。
  • 错误的驱动无法识别commit命令执行后设备返回的提示符,代码会一直卡在device.commit()这一行等待响应,所以你看不到后续的DONE打印,配置也不会实际生效。

修正方案

将device_type参数修改为适配IOS XR的cisco_xr即可,该驱动原生支持IOS XR的配置提交逻辑,修正后的代码如下:

from netmiko import ConnectHandler

device = ConnectHandler(device_type="cisco_xr",
                        host="cisco-lab-device",
                        username="admin",
                        password="passwd",
                        session_timeout=120,
                        verbose=True)
cmdlist = ['vrf new']
try:
    result = device.send_config_set(cmdlist, exit_config_mode=False)
    print("Result after sending commands ", result)
except Exception as err:
    print(err)
    device.disconnect()

result = device.commit()
print('DONE')
device.disconnect()

可选排查项

如果修改设备类型后仍有异常,可以按以下步骤排查:

  • 升级Netmiko到3.0及以上版本,旧版本对IOS XR的适配存在已知bug
  • 手动SSH登录设备,在全局配置模式下执行commit,确认是否有权限不足、需要confirm提示等额外交互逻辑
  • 打开代码中注释的session_log="output.txt"参数,记录完整的会话日志,定位commit执行阶段的具体返回内容

内容的提问来源于stack exchange,提问作者krishna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 00:45:10