这是基于RYU+Mininet的SDN架构设计仿真校园网络的第一部分
总体详见:【基本中型网络的仿真(RYU+Mininet的SDN架构)-以校园为例】
本次设计基于虚拟机以及Ubuntu18,相关的安装自行配置,网上有很多的教程
RYU+mininet的安装详见:基于Ubuntu的RYU+minient安装链接
下面博客的链接:
【RYU+Mininet的SDN架构-设计校园网络(二)】
【RYU+Mininet的SDN架构-设计校园网络(三)】
【RYU+Mininet的SDN架构-设计校园网络(四)】
【RYU+Mininet的SDN架构-设计校园网络(五)】
一、设计目标
1.1应用场景介绍
1.2应用场景设计要求
网络配置方式
网络技术要求
网络拓扑要求
互联互通
二、设计内容与原理
2.1网络拓扑
(1)预期网络拓扑结构和功能
(2)实际网路拓扑
2.2网络配置
(1)网络设备信息
(2)DHCP自动配置
2.3网络技术和原理
(1)SDN
(2)STP
(3)OPSF路由
(4)NAT
(5)WIFI
(6)防火墙技术
(7)DHCP
现有一个中学,需要设计一个中小型网络满足学校的网络需求。
学校有教学区,实验室区域和服务器区域。教学区为了满足接入的灵活性和信号强度要求,需要满足设计WIFI满足日常教室和同学需求,接入上限为200人。实验室区域需要有一台教师主机方便管理实验室其余电脑,并且教师主机可以访问学校服务器,方便为同学们实验室授课。学校服务器区域设有学校相关重要文件和学校网页相关内容。最后学校还会接入互联网。
网络配置的方式应该便捷,方便管理和排错,主机和转发设备应该采用什么配置方式,服务器采用什么类型。
SDN架构实现数控分离、防火墙,路由协议,NAT,其余适合的网络技术或私有技术。
链路要有冗余度,链路同时还要具有复杂度。
仿真设计的网络需要互联互通,访问互联网,与其他小组互通
图2-1 网络拓扑示意图
注:此网络拓扑只是表示拓扑联系,不代表实际实现拓扑
网络1是WIFI区域,此区域主要对应应用场景中的教学区域,此区域拥有多个无线AP接入点,可以实现设备的AP接入点切换。
网络2是实验室区域,此部分区域由三个交换机成环连接,在此需要实现STP,以此满足实验室考试网络拥堵和网络故障特殊情况,保证网络的质量和考试的网络质量。
网络3是学校的服务器区域,此区域部署了三台服务器,分别是DHCP服务器,网页服务器和文件服务器,三台服务器通过交换机连接在路由器上面。
路由区域部分需要实现报文的传递和交付。
最后整个校区会通过一个路由器接入互联网。
在我们实现的网络拓扑当中,网络的拓扑结构如下。
图2-2 实际拓扑示意图
子网1下的交换机连接三个无线AP接入点,站点通过不同的策略连接到AP之上(后续会详细叙述)。
表2-1 WLAN0中设备接口IP地址分配情况
设备 |
接口 |
IP地址 |
子网掩码 |
|
WLAN0 |
sta1 |
sta1-wlan0 |
192.168.4.1 |
255.255.255.0 |
sta2 |
sta2-wlan0 |
192.168.4.2 |
255.255.255.0 |
|
sta3 |
sta3-wlan0 |
192.168.4.3 |
255.255.255.0 |
|
sta4 |
sta4-wlan0 |
192.168.4.4 |
255.255.255.0 |
|
sta5 |
sta5-wlan0 |
192.168.4.5 |
255.255.255.0 |
|
sta6 |
sta6-wlan0 |
192.168.4.6 |
255.255.255.0 |
表2-2 子网2设备和接口的IP设置
设备 |
IP地址 |
子网掩码 |
|
子网2 |
H1 |
192.168.1.1 |
255.255.255.0 |
H2 |
DHCP服务器分配(地址池192.168.1.2~192.168.1.6) |
255.255.255.0 |
|
H3 |
255.255.255.0 |
||
H4 |
255.255.255.0 |
||
H5 |
255.255.255.0 |
||
H6 |
255.255.255.0 |
||
默认网关 |
R2-eth2 |
192.168.1.254 |
255.255.255.0 |
表2-3 服务器区域设备和接口IP划分
设备 |
IP地址 |
子网掩码 |
|
子网3 |
H7 |
192.168.2.1 |
255.255.255.0 |
H8 |
192.168.2.2 |
255.255.255.0 |
|
默认网关 |
R3-eth2 |
192.168.2.254 |
255.255.255.0 |
表2-4 路由器IP设置
路由器 |
接口 |
IP |
掩码 |
R1 |
eth1 |
192.168.3.2 |
255.255.255.252 |
R1 |
eth2 |
192.168.3.5 |
255.255.255.252 |
R1 |
eth3 |
192.168.10.2 |
255.255.255.252 |
R2 |
eth1 |
192.168.3.1 |
255.255.255.252 |
R2 |
eth2 |
192.168.1.254 |
255.255.255.0 |
R3 |
eth1 |
192.168.3.6 |
255.255.255.252 |
R3 |
eth2 |
192.168.2.254 |
255.255.255.0 |
表2-5 交换机连接设置
交换机 |
接口 |
连接设备 |
S1 |
eth1 |
R2 |
eth2 |
S2 |
|
eth3 |
S3 |
|
eth4 |
H1 |
|
eth5 |
H2 |
|
S2 |
eth1 |
S1 |
eth2 |
H3 |
|
eth3 |
H4 |
|
eth4 |
S3 |
|
S3 |
eth1 |
S1 |
eth2 |
H5 |
|
eth3 |
H6 |
|
eth4 |
S2 |
|
S4 |
eth1 |
R3 |
eth2 |
H7 |
|
eth3 |
H8 |
网络配置采用自动配置有诸多的优点,下面列举了一些:
可以很容易地在网络中添加新的客户端。
IP地址是由DHCP集中管理的。
IP地址可以重复使用,从而减少了对IP地址总数的要求。
DHCP服务器上的IP地址空间可以很容易地进行重新配置,而不需要单独重新配置客户端。
网络管理员可以利用DHCP协议提供的方法,从集中区域配置网络。
综上,我们网络采用DHCP的配置方式。
1)SDN的网络体系架构
应用层:这一层主要是体现用户意图的各种上层应用程序,此类应用程序称为协同层应用程序,典型的应用包括OSS(Operation support system 运营支撑系统)、Openstack等。传统的IP网络同样具有转发平面、控制平面和管理平面,SDN网络架构也同样包含这3个平面,只是传统的IP网络是分布式控制的,而SDN网络架构下是集中控制的。
控制层:控制层是系统的控制中心,负责网络的内部交换路径和边界业务路由的生成,并负责处理网络状态变化事件。
转发层:转发层主要由转发器和连接器的线路构成基础转发网络,这一层负责执行用户数据的转发,转发过程中所需要的转发表项是由控制层生成的。
北向接口:应用层和控制层通信的接口,应用层通过控制开放的API,控制设备转发功能
南向接口:控制层和数据层通信的接口,控制器通过OpenFlow或其他协议下发流表
图2-3 SDN架构示意图
2)SDN的主要特征
转控分离:网元的控制平面在控制器上,负责协议计算,产生流表;而转发平面只在网络设备上。
集中控制:设备网元通过控制器集中管理和下发流表,这样就不需要对设备进行逐一操作,只需要对控制器进行配置即可。
开放接口:第三方应用只需要通过控制器提供的开放接口,通过编程方式定义一个新的网络功能,然后在控制器上运行即可。
SDN控制器既不是网管,也不是规划工具:
网管没有实现转控分离:网管只负责管理网络拓扑、监控设备告警和性能、下发配置脚本等操作,但这些仍然需要设备的控制平面负责产生转发表项。
生成树协议(英语:Spanning Tree Protocol,STP),是一种工作在OSI网络模型中的第二层(数据链路层)的通信协议,基本应用是防止交换机冗余链路产生的环路。用于确保以太网中无环路的逻辑拓扑结构。从而避免了广播风暴,大量占用交换机的资源。
在SDN中,如果Mininet建立的拓扑中存在交换机环路,则如果利用普通的Ryu Learning Switch APP进行ryu-manager部署,会出现ping、pingall不通的问题,其原因在于环路中出现了广播风暴。为了在Mininet中使用带有环路的拓扑,需要让交换机开启STP协议。
STP协议实现的关键是BDPU封包,通过传送该包发现环路,决定交换机的哪些端口需要Forward,哪些需要Block。下图展示了BDPU包的传送过程。
图2-4 STP协议实现关键-BDPU包
开放式最短路径优先(Open Shortest Path First,OSPF)是广泛使用的一种动态路由协议,它属于链路状态路由协议,具有路由变化收敛速度快、无路由环路、支持变长子网掩码(VLSM)和汇总、层次区域划分等优点。
在网络中使用OSPF协议后,大部分路由将由OSPF协议自行计算和生成,无须网络管理员人工配置,当网络拓扑发生变化时,协议可以自动计算、更正路由,极大地方便了网络管理。
OSPF协议依靠五种不同类型的分组来建立邻接关系和交换路由信息,即问候分组、数据库描述分组、链路状态请求分组、链路状态更新分组和链路状态确认分组:
图2-5 OSPF协议的5种分组及功能
NAPT在进行地址转换的同时还进行端口转换,可以实现多个私网用户共同使用一个公网IP地址上网。NAPT根据端口来区分不同用户,真正做到了地址复用。
图2-6 NAPT原理图
当Host访问Web Server时,设备的处理过程如下:
1.设备收到Host发送的报文后查找NAT策略,发现需要对报文进行地址转换。
2.设备根据源IP Hash算法从NAT地址池中选择一个公网IP地址,替换报文的源IP地址,同时使用新的端口号替换报文的源端口号,并建立会话表,然后将报文发送至Internet。
3.设备收到Web Server响应Host的报文后,通过查找会话表匹配到步骤2中建立的表项,将报文的目的地址替换为Host的IP地址,将报文的目的端口号替换为原始的端口号,然后将报文发送至Intranet。
①WLAN仿真平台
WLAN部分使用Mininet-WiFi进行仿真。Mininet-WiFi 是 Mininet SDN 网络仿真器的一个分支,通过添加基于标准 Linux 无线驱动程序和 80211_hwsim 无线仿真驱动程序的虚拟化 WiFi 站和接入点来扩展 Mininet 的功能。这意味着已添加新类以支持在 Mininet 网络场景中添加这些无线设备并模拟移动站的属性,例如相对于接入点的位置和移动。
下图描述了一个简单拓扑结构中的组件和连接,其中有两个站点(或主机)是使用 Mininet-WiFi 创建的,其中新实现的组件(以灰色突出显示)沿原始 Mininet 构建块显示。尽管工作站默认配备无线接口,但它们也可以通过有线链路(veth 对)与接入点连接。
图2-7 一个简单拓扑结构中的组件和连接[1]
②无线站点
站(sta)是通过身份验证和关联连接到接入点的设备。在Mininet-WiFi中,每个站都有一个无线网卡(staX-wlan0,其中 X 为每个站的编号)。
③接入点(AP)
AP是管理关联站的设备。通过 hostapd 守护程序进行虚拟化,并将虚拟无线接口用于接入点和身份验证服务器。Mininet-WiFi 当前包括对用户空间参考实现和内核和用户空间模式下的 Open vSwitch 的支持。
无线站点和接入点都使用 cfg80211 与无线设备驱动程序通信,这是一个 Linux 802.11 配置 API,可提供工作站与 mac80211 之间的通信。该框架反过来通过用于配置 cfg80211 设备和内核-用户空间通信的 netlink 套接字(或更具体地说是 nl80211)直接与 WiFi 设备驱动程序通信。[1]
④频谱分析
仿真使用802.11b标准,在下图给出的例子中,可以看出802.11b标准是如何在2.4835Ghz的2.4GHz频段上定义13个信道,每个信道分配22MHz,间隔5MHz。可以看出,通过这种安排,只有通道 1、6 和 11 可以在没有频带重叠的情况下运行。
正在上传…重新上传取消图2-8 802.11b中信道定义情况[2]
⑤主动扫描与被动扫描
对于一个站点来说,如果希望连接到AP,首先必须发现AP。发现的方式就两种被动扫描(passive scan)和主动扫描(active scan)。
通俗地讲,主动即“搜”,是指sta每隔一段时间发送probe request帧,用来询问AP的信息,probe request可以单独发给某个AP,也可以在一个信道上进行广播,多数时候是在一个信道上进行广播,广播完成后,会在当前信道等待一段时间,如果收到帧反馈,则做记录,如果超时,就会切换到下个信道进行广播。
被动即“听”,是指手机被动的接收AP发出的beacon帧,通过解析beacon帧中的信息来获取当前AP列表。手机在监听beacon帧的时候也不停切换信道,保证每个信道都能监听到。这种模式下,只监听beacon帧,不发送探测帧,比较节省资源,不过获取AP列表时间相对较长,不如主动扫描获得信息更及时。
客户端如果通过主动扫描发现很多AP具有相同SSID,它会根据信号强度和信号质量选择最佳的AP连接,通常客户端还会持续在其他信道发送probe request,以得到一个可用AP的list,用于漫游。这是我们后续使用的“后台扫描”原理。
它是一种位于内部网络与外部网络之间的网络安全系统。是一项信息安全的防护系统,依照特定的规则,允许或是限制传输的数据通过。
网络层防火墙可视为一种 IP 封包过滤器,运作在底层的TCP/IP协议堆栈上。可以以枚举的方式只允许符合特定规则的封包通过,其余的一概禁止穿越防火墙(病毒除外,防火墙不能防止病毒侵入)。这些规则通常可以经由管理员定义或修改,不过某些防火墙设备可能只能套用内置的规则。
下图展示了防火墙的设置规则,通过设置能透过数据报文的源和目的以及通过协议类型和操作类型来设置防火墙。
图2-9 防火墙技术的原理示意图
应用层防火墙是在 TCP/IP 堆栈的“应用层”上运作,您使用浏览器时所产生的数据流或是使用 FTP 时的数据流都是属于这一层。应用层防火墙可以拦截进出某应用程序的所有封包,并且封锁其他的封包(通常是直接将封包丢弃)。理论上,这一类的防火墙可以完全阻绝外部的数据流进到受保护的机器里。
1. DHCP的原理
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作, 主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。
DHCP的整个工作流程如下图所示,主要有四个阶段:
图2-10 DHCP工作流程
1)发现阶段,DHCP客户端以广播的形式寻找DHCP服务器。
2)提供阶段,接收到DHCP Discover的服务器都会响应,DHCP服务器从未出租的IP地址中挑选一个给客户端,发送DHCP Offer包。
3)选择阶段,DHCP客户端选择第一个收到的DHCP Offer包信息来接收,以广播方式回答一个DHCP Request请求信息。
4)确认阶段,被选择的DHCP服务器确认所提供的IP地址,发送DHCP Ack,未被选择的服务器回收曾提供的IP地址。
2.DHCP的工作方式
1)下载一个DHCP服务器。
2)下面有两种方式:
1.直接修改步骤1中的DHCP服务器的dhcpd.conf文件,此方法可以通过编写subnet进行DHCP中继,但有一个使用前提为当前拓扑能够ping通。
2.自己在各个子网中搭建分DHCP服务器,并自主生成各个服务器的.conf和发送端的.log文件。此方式在拓扑无法ping通的情况下仍可以实现DHCP服务。
本次选用的是步骤2中的第二个方法。
3.网络配置
在上述子网1和子网2中分别选用一台主机作为DHCP服务器,本次实验子网1选用的是h1,子网2选用的是h7。