Ash*_*ish 2 cloud networking amazon-web-services amazon-vpc
所以AWS有这两种设施,但我意识到NAT仍然依赖于IGW。有很多问题我无法得到答案。
为什么NAT网关必须在公有子网中?我认为在云网络上是通过虚拟节点来实现的。那么,为什么 NAT 网关不能像私有子网中的路由器一样,在目标地址位于它所属的私有网络之外时执行 NAT?
为什么 NAT 网关仍然需要公共子网的流量(它必须是其一部分)才能通过同一子网的路由表路由到互联网网关?我的意思是,NAT 网关本身应该足以通过成为某个公共子网的一部分来将流量传输到互联网。为什么 IGW 与 NAT 网关的关联必须手动完成?
Joh*_*ein 20
Internet网关是VPC与Internet之间的逻辑连接。如果没有 Internet 网关,则 VPC 无法直接访问 Internet。(但是,Internet 访问可能通过 Transit Gateway 提供,而 Transit Gateway 本身需要 Internet 网关。)
将互联网网关视为用于将家庭路由器连接到互联网的线路。拔掉那根电线,您的家庭网络将无法连接到互联网。
如果子网具有引用 Internet 网关的路由表,则该子网是“公共子网”。
NAT网关接收来自 VPC 的流量,将其转发到 Internet,然后返回收到的响应。它必须位于公共子网中,因为它需要与 Internet 通信(因此需要到 Internet 网关的路由)。
私有子网中的资源(根据定义,无法路由到 Internet 网关)会将其 Internet 绑定请求发送到 NAT 网关(由于路由表配置)。然后,NAT 网关会将该请求转发到 Internet 并返回从 Internet 收到的响应。
NAT 网关的存在是因为组织希望私有子网提供额外的安全性,从而保证没有来自Internet 的入站访问。安全组可以提供类似的安全性,因此实际上不需要私有子网。然而,熟悉传统(非云)网络的人都熟悉公共和私有子网的概念,因此他们希望在云中复制该架构。物理网络路由器仅在子网边界应用规则,而安全组可以单独应用于每个资源。这有点像为每个资源提供自己的路由器。
NAT 网关并不是很复杂。事实上,您可以在 Amazon EC2 上运行NAT 实例来完成类似的工作。只需启动 Amazon EC2 实例并运行以下脚本:
sudo sysctl -w net.ipv4.ip_forward=1
sudo /sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo yum install iptables-services
sudo service iptables save
Run Code Online (Sandbox Code Playgroud)
NAT 网关稍微复杂一些,它会根据所服务的流量自动扩展,并自动重新部署任何失败的基础设施。它实际上是一个“托管、自动缩放的 NAT 实例”。
你是对的,以上所有内容都是作为虚拟网络实现的。不存在称为 Internet 网关或 NAT 网关的物理设备。其中大部分是逻辑路由,尽管 NAT 网关确实涉及启动幕后基础设施(可能在运行 EC2 实例的同一基础设施上)。NAT 网关仅连接到一个 VPC - 它不是像 Amazon S3 那样的“共享服务”,后者可供许多 AWS 用户同时使用。
您还提到“手动”执行工作。整个 VPC(包括子网、路由表、互联网网关、NAT 网关、安全组)可以使用 AWS CloudFormation 模板或通过 VPC 管理控制台中的 VPC 向导自动部署。
| 归档时间: |
|
| 查看次数: |
3595 次 |
| 最近记录: |