网络分层模型
OSI模型与TCP/IP模型对比
TCP/IP模型详情
TCP/IP协议:IP端到端的通信,MAC点到点通信
数据包转发模型
NAT(网络地址转换)
NAT是一种把私有地址转换为公网地址的技术,NAT会修改IP报文的源IP地址和目标IP地址,如上图,当192.168.1.6和192.168.1.9请求www.xxx.com时,具有NAT功能的路由器会把请求路由到公网IP,并替换源IP地址为公网IP地址及端口,当请求返回时,再把公网IP替成私网IP地址,然后路由到私网
DR(直接路由)
- 代理服务器和Server都使用VIP对外提供服务,但是只有代理服务器的VIP对外可见
- 当请求到达时,代理服务器替换目标MAC为Server MAC,源MAC为DIP MAC,把数据包分发给后台Server
- 响应数据包直接通过VIP所在接口(lo接口),通过网卡直接发给客户端
- 由于是修改的是MAC地址,代理与Server必须处于同网段
TUN隧道
TUN隧道模型可以在客户端到代理服务器建立隧道,也可以在代理服务器和Server之间建立隧道。
- 隧道模型是在原数据包外再封装一个源ip和目标ip,分为客户端封装代理拆包(比如VPN)和代理封装Server拆包两种方式
- RIP可以是公网IP,也可以是私有IP
- 需要使用IP隧道协议,具有封包拆包开销
高并发
负载均衡模式
四层负载均衡
LVS
LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统,详情参考LVS主站,目前已是linux内核一个模块(ipvs),实际使用需要安装ipvsadm管理工具
七层负载均衡(反向代理)
高可用
- 解决单点故障的方式是增加机器,一变多,采用主备模式或主主模式
- 怎么确定主机故障,可采用主机主动通告和备机轮询主机两种方式
- 如果有多台备机,怎么确定那台备机提供服务,一般采用权重方式
keepalived
主要功能
- 监控自己服务
- 通告master状态,监控slave状态,故障后,选出新的master
- 监控后台服务器状态,故障后自动下线
- 配置vip、ipvs
缺点
keepalived非分布式服务,本身存在单点故障问题