上一篇 下一篇 分享链接 返回 返回顶部

搭建网络SDN(企业网络环境搭建)

发布人:千 发布时间:2024-10-24 20:38 阅读量:162

大家好,又见面了,我是你们的朋友全栈君。

第1小题:简单网络

说明:由于对于SDN架构的理解在学界和业界并没有统一,为了方便参赛队员选择,对于初学者,大赛推荐OpenFlow作为南向接口来实现SDN环境,以下给出分别针对采用OpenFlow和采用其他接口的具体要求(分A、B两种情况)。

A. 针对采用OpenFlow作为南向接口的参赛队伍的要求:

参赛队伍首先需要搭建一个SDN架构的网络环境,初学者可以参照图1所示的一个最简单的拓扑结构,熟练的参赛队员可以自定义复杂一点的拓扑结构,两者并不影响评委评分。

B. 针对不是采用OpenFlow作为南向接口的参赛队伍的要求:

拓扑结构自定,所用设备、软件等自选,只要能够实现SDN架构的网络环境即可。

图1:简单的示例拓扑

1. 搭建环境要求:图1中控制器可以自主选择,既可选择各种开源的控制器(例如:Floodlight、Ryu、Nox、Beacon、Trema、OpenDaylight等),也可选择由本次大赛设备提供商所提供的闭源控制器。拓扑中各网络部件既可以是仿真环境实现(例如mininet,OpenvSwtich),有条件的队伍也可以通过物理设备实现,两种方案不影响必答题的评分。

2. 操作要求:对流表进行操作使得Host1和Host2能够互相ping通,然后再修改流表使得它们不能ping通。

3. 报告书要求:报告书的主要内容需要包含以下几点:

(1) 详细描述实验网络环境的搭建思路,给出搭建出来的结构拓扑图,列举选择的具体设备或者仿真软件、工具软件,并说明其在实验中的作用。

(2) 给出实现2中操作要求的具体操作步骤,以截图或者文本方式展示,要求给出初始以及前后两次对流表操作后流表内容的截图。

(3) 给出实验数据(界面截图、表格等都可)来说明实现了(2)中的要求。

说明:以上列举的为硬性要求,在报告书中必须给出。但报告书内容的组织可以灵活处理,自由发挥,不限于上述要求的内容。

实验报告如下:

一、搭建网络环境需求:

  1. ubuntu12.04版本;
  2. 默认安装所有 Mininet相关的相关套件,如:OpenFlow、POX 等工具会默认保存在当前用户的家目录,即利用mininet仿真软件进行处理;
  3. 在mininet软件下进行相关命令的配置来完成实验的目的。

二、实验操作:

在ubuntu12.04环境下安装mininet相关插件,这里我采用了默认安装所有 Mininet相关的相关套件,如:OpenFlow、POX 等工具会默认保存在当前用户的家目录。

代码语言:javascript
复制
# git clone git://github.com/mininet/mininet
# cd mininet/util/
# ./install.sh -a

由于mininet软件 支持自定义网络,因此我们可以命令来查看自带的拓扑结构:

代码语言:javascript
复制
wuyouke@ubuntu:~$ sudo mn
*** Creating network
*** Adding controller
*** Adding hosts:
h1 h2 
*** Adding switches:
s1 
*** Adding links:
(h1, s1) (h2, s1) 
*** Configuring hosts
h1 h2 
*** Starting controller
*** Starting 1 switches
s1 
*** Starting CLI:

也可以通过节点命令来查看节点的个数:

代码语言:javascript
复制
mininet> nodes
available nodes are: 
c0 h1 h2 s1

正好可以满足本实验的要求,因此我们就可以借助于这个拓扑图而无需进行修改,当然我们可以通过其他命令来自定义拓扑结构,在以后的文章种再进行讲解。

通过mininet中的命令来查看各个节点的IP信息,即:

接下来就是ping两台主机,并且事先后台运行wireshark抓包软件:

在抓包软件中要首先进行filter:of。然后双击capture中选择lo端口来进行抓包饿哦,抓包图如下:

为了修改流表,因此我们将用到ovs相关的配置命令;

以上是虚拟交换机s1的信息,获得dpid,端口openflow端口编号。

代码语言:javascript
复制
sudo ovs-ofctl add-flow s1 idle_timeout=120,in_port=1,actions=drop

添加一条流规则:丢弃从1端口发来的任何数据包,此时再在sudo mn的模式下ping命令,就会发现两台主机是ping不通的。这时再次查看s1上面的流规则:

代码语言:javascript
复制
wuyouke@ubuntu:~$ sudo ovs-ofctl dump-flows s1
NXST_FLOW reply (xid=0x4):
 cookie=0x0, duration=27.463s, table=0, n_packets=0, n_bytes=0, idle_timeout=120,in_port=1 actions=drop

以上实验已经完成!

附:由于刚刚学习SDN的相关知识,有些配置还不是很了解,希望大家给予指正,相互学习,谢谢~~

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/128045.html原文链接:https://javaforall.cn

目录结构
全文