如果需要反复练习一个实验,每次都要重新配置环境是很麻烦的,如果节点支持脚本配置还好,不支持就只能一个个刷入配置,并且实验中带有windows、linux等就必须重新手动配置或创建节点快照了。

通过保存/opt/unetlab/tmp/目录下对应沙箱缓存即可实现拓扑快照。

举例:

  1. 配置实验环境中节点基础配置。

    这里R1配置一个回环口地址,WinServer桌面新建一个1.txt

    image-20240518205947248

    image-20240518210044606

  2. 保存后关闭节点(例如iol,输入wr保存,win等正常关机),查看节点缓存路径。

    节点保存后关闭

    image-20240518210221377

    image-20240518210241002

    右键-节点信息,获取缓存路径

    image-20240518210312286

  3. 通过工具连接PnetLab CLI,找到对应缓存目录。

    root@pnetlab:~# cd /opt/unetlab/tmp/
    root@pnetlab:/opt/unetlab/tmp# cd 34
    root@pnetlab:/opt/unetlab/tmp/34# ls
    133  134
    root@pnetlab:/opt/unetlab/tmp/34# 
    
  4. 将缓存内的系统盘复制到指定路径(该路径可以改为其他的)

    # 创建备份目录(这个路径看个人喜好)
    root@pnetlab:/opt/unetlab/tmp/34/133# cd ~
    root@pnetlab:~# mkdir back
    root@pnetlab:~# cd back/
    root@pnetlab:~/back# mkdir 133
    root@pnetlab:~/back# mkdir 134
    root@pnetlab:~/back# cd 133/
    # 备份R1 系统盘
    root@pnetlab:~/back/133# cp /opt/unetlab/tmp/34/133/
    iourc                   keepalive.pl            .links_up               nvram_00001             wrapper.txt             
    iou_startup-config.txt  l3_iol.bin              NETMAP                  .prepared               
    root@pnetlab:~/back/133# cp /opt/unetlab/tmp/34/133/nvram_00001 .
    root@pnetlab:~/back/133# ls
    nvram_00001
    
    # 备份WinServer系统盘
    root@pnetlab:~/back/133# cd ../134
    root@pnetlab:~/back/134# cp /opt/unetlab/tmp/34/134/virtioa.qcow2  .
    root@pnetlab:~/back/134# 
    
  5. 还原配置。

    将节点重置(用于模拟需要还原配置的情况)。

    image-20240518210829901

    将节点启动一次,以生成缓存目录。

    缓存生成后,将备份的缓存复制到新的缓存目录中即可

    # 查看缓存目录是否生成
    root@pnetlab:/opt/unetlab/tmp/34# ls
    133  134
    
    # 进入R1的缓存目录
    root@pnetlab:/opt/unetlab/tmp/34# cd 133
    # 查看缓存目录中文件是否生成
    root@pnetlab:/opt/unetlab/tmp/34/133# ls
    iourc  iou_startup-config.txt  keepalive.pl  l3_iol.bin  NETMAP  wrapper.txt
    # 将备份的缓存复制到该路径中
    root@pnetlab:/opt/unetlab/tmp/34/133# cp ~/back/133/nvram_00001 .
    
    # 进入WinServer的缓存目录
    root@pnetlab:/opt/unetlab/tmp/34# cd 134
    root@pnetlab:/opt/unetlab/tmp/34/134# ls
    monitor2.sock  monitor.sock  virtioa.qcow2  wrapper.txt
    # 将备份的缓存复制到该路径中
    root@pnetlab:/opt/unetlab/tmp/34/134# cp ~/back/134/virtioa.qcow2 .
    root@pnetlab:/opt/unetlab/tmp/34/134# 
    

    覆盖后,启动节点。

    image-20240518211648852

image- 20240518211711718