应用程序交付网络
应用程序交付控制器(ADC)
网络服务(Networking Service):适用于多个应用程序的任务,例如安全、监控、加速、卸载等
多个应用程序可以共享一项服务。
ADC(Appliance that provide network services): 提供网络服务的设备,例如:
- 负载均衡(load balancing)
- 防火墙 (firewall)
- 代理 (proxy)
- SSL卸载 (SSL卸载)
负载平衡器是ADC的一个示例,也是大多数ADC的基本组件
其他ADC:防火墙、反向代理、SSL卸载、TCP多路复用、HTTP压缩
负载平衡概念和模式
负载平衡器(Load Balancer):允许根据需要添加服务器。
服务器群集(Server Cluster):集中管理的一组服务器在一个应用程序上协同工作。显示为一个服务器。
服务器场(Server Farm):一组独立的服务器。
Probes:负载平衡器发送的合成(Synthetic)请求,以查看服务器和应用程序是否正常。例如,HTTP获取请求。
虚拟IP: 负载平衡器的面向客户端的IP地址。
粘性表:列出客户端已映射到的服务器。
预测器:负载平衡规则
- 循环(round-robin)
- 最少连接数 (least connections)
- 哈希 (hashing)
- 最小负载(least loaded)
问题:如何使用DNS实现负载均衡
Domain Name System (DNS) allows multiple IP addresses for a name.
域名系统(DNS)允许一个名称有多个IP地址
On query, DNS returns a list of addresses. The order of entries is rotated on each subsequent query. For example, abc.com.
查询时,DNS返回地址列表。在每个后续查询中,条目的顺序都是轮换的。例如,abc.com
使用DNS实现负载均衡存在的问题
- DNS不知道服务器的地理位置
- DNS不知道服务器是否已加载
- DNS不确定服务器是否启动
- 添加或删除服务器太慢
负载均衡模式
对客户端请求进行了哪些更改,以便将请求路由到正确的服务器?
- Dual NAT (One-Arm mode) (双NAT)
- Server NAT (Routed Mode) (服务器NAT)
- Transparent Mode (Direct Routed Mode)(直接路由模式)
网络地址转换(NAT)
运营商级NAT(Carrier Grade NAT)
一些地址被专门分配在运营商自己的网络中的使用,但不能在公共互联网上使用。这些地址可以在其他运营商的网络中重复使用=》共享。
双NAT(Dual NAT)
也称为“One Arm Mode”
负载平衡器更改客户端请求的源地址和目标地址以及目标端口号。就像常规NAT。
服务器向负载平衡器发送响应,负载平衡器使用端口#查找客户端地址并将其转发给客户端。
客户端和服务器可以位于同一子网上。
服务器无法看到真实的客户端地址。
服务器NAT(Server NAT)
也称为“Routed Mode”
负载平衡器更改客户端请求的目标IP不更改端口号。
服务器将响应直接发送到客户端
将负载平衡器设置为默认网关。
=》所有服务器响应都经过负载平衡器更改响应的源IP地址
仅当客户端和服务器位于不同的子网上时才有效。
服务器可以看到真实的客户端地址(有利于安全)。
透明模式(Transparent Mode)
也称为“直接路由模式”
没有任何变化 =》透明 它只需更改MAC地址并将帧定向到选定的服务器。
防火墙负载均衡
SSL Offload(SSL卸载)
某些负载平衡器提供SSL卸载
- SSL Termination (SSL 终止):客户端到LB是安全的。LB到服务器是没有防备的。LB可以基于应用程序数据选择服务器。
- SSL Initiation (SSL 启动):
1)当客户端是本地但服务器是远程时使用。
2)通过SSL卸载帮助客户端。
3)一个证书可以用于所有客户端=》节省成本 - End-to-end SSL (端到端SSL):
客户端到LB,LB到服务器都是安全的。
内部加密可以更简单。一个证书适用于所有服务器。
参考资料:
Raj Jain Washington University in Saint Louis , MO 63130 Jain@cse.wustl.edu
This class lecture are at: http://www.cse.wustl.edu/~jain/cse570-13/