网络系统管理SDN赛题解析

  1. 软件定义网络部分

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

feature:install odl-restconf
feature:install odl-l2switch-switch-ui
feature:install odl-mdsal-apidocs
feature:install odl-dluxapps-applications

1、使用Mininet和OpenVswitch构建拓扑,连接ODL的6653端口,采用OVS交换机,使用OpenFlow13协议连接控制器,创建如下拓扑结构:

 

拓扑结构图

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

3、通过OVS手动将eth1网卡添加到s2交换机中,给eth0接口添加一个10.0.0.254/8的ip地址作为         H1、H2、H3、H4的网关,开启系统的路由转发功能。

4、在s2交换机通过OVS手工下发流表,让odl虚拟机能够访问H1、H2、H3、H4。

5、H1启动HTTP-Server功能,WEB端口为8000,在mn命令启动目录创建一个index.html,文件内容为“SDN test page”,windows客户端作为HTTP-Client,获取H1的index.html网页内容。

配置步骤:

一、安装mininet和OVS

1、将C模块额外软件包上传

安装mininet所需依赖环境和mininet

root@Server03:~/packs# apt install iperf telnet cgroup-bin cgroup-tools mininet -y

测试OVS和mininet是否安装成功

二、安装ODL控制器

1、 安装jdk环境

root@Server03:~# sudo apt-get install openjdk-8-jdk

2、修改环境变量

root@Server03:~# vi /etc/profile

在最后一行添加

JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"

3、获取环境变量,使其生效

root@Server03:~# source /etc/profile

root@Server03:~# echo ${JAVA_HOME}

4、 将OpenDaylight-Carbon上传到/home目录下

root@Server03:~# cd /home/

root@Server03:/home# unzip distribution-karaf-0.6.0-Carbon.zip

root@Server03:/home# cd distribution-karaf-0.6.0-Carbon/

root@Server03:/home/distribution-karaf-0.6.0-Carbon/bin# sudo ./karaf

5、执行相关命令

feature:install odl-restconf

feature:install odl-l2switch-switch-ui

feature:install odl-mdsal-apidocs

feature:install odl-dluxapps-applications

6、在网页通过http://ip:8181/index.html访问(用户名/密码:admin)

三、mininet拓扑创建

虚拟机先添加两块网卡,模式必须一样

创建自定义拓扑文件

root@Server03:/usr/lib/python2.7/dist-packages/mininet/custom# vi my.py

from mininet.topo import Topo

class MyTopo(Topo):

def __init__(self):
​
    # initilaize topology
    Topo.__init__(self)
​
    # add hosts and switches
    H1 = self.addHost('h1')
    H2 = self.addHost('h2')
    H3 = self.addHost('h3')
    H4 = self.addHost('h4')
    S1 = self.addSwitch('s1')
    S2 = self.addSwitch('s2')
    # add links
    self.addLink( S1,H1 )
    self.addLink( S1,H2 )
    self.addLink( S1,H3 )
    self.addLink( S2,H4 )
    self.addLink( S1,S2 )

topos = {'mytopo': (lambda: MyTopo())}

执行自定义拓扑

root@Server03:/usr/lib/python2.7/dist-packages/mininet/custom# mn --controller=remote,ip=192.168.10.3,port=6653 --switch=ovs,protocols=OpenFlow13 --custom=my.py --topo=mytopo

将新添加的网卡(ens36)添加到s2 中

ovs-vsctl add-port s2 ens36

查看s2的端口信息

root@Server03:~# ovs-vsctl list-ports s2

给ens33网卡配置第二个地址,激活ens36网卡

root@Server03:~# ip addr add 10.0.0.254/8 dev ens33

root@Server03:~# ip link set dev ens36 up

开启路由转发功能

root@Server03:~# echo 1 > /proc/sys/net/ipv4/ip_forward

root@Server03:~# cat /proc/sys/net/ipv4/ip_forward

查看ens36所在交换机s2上的端口,下发流表实现互通

root@Server03:~# ovs-ofctl dump-ports s2 -O openflow13

添加流表

root@Server03:~# ovs-ofctl add-flow s2 priority=5,in_port=ens36,actions=output:s2-eth1,s2-eth2 -O openflow13

root@Server03:~# ovs-ofctl add-flow s2 priority=5,in_port=s2-eth1,actions=output:ens36,s2-eth2 -O openflow13

root@Server03:~# ovs-ofctl add-flow s2 priority=5,in_port=s2-eth2,actions=output:ens36,s2-eth1 -O openflow13

查看添加好的流表

ovs-ofctl dump-flows s2 -O openflow13

h1启动http服务

mininet> h1 python -m SimpleHTTPServer 8000 &

创建index.html

echo "SDN test page" > /usr/lib/python2.7/dist-packages/mininet/custom/index.html

设置H1的默认网关

h1 ip route add default via 10.0.0.254

本地访问测试网页

Windows客户端访问测试网页

添加路由

访问测试

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吃糖球吐泡泡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值