SDN服务
(1)安装opendaylight、mininet、Ovs软件平台。。
(2)启动OpenDayLight的karaf程序,安装如下组件:odl-restconf、odl-l2switch-switch-ui、odl-mdsal-apidocs、odl-dluxapps-applications。
(3)使用Mininet和OpenVswitch构建拓扑,连接ODL的6653端口如下拓扑结构:
(4)在浏览器上可以访问ODL管理页面查看网元拓扑结构。
(5)通过OVS手工下发流表,H1可以ping通H3,H1、H3无法ping通H2。
(6)H1启动HTTP-Server功能,WEB端口为8080,H3作为HTTP-Client,获取H1的html网页配置文件。
配置步骤如下:
1.上传所需要的软件包.(这里我使用的是scp命令上传,也可以通过Winscp软件,这里不做演示)
scp .\distribution-karaf-0.6.0-Carbon.zip .\python-networkx-1.8.1-12.el7.noarch.rpm .\python-networkx-core-1.8.1-12.el7.noarch.rpm .\openvswitch-2.5.0-2.el7.x86_64.rpm .\mininet-2.2.2-2.el7.x86_64.rpm root@192.168.198.130:/root
2.解压和安装软件包
unzip distribution-karaf-0.6.0-Carbon.zip #解压distribution
yum -y install openvswitch-2.5.0-2.el7.x86_64.rpm python-networkx-core-1.8.1-12.el7.noarch.rpm python-networkx-1.8.1-12.el7.noarch.rpm mininet-2.2.2-2.el7.x86_64.rpm #安装openvswitch,python,mininet软件
systemctl restart openvswitch.service #启动openvswitch
yum -y install java-1.8.0-openjdk* #安装和配置java环境,这一点很重要
rpm -ql java-1.8.0-openjdk #查看是否安装java包或路径
复制/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64/jre/到并且编辑/etc/profile/文件(在最后一行添加)
重新加载profile文件
3.启动OpenDayLight和启动karaf
的程序,并安装所需要的组件
4. 构建拓扑结构(有两种方法,用命令创建和编写python程序来实现)
命令创建拓扑图
mn --controller=remote,ip=192.168.198.130,port=6653 --topo=tree,1,3 --switch=ovs,protocols=OpenFlow10
python程序编写拓扑图
mn --controller=remote,ip=192.168.198.130,port=6653 --switch=ovs,protocols=OpenFlow13 --custom=topo.py --topo=mytopo #python程序编写的拓扑图,代码如下
from mininet.topo import Topo #导入mininet.topo模块里面的Topo成员
class MyTopo(Topo): #定义类名引入topo成员
def __init__(self): #通过访问self的形式,实现了:给下面实例中添加Topo变量
Topo.__init__(self) #给Topo赋了初值
#CREATE SWITCH
s1 = self.addSwitch('s1')
#CREATE HOST
H1 = self.addHost('h1')
H2 = self.addHost('h2')
H3 = self.addHost('h3')
#LINK HOST
self.addLink(s1,H1)
self.addLink(s1,H2)
self.addLink(s1,H3)
topos = {'mytopo':(lambda:MyTopo())}
查看拓扑结构,默认用户名密码为admin(http://192.168.198.130:8181/index.html#/login)
5.按照题目下发流表,并测试
sh ovs-ofctl add-flow s1 in_port=2,actions=drop
6.配置HTTP-Server服务,端口号为8080
先在distribution-karaf-0.6.0-Carbon/bin/目录下创建一个HTML文件
h1 python -m SimpleHTTPServer 8080 & #h1上启用http服务,端口号为8080