RYU+Mininet的SDN架构-设计校园网络(二)

这是基于RYU+Mininet的SDN架构设计仿真校园网络的第一部分

总体详见:【基本中型网络的仿真(RYU+Mininet的SDN架构)-以校园为例】​​​​​​

章节:【RYU+Mininet的SDN架构-设计校园网络(一)】​​​​​​



【RYU+Mininet的SDN架构-设计校园网络(二)】

【RYU+Mininet的SDN架构-设计校园网络(三)】

【RYU+Mininet的SDN架构-设计校园网络(四)】

【RYU+Mininet的SDN架构-设计校园网络(五)】

三、设计方案

3.1 SDN设计方案

SDN的架构我们采用mininet+RYU 的方式,使用RYU控制器控制我们网络拓扑里面的交换机,以此来下发流表。

图3-1 SDN架构拓扑结构

注:左侧WIFI部分实际拓扑以图2-2为准

图3-1中使用的控制器C0,C1皆是远程控制器RYU,下图3-2是RYU控制器的结构示意图。

图3-2 RYU架构

此外,由于控制器只能设定一个端口,我们在实现防火墙应用程序的时候增加了控制器C1。

3.2 OSPF设计方案

我们没有选择使用openflow交换机通过流表来实现路由,因为我们发现它能实现的前提是整个网络的ip都是由统一的大地址划分而来。而使用专门的ospf路由协议则没有这样的限制。

OSPF的设计我们采用了quagga软件,它可以将linux设备变成一个功能完整的路由器。支持rip,ospf,bgp等协议。这里我们只使用它的ospf功能。

图3-3 ospf运行流程示意图

上图中的ospfd守护进程负责ospf协议的路由更新,而zebra守护进程则负责更新内核的路由表。

  

图3-4 ospf相关文件配置情况

3.3 STP的设计方案

我们设计的校园网络中,涉及到实验室场景的模拟。我们希望实验室区域的网络拥有充足的健壮性,所以我们设计了环路,希望正常情况能防止环路形成,特殊情况(某条链路断开)能恢复连通性,保证网络畅通。

图3-5 STP拓扑设计方案示意图

如图所示的形成环路的三台交换机,都连接了同一个ryu控制器c0,那么我们只需要ryu对应的模块上进行设定就可以实现stp协议。

3.4 DHCP的设计方案

1)尝试过的方案——DHCP

1.配置信息

图3-6 DHCP建立流程图

创建两台unbantu18.0的虚拟机A,B,在一台虚拟机A上面配置DHCPservever,使其成为DHCP服务器,而在虚拟机B上搭建拓扑,使用添加网卡的方式使得两台虚拟机实现互通,使得虚拟机B上面中mininet的主机能够访问虚拟机A,从而实现DHCP的功能。

2.存在着的问题

此方法能够实现对虚拟机B的IP地址的自动分配,但无法实现对mininet中的主机进行IP地址的自动分配。

自我诊断原因:由于一开始IP地址的缺失,导致虚拟机B上的网络处于ping不通的未完成状态,因此,即使虚拟机A能够实现与虚拟机B的通信,但无法进行对未完成状态的网络进行DHCP。

  1. 最终使用的方案——DHCP

1.配置信息

图3-7 DHCP建立流程图

本方案使用1台虚拟机A,在此台虚拟机上配置DHCP服务器,在每个需要DHCP的子网中选取一台主机作为该子网的DHCP服务器,然后规定该子网的地址池,最后生成上述DHCP服务器的独有的.conf文件。当请求方发出请求时,会生成对该主机的.log文件,然后对DHCP服务器进行相应,使用mininet中host.defaultIntf.updateIP()函数进行IP地址的更新。

  1. 实现的方案——DHCP中继(未使用)

1.配置信息

图3-8 DHCP中继建立流程图

在2)中的DHCP基础之上,对虚拟机中配置的DHCP服务器自带的dhcpd.conf进行地址池的配置——加入sudnet,其余与.conf文件的配置一致。

此方案无需在各个子网中单独设置DHCP服务器,只需在整个拓扑上层直接使用下载的DHCP服务器即可。

最终能够实现各个子网的IP地址的分配,即实现了DHCP中继。

2.发现的问题

此方案需要在各个子网中以及子网之间均需要能够ping通,所以在初始化网络的各项配置的阶段无法使用,因此没有将此功能加入网络拓扑。

3.5 NAT的设计方案

NAPT的设计方案是采用Mininet自带的NAT类型结点,通过将此节点的接口与虚拟机的网卡绑定,实现自动的NAPT转换,同时与外网通信。并且实现从虚拟机访问Mininet的设备。

图3-9 NAPT流程图

结合整个网络的拓扑,最终的NAPT方案如下:

图3-10 NAPT实现拓扑图

3.6防火墙的设计方案

