【教程】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
- 运行后结果存储在测试配置同级目录下