截至到2008年9月22日,经过调试后的ISA01已经稳定运行了一个星期,没有出过服务失败问题,至此、ISA问题已经解决。
经验与总结:
总结
由于ISA系统封装了windows的TCP/IP协议栈、因此,ISA故障会由多个方面引起、网络、操作系统、策略、配置、参数、ISA后台数据库。所以在进行ISA诊断的时候需要2个必备条件、而这2个必备条件不具备导致了先前许多公司与技术工程师束手无策。
n 经历ISA服务失败的前后、保留现场进行线索收集
n 具备对网络、交换机、windows操作系统、IT基础服务(DNS、AD、路由)、ISA策略、SQLServer数据库、网络安全与攻击防御、编程水平(Windows SDK、DDK、T-SQL、C++)的全面掌握。
u 熟悉网络、交换机、路由器;这里对应到网络性能诊断、需要熟悉网络协议、网络服务工具、设备调试。对网络造成的ISA故障进行排除。
u 熟悉windows操作系统原理;重点掌握windows内存管理、对winsocket封装熟悉、否则无法发现此ISA系统的罪魁非分页文件池错误进行鉴别,更加无法修正了。
u 熟悉IT基础服务(DNS、AD、router);这里对应到对DNS服务、AD服务正常运行,排除由此带来的ISA问题的嫌疑。
u ISA策略与配置;解决ISA问题、当然要熟悉ISA,ISA原理本身就是网络安全范畴、ISA方面的技能就是安装、配置、策略了,因此这是必备技能。
u SQLServer数据库;由于ISA内置的SQLSERVER数据库的精简版MSDE,MSDE本身也有内存、系统缓存等问题需要进行检查与排除、所以务必要可以掌握OSQL的命令行使用。
u 网络安全与攻击防御;诊断中发现有SYN攻击、如何去减少、一定要对网络安全基础知识有了解、否则也就无法去了解怎么配置改善SYN攻击。
u 编程水平:
l Windows SDK:许多命令行工具都存在于Windows Resource Kit Tools、Windows Support Tools、SDK中、而且在上述SYN攻击代码中使用了VC++编程的代码大量调用了SDK中提供的API
l Windows DDK:查看非分页文件池大小务必使用Debugging Tools for Windows (x86)、WinDbg,DDK本身是windows的内核驱动编程工具,因此要熟悉DDK命令、C++语言
l T-SQL:MSDE作为ISA后台数据库使用、在我上次提交的21280错误的排错方法中,使用SQL语言调整MSDE的性能中使用到。
l C++;SDK\DDK中使用的API都以C++方式提供、而且在我的参考文献《深入解析windows操作系统》中描述的内存管理原理也是用C++语言来描述的,因为原理复杂、所以采用程序原语表述更加容易理解。
系统的诊断是多维度的,不能ISA出了状况就只关注ISA,IT系统是一个有机的系统整体、需要多维度的检查、这样的思路与结论才是准确的。
需要依靠多种诊断工具和软件、但是不能完全依赖软件报出的结果。尽量采用微软原厂的工具来诊断。
原理的分析是最关键的,了解了原理才知道使用什么工具、寻找什么文献帮助、寻求哪方面的技术支持。
建议
v 建立完善的ISA监控预警机制、逐步把服务质量与ISA性能管理结合在一起。
v 使用迅雷、电驴等P2P用户的情况严重、这些软件无法使用策略等手段来禁止、所以需要进行技术手段与管理手段结合的方式来进行:技术手段建议可以在ISA前端部署一套网络流量\上网行为管理系统、配合终端的桌面管理系统,有效进行IT基础环境的专责管理。管理手段建议可以和流程、人员、稽考结合在ITIL整体来体现、这样一切结果都是流程化、统一化、避免了主观评判与管理因素。
v 购买正版ISA、获取微软原厂服务支持。虽然技术支持可以寻求武汉本地公司和个人来解决、但是知识库没有在客户方得到沉淀和积累、这样对于每个类似此次问题无法从项目中得到知识库建设的增长、自身IT人员技术水平也难以得到提升、更谈不上有效的绩效水平管理。
v ITIL管理不是口头的,需要有每个子系统都与之接洽的大局观与思路、从流程、人员、知识库、服务监督、服务响应、考核等方面来建设。我可以安排客户参观ITIL与运维做的比较好的成功案例客户供借鉴参考,如神龙、武钢、华中电网、东风有限等。