一直以来 depoly 一个 SDWAN 测试环境是一个比较费时间的事,最近在看 CML 2.8 (思科模拟器)release note 的时候看到关于自动化部署的内容,简化 SDWAN 实验的部署流程和时间, 所以抽空测试了一把。
自动化部署工具可以帮助你快速的部署 vManage/vBond/vSmart 以及多个 edge,并帮助你完成控制器上证书的安装以及 edge 的自动化上线。
测试环境介绍 #
- Python 3.10
- CML 2.7.x
- sdwan-lab-deployment-tool 2.0.14
SDWAN Deployment Tool 安装 #
Catalyst SD-WAN Lab Deployment Tool for Cisco Modeling Labs, github 页面提供了详细的安装和命令行使用方法。
rory@jumpserver:~$ mkdir csdwan
rory@jumpserver:~$ cd csdwan/
rory@jumpserver:~/csdwan$ sudo apt install python3.10-venv
rory@jumpserver:~/csdwan$ python3 -m venv venv
rory@jumpserver:~/csdwan$ source venv/bin/activate
(venv) rory@jumpserver:~/csdwan$ pip3 install --upgrade pip setuptools
(venv) rory@jumpserver:~/csdwan$ pip3 install --upgrade catalyst-sdwan-lab
(venv) rory@jumpserver:~/csdwan$ csdwan --version
SD-WAN Lab Version 2.0.14
准备 SDWAN LAB 相关环境变量,在这里 MANAGER_IP 我设定的是做 NAT,即将 CML 的地址 2002 端口映射到 vManage 的管理地址 443 端口, 如果需要这样操作则还得在 CML 管理页面将 virl2-patty 进程开启, 默认是 stop 的状态, 这个进程会帮我们做一个端口的映射;当然你也可以指定 vMange 的 IP 和 CML 在同一个地址段。
(venv) rory@jumpserver:~/csdwan$ cat SDWAN-TEST.sh
export CML_IP='172.x.x.x'
export CML_USER='admin'
export CML_PASSWORD='admin'
export MANAGER_IP='pat:2002'
export MANAGER_USER='sdwan'
export MANAGER_PASSWORD='sdwan'
export LAB_NAME='SDWAN-TEST'
(venv) rory@jumpserver:~/csdwan$
(venv) rory@jumpserver:~/csdwan$
(venv) rory@jumpserver:~/csdwan$
(venv) rory@jumpserver:~/csdwan$
(venv) rory@jumpserver:~/csdwan$ source SDWAN-TEST.sh
(venv) rory@jumpserver:~/csdwan$
镜像上传 #
在 csdwan 文件夹下准备好相关的镜像文件使用csdwan setup
进行镜像的上传, 该步骤会在 CML 中创建相关版本的镜像模版。
(venv) rory@jumpserver:~/csdwan$ ls -al
total 7547744
drwxrwxr-x 3 rory rory 4096 Dec 26 05:24 .
drwxr-x--- 18 rory rory 4096 Dec 26 04:30 ..
-rwxr-xr-x 1 rory rory 2033582080 Dec 26 05:18 c8000v-universalk9_8G_serial.17.13.01a.qcow2
-rw-rw-r-- 1 rory rory 204 Dec 26 05:24 SDWAN-TEST.sh
drwxrwxr-x 5 rory rory 4096 Dec 26 04:30 venv
-rwxr-xr-x 1 rory rory 406192128 Dec 26 05:20 viptela-edge-20.13.1-genericx86-64.qcow2
-rwxr-xr-x 1 rory rory 406192128 Dec 26 05:23 viptela-smart-20.13.1-genericx86-64.qcow2
-rwxr-xr-x 1 rory rory 4882890752 Dec 26 05:52 viptela-vmanage-20.13.1-genericx86-64.qcow2
(venv) rory@jumpserver:~/csdwan$
(venv) rory@jumpserver:~/csdwan$ csdwan -v setup
INFO - Logging in to CML...
INFO - Verifying Node Definitions...
INFO - [CREATE] Creating node cat-sdwan-manager...
INFO - [CREATE] Creating node cat-sdwan-validator...
INFO - [CREATE] Creating node cat-sdwan-controller...
INFO - [CREATE] Creating node cat-sdwan-edge...
INFO - Verifying software images...
INFO - Looking for new software images in /home/rory/csdwan...
INFO - Creating image definition cat-sdwan-manager-20.13.1...
Uploading viptela-vmanage-20.13.1-genericx86-64.qcow2
|##################################################| 4882890752/4882890752 100.0% [00:00:09]
Upload completed
INFO - Creating image definition cat-sdwan-edge-17.13.01a...
Uploading c8000v-universalk9_8G_serial.17.13.01a.qcow2
|##################################################| 2033582080/2033582080 100.0% [00:00:04]
Upload completed
INFO - Creating image definition cat-sdwan-controller-20.13.1...
Uploading viptela-smart-20.13.1-genericx86-64.qcow2
|##################################################| 406192128/406192128 100.0% [00:00:00]
Upload completed
INFO - Creating image definition cat-sdwan-validator-20.13.1...
Uploading viptela-edge-20.13.1-genericx86-64.qcow2
|##################################################| 406192128/406192128 100.0% [00:00:00]
Upload completed
INFO - Setup task done
Deploy 测试拓扑 #
在这一步中,如下 topo 会自动在 CML 中创建,这里需要注意的是 vManage 需要很长的时间进行启动,在此期间 csdwan 执行的服务器会不断的使用 API 检测 vManage 的状态是否 ready, 所以一定要确保服务器于 vMange 之间连通性正常。在这里我需要确保我的服务器可以正常的访问 “SD-WAN Manager URL: https://172.x.x.x:2002”
(venv) rory@jumpserver:~/csdwan$ csdwan deploy 20.13.1
SD-WAN Manager subnet mask (e.g. /24): /24
SD-WAN Manager gateway IP: 172.16.10.100
Deploy task done
#############################################
Lab is deployed.
CML URL: https://172.x.x.x
SD-WAN Manager URL: https://172.x.x.x:2002
Use the username/password set with the script for CML and SD-WAN Manager login.
All other nodes use default username/password.
#############################################
(venv) rory@jumpserver:~/csdwan$
添加 2 台 edge,并完成自动上线;这两台 edge 会完成相关预配置, 并且 G3 端口已经开启了 DHCP,后续我们可以手动的在 topo 中添加两个 alpine client, 两台 client 可自行获取 IP 地址。
(venv) rory@jumpserver:~/csdwan$ csdwan add 2 edges 17.13.01a
Add task done
(venv) rory@jumpserver:~/csdwan$