基于Open vSwitch的传统限速和SDN限速–实验
学习内容
1.下载与安装
实验需要用到的工具有:安装Docker和Open vSwitch
2.配置实验环境
3.实验过程
4.实验数据
5.实验分析与总结
1.下载与安装
1.1 安装Docker
整个安装与运行在超级管理员权限下最好,命令:su root
安装Docker:
journalctl -u docker.service
桥接模式:sudo ip link add name docker0 type bridge
添加IP地址:sudo ip addr add dev docker0 172.1.0.1/16
重启服务器:service docker restart
再次运行
sudo docker run hello-world
发现成功
我这里的Java环境是:
OpenJDK Runtime Environment (build 1.8.0_312-8u312-b07-0ubuntu1~20.04-b07)
java -version
1.2 Open vSwitch的安装
在http://www.openvswitch.org/download/中下载想要安装的版本,我这里下的版本是:openvswitch-2.13.6
解压在桌面、生成Makefile、编译、安装
tar zxvf openvswitch-2.13.6.tar.gz cd openvswitch-2.13.6 ./configure make -j4 sudo make install
坑:
如果在./configure时,报错如下
checking whether /usr/bin/python2.7 has six library… configure: error: Missing Python six library or version too old.
尝试再安装一遍:pip install six
发现:
Defaulting to user installation because normal site-packages is not writeable Requirement already satisfied: six in /usr/lib/python3/dist-packages (1.14.0)
因为系统是在这个目录下找/usr/bin/six 的库,而我的six环境变量在/usr/lib/python3/dist-packages,因此将其加入PYTHON环境变量中即可解决报错,输入以下命令:
export PYTHONPATH=$PYTHONPATH:/usr/lib/python3/dist-packages
再次./configure可以看到编译成功
将openvswitch模块载入到内核中
sudo modprobe openvswitch
可以通过下面的命令来验证是否成功
sudo lsmod | grep openvswitch
openvswitch有几个脚本放在/usr/local/share/openvswitch/scripts下,为了方便使用,可以设置PATH路径。由于运行需要root权限,可以切换到root,再设置PATH
export PATH=$PATH:/usr/local/share/openvswitch/scripts ovs-ctl start
验证是否开启
ps -e | grep ovs
启动
export PATH=$PATH:/usr/local/share/openvswitch/scripts ovs-ctl start
启动ovs-vswitchd
ovs-ctl --no-ovs-vswitchd start
启动ovsdb-server
ovs-ctl --no-ovsdb-server start
2.配置实验环境
配置ovsdb的数据库
mkdir -p /usr/local/etc/openvswitch ovsdb-tool create /usr/local/etc/openvswitch/conf.db \ vswitchd/vswitch.ovsschema mkdir -p /usr/local/var/run/openvswitch ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \ --remote=db:Open_vSwitch,Open_vSwitch,manager_options \ --private-key=db:Open_vSwitch,SSL,private_key \ --certificate=db:Open_vSwitch,SSL,certificate \ --bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert \ --pidfile --detach --log-file
使用ovs-vsctl初始化数据库
ovs-vsctl --no-wait init ovs-vswitchd --pidfile --detach --log-file
检查是否配置成功
sudo ovs-vsctl --version sudo ovs-vsctl show