首先需建立在虚拟机上部署SONiC-P4仿真环境,关于部署SONiC-P4,详情可以参考https://github.com/sonic-net/SONiC/wiki/SONiC-P4-Software-Switch,大体步骤如下:
1.首先在VMware中新建一个ubuntu22.04系统,随后可以先在windows系统下https://github.com/sonic-net/SONiC/wiki/files/SONiC-P4/SONiC-P4.Test.tar.gz打开此链接,下载SONiC-P4.Test.tar.gz压缩包,将下载后的压缩包通过QQ邮箱发送到另一个QQ邮箱,随后在Linux系统中登录QQ邮箱接收SONiC-P4.Test.tar.gz压缩包文件(在linux系统Firefox浏览器不知道好不好下载),并解压缩到Linux本地新建的一个SONiC文件夹中。文件夹内容如下:
2.下一步需要自己一步一步安装Docker和openvswitch。
安装Docker可参考Ubuntu系统安装Docker_流觞浮云的博客-CSDN博客_ubuntu docker 其中“获取软件最新源”步骤若出现问题,可以尝试以下解决办法,使用如下命令:
sudo gedit /etc/apt/sources.list
打开sources.list文件,将里面的所有内容替换为:
deb http://mirrors.aliyun.com/ubuntu focal main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu focal-updates main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu focal-security main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu focal-proposed main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu focal-backports main multiverse restricted universe
后面的直接按照步骤进行就可以,没有什么错误出现,最后输入测试代码显示Hello from docker即为成功。(后面的配置用户组不用看)
sudo docker run hello-world
3.至此Docker就已经安装成功,下面继续安装openvswitch虚拟交换机。
安装openvswitch的方法是打开install_docker_ovs.sh文件,复制最下面三行命令到命令行,依次执行。
sudo apt-get install -y openvswitch-switch
sudo curl -L https://github.com/openvswitch/ovs/raw/master/utilities/ovs-docker -o /usr/bin/ovs-docker
sudo chmod a+x /usr/bin/ovs-docker
4.下载SONiC-P4镜像
参考SONiC与P4仿真实验 – Martrix Blog (martrix-net.cn),使用如下命令从Docker官仓中下载sonic镜像,等待下载完成后,输入docker pull ubuntu:14.04命令下载Ubantu14.0镜像。
docker pull alihasanahmedkhan/docker-sonic-p4
docker pull ubuntu:14.04
5.进行实验
首先打开start.sh文件修改docker-sonic-p4为alihasanahmedkhan/docker-sonic-p4。进入虚拟机中的p4-test目录下打开终端,输入以下代码关闭之前开启的进程:
./stop.sh
使用./start.sh运行容器并连接网络拓扑;使用docker ps查看已经启动的容器:
./start.sh
docker ps
60s左右后,运行./test.sh测试host1和host2的连通性,可得到如下结果:
随后使用以下代码连接switch1
sudo docker attach switch1
使用show vlan config可以查看VLAN 配置
show vlan config
使用vtysh -c "show ip route"查看路由表信息
vtysh -c "show ip route"
使用cat /etc/sonic/config_db.json查看初始化配置,可以看到
cat /etc/sonic/config_db.json
此外,可以查看Redis键值数据库中的路由表信息, SONiC用Redis存储数据,我们可以通过redis查看系统的配置,下面,我们用Redis查看当前的路由表:
redis-cli
keys ROUTE_TABLE*
可见在switch1上,有三条路由:
192.168.2.0/24: 下一跳是10.0.0.1, 出接口是vlan15
192.168.1.0/24: 直连路由,出接口是vlan10.
10.0.0.0/31: 直连路由,出接口是vlan15.
参考资料:
SONiC与P4仿真实验 – Martrix Blog (martrix-net.cn)
(89条消息) Ubuntu系统安装Docker_流觞浮云的博客-CSDN博客_ubuntu docker
SONiC P4 Software Switch · sonic-net/SONiC Wiki (github.com)
用Docker体验微软开源网络操作系统SONiC - 知乎 (zhihu.com)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)