防火墙的设计我们采用的是Mininet+RYU的方式,RYU运行防火墙程序。如下图所示,在拓扑的右侧当中是我们设置的防火墙控制器,交换机S4运行防火墙程序,阻塞不能通过

的流表。其中运行防火墙的控制器和另一个RYU控制器C0不是同一控制器,因为同一个控制器运行两个程序会存在冲突,所以采用了两台控制器。

图3-11 防火墙拓扑设计方案示意图

RYU控制器的防火墙程序是自带的rest_firewall.py文件,可以通过RESTAPI连接到RYU控制器防火墙后台设置下发的规则,下图是可以设置过滤的报文的类型和内容。

图3-12 rest_firewal.py文件可以设置的类型和内容

3.7 WIFI的设计方案

WLAN中,我们计划使用三个AP,每个AP有三个站点对应连接。AP与站点的空间位置关系如下图所示:

图3-13 无线网络中的接入点与站点物理位置示意

容易看出,三个AP的覆盖范围存在交叠。为了避免交叠带来信号冲突,从而导致无线网络效率下降,我们将这三个AP的信道分别配置成1、6和11。这样,三个AP发射的信号在频谱上就完全没有交叠。具体的原理我们在之前的原理介绍部分已经提到了,在此将频谱图复现。

图3-14 802.11b中信道定义情况[2]

三个AP拥有相同的SSID,统一命名为’handover’,并且使用WPA-2认证,使用‘123456789a’作为密码。

终端配置使用后台扫描(bgscan)完成在ESS内的漫游。配置后,bgscan将以定期和预配置的时间间隔搜索与客户端当前关联的接入点相比具有最佳信号的接入点。如果找到具有最佳信号的接入点,bgscan将启动客户端与接入点之间的关联过程。信号质量优良的判断原则有信号强度、负载大小等,此处我们选用信号强度作为信号质量优良判断的原则,即终端在选择AP时,遵循信号最强AP优先原则。

本组最初的方案是使用Mininet-WiFi直接完成网络中所有模块和功能的配置,但Mininet-WiFi与本组使用的zebra等其他工具会发生冲突,且我们在有限的时间无法解决这个问题,导致我们必须把WLAN部分与网络的其他部分分离开,分开运行两个网络以避免冲突。

但将网络分开后,无法避免的一个问题就是如何将WLAN部分接入其余网络。我们借助了所谓的隧道技术,原理是Mininet内的出口OVS(Open vSwitch)占用宿主机ubuntu主机网卡,从而达到Mininet内虚拟主机与ubuntu宿主机在网络中同等地位的目的。为了实现这一技术,我们首先需要在两个Ubuntu虚拟机上各再创建一张新的网卡。创建网络卡后虚拟机可以用如下示意图表示:

图3-15 为两台虚拟机新加网卡

再将两张网卡(Ubuntu1的ens34和Ubuntu2的ens32)桥接在一起即可。这样,Mininet-WiFi就作为有线网络交换机S1下的一个局域网的一部分了。

综上所述,WLAN部分设计详细拓扑如下:

图3-16 WLAN详细拓扑(设备接口连接情况)

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
这是一个比较复杂的实验,需要一定的基础知识,以下是基本步骤: 1. 安装OpenStack:在一台物理机器上安装OpenStack,并且创建一个网络和两个虚拟机(VM1和VM2)以及一个路由器,将VM1和VM2分别连接在这个网络上。 2. 安装RYU控制器:在一台物理机器上安装RYU控制器,并且编写一个简单的SDN控制器程序。这个程序可以接收交换机发来的OpenFlow消息,并且根据需要下发流表或者修改流表。 3. 安装Docker:在一台物理机器上安装Docker,并且创建两个容器(Container1和Container2)。这两个容器将被用来模拟两个主机,它们将连接在同一个虚拟交换机上。 4. 安装Mininet:在一台物理机器上安装Mininet,并且使用Mininet创建一个虚拟交换机和两个虚拟主机(Host1和Host2)。这两个虚拟主机将连接在这个虚拟交换机上。 5. 配置OVS交换机:在VM1上安装OpenvSwitch(OVS),并且配置OVS交换机。将这个OVS交换机连接到OpenStack网络上,并且添加一个端口,将这个端口连接到RYU控制器上。 6. 配置Docker容器:在Container1和Container2中安装OpenvSwitch,并且配置OVS交换机。将这个OVS交换机连接到Mininet虚拟交换机上,并且添加一个端口,将这个端口连接到RYU控制器上。 7. 运行实验:现在可以运行实验了。在Host1和Host2之间发送一些数据包,观察RYU控制器的行为以及OVS交换机的流表。可以尝试修改SDN控制器程序,并且观察它的影响。 注意,以上仅是基本步骤,具体操作还需要结合实际情况进行调整。此外,这个实验需要一定的计算资源和网络资源,需要提前准备好。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一个编程的菜鸡

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

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

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

打赏作者

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

抵扣说明:

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

余额充值