当前位置: 首页 > news >正文

【教程】Windows 电脑部署使用 config2spec 详细教程

Windows 电脑部署使用 config2spec 详细教程

  • config2spec 介绍
  • 部署
    • 1. WSL配置
    • 2. 合并 config2spec 对 batfish 的修改
    • 3. 构建 batfish
      • 虚拟机下载配置 Java 及 maven
      • 下载 z3
      • 构建 batfish
    • 4. 运行 config2spec
      • 虚拟机搭建 python 环境
      • 测试运行

config2spec 介绍

开源项目地址:https://github.com/nsg-ethz/config2spec

A system to automatically learn a network’s specification from its configuration.

一个用于从网络配置中提取网络规范的系统。

部署

1. WSL配置

Windows 11
选择使用 Windows 的 WSL 来部署 config2spec

  • 以管理员身份打开终端
    在这里插入图片描述

  • 启用 WSL 功能

wsl --install
  • 查看 WSL 可安装的有效分发
wsl --list --online

在这里插入图片描述

  • 安装 Ubuntu-18.04
wsl --install -d Ubuntu-18.04
  • 安装完成后,按要求设置用户名和密码
  • 验证安装状态
wsl --list --verbose
  • 启用虚拟机
wsl

补充:关于 wsl 的详细介绍,可看这篇文章,https://blog.csdn.net/FHY26828/article/details/143863100,感谢作者

2. 合并 config2spec 对 batfish 的修改

  • 克隆 config2spec 项目

在桌面新建一个 c2s 文件夹,打开终端,克隆 config2spec 项目到当前文件夹

git clone https://github.com/nsg-ethz/config2spec.git
  • 下载 batfish_repo.zip

https://github.com/nsg-ethz/config2spec/blob/master/batfish_interface/README.md

下载 batfish_repo.zip 到 c2s 文件夹,并解压,修改 batfish_repo 内部文件 batfish-73946b2f1bdea5f1146e4db4f2586e071da752df 名为 batfish (便于阅读)
下载地址 : https://github.com/nsg-ethz/config2spec/blob/master/batfish_interface/batfish_repo.zip

  • 下载 setup.sh 脚本到 c2s 文件夹
    下载地址:https://github.com/nsg-ethz/config2spec/blob/master/batfish_interface/setup.sh

  • 在 wsl 虚拟机下运行setup.sh脚本合并 config2spec 对 batfish 的修改

bash setup.sh <repo path - 此处压缩包解压后的 batfish 项目位置> <Config2Spec path - 此处为 clone 下来的 config2spec 项目位置>
sudo bash /mnt/c/Users/10061/Desktop/c2s/setup.sh /mnt/c/Users/10061/Desktop/c2s/batfish_repo/batfish mnt/c/Users/10061/Desktop/c2s/config2spec

在这里插入图片描述

3. 构建 batfish

虚拟机下载配置 Java 及 maven

  • Java8 下载
sudo apt update
sudo apt install openjdk-8-jre-headless
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
java -version
javac -version
  • maven 下载
sudo apt install maven
mvn -v
  • unzip 工具下载(后面需要使用)
sudo apt install unzip
unzip -v

下载 z3

  • 将 UBUNTU_VERSION 改为 16.04,从而确保 GitHub 中有对应的 z3
UBUNTU_VERSION=16.04

在这里插入图片描述

  • 在虚拟机中运行 install_z3 脚本安装 z3
cd /mnt/c/Users/10061/Desktop/c2s/batfish_repo/batfish
sudo tools/install_z3.sh

在这里插入图片描述

构建 batfish

  • 前往 projects 文件夹下
cd /mnt/c/Users/10061/Desktop/c2s/batfish_repo/batfish/projects/
  • 构建 batfish
mvn package
  • 测试结果
cd backend/target/
java -cp backend-bundle-0.36.0.jar org.batfish.backend.Backend

在这里插入图片描述

4. 运行 config2spec

虚拟机搭建 python 环境

  • 安装 pip
sudo apt install python3-pip
pip3 --version
  • 安装virtualenv
pip3 install virtualenv
  • 创建虚拟环境
 virtualenv -p python3 c2s_env
 source c2s_env/bin/activate
  • 进入 config2spec 项目文件夹下
cd /mnt/c/Users/10061/Desktop/c2s/config2spec
  • 安装 python
sudo apt-get install python3.6-dev
  • 安装依赖
 pip install -r requirements.txt
  • 安装 config2spec
pip install -e .

测试运行

  • 测试配置位于
python run_c2s.py <测试配置位置> <backend-bundle-0.36.0.jar位置> <临时文件夹位置> -mf 1
python /mnt/c/Users/10061/Desktop/c2s/config2spec/run_c2s.py /mnt/c/Users/10061/Desktop/c2s/config2spec/scenarios/bics/ospf /mnt/c/Users/10061/Desktop/c2s/batfish_repo/batfish/projects/backend/target/backend-bundle-0.36.0.jar /mnt/c/Users/10061/Desktop/c2s/tmp -mf 1
  • 运行后结果存储在测试配置同级目录下
    在这里插入图片描述
http://www.dtcms.com/a/122933.html

相关文章:

  • 基于ueditor编辑器的功能开发之给编辑器图片增加水印功能
  • 智能防灾网:气象灾害风险管理系统的科技力量与未来蓝图
  • Mybatis的springboot项目使用
  • 【leetcode hot 100 198】打家劫舍
  • 【力扣hot100题】(074)前 K 个高频元素
  • Nginx之https重定向为http
  • 【DvAdmin】接口返回 emoji 显示 ?解决方法
  • ArkTS语言入门之接口、泛型、空安全、特殊运算符等
  • vue3的router.ts中,在children和不在的区别
  • Python 爬取 1688.item_get_factory 接口:获取工厂档案信息实战指南
  • MySQL中FIND_IN_SET函数与INSTR函数用法解析
  • 鸿蒙小案例---心情日记
  • VSCode解决中文乱码方法
  • 【c语言】深度剖析数据在内存中的存储
  • SpringAI调用硅基流动免费模型
  • 应急响应-进程排查
  • Ceph异地数据同步之-Cephfs异地同步复制
  • 【图书管理系统】全栈开发图书管理系统获取图书列表接口(后端:计算图书页数、查询当前页展示的书籍)
  • 前端三件套—HTML入门
  • 数论学习笔记:素数筛
  • 数据库事务隔离级别
  • 前端性能指标详解
  • 【Leetcode-Hot100】盛最多水的容器
  • React 响应事件
  • 如何实现文本回复Ai ChatGPT DeepSeek 式文字渐显效果?前端技术详解(附完整代码)
  • 【MySQL】安装
  • CD25.【C++ Dev】类和对象(16) static成员(上)
  • redis(2)-mysql-锁
  • 经典算法 最近点对问题
  • 猜猜乐游戏(python)