事件背景
无论我们使用IDC数据中心、私有云或公有云,互联网带宽无疑都是我们会使用到的一类重要资源。一般来说,每段带宽资源还会附带提供若干公网IP地址资源,当然了“朱门(美国)酒肉臭,路有冻死骨”呀!咱们国内在使用公网IP时是按个算的,有钱人家是按段算的,曾见过有人在美国拉了一条互联网宽带,直接给了一个C段的地址。
既然咱自己的日子不富裕,就更需要把能用的资源尽量管好了,不能丢、不能忘,还得尽可能得复用(NAT端口转发)!
当然了,另一个原因就是,当然我们的业务系统分布在国内外十几处或几十处IDC或云数据中心的时候,只能通过信息化、自动化地技术手段,才能达到高效管理资源信息、资源使用信息的目的。
我们下面的就是一个高效管理和控制互联网带宽使用信息,公网IP资源使用信息,以及NAT端口转发使用信息的例子。
需求分析
互联网带宽显然是和特定的一段公网IP资源有直接的关联关系的。我们在归纳带宽的管理需求和公网IP的管理需求时,很重要的一个方面就是要能充分得体现出带宽资源和公网IP资源,甚至于公网IP资源与端口资源间的关联关系。
互联网带宽管理
从实践中我们归纳下一段互联网带宽,至少会包含以下相对重要的属性信息。
属性设计:
- 名称【点击后进入公网IP地址资源的列表页】
- 运营商
- 电路编号
- 带宽
- 所属机房
- 网关
- 掩码
- 起始IP
- 终止IP
- DNS
- 开通时间
- 状态【使用中/已下线】
- 查看维护日志
- 备注
公网IP地址资源管理
虽然我们设计了公网IP地址资源这样的一个数据表,但该表中数据将主要是由程序自动填充进来。如果有必要的话,管理人员可以手工维护一些备注说明信息。在删除一段带宽记录时,也会由后台程序自动地把与之相关的公网IP地址记录从该表中删除。
公网IP地址属性设计:
- IP地址【根据带宽定义时的起止IP地址自动计算出】
- 所属的互联网带宽【外链关键至带宽表】
- 端口信息【这不是一个属性,只是要提供一个按钮,点击后执行查看该公网IP相关的NAT端口配置信息列表】
- 状态【使用中/空闲,根据获取到的防火墙配置信息做自动地识别和状态展示】
- 备注
查看变更日志
一项资源的配置管理,很重要的一个方面就是资源的生命周期管理。我们希望任何时候都能掌握到这项资源是什么时间创建、发生过哪些变更以及资源状态的信息,即便是资源的下线、销毁的事件记录,我们一样需要保留下来备用。
因此,我们在设计互联网带宽管理需求时,为此设计了一个记录配置变更事件的操作日志的功能需求。
功能开发
库表建模
BindWidth表,维护互联网带宽信息
PublicIPAddress表,维护公网IP资源信息
功能函数
简单地讲,就是需要为互联网带宽数据实现一套增、删、改、查的功能。
在实现bindwidth_add()函数时,执行一个自动填写公网IP资源表数据的子函数。同时通过调用SaltStack Api从使用这段带宽的防火墙设备配置数据中检测出公网IP地址是否活跃的状态。
WEB页面展示
互联网带宽的列表页
- 带宽的增、删、改操作都放在列表页中;
- 点击某一段带宽的名称时,会打开该段带宽对应的公网IP资源列表页面,如下图所示;
查看公网IP资源的列表页
- 使用绿灯图标表示当前IP地址的状态为:使用中;相应的,灰色灯图标表示该地址暂时没有被使用;
- 点击“查看端口”按钮时,打开查看NAT端口配置信息的列表页,显示某公网IP相关的NAT端口配置信息,如下图所示;
查看NAT端口配置信息的列表页
查看互联网带宽的配置变更日志
在互联网带宽的列表页中,我们点击某一个带宽记录的“变更日志”按钮,可以浏览该资源的一个完整生命周期内的变更事件记录。
[完]