CN106850616B - 利用sdn技术解决分布式防火墙网络一致更新的方法 - Google Patents
利用sdn技术解决分布式防火墙网络一致更新的方法 Download PDFInfo
- Publication number
- CN106850616B CN106850616B CN201710060115.3A CN201710060115A CN106850616B CN 106850616 B CN106850616 B CN 106850616B CN 201710060115 A CN201710060115 A CN 201710060115A CN 106850616 B CN106850616 B CN 106850616B
- Authority
- CN
- China
- Prior art keywords
- openflow
- interface
- intelligent exchange
- intelligent
- exchange
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 18
- 238000005516 engineering process Methods 0.000 title claims abstract description 14
- 230000005540 biological transmission Effects 0.000 claims abstract description 19
- 238000012544 monitoring process Methods 0.000 claims description 79
- 238000012360 testing method Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种利用SDN技术解决分布式防火墙网络一致更新的方法,该方法利用SDN支持用户按照自己的实际需求定义开发的优势,通过API接口进行编程的方式让控制器对在网的交换机下发不同的流表,从而省去了对每一个交换机逐一进行配置的步骤,且不再需要考虑更新交换机中的配置对传输的数据报文以及原有网络安全规则造成影响,解决了分布式防火墙这一配置难题。本发明通过编程下发流表实现了交换机的自动配置,能够完成分布式防火墙的一致性更新。
Description
技术领域
本发明涉及软件及网络技术,具体涉及一种利用SDN技术解决分布式防火墙网络一致更新的方法。
背景技术
在网络规模急剧增长的大数据时代,网络的一致更新难题正日益凸显,即便我们小心翼翼让旧的和新的配置都准确无误,也会很难正确的被实现,处理不当就会出现诸如转发回路、数据丢包或者网络堵塞等问题。最主要的原因在于网络是一个分布式系统,而算法很难完全做到分布式管理。有些时候需要网络管理员手动验证网络的一系列更新是否是正确,但是这一过程冗杂并极易出错。
通常情况下网络又是需要更新配置的,比如网络设备的维护升级,或者防止网络拥塞修改数据流的路径,改变现有网络环境的安全策略等等。它需要设备在网运行时去修改路由器或交换机中的配置。如果没有策略的去简单实现,会影响网络的安全,这在网络中是决不允许出现的。
在现有技术下,如若想实现网络的更新,我们要么是对整个网络环境进行版本化的更新,或者对设备进行下电处理,然后逐一进行配置,更新版本的方式太过于复杂,手动配置不能实现网络的一致更新,尽管对于一部分的应用场景还可以继续适用,但是在如今的快速度低延时的大数据环境下已经不再是主流。
发明内容
本发明的目的在于提供一种利用SDN技术解决分布式防火墙网络一致更新的方法。
实现本发明目的的技术方案为:一种利用SDN技术解决特定分布式防火墙网络一致性更新问题的方法,系统架构包括Mininet模拟环境平台、OpenDaylight控制器、RESTAPI应用编程接口和分布式防火墙网络拓扑结构;所述分布式防火墙网络拓扑结构包括第一OpenFlow智能交换机、第二OpenFlow智能交换机、第三OpenFlow智能交换机、第四OpenFlow智能交换机、第一主机、第二主机、第一监控主机和第二监控主机,所述第一OpenFlow智能交换机、第二OpenFlow智能交换机、第三OpenFlow智能交换机、第四OpenFlow智能交换机顺次连接,所述第一主机与第二OpenFlow智能交换机相连,第二主机与第三OpenFlow智能交换机相连,第一监控主机与第一OpenFlow智能交换机相连,第二监控主机与第四OpenFlow智能交换机相连;该方法包括以下步骤:
第一步,开启Mininet模拟平台并初始化SDN基础环境,修改自定义拓扑配置文件创建需要的网络结构,使用net命令查看链路状态;
第二步,运行/opt/opendaylight-snapshot/run.DelayedSFEP.sh命令来开启内部OpenDaylight控制器,并让主机之间互ping,测试平台环境是否能够模拟真实有效的网络;
第三步,关于第一监控主机和第二监控主机,分别配置命令“ifconfigh1-eth0:010.0.0.10”和“ifconfigh2-eth0:010.0.0.10”,在第一监控主机和第一OpenFlow智能交换机的接口之间以及第二监控主机和第四OpenFlow智能交换机之间添加混叠IP地址10.0.0.10;创建task-init.sh脚本文件来对第一OpenFlow智能交换机、第二OpenFlow智能交换机、第三OpenFlow智能交换机安装初始流表条目,使第一主机周期性的发送数据包至第二主机上,初始状态下由第一监控主机负责监测经过验证的主机流量;在下发的流表规则中对第一OpenFlow智能交换机、第二OpenFlow智能交换机、第三OpenFlow智能交换机进行配置,所有的流表项中添加匹配信息,设置VLAN为1,数据报文在传输前包头中的VLAN匹配字段设置为1;
流表中定义第一OpenFlow智能交换机的操作集,操作集中交换机剥离原有的vlan标记并将新的VLAN匹配信息值设置为1,将报文的目的MAC地址设置为第一监控主机的MAC地址,报文流经第一OpenFlow智能交换机时的转入接口为第二接口,转出接口为第一接口。
设定第二OpenFlow智能交换机为初始交换机,第一OpenFlow智能交换机、第三OpenFlow智能交换机为后续交换机,设置流表优先级为1000,流表中定义第二OpenFlow智能交换机的操作集,交换机剥离原先设定的vlan标记并将新的匹配信息vlan的值设置为1,报文流经第二OpenFlow智能交换机时的转入接口为第一接口,与第一智能交换机相连的转出接口为第三接口,与第三智能交换机相连的转出接口为第二接口;
将第三OpenFlow智能交换机中匹配信息vlan值设置为1,报文流经第三OpenFlow智能交换机时的转入接口为第一接口,转出接口为第二接口;
第一主机发送数据包至第二主机时,数据包流经第二OpenFlow智能交换机、第三OpenFlow智能交换机,将第二OpenFlow智能交换机的第一接口作为数据包的入接口,第二接口作为数据包的出接口,第三OpenFlow智能交换机s3的第一接口作为数据包的入接口,第二接口作为数据包的出接口;
第一监控主机监测第一主机发送的数据包时,数据包流经第二OpenFlow智能交换机、第一OpenFlow智能交换机,将第二OpenFlow智能交换机的第一接口作为数据包的转入接口,第三接口作为数据包的转出接口,第一OpenFlow智能交换机的第二接口作为数据包的转入接口,第一接口作为数据包的转出接口;
第四步,第二监控主机开始监测经过验证的主机流量,此时后续交换机为第四OpenFlow智能交换机、第三OpenFlow智能交换机,初始交换机仍为第二OpenFlow智能交换机,按照先后续交换机最后初始交换机的配置顺序下发流表,即按照第四OpenFlow智能交换机、第三OpenFlow智能交换机、第二OpenFlow智能交换机的顺序依次配置;
创建并运行task-update.sh脚本进行防火墙的一致性更新,确保能完全监控发送的数据报文,在该脚本中对第四OpenFlow智能交换机、第三OpenFlow智能交换机和第二OpenFlow智能交换机定义操作集进行更新;定义的操作集要求所有流表项中添加VLAN匹配信息并将其设置为2,传输的报文添加相应的匹配字段并将VLAN标记设置为相同的值2;
流表规则中定义第四OpenFlow智能交换机的操作集,操作集中要求交换机剥离原先的vlan标记并将新的匹配信息设置为2,报文的目的MAC地址设置为第二监控主机h2的MAC地址,数据报文流经第四OpenFlow智能交换机时的流入口为第二接口,转出接口为第一接口;
下发给第三OpenFlow智能交换机的流表中同样要求交换机剥离原有的vlan标记并将新的vlan匹配信息值设置为2,报文流经第三OpenFlow智能交换机时的流入口为第一接口,与第四OpenFlow智能交换机相连的转出接口为第三接口,与第二主机相连的转出接口为第二接口;
对于第二OpenFlow智能交换机,将流表优先级提高至2000,同时将vlan匹配信息设置为2;数据报文在发送前包头中添加新的vlan匹配字段,当网络更新后流经交换机时按照新的匹配规则进行匹配,由于优先级的提高,数据流按照新的路由路径进行传输,流经第二OpenFlow智能交换机时的流入口为第一接口,与第三OpenFlow智能交换机相连的数据转出接口为第二接口;
第五步,通过第一监控主机和第二监控主机的xterm终端屏显查看接收到的数据报文标号,判断所有数据是否都已经成功发送,如成功则关闭Mininet模拟环境平台,反之继续监测发送直至发送完成。
与现有技术相比,本发明的显著优点为:
(1)本发明通过控制器对交换机下发不同的流表规则,实现了网络的一致更新,从而省去了对每一个交换设备逐一进行手动配置的繁复步骤,且不再需要考虑对交换机进行配置时对传输的数据包以及对原有网络安全造成影响,相比于版本化的更新,能够很容易的实现网络的一致更新;
(2)本发明不会对控制器带来额外的控制负载,并且流表的更新时间很短,能快速适应网络出现的更新。
附图说明
图1本发明所采用的分布式防火墙网络拓扑图。
图2本发明初始条件下由第一监控主机h1监测流量的网络拓扑图。
图3本发明更换监控设备后的网络拓扑图。
图4本发明解决网络更新问题的方法流程图。
具体实施方式
SDN的出现增加了网络的灵活性,通过软件编程的方式改变了之前的“硬编码”,可以让添加和改变网络控制逻辑变得更简单,能够为不同的用户设计专用的协议并且能够对新案例快速支撑。它减少了交换机的复杂性,控制逻辑从交换机和主机移到主服务器上,交换机上硬件仍支持转发,所以交换机的转发性能未受到影响,而集中的网络控制有更快的时间收敛和更高的资源利用率。利用SDN技术来解决分布式防火墙一致更新问题是本发明基于上述考虑而设计的。
结合图1-图4,本发明的一种利用SDN技术解决特定分布式防火墙网络一致性更新问题的方法,系统架构包括Mininet模拟环境平台、OpenDaylight控制器、RESTAPI应用编程接口和分布式防火墙网络拓扑结构;所述分布式防火墙网络拓扑结构包括第一OpenFlow智能交换机s1、第二OpenFlow智能交换机s2、第三OpenFlow智能交换机s3、第四OpenFlow智能交换机s4、第一主机gen、第二主机srv、第一监控主机h1和第二监控主机h2,所述第一OpenFlow智能交换机s1、第二OpenFlow智能交换机s2、第三OpenFlow智能交换机s3、第四OpenFlow智能交换机s4顺次连接,所述第一主机gen与第二OpenFlow智能交换机s2相连,第二主机srv与第三OpenFlow智能交换机s3相连,第一监控主机h1与第一OpenFlow智能交换机s1相连,第二监控主机h2与第四OpenFlow智能交换机s4相连;该方法包括以下步骤:
第一步,开启Mininet模拟平台并初始化SDN基础环境,修改自定义拓扑配置文件创建需要的网络结构,使用net命令查看链路状态;
第二步,运行/opt/opendaylight-snapshot/run.DelayedSFEP.sh命令来开启内部OpenDaylight控制器,并让主机之间互ping,测试平台环境是否能够很好的模拟真实有效的网络;
第三步,关于第一监控主机h1和第二监控主机h2,分别配置命令“ifconfigh1-eth0:010.0.0.10”和“ifconfigh2-eth0:010.0.0.10”,在第一监控主机h1和第一OpenFlow智能交换机s1的接口之间以及第二监控主机h2和第四OpenFlow智能交换机s4之间添加混叠IP地址10.0.0.10;创建task-init.sh脚本文件来对第一OpenFlow智能交换机s1、第二OpenFlow智能交换机s2、第三OpenFlow智能交换机s3安装初始流表条目,使第一主机gen周期性的发送数据包至第二主机srv上,初始状态下由第一监控主机h1负责监测经过验证的主机流量;在下发的流表规则中对第一OpenFlow智能交换机s1、第二OpenFlow智能交换机s2、第三OpenFlow智能交换机s3进行配置,所有的流表项中添加匹配信息,设置VLAN为1,数据报文在传输前包头中的VLAN匹配字段设置为1;
流表中定义第一OpenFlow智能交换机s1的操作集,操作集中交换机剥离原有的vlan标记并将新的VLAN匹配信息值设置为1,将报文的目的MAC地址设置为第一监控主机h1的MAC地址,报文流经第一OpenFlow智能交换机s1时的转入接口为第二接口,转出接口为第一接口。
设定第二OpenFlow智能交换机s2为初始交换机,第一OpenFlow智能交换机s1、第三OpenFlow智能交换机s3为后续交换机,设置流表优先级为1000,流表中定义第二OpenFlow智能交换机s2的操作集,交换机剥离原先设定的vlan标记并将新的匹配信息vlan的值设置为1,报文流经第二OpenFlow智能交换机s2时的转入接口为第一接口,与第一智能交换机相连的转出接口为第三接口,与第三智能交换机相连的转出接口为第二接口;
将第三OpenFlow智能交换机s3中匹配信息vlan值设置为1,报文流经第三OpenFlow智能交换机s3时的转入接口为第一接口,转出接口为第二接口;
第一主机gen发送数据包至第二主机srv时,数据包流经第二OpenFlow智能交换机s2、第三OpenFlow智能交换机s3,将第二OpenFlow智能交换机s2的第一接口作为数据包的入接口,第二接口作为数据包的出接口,第三OpenFlow智能交换机s3的第一接口作为数据包的入接口,第二接口作为数据包的出接口;
第一监控主机h1监测第一主机gen发送的数据包时,数据包流经第二OpenFlow智能交换机s2、第一OpenFlow智能交换机s1,将第二OpenFlow智能交换机s2的第一接口作为数据包的转入接口,第三接口作为数据包的转出接口,第一OpenFlow智能交换机s1的第二接口作为数据包的转入接口,第一接口作为数据包的转出接口;
第四步,第二监控主机h2开始监测经过验证的主机流量,此时后续交换机为第四OpenFlow智能交换机s4、第三OpenFlow智能交换机s3,初始交换机仍为第二OpenFlow智能交换机s2,按照先后续交换机最后初始交换机的配置顺序下发流表,即按照第四OpenFlow智能交换机s4、第三OpenFlow智能交换机s3、第二OpenFlow智能交换机s2的顺序依次配置;
创建并运行task-update.sh脚本进行防火墙的一致性更新,确保能完全监控发送的数据报文,在该脚本中对第四OpenFlow智能交换机s4、第三OpenFlow智能交换机s3和第二OpenFlow智能交换机s2定义操作集进行更新;定义的操作集要求所有流表项中添加VLAN匹配信息并将其设置为2,传输的报文添加相应的匹配字段并将VLAN标记设置为相同的值2;
流表规则中定义第四OpenFlow智能交换机s4的操作集,操作集中要求交换机剥离原先的vlan标记并将新的匹配信息设置为2,报文的目的MAC地址设置为第二监控主机h2的MAC地址,数据报文流经第四OpenFlow智能交换机s4时的流入口为第二接口,转出接口为第一接口;
下发给第三OpenFlow智能交换机s3的流表中同样要求交换机剥离原有的vlan标记并将新的vlan匹配信息值设置为2,报文流经第三OpenFlow智能交换机s3时的流入口为第一接口,与第四OpenFlow智能交换机s4相连的转出接口为第三接口,与第二主机srv相连的转出接口为第二接口;
对于第二OpenFlow智能交换机s2,将流表优先级提高至2000,同时将vlan匹配信息设置为2;数据报文在发送前包头中添加新的vlan匹配字段,当网络更新后流经交换机时按照新的匹配规则进行匹配,由于优先级的提高,数据流按照新的路由路径进行传输,流经第二OpenFlow智能交换机s2时的流入口为第一接口,与第三OpenFlow智能交换机s3相连的数据转出接口为第二接口;
第五步,通过第一监控主机h1和第二监控主机h2的xterm终端屏显查看接收到的数据报文标号,判断所有数据是否都已经成功发送,如成功则关闭Mininet模拟环境平台,反之继续监测发送直至发送完成。
下面结合具体实施例对本发明作进一步说明。
实施例
为了便于本领域的普通技术人员理解本发明的原理、工作过程,首先对本发明中用到的词汇作如下解释或定义:
SDN:SoftwareDefinedNetwork,软件自定义网络。
API:Application Program Interface,应用编程接口。
Xterm:终端模拟器,用来提供多个独立的SHELL输入输出。为了方便更复杂的调试工作,可以使用Mininet中的Xterms命令来开启每个主机节点的终端模拟。
OpenDaylight:是一个基于Java实现的开源控制器,能够快速执行需要完成的网络任务,旨在推动创新以及实施软件定义网络的透明化,它利用了SDN和NFV技术。
Mininet:软件定义网络系统中一种基于进程的虚拟化平台,它使用虚拟化技术使一个单一的系统可以模拟完整的网络,并支持OpenFlow、OpenvSwith等协议。平台中主机的行为同真实网络环境下的设备几乎完全相像,可以通过安全协议远程登录并且运行任意的程序。
下面结合具体的网络结构说明本发明利用SDN技术解决特定分布式防火墙网络一致更新问题,所采用的系统架构为:支持OpenFlow协议的智能交换机,Mininet模拟实验平台,RESTAPI应用编程接口,OpenDaylight控制器,特定分布式防火墙网络拓扑结构。
OpenDaylight控制器能够快速执行需要完成的网络任务,以此来管理并控制分布式防火墙网络状态更新前后的交换机中的流表规则。OpenFlow智能交换机能够解析并执行控制器下发的流表规则,按照流表定义的操作集对流经的数据流进行相应的处理。RESTAPI应用编程接口能够根据网络需求自定义开发,编写程序实现所需的流表配置。
本发明所指的单个初始交换机应用场景下的分布式防火墙网络包括4台支持OpenFlow协议的交换机。
为满足网络初始条件下由第一监控主机h1来监测发送的数据流量,需要对流表规则进行如下配置:
1)为避免对结果产生影响,首先需要将交换机中存在的原有流表规则都删除;
2)按照先后续交换机最后初始交换机的顺序下发流表规则,对第一OpenFlow智能交换机s1、第三OpenFlow智能交换机s3、第二OpenFlow智能交换机s2依次进行配置,要求所有的流表项中添加VLAN匹配信息并将值设置为1。数据在传输前包头信息中会添加VLAN匹配字段,其值也设置为1,这样数据流经交换设备时才能与现有规则匹配,从而传送到接收设备上。
3)流表中定义了第一OpenFlow智能交换机s1相关联的操作集,要求交换机剥离原先设定的vlan标记,并将数据报文的目的MAC地址设置成第一监控主机h1的MAC地址,数据流经交换机s1时的流入口为第二接口,转出接口为第一接口。
4)下发给第三OpenFlow智能交换机s3的流表中规定如下配置,删除并设置新的vlan匹配标记为1,报文流经第三OpenFlow智能交换机s3时的流入口为第一接口,转出接口为第二接口。
5)对第二OpenFlow智能交换机s2进行如下配置,将流表优先级设置为1000,交换机删除并添加新的VLAN匹配信息将值设置为1。报文流经交换机s2时的流入口为第一接口,与第一智能交换机s1相连的转出接口为第三接口,与第三智能交换机s3相连的转出接口为第二接口。
通过RESTAPI接口配置的脚本1为:
#Removepreviousflowsifthereareany:
Curlhttp://localhost:8080/wm/staticflowentrypusher/clear/all/json
#SWITCHS1::
#Packetiscomingtoport2ofswitchS1forh1usingVLAN1tag:
curl-d
'{"switch":"00:00:00:00:00:00:00:01","name":"flow-mod-1","ingress-port":"2",
vlan-id":"1","active":"true","actions":"set-dst-mac=00:00:00:00:00:02,strip-vlan,
output=1"}'http://localhost:8080/wm/staticflowentrypusher/json
#SWITCHS3::
#Packetiscomingtoport1ofswitchS3usingVLAN1tag:
curl-d
'{"switch":"00:00:00:00:00:00:00:03","name":"flow-mod-2","ingress-port":"1",
vlan-id":"1","active":"true","actions":"strip-vlan,output=2"}'
http://localhost:8080/wm/staticflowentrypusher/json
#SWITCHS2::
#Packetiscomingtoport1ofswitchS2forh1&srvusingVLAN1tag:
curl-d
'{"switch":"00:00:00:00:00:00:00:02","name":"flow-mod-3","priority":"1000",
"ingress-port":"1","active":"true","actions":"set-vlan-id=1,output=2,output=3"}'
http://localhost:8080/wm/staticflowentrypusher/json
为了更好的应对网络负载,网络管理员决定改变网络的配置,让经过验证的主机流量由第二监控主机h2进行监测,此时不再需要对设备进行下电处理并逐一对交换机进行配置,仅仅根据需要重新创建task-update.sh脚本就可以实现一致性更新并确保对数据流量不间断的监控,这里按照先更新后续交换机s4、其次交换机s3最后初始交换机s2的顺序来完成:
1)对第四OpenFlow智能交换机s4、第三OpenFlow智能交换机s3和第二OpenFlow智能交换机s2定义明确的操作集,来规避由于网络时延以及新规则生效的时延而导致的无法对传输的数据报文全部监测的问题,从而实现网络更新的连续性。因此在新规则的所有流表项中重新定义新的VLAN标签,即设置VLAN值为2,并在报文传送之前在包头中添加同样的匹配字段。
2)第二监控主机h2监测经过验证的主机流量包时,数据会流经第四OpenFlow智能交换机s4,流表中定义了第四OpenFlow智能交换机s4的操作集,要求交换机剥离原先设定的vlan标记,并将vlan匹配信息值设置为2,将数据报文的目的MAC地址设置成第二监控主机h2的MAC地址。数据流经交换机s4时的流入口为2接口,转出接口为1接口。
3)下发给第三OpenFlow智能交换机s3的流表规定的操作集,同样也要求剥离原先设定的vlan标记,数据流经第三OpenFlow智能交换机s3时的流入口为第一接口,与第四OpenFlow智能交换机s4相连的转出接口为第三接口。
4)对于第二OpenFlow智能交换机s2,需要将流表优先级提高至2000,同时设置匹配信息vlan的值为2。数据流经第二OpenFlow智能交换机s2时的流入口为第一接口,与第三OpenFlow智能交换机s3相连的转出接口为第二接口。在流经交换机的数据被打上vlan2的标记后,由于优先级的提高,会按照新的路由路径进行传输。
通过RESTAPI接口顺序配置的脚本2为:
#SWITCHS4::
#Packetiscomingtoport2ofswitchS4forh2usingVLAN2tag:
curl-d
'{"switch":"00:00:00:00:00:00:00:04","name":"flow-mod-4","ingress-port":"2",
vlan-id":"2","active":"true","actions":"set-dst-mac=00:00:00:00:00:03,strip-vlan,
output=1"}'http://localhost:8080/wm/staticflowentrypusher/json
#SWITCHS3::
#Packetiscomingtoport1ofswitchS3usingVLAN2tag:
curl-d
'{"switch":"00:00:00:00:00:00:00:03","name":"flow-mod-5","ingress-port":"1",
vlan-id":"2","active":"true","actions":"putput=3,strip-vlan,output=2"}'
http://localhost:8080/wm/staticflowentrypusher/json
#SWITCHS2::
#Packetiscomingtoport1ofswitchS2forh2&srvusingVLAN2tag:
curl-d
'{"switch":"00:00:00:00:00:00:00:02","name":"flow-mod-6","priority","2000",
"ingress-port":"1","active":"true","actions":"set-vlan-id=2,output=2"}'
http://localhost:8080/wm/staticflowentrypusher/json
本发明利用SDN技术解决分布式防火墙网络一致更新问题的方法,具体步骤如下:
第一步,开启Mininet模拟平台并初始化SDN基础环境,修改自定义拓扑配置文件创建需要的网络结构,使用net命令查看链路状态;
第二步,运行/opt/opendaylight-snapshot/run.DelayedSFEP.sh命令来开启内部OpenDaylight控制器,并让主机之间互ping,测试平台环境是否能够很好的模拟真实有效的网络;
第三步,运行命令“sudomn--mac--arp--controller remote--custom monitors-topo.py--topo monitors”来使用定义好的Topo.sh脚本文件,创建需要的网络拓扑架构;
第四步,关于第一监控主机h1和第二监控主机h2,分别配置命令ifconfig h1-eth0:010.0.0.10和ifconfig h2-eth0:0 10.0.0.10,在第一监控主机h1和第一OpenFlow智能交换机S1的接口之间以及第二监控主机h2和第四OpenFlow智能交换机s4之间添加混叠IP地址10.0.0.10。创建task-init.sh脚本文件来对交换机安装初始流表条目,使第一监控主机h1来监测传送的网络流量;
第五步,在第一主机gen上运行命令“./udpsender 10.0.0.10 4000 300”,发送数据包到第二主机srv上并持续30S,同时运行命令“mininet>xterm h1 h2 gen srv”来开启每个主机的终端模拟器。第一监控主机h1负责监测来自经过验证的主机流量,一旦出现异常则报错并停止数据报文的传送;
第六步,为应对网络负载,让第二监控主机h2开始监测经过验证的主机流量,因此需要重新创建task-update.sh脚本来实现网络一致性更新并确保能完全监控发送的数据报文。此时后续交换机为s4、s3,初始交换机仍为s2,按照先后续交换机最后初始交换机的配置顺序下发流表,这里按第四OpenFlow智能交换机s4、第三OpenFlow智能交换机s3、第二OpenFlow智能交换机s2的顺序依次配置。
第七步,通过第一监控主机h1和第二监控主机h2开启的xterm终端屏显查看接收到的数据报文标号,判断所有数据是否都已经成功发送,如成功则关闭Mininet模拟环境平台,反之继续监测发送直至发送完成。
Claims (1)
1.一种利用SDN技术解决特定分布式防火墙网络一致性更新问题的方法,其特征在于,系统架构包括Mininet模拟环境平台、OpenDaylight控制器、RESTAPI应用编程接口和分布式防火墙网络拓扑结构;所述分布式防火墙网络拓扑结构包括第一OpenFlow智能交换机(s1)、第二OpenFlow智能交换机(s2)、第三OpenFlow智能交换机(s3)、第四OpenFlow智能交换机(s4)、第一主机(gen)、第二主机(srv)、第一监控主机(h1)和第二监控主机(h2),所述第一OpenFlow智能交换机(s1)、第二OpenFlow智能交换机(s2)、第三OpenFlow智能交换机(s3)、第四OpenFlow智能交换机(s4)顺次连接,所述第一主机(gen)与第二OpenFlow智能交换机(s2)相连,第二主机(srv)与第三OpenFlow智能交换机(s3)相连,第一监控主机(h1)与第一OpenFlow智能交换机(s1)相连,第二监控主机(h2)与第四OpenFlow智能交换机(s4)相连;该方法包括以下步骤:
第一步,开启Mininet模拟平台并初始化SDN基础环境,修改自定义拓扑配置文件创建需要的网络结构,使用net命令查看链路状态;
第二步,运行/opt/opendaylight-snapshot/run.DelayedSFEP.sh命令来开启内部OpenDaylight控制器,并让主机之间互ping,测试平台环境是否能够模拟真实有效的网络;
第三步,关于第一监控主机(h1)和第二监控主机(h2),分别配置命令“ifconfigh1-eth0:010.0.0.10”和“ifconfigh2-eth0:010.0.0.10”,在第一监控主机(h1)和第一OpenFlow智能交换机(s1)的接口之间以及第二监控主机(h2)和第四OpenFlow智能交换机(s4)之间添加混叠IP地址10.0.0.10;创建task-init.sh脚本文件来对第一OpenFlow智能交换机(s1)、第二OpenFlow智能交换机(s2)、第三OpenFlow智能交换机(s3)安装初始流表条目,使第一主机(gen)周期性的发送数据包至第二主机(srv)上,初始状态下由第一监控主机(h1)负责监测经过验证的主机流量;在下发的流表规则中对第一OpenFlow智能交换机(s1)、第二OpenFlow智能交换机(s2)、第三OpenFlow智能交换机(s3)进行配置,所有的流表项中添加匹配信息,设置VLAN为1,数据报文在传输前包头中的VLAN匹配字段设置为1;
流表中定义第一OpenFlow智能交换机(s1)的操作集,操作集中交换机剥离原有的vlan标记并将新的VLAN匹配信息值设置为1,将报文的目的MAC地址设置为第一监控主机(h1)的MAC地址,报文流经第一OpenFlow智能交换机(s1)时的转入接口为第二接口,转出接口为第一接口;
设定第二OpenFlow智能交换机(s2)为初始交换机,第一OpenFlow智能交换机(s1)、第三OpenFlow智能交换机(s3)为后续交换机,设置流表优先级为1000,流表中定义第二OpenFlow智能交换机(s2)的操作集,交换机剥离原先设定的vlan标记并将新的匹配信息vlan的值设置为1,报文流经第二OpenFlow智能交换机(s2)时的转入接口为第一接口,与第一智能交换机相连的转出接口为第三接口,与第三智能交换机相连的转出接口为第二接口;
将第三OpenFlow智能交换机(s3)中匹配信息vlan值设置为1,报文流经第三OpenFlow智能交换机(s3)时的转入接口为第一接口,转出接口为第二接口;
第一主机(gen)发送数据包至第二主机(srv)时,数据包流经第二OpenFlow智能交换机(s2)、第三OpenFlow智能交换机(s3),将第二OpenFlow智能交换机(s2)的第一接口作为数据包的入接口,第二接口作为数据包的出接口,第三OpenFlow智能交换机s3的第一接口作为数据包的入接口,第二接口作为数据包的出接口;
第一监控主机(h1)监测第一主机(gen)发送的数据包时,数据包流经第二OpenFlow智能交换机(s2)、第一OpenFlow智能交换机(s1),将第二OpenFlow智能交换机(s2)的第一接口作为数据包的转入接口,第三接口作为数据包的转出接口,第一OpenFlow智能交换机(s1)的第二接口作为数据包的转入接口,第一接口作为数据包的转出接口;
第四步,第二监控主机(h2)开始监测经过验证的主机流量,此时后续交换机为第四OpenFlow智能交换机(s4)、第三OpenFlow智能交换机(s3),初始交换机仍为第二OpenFlow智能交换机(s2),按照先后续交换机最后初始交换机的配置顺序下发流表,即按照第四OpenFlow智能交换机(s4)、第三OpenFlow智能交换机(s3)、第二OpenFlow智能交换机(s2)的顺序依次配置;
创建并运行task-update.sh脚本进行防火墙的一致性更新,确保能完全监控发送的数据报文,在该脚本中对第四OpenFlow智能交换机(s4)、第三OpenFlow智能交换机(s3)和第二OpenFlow智能交换机(s2)定义操作集进行更新;定义的操作集要求所有流表项中添加VLAN匹配信息并将其设置为2,传输的报文添加相应的匹配字段并将VLAN标记设置为相同的值2;
流表规则中定义第四OpenFlow智能交换机(s4)的操作集,操作集中要求交换机剥离原先的vlan标记并将新的匹配信息设置为2,报文的目的MAC地址设置为第二监控主机h2的MAC地址,数据报文流经第四OpenFlow智能交换机(s4)时的流入口为第二接口,转出接口为第一接口;
下发给第三OpenFlow智能交换机(s3)的流表中同样要求交换机剥离原有的vlan标记并将新的vlan匹配信息值设置为2,报文流经第三OpenFlow智能交换机(s3)时的流入口为第一接口,与第四OpenFlow智能交换机(s4)相连的转出接口为第三接口,与第二主机(srv)相连的转出接口为第二接口;
对于第二OpenFlow智能交换机(s2),将流表优先级提高至2000,同时将vlan匹配信息设置为2;数据报文在发送前包头中添加新的vlan匹配字段,当网络更新后流经交换机时按照新的匹配规则进行匹配,由于优先级的提高,数据流按照新的路由路径进行传输,流经第二OpenFlow智能交换机(s2)时的流入口为第一接口,与第三OpenFlow智能交换机(s3)相连的数据转出接口为第二接口;
第五步,通过第一监控主机(h1)和第二监控主机(h2)的xterm终端屏显查看接收到的数据报文标号,判断所有数据是否都已经成功发送,如成功则关闭Mininet模拟环境平台,反之继续监测发送直至发送完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710060115.3A CN106850616B (zh) | 2017-01-24 | 2017-01-24 | 利用sdn技术解决分布式防火墙网络一致更新的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710060115.3A CN106850616B (zh) | 2017-01-24 | 2017-01-24 | 利用sdn技术解决分布式防火墙网络一致更新的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106850616A CN106850616A (zh) | 2017-06-13 |
CN106850616B true CN106850616B (zh) | 2019-10-18 |
Family
ID=59121397
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710060115.3A Expired - Fee Related CN106850616B (zh) | 2017-01-24 | 2017-01-24 | 利用sdn技术解决分布式防火墙网络一致更新的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106850616B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107517129B (zh) * | 2017-08-25 | 2020-04-03 | 杭州迪普科技股份有限公司 | 一种基于OpenStack配置设备上行接口的方法和装置 |
CN107528737B (zh) * | 2017-09-14 | 2019-04-02 | 广州西麦科技股份有限公司 | 一种基于OpenDaylight配置Firewall的方法及装置 |
CN107529694B (zh) * | 2017-09-14 | 2019-04-02 | 广州西麦科技股份有限公司 | 一种基于OpenDaylight配置Firewall的方法及装置 |
CN109905272B (zh) * | 2018-12-28 | 2021-07-30 | 杭州电子科技大学 | 一种工业防火墙固件安全动态清洗方法 |
CN110933043B (zh) * | 2019-11-07 | 2020-07-31 | 广州市品高软件股份有限公司 | 一种基于软件定义网络的虚拟防火墙优化方法及系统 |
CN110912916A (zh) * | 2019-11-29 | 2020-03-24 | 杭州安恒信息技术股份有限公司 | 一种web应用防火墙配置同步方法、装置、设备、介质 |
CN112968882A (zh) * | 2021-02-03 | 2021-06-15 | 南京华鹞信息科技有限公司 | 一种基于网络功能虚拟化的推演多域网络安全策略的系统和方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015027924A1 (zh) * | 2013-09-02 | 2015-03-05 | 中兴通讯股份有限公司 | 一种流表更新的控制方法、装置及控制器 |
CN105338003A (zh) * | 2015-12-09 | 2016-02-17 | 中国电子科技集团公司第二十八研究所 | 一种应用于软件定义网络的防火墙实现方法 |
CN106686739A (zh) * | 2016-12-16 | 2017-05-17 | 清华大学 | 面向数据流的基于软件定义网络的无线网络资源管理方法 |
-
2017
- 2017-01-24 CN CN201710060115.3A patent/CN106850616B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015027924A1 (zh) * | 2013-09-02 | 2015-03-05 | 中兴通讯股份有限公司 | 一种流表更新的控制方法、装置及控制器 |
CN105338003A (zh) * | 2015-12-09 | 2016-02-17 | 中国电子科技集团公司第二十八研究所 | 一种应用于软件定义网络的防火墙实现方法 |
CN106686739A (zh) * | 2016-12-16 | 2017-05-17 | 清华大学 | 面向数据流的基于软件定义网络的无线网络资源管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106850616A (zh) | 2017-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106850616B (zh) | 利用sdn技术解决分布式防火墙网络一致更新的方法 | |
CN109802852B (zh) | 应用于网络靶场的网络仿真拓扑的构建方法及系统 | |
US11388081B1 (en) | Methods, systems, and computer readable media for impairment testing using an impairment device | |
Yeganeh et al. | On scalability of software-defined networking | |
US20210329004A1 (en) | Network verification method and apparatus | |
CN109039703A (zh) | 一种复杂网络模拟环境下业务场景网络快速构建的方法及系统 | |
CN104253749A (zh) | 一种基于软件定义网络架构的用户端分布式路径计算方法 | |
CN103618645A (zh) | 智能模拟复杂网络环境的测试系统及其方法 | |
US20190319836A1 (en) | System and method for configuring ied process bus network switches from substation topology specification | |
Troia et al. | Machine-learning-assisted routing in SDN-based optical networks | |
KR102045556B1 (ko) | 통신 시스템에서 네트워크 서비스에 기초하여 네트워크 디바이스를 제어하기 위한 장치 및 방법 | |
CN106254178B (zh) | 一种基于nfv的网络试验平台nfvntp及其试验方法 | |
Marschke et al. | Software Defined Networking (SDN): Anatomy of OpenFlow Volume I | |
CN110493062A (zh) | 一种基于Mininet的电力通信网的仿真平台 | |
CN109587010A (zh) | 一种连通性检测方法、流转发设备及网络控制器 | |
CN102638363A (zh) | 基于SP Guru的电力调度数据网设备升级改造仿真预演方法 | |
Rostami et al. | ORAN: OpenFlow routers for academic networks | |
Ramadona et al. | The simulation of SDN network using POX controller: Case in Politeknik Caltex Riau | |
CN105323109B (zh) | 互连网络仿真器及用于仿真互连网络的方法 | |
US11765068B2 (en) | Methods, systems, and computer readable media for programmable data plane processor based traffic impairment | |
CN103475590A (zh) | 一种网络拓扑自动切换的装置及方法 | |
CN111343043B (zh) | 一种深空通信网络仿真验证平台构建方法 | |
Safrianti et al. | Optimization of Universitas Riau Data Network Management Using Software Defined Network (SDN) | |
Hammoud et al. | The contribution of mda in software-defined network: A survey | |
CN106059804B (zh) | 基于改进的opnet-hla的大规模网络仿真方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20191018 |
|
CF01 | Termination of patent right due to non-payment of annual fee |