基于Linux策略路由的多线路智能网关系统

早在两年前就计划对现在的内网管理系统进行一次全面的升级了,由于种种原因一直在搁置,从年初开始本系统终于有了实质性的进展,本系统的第一期项目也完成了需求、开发并正式落地投入使用,这套系统运用Linux下的rt_table、iproute、iprule、iptables、ipset、tc、netfilter-layer7、dpdk等技术实现支持多出口线路切换、IP分配、限速(白名单)、互通、流量统计等一系列功能,并通过SpringBoot+Vue打造的一套Web前端进行可视化管理。下面来讲一下这款产品的设计,这套设计基于前篇文章 系统需求分析管理[指导规范] 设计。

产品设计

用例图


智能网关设计针对5类用户,分别为网络工程师、网管、值班、员工、领导。

  • 网络工程师:负责系统整体维护;
  • 网管:使用本系统分配回收员工IP;
  • 值班:主要使用本系统在线路故障时操作切网;
  • 员工:可以查看自己的带宽使用情况;
  • 领导:可以查看自己所负责部门的带宽使用情况以及员工带宽使用情况;

ER图


在逻辑上划分11个实体,其中员工、部门采用OA数据

  • 主机 :员工办公电脑或者在办公区的服务器,以IP作为标识
  • 内网网段:每个网段统一采用24位192.168.0.0的子网,以网段第三位为标识
  • 出网线路 :出口公网IP地址,以IP作为标识
  • 接入商:宽带供应商名称,以名称作为标识
  • 主机流量:以分钟记录主机使用的流量情况,以时间+主机为标识
  • 目标地址:目标访问的地址及协议,以协议+地址+端口为标识
  • 特殊权限:特殊网络权限如QQ权限等,以名称为标识
  • 限速规则:限速的规则,以名称为标识
  • 白名单类型:限速的白名单规则,类型为标识
  • 员工:公司员工,采用OA取数据
  • 部门:公司组织结构,采用OA取数据

数据库模型


这里就不做介绍了,基于ER设计的数据库

产品结构


1.0版本所实现的功能节点

产品原型














重点流程






真正在做这套系统的时候的重点流程还有很多,以上的两个一个用于让开发成员理解用户,线路,出口的逻辑关系,一个用于了解流量的抓取逻辑。

系统线上效果












最后,目前整体1期功能已经上线,2期功能主要是集成WIFI管理,当然说一下为什么这个网关系统要叫智能网络,我们规划要运用算法针对主机进行智能的线路调配,以达到各线路最大化的带宽利用。