暑期实训SDN--类防火墙
暑期实训的第二个项目,虽然没有在线上平台测试,但是在本地测试,应该可以满足要求(๑•̀ㅂ•́)و✧
0x01 项目背景简介
言简意赅:实现防火墙的功能。如上图所示:
Server上开启视频服务,端口为8080
H1上开启Web服务,端口为80
**要求:**实现H2正常访问Server和H1的服务,H1无法访问Server的视频服务,但能SSH连接Server。
**分析:**看似问题复杂,其实问题很明确,给SW1下发流表,丢弃H1访问Serve视频服务的数据包。
**注释:**我和Steve·Curcy观点相同,需要丢弃的数据包仅需三元组就可以唯一确定,(source-ip,destination-ip,destination-port),至于不用source-port的原因是,在更加复杂的网络中,若还是匹配source-port,会导致H1无法访问其他服务器8080端口的服务,这是不符合一般逻辑的。
0x02 Web应用预期
主界面:
流表下发:
![image-20200709213325267](/Users/lowbee/Library/Application Support/typora-user-images/image-20200709213325267.png)
0x03 开发过程
类防火墙比负载均衡要困难的多,一个人无法两三天内完成,特别是类防火墙需要设计web前端应用,因此还需要了解Django的web服务搭建,这次和Steve·Curcy分工明确,他负责前端的设计(js,html,css全是他写的,有个大佬带就是爽(~ ̄▽ ̄)~),而我负责后台的搬砖工作(~ ̄▽ ̄)~、顺便总体测试一下。
这两天的主要工作:
index.html
index.js
index.css
由于还未征求他人同意,源码就先不放了,后期再议。
以下是topo代码:
1 | from mininet.net import Mininet |
0x04 作品展示
目前实现的功能:
1.自动获取switch_id
2.下发/删除流表
3.自动查询当前流表
4.批量删除流表
5.远程连接交换机(理论上可以)
6.拓扑的管理(实在是有点难)6.广告位ヾ(=・ω・=)o
下发流表前,先看下交换机当前的流表,以下流表是交换机能实现拓扑内通讯的基本流表。
页面流表展示:
查询后台流表:
流表删除:
查询后台流表: