Ali*_*Ali 9 nat amazon-web-services amazon-vpc
我一直在尝试了解路由在具有公有/私有子网的 AWS VPC 中是如何工作的。
我有一个亚马逊推荐的设置,在公共子网中有一个 ELB 和 NAT,在私有子网中有一个 web 服务器。我按照http://blogs.aws.amazon.com/security/blog/tag/NAT配置了安全组 (SG) ,并且一切正常。伟大的!
我还不明白的是 HTTP 回复是如何从上述架构中的网络服务器实例返回的。
所以一个网络请求通过 HTTP 从公共互联网进来,80 次命中 ELB,ELB 将它带到网络服务器的私有 IP,很酷。现在网络服务器必须回复。据我了解,回复将通过不同的更高 TCP 端口 (1024-65535)。NAT SG 只允许通过端口 80 和 443 的出站流量。那么此回复如何返回公共 Internet。它不能通过 NAT。这是否意味着回复通过 ELB 返回。Amazon 图表未将 ELB 流量方向箭头指示为双向,ELB 文档也未说明 ELB 的行为类似于有状态 NAT。可以?
Mic*_*bot 11
图中的箭头仅表示连接建立的方向——而不是流量。
是的,返回流量通过 ELB 返回。
但是,它不是有状态的 NAT——它是一个 TCP 连接代理。ELB 机器接受配置的侦听端口上的 TCP 连接,如果如此配置,则终止 SSL 会话,并建立到后端服务器的新 TCP 连接。如果监听器配置为 HTTP,则 ELB 以负载感知模式运行,解析、记录和转发 HTTP 请求到后端,否则它与负载无关,与后端建立新的 TCP 连接 1:1对于每个传入连接,以及“将管道捆绑在一起”(没有 HTTP 级别的感知或修改)。
无论哪种方式,到您的应用程序的传入连接的源地址都将是 ELB 节点的源地址,而不是原始客户端的源地址。这就是响应流量返回到 ELB 以返回到客户端的方式。
在 http 模式下,ELB 添加(或附加到)X-Forwarded-For
标头,以便您的应用程序可以识别原始客户端 IP,以及X-Forwarded-Proto: [ http | https ]
指示客户端连接是否使用 SSL 并X-Forwarded-Port
指示前端端口。
更新:以上指的是一种负载均衡器,现在称为“ELB Classic”或 ELB/1.0(在它通过 HTTP 健康检查发送的用户代理字符串中找到)。
较新的第 7 层平衡器、Application Load Balancer 或 ELB/2.0 的操作与流量类似。从 ALB 中删除了第 4 层(“透明”TCP)功能,并显着增强了第 7 层功能。
最新类型的负载均衡器网络负载均衡器是第 3 层均衡器。与其他两个不同,它的行为非常像动态 NAT,仅处理入站(外部发起的)连接,通过 EIP-addr+port 将 source-addr+port 映射到 instance-private-ip:adde+port -- 使用 EIP绑定到“平衡器”——与其他两种类型的平衡器不同,实例需要位于公共子网上,并为此使用自己的公共 IP。
从概念上讲,网络负载均衡器似乎实际上修改了 Internet 网关的行为——它本身是一个逻辑对象,不能被禁用、替换或遇到任何有意义的故障。这与 ELB 和 ALB 形成对比,后者实际上在“隐藏的”EC2 实例上运行。NLB 本身在网络基础设施上运行。
归档时间: |
|
查看次数: |
8055 次 |
最近记录: |