lvs 软负载均衡
先记录几个命令
# 添加/删除 tcp/udp 监听
ipvsadm -A/D -t/u 47.94.220.13:5001
# 添加/删除 tcp/udp 转发规则
ipvsadm -a/d -t/u 47.94.220.13:5001 -r 192.168.110.2:5001
# -l 列出已配置的规则 -n 不要给端口号取别名
ipvsadm -ln
# -c 统计信息
ipvsadm -lnc
# 更多信息
ipvsadm --help
上面这些个命令备忘之后, 也许再也用不上了. 关键是发现了下面这些好东西:
为什么性能比 nginx 高
- nginx 在第7层, lvs 在第2层或3.5层. 层数的区别, 名面上就要多处理几层数据解析.
- nginx 要维护 tcp 连接, lvs 不需要.
- 更关键的, nginx 是用户程序, ipvs 是内核程序, 没有内核态到用户态的切换.
隧道模式就是个垃圾
运维跟你什么仇什么怨, 不能把机器配到同一个网段呢…
URPF 教做人
在学习 lvs 期间, 看到 DR 模式的特点: response 的流量不用经过负载均衡器.
于是冒出了个想法: 家里的群晖通过 tuntap 虚拟网卡与云服务器组网(或者 蒲公英, zerotier 之类的组网方案), request 到云服务器, 均衡到家里的群晖, 群晖返回的 response 通过家里的宽带发出去. 不就是一个高性价比的内网穿透方案吗…
然而, 伪造的 vip, 不是运营商分配的, 接入网的路由器都过不去.