AWS VPC - 互联网网关与NAT的区别

问题:

什么是互联网网关?什么是 NAT 实例?他们提供什么服务?

阅读 AWS VPC 文档,我收集到它们都将私有 IP 地址映射到传出请求的 Internet 可路由地址,并将传入响应从 Internet 路由到子网上的请求者。

那么它们之间有什么区别呢?我在什么情况下使用 NAT 实例而不是(或除了)互联网网关?它们本质上是运行某些网络应用程序的 EC2 实例还是像路由器这样的特殊硬件?

除了简单地指向 AWS 文档链接之外,您能否通过添加一些关于什么是公共和私有子网的背景知识来解释这些链接,以便任何网络知识有限的初学者都可以轻松理解这些内容?另外我什么时候应该使用 NAT 网关而不是 NAT 实例?

解答:

Internet 网关是Amazon VPC 和 Internet 之间的逻辑连接。它不是物理设备。每个 VPC 只能关联一个。它并没有限制互联网连接的带宽。(带宽的唯一限制是 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 网关关联
  • 每个可用区都需要一个,因为它们只在一个可用区中运行

转自:https://stackoverflow.com/questions/38690012/aws-vpc-internet-gateway-vs-nat

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值