网络模型, 负载均衡实现模式(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的强一致性来解决这个问题。