现象
九月十六号开始 oj注册收不到验证码
oj 突然502
查找原因
第一次排查
初现端倪
由于阿里云免费权益更改,我们首先是去判断是否超额 随后在日志中观察到只有ipv6的访问记录没有 ipv4 的访问记录 此时怀疑是学校方面网关导致的 结合近日强推only ipv6 我们得出找lxh老师是否学校网关最近发生的了变动 希望学校方面可以把配置改回来支持v4
结局
学校方面回应不是他们的锅,可能是我们防火墙配置的问题 由于学长最近面试比较忙 暂时搁置
九月22日现象更新
ping -4 acm.sdut.edu.cn 不通
ping -6 acm.sdut.edu.cn 也不通
分析原因
木杉学长测试了一下dns发现dns情况糟糕
并且Cooper学长问谁最近动了防火墙 由于9月13日 在185服务器上搭建了gitlab服务 此时目光被转向了新搭建的gitlab
持续追踪
九月二十六日 服务器上新增加了apache2 优先级比原来的nginx还高 占用了端口 nginx启动不起来 由于我的粗心 没有注意到gitlab的push调用使用的是apache 但是经过Cooper学长的排查后 发现禁用apache 后仍无法恢复同时 Meik学长发现服务器通过ipv4连网关都连不上 但是可以通过ipv4访问局域网内的其他服务器
根因定位
学校网关把我们的ipv4流量拦截了
学校认为是我们防火墙的问题 但是我们往外的ipv4 也是失败的
证据邮件发送失败 如果是防火墙策略发生变化 应该是单向变化
第三次排查
到学校机房中去检查网络 发现web服务器可以正常访问局域网 但是无法访问到外面
随后又尝试了test服务器的网络 可以正常访问因特网 局域网
至此 已完原因定位 学校方面拦截了web服务器的ipv4流量
解决方法
第一种
首先是学校方面修改拦截策略 acm.sdut.edu.cn 解析到ipv4 可以解决这个问题
第二种
是用nginx 代理 acm.sdut.edu.cn 解析到新的nginx代理服务器的ipv4, 也可以解决这个问题 Cooper学长已完成部署
镜像网站是v.sdutacm.cn
优化改进
此事故不管是技术侧还是管理侧都有很多优化改进。此处我们只列举当时制定的技术侧核心优化改进方向。
1咱们三台服务器网络配置都不一样,出了问题都没得参考
2运维方面应该知识过硬 不应该像我一样 忘了gitlab还使用apache 还有应当具备一定的自我解决能力,了解计网方面的知识
隐藏问题
九月二十六日晚oj 502了又 之前oj都是自启动的 不过手动启动后恢复正常