题目需求:

服务器IspSrv上的工作任务

在 IspSrv 上导入 OpenDayLight 软件包;

启动 OpenDayLight 的 karaf 程序,并安装如下组件:

feature:install odl-restconf  

feature:install odl-l2switch-switch-ui  

feature:install odl-mdsal-apidocs  

feature:install odl-dluxapps-applications

使用 Mininet 和 OpenVswitch 构建拓扑,连接 ODL 的 6653 端口如下拓扑结构:



网络系统管理Linux环境——IspSrv之SDN_linux

在浏览器上可以访问 ODL 管理页面查看网元拓扑结构;

通过 OVS 给 S2 下发流表,使得 H2 与 H1、H3 无法互通;

H1 启动 HTTP-Server 功能,WEB 端口为 8080,H3 作为 HTTP-Client,获取 H1 的 html 网页配置文件。

实验压缩包获取:

SDN环境压缩包

点击下载(提取码CJ6y)

点击查看视频部署

项目实施

上传文件: distribution-karaf-0.6.0-Carbon.zip mininet_2.2.2-4_amd64.deb

root@IspSrv:~# apt install lrzsz -y
root@IspSrv:~# ls -l
总用量 425160
-rw-r--r-- 1 root root 435235339 4月  12  2022 distribution-karaf-0.6.0-Carbon.zip
-rw-r--r-- 1 root root    124592 11月 10 11:41 mininet_2.2.2-4_amd64.deb
root@IspSrv:~#

安装jdk和加压Opendaylight,并启动karaf程序:

root@IspSrv:~# apt install openjdk-8-jdk -y
root@IspSrv:~# unzip distribution-karaf-0.6.0-Carbon.zip
root@IspSrv:~# ./distribution-karaf-0.6.0-Carbon/bin/karaf

网络系统管理Linux环境——IspSrv之SDN_SDN_02

注意:若不能执行则配置jdk环境变量

root@IspSrv:~# echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64" >> /etc/profile
root@IspSrv:~# source /etc/profile

安装组件:

opendaylight-user@root>
opendaylight-user@root>feature:install odl-restconf
opendaylight-user@root>feature:install odl-l2switch-switch-ui
opendaylight-user@root>feature:install odl-mdsal-all
opendaylight-user@root>feature:install odl-dluxapps-applications
opendaylight-user@root>

浏览器访问测试(登录密码和用户均为admin)

http://ispweb.chinaskills.cn:8181/index.html

网络系统管理Linux环境——IspSrv之SDN_SDN_03

网络系统管理Linux环境——IspSrv之SDN_linux_04

安装Mininet,Openvswitch:

root@IspSrv:~# dpkg -i mininet_2.2.2-4_amd64.deb

网络系统管理Linux环境——IspSrv之SDN_SDN_05

报错执行:

root@IspSrv:~# apt --fix-broken install -y

继续安装:

root@IspSrv:~# dpkg -i mininet_2.2.2-4_amd64.deb

网络系统管理Linux环境——IspSrv之SDN_SDN_06

安装openvswitch:

root@IspSrv:~# apt install openvswitch-switch -y

使用mn命令搭建拓扑:

root@IspSrv:~# mn --controller=remote,ip=81.6.63.100,port=6653 --topo=linear,3,1 --switch=ovs,protocols=OpenFlow10

网络系统管理Linux环境——IspSrv之SDN_SDN_07

pingall 测试:

mininet> pingall

网络系统管理Linux环境——IspSrv之SDN_linux_08

web界面查看拓扑结构:

网络系统管理Linux环境——IspSrv之SDN_linux_09

配置下发流表,开启HTTP-Server功能:

h2与h1、h3无法互通

mininet> sh ovs-ofctl add-flow s2 in_port=1,actions=drop
mininet> pingall

网络系统管理Linux环境——IspSrv之SDN_SDN_10

开启 http 服务:

mininet> h1 python -m SimpleHTTPServer 8080 &
mininet> sh ss -tunlp | grep 8080

网络系统管理Linux环境——IspSrv之SDN_SDN_11

安装测试工具:

mininet> sh apt install curl -y
mininet> sh apt install wget -y

测试下载:

mininet> h3 wget -O h1 http://10.0.0.1:8080

网络系统管理Linux环境——IspSrv之SDN_linux_12

mininet> h3 curl http://10.0.0.1:8080

网络系统管理Linux环境——IspSrv之SDN_linux_13

评分标准

(1)在 ODL 主机上, opendaylight-user@root>输入: feature:list | grep odl-mdsal-apidocs 获取结果; 【3 分】

评分要点:

能看到一个 X 标记即可

feature:list | grep odl-mdsal-apidocs

网络系统管理Linux环境——IspSrv之SDN_SDN_14

(2)在 ODL 主机上, opendaylight-user@root>输入: feature:list | grep odl-l2switch-switch-ui 获取结果; 【3 分】

评分要点:

能看到一个 X 标记即可

feature:list | grep odl-l2switch-switch-ui

网络系统管理Linux环境——IspSrv之SDN_SDN_15

(3)谷歌浏览器访问 URL 地址, 并通过默认账号进入管理界面, 登录界面和通过默认账号进入管理界面分别截 1 张图; 【6 分】 

评分要点:

能正常显示该页面即可, 得 3 分

网络系统管理Linux环境——IspSrv之SDN_linux_16

评分要点:

能正常显示该页面即可, 得 3 分

网络系统管理Linux环境——IspSrv之SDN_SDN_17

(4)登录 ODL 管理界面, 查看 topology 界面, 截图拓扑示意图; 【3 分】 

评分要点:

能正常显示拓扑图, 得 3 分

网络系统管理Linux环境——IspSrv之SDN_SDN_18

(5)在 ODL 主机上通过 mininet> sh netstat -an |grep 81.6.63.100:6653 并截图 【5 分】 

评分要点:

存在 6 个 established 即可

sh netstat -an |grep 81.6.63.100:6653

网络系统管理Linux环境——IspSrv之SDN_linux_19

(6)通过 OVS 下发流表前, 在 ODL 主机上的 mininet 模式下, 执行 mininet> pingall 并截图获取主机直接 ping 测试; 【5 分】 

评分要点:

能够全通即可

网络系统管理Linux环境——IspSrv之SDN_SDN_20

(7)通过 OVS 下发流表后, 在 ODL 主机上的 mininet 模式下, 执行 mininet> pingall 并截图获取主机之间的 ping 测试;【5 分】  

评分要点:

H1 只能和 H3 互通, 其他都无法互通

网络系统管理Linux环境——IspSrv之SDN_linux_21

(8)mininet> h3 wget http://10.0.0.1:8080【5 分】 

评分要点:

存在 saved 关键字即可得分

网络系统管理Linux环境——IspSrv之SDN_linux_22