Docker+Ovs构建SDN网络

Posted 楊木木8023

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker+Ovs构建SDN网络相关的知识,希望对你有一定的参考价值。

一、背景知识

关于Docker的基础知识和实验用到的Docker ryu镜像可以参考:Docker命令、基于Docker的SDN实验环境部署(1)_北风-CSDN博客

Docker网络模式:

本实验,主要利用两个Docker作为主机,OVS作为交换机,一个Docker作为控制器构建。构建的Topo如下所示。

 二、构建步骤

(1)创建两个未配置网络的docker,命令如下。

# 创建Docker01
docker run -it --name host1 --network none ymumu/ryu:0.1 /bin/bash
# 创建Docker02
docker run -it --name host2 --network none ymumu/ryu:0.1 /bin/bash

 (2)安装ovs-docker

wget http://github.com/openvswitch/ovs/raw/master/utilities/ovs-docker
chmod a+x ovs-docker

(3)新建ovs,并关联两个容器主机,并设置ip,网关等,命令如下。

# 新建网桥ovs
ovs-vsctl add-br ovs
# 容器关联网桥ovs
./ovs-docker add-port ovs eth0-ovs host1 --ipaddress=10.0.1.2/24 --gateway=10.0.1.1
./ovs-docker add-port ovs eth0-ovs host2 --ipaddress=10.0.1.3/24 --gateway=10.0.1.1

(4)先自定义网卡,设置ip为192.168.1.2/24,然后创建一个docker作为ryu控制器,命令如下》

docker network create --subnet 192.168.1.0/24 --gateway 192.168.1.1 ryu-net
docker run -it --name ryu --network ryu-net ymumu/ryu:0.1 /bin/bash

(5)接下来,ovs添加控制器ryu,命令如下。

ovs-vsctl set-controller ovs tcp:192.168.1.2:6633

设置完成后,ovs如下:

 三、实验验证

此时,SDN Topo构建完成,可以实现SDN网络topo的实验,进入ryu docker中,开启ryu程序,命令如下。

root@af64df2ee2f1:/home# cd ryu
root@af64df2ee2f1:/home/ryu# cd ryu
root@af64df2ee2f1:/home/ryu/ryu# cd app
root@af64df2ee2f1:/home/ryu/ryu/app# ryu-manager simple_switch_13.py

 此时,host1和host2之间就可以正常通信了,如下。

以上是关于Docker+Ovs构建SDN网络的主要内容,如果未能解决你的问题,请参考以下文章

Docker+Ovs构建SDN网络

WHY OVS?

SDN实验2:Open vSwitch虚拟交换机实践

SDN测量论文粗读9.19

ovs+docker网络配置

sdn网络实验的搭建--mininet