2019 SDN上机第4次作业

谁说胖子不能爱 提交于 2019-11-27 13:41:21

1.配置JAVA环境

(1)在终端输入如下命令:

sudo gedit ~/.bashrc

(2)将最后四行复制到终端:

export JAVA_HOME=/usr/local/java/jdk1.8.0_201
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

2.启动OpenDayLight并安装插件

(1)进入ODL的文件夹,在终端输入如下命令:

./karaf 

(2)安装feature,输入如下面命令:

feature:install odl-restconf
feature:install odl-l2switch-switch-ui
feature:install odl-openflowplugin-all
feature:install odl-mdsal-apidocs
feature:install odl-dlux-core
feature:install odl-dlux-node
feature:install odl-dlux-yangui

(3)打开控制器UI

打开浏览器访问http://127.0.0.1:8181/index.html,登入进入ODL图形化界面

3. 用Python脚本搭建如下拓扑,连接OpenDayLight控制器

(1)Python代码,文件命名为mytopo.py:

from mininet.topo import Topo

class MyTopo(Topo):

    def __init__(self):

        Topo.__init__(self)

        h1 = self.addHost('h1')
        h2 = self.addHost('h2')
        h3 = self.addHost('h3')

        s1 = self.addSwitch('s1')

        self.addLink(h1, s1, 1, 1)
        self.addLink(h2, s1, 1, 2)
        self.addLink(h3, s1, 1, 3)
        
topos = {'mytopo': (lambda: MyTopo())}

(2)打开ODL

(3)创建拓扑并进行pingall

通过命令执行文件

sudo mn --custom mytopo.py --topo mytopo --controller=remote,ip=127.0.0.1,port=6633 --switch ovsk,protocols=OpenFlow13

4. 在控制器提供的WEB UI中下发流表使h2 20s内ping不通h3,20s后恢复

(1)在控制器的Web中依次打开 Yang UI-->Opendaylight-inventory-->config-->nodes-->table-->flow

(2)首先使用links查询链路连接情况

可以看出h1连接s1的port1,h2连接s1的port2, h3连接s1的port3

故可以让下发策略使port2进来的目的IP为h3的数据包都drop掉,这样就可以ping不通

(3)参数设置

(4)参数设置完成后,按下图所示设置,再点击send,令h2在20秒内无法ping通h3

如图

5. 借助Postman通过OpenDayLight的北向接口下发流表,再利用OpenDayLight北向接口查看已下发的流表。

(1)打开postman,将ODL的preview里的url复制到地址栏,消息方式选PUT;IP为控制器所在的PC的IP;type选择Basic Auth ;用户名和密码是ODL的登录账号和密码都是admin

(2)Body中将消息格式设置成json,上传方式设置为raw,将ODL的preview中的消息粘贴在文本框内,点击send后下发成功

(3)发送成功后改为GET并send查看刚刚下发的流表项

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!