接上级主机商(DigitalOcean)通知,新加坡机房将于北京时间2017年6月13日0:00~2:00进行边界路由器软件升级。届时LUG使用的网络出口主机可用性将下降。
受到影响的服务:
- 镜像站反向代理服务
- LUG VPN
- Light Accelerator
- Telegram Web
- Neat DNS
接上级主机商(DigitalOcean)通知,新加坡机房将于北京时间2017年6月13日0:00~2:00进行边界路由器软件升级。届时LUG使用的网络出口主机可用性将下降。
受到影响的服务:
2017年4月7日 0:00 起,我校移动线路出现故障,LUG旗下多项服务受到影响:
给您带来的不便,我们深表歉意。
update 02:34 移动线路恢复
由于一些历史原因,LUG自建DNS服务使用过多个版本的IP地址库,但IP地址库的准确性均不高。这导致部分用户解析结果不够精确(如电信用户解析到移动IP),影响使用体验。
我们通过分析BGP/ASN数据得到一个全新的地址库,大幅提升了IP数据库的准确性。目前LUG DNS服务已经应用新的IP数据库。在此感谢boj师兄的建议~
代码已开源:china-operator-ip
涉及到的服务包括但不限于:
LUG的大部分网络服务拥有三条线路:
如果您遇到解析结果与所在运营商不符的情况,请与我们联系。
接上级主机商(DigitalOcean)通知,新加坡机房将于北京时间2017年2月14日0:00~6:00进行硬件维护。届时LUG使用的网络出口主机将停机约10分钟。
受到影响的服务:
2016年8月26日 17:45 科大电信出口遭受DDOS攻击,目前出口丢包率较高。
公网访问以下服务的电信接入点,将变得不稳定:
请用户暂时切换至教育网接入点或移动接入点。
P.S. 校内用户不受影响
update 2016.08.26 18:29:26: jameszhang联系电信封掉了受攻击的IP,服务恢复正常。总故障时间44分钟。
2016年6月28日,由于虚拟机在热迁移过程中出现错误,部分服务中断,维护人员正在修复中。
受影响的服务包括:
非常抱歉给您带来不便。
update 13:56 : 服务已恢复。
学校移动出口计划于5月27日0:00~3:00维护,受影响的LUG服务:
以上
学校移动出口计划于5月20日0:00~3:00维护,受影响的LUG服务:
以上
应boj大大的要求,将此次负载均衡的技术细节记录下来。本文供维护人员参考,请大家多多拍砖。
由于OpenVPN在处理数据包的校验、加解密、封装时都需要大量CPU资源,OpenVPN不支持多线程处理,导致服务器的CPU利用率率长期保持在30%以下(4核心服务器)。为了提升服务器CPU的利用率,增强数据处理能力、提升VPN总带宽,为服务器添加了4个独立的OpenVPN工作进程,使用ipvsadm做udp负载均衡。
1. 创建4个OpenVPN配置文件:/etc/openvpn/server-worker-{1..4}.conf(绑定10001~10004端口),并修改相应的路由表配置文件。
2. 启动4个工作线程
service openvpn start server-worker-{1..4}
3. 设置ipvsadm超时参数:
ipvsadm --set 0 0 35
三个参数代表:TCP sessions, TCP sessions after receiving a FIN packet, UDP packets 的超时时间;0表示不修改当前参数。
4. 绑定需要负载均衡的端口(以202.141.160.95:1194为例,其余类似):
ipvsadm -A -u 202.141.160.95:1194 -s rr
其中 rr 表示采用轮询(Round Robin)策略。
5. 添加后端
ipvsadm -a -u 202.141.160.95:1194 -r 202.141.160.95:10001 -m
类似的,可以添加端口号为10002~10004的后端。
其中 -m 表示采用地址伪装(masquerading)的方式访问后端。因为要保证从A网卡来的数据包仍然从A网卡返回,因此不能使用gatewaying和ipip的方式。(但masquerading效率相对较低)
到此,负载均衡已经部署完成。
经过观察,负载均衡的效果并不理想,依然存在某进程CPU占用率100%,而其他几个核心空闲的情况。以下是优化方式:
一、采用最小连接(Least-Connection)策略替换轮询(Round Robin)策略
由于用户可能随机断开连接,而轮询策略并不会感知这一因素,导致每个后端的连接数有一定差距。(注:使用ipvsadm -L命令可以查看分配到每个后端的连接数)
将连接策略改为Least-Connection:
ipvsadm -E -u 202.141.160.95:1194 -s lc
P.S. 修改策略不会导致原有连接中断。
二、添加多个后端
由于每个用户的带宽使用情况并不一样,当有多个大流量用户被分配到同一个进程时,就会出现单线程CPU100%,其余空闲的情况。
假设有4个工作进程,160个用户,2个大流量用户,这两个大流量用户“撞车”的概率为:0.245。
假设有16个工作进程,其余条件不变,则撞车概率概率为 0.014。
为了减弱这类大流量用户“撞车”的影响,可以适当多添加一些工作进程。当前创建了16个工作进程,CPU利用率最高达到为83%(为什么不是100%呢?)。
以上
由于 全校范围的网络故障,3 月 9 日下午 17:00 ~ 18:00 网络时断时续,3 月 10 日凌晨 0:00 ~ 6:00 大约每半小时断网一次。
昨天的故障和 3 月 5 日持续 45 分钟的故障,原因估计是 近代物理楼某接口发送大量 ARP 包导致核心交换机 CPU 过载,换句话说,就是核心交换机被拒绝服务攻击了。
现代交换机通常是使用 ASIC(专用芯片)或 FPGA 来做绝大部分数据包的转发,只有少数控制包(如 ARP、STP 包)要交给交换机 CPU 做处理,交换机的 CPU 通常计算能力非常有限。例如 MAC 地址学习功能一般是由 CPU 进行的,首先所有 ARP 包被发到 CPU,CPU 把 MAC 地址和物理端口的映射关系写入到 ASIC 或 FPGA 中的二层转发表。如果交换机收到大量 ARP 包,又没有在入站端口对 ARP 包进行限速,就会导致交换机 CPU 忙不过来。
非常抱歉近几天的网络故障给您带来的不便。同时强烈谴责(有意或无意)进行网络攻击的人,对全校师生造成了这么大的麻烦!