关闭。此问题不符合 Stack Overflow 准则。它目前不接受答案。我们不允许在 Stack Overflow 上提出有关专业服务器或网络相关基础设施管理的问题。您可以编辑问题,使其成为 Stack Overflow 的主题。 4年前关闭。社区上个月审查了是否重新打开此问题并将其关闭:原始关闭原因未解决 改进此问题
什么是互联网网关?什么是 NAT 实例?他们提供什么服务?
阅读 AWS VPC 文档,我收集到它们都将私有 IP 地址映射到用于传出请求的 Internet 可路由地址,并将来自 Internet 的传入响应路由到子网上的请求者。
那么它们之间有什么区别呢?在哪些情况下我使用 NAT 实例而不是(或除此之外)互联网网关?它们本质上是运行某些网络应用程序的 EC2 实例,还是像路由器这样的特殊硬件?
除了简单地指向 AWS 文档链接之外,您能否通过添加一些关于什么是公共子网和私有子网的背景来解释这些内容,以便任何网络知识有限的初学者都可以轻松理解这些内容?还有什么时候应该使用 NAT 网关而不是 NAT 实例?
PS 我是 AWS VPC 的新手,所以我可能在这里比较苹果和橘子。
互联网网关
Internet 网关是 Amazon VPC 和 Internet 之间的逻辑连接。它不是物理设备。每个 VPC 只能关联一个。它不限制 Internet 连接的带宽。 (带宽的唯一限制是 Amazon EC2 实例的大小,它适用于所有流量——VPC 内部和 Internet 外的流量。)
如果 VPC 没有 Internet 网关,则无法从 Internet 访问 VPC 中的资源(除非流量通过公司网络和 VPN/Direct Connect 流动)。
如果子网具有将流量引导到 Internet 网关的路由表,则该子网被视为公共子网。
NAT 实例
NAT 实例是配置为将流量转发到 Internet 的 Amazon EC2 实例。它可以从现有的 AMI 启动,也可以通过用户数据进行配置,如下所示:
#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects
/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 0.0.0.0/0 -j MASQUERADE
/sbin/iptables-save > /etc/sysconfig/iptables
mkdir -p /etc/sysctl.d/
cat <<EOF > /etc/sysctl.d/nat.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.eth0.send_redirects = 0
EOF
私有子网中想要访问 Internet 的实例可以通过路由表配置将其 Internet 绑定流量转发到 NAT 实例。然后,NAT 实例将向 Internet 发出请求(因为它位于公共子网中),响应将被转发回私有实例。
发送到 NAT 实例的流量通常会发送到与 NAT 实例本身不相关的 IP 地址(它将发往 Internet 上的服务器)。因此,关闭 NAT 实例上的 Source/Destination Check 选项很重要,否则流量将被阻止。
NAT网关
AWS 引入了可以代替 NAT 实例的 NAT 网关服务。使用 NAT 网关服务的好处是:
它是一个完全托管的服务——只需创建它,它就会自动运行,包括故障转移
它可以突增到 10 Gbps(NAT 实例受限于与 EC2 实例类型相关的带宽)
然而:
安全组不能与 NAT 网关关联
每个 AZ 都需要一个,因为它们只在一个 AZ 中运行
至于 NAT 网关与 NAT 实例,两者都可以。一个 NAT 实例可能会便宜一点,但 NAT 网关完全由 AWS 管理,因此它的优点是不需要维护一个 EC2 实例来进行 NATing。
但是,对于需要对 Internet 可用的实例,NAT 网关/实例并不是您要寻找的。 NAT 将允许私有实例(没有公共 IP)访问 Internet,但反之则不行。因此,对于需要访问 Internet 的 EC2 实例,您需要分配一个公共 IP。如果您确实需要将 EC2 实例保持私有,则有一种解决方法 - 您可以使用弹性负载均衡器来代理请求。
互联网网关
Internet 网关是您的 VPC 连接到 Internet 的方式。您使用带有路由表的互联网网关来告诉 VPC 互联网流量如何到达互联网。
Internet 网关仅作为名称出现在 VPC 中。亚马逊管理网关,您没有什么真正的发言权(除了是否使用它;请记住,您可能想要一个完全分段的子网,根本无法访问互联网)。
公共子网是指具有通过 AWS 的 Internet 网关路由的 Internet 流量的子网。公共子网中的任何实例都可以分配一个公共 IP(例如,启用“关联公共 IP 地址”的 EC2 实例)。
私有子网意味着实例不能从 Internet 公开访问。他们没有公共 IP 地址。例如,您不能通过 SSH 直接访问它们。不过,私有子网上的实例仍然可以自己访问互联网(即通过使用 NAT 网关)。
Internet 网关用于将 vpc 连接到 Internet,NAT 网关用于将私有子网连接到 Internet(这意味着任何流量都将进入私有子网实例,该实例将转发到 NAT 网关)。您需要将路由表中的流量转发到 NAT
路由表 0.0.0.0/0
An internet gateway is a horizontally scaled, redundant, and highly available VPC component that allows communication between instances in your VPC and the internet. It therefore imposes no availability risks or bandwidth constraints on your network traffic.
。从描述中我得到的印象是它是一个实际的硬件设备,但由 AWS 管理。如果我的理解不正确,请纠正我。