网络模型, 负载均衡实现模式(NAT,DR,TUN),LVS四层负载,Keepalived实现高可用
三次握手: 握手成功后在服务端开辟资源
四次挥手: 要确保服务端释放资源
资源包括哪些: 文件描述符,端口,内存等
网卡: ip地址,子网掩码,网关,DNS
ip地址: 省市区(网络号) + 计算机门牌号
子网掩码 : ip地址 & 子网掩码 = 得到省市区(网络号)信息
网关:下一跳的目标路由
route -n 路由表 :下一跳机制,每个路由表只存储周边一步之内的数据
默认网关: destination是0.0.0.0, genmask是0.0.0.0 , 与运算后就是默认网关。
网络工程师的工作是要规划骨干网络,哪些数据包走哪些网络。配置路由下一跳。
gateway是0.0.0.0 ,表示不需要下一跳,网络是直连的。在局域网内
完整通信定位: 端口号 + IP地址 + MAC物理地址
四层负载均衡服务器: 不握手,只转发,数据包经过只看一下信息来决定转发到哪, 流量负载层
七层负载: 握手 , 比如nginx,接入层
NAT(Virtual Server via Network Address Translation): 网络地址转换,一般记录在路由器的路由表上,基于三层
S-NAT : 源地址替换
D-NAT : 目标地址替换 ,用于四层负载均衡
弊端:带宽成为瓶颈, 请求带宽消耗远远小于 返回带宽消耗。 比如请求百度 ,返回一个很多内容的页面。
一个现象: 个人电脑发送东西带宽很慢,下载很快,运营商压榨了发送的带宽。
DR(Virtual Server via Direct Routing):基于2层的MAC地址欺骗,RS和负载要在同一局域网(距离就是下一跳,所以需要在同一交换机下)
隐藏VIP,对外隐藏,对内可见,对ARP协议进行修改
负载均衡器在链路层封装一层RIP的MAC地址。
用的最多
TUN隧道技术(Virtual Server via IP Tunneling):负载均衡服务器和Real Server不在同一机房。
参考:https://zhuanlan.zhihu.com/p/95736379
LVS : 四层负载均衡技术。 模块 ipvs
vmware8 , vmware虚拟网卡 NAT。 windows下 vmware8-NAT软件
ipvsadm 使用 和配置。
LVS服务那台机器是没有tcp连接的,netstat -natp 。
高可用问题解决: 1. LVS单点故障问题(lvs服务挂了) 2. RS应用服务某些节点挂掉无法自动下线问题(一部分用户使用异常)。
搭建: LVS主备实现。
使用keepalived : 解决单点故障 ,监控服务是否可用。
nginx的HA高可用也可以用keepalived
配置:vrrp:虚拟路由冗余协议
keepalived本身也是不可靠的,也会出现单点问题。 这就是一个组件为了解决另一个服务的可靠性问题,而引入了下一个不可靠问题,没完没了。
所以需要借助zookeeper的强一致性来解决这个问题。