暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

AWS公有子网、NAT网关,为啥不能共用?

云原生外卖小哥 2021-01-12
1024

所有的网络问题都可归结于,我是谁,从哪儿来,到哪儿去的终极哲学问题

最近有朋友来自灵魂深处的拷问,为什么同一个VPC
内的公有子网
下的主机不能走NAT
网关。为什么,这到底是为什么啊……

公有子网和私有子网

  • 公有子网:公有子网就是默认网关是Internet 网关
    的子网,可以与互联网直接相连。
  • 私有子网:私有子网只能通过NAT实例
    或者NAT 网关
    与互联网相连。

其实吧,有个简单的理解方式,即:公有子网类似机房的dmz区域
,而私有子网类似机房的内网

问题解答

AWS
官网提供了一张非常简明清晰的图片,有了这张图片,就不难理解,朋友的问题了。

如图所示,如果想要让公有子网的机器走NAT网关
,那么公有子网的机器网络流向是:

ec2 -> natgw

这个时候,我们需要修改子网配置,让子网的默认流量走NAT网关
,路由表如下:

DestinationTarget
10.0.0.0/16local
0.0.0.0/0nat-gateway-id

经过此项操作后,看起来合情合理,但是不要忘了,我们的NAT网关
获取到的其实是子网内部的IP

那么,我们此时的NAT网关
的网络流量走向其实是:

nat-gateway -> nat-getway

这样就出现了路由回环了,自然是无法畅通了

如何解决?

想要解决这个问题,在不重建主机的情况下,只能将NAT网关
放到另外的VPC中了。


文章转载自云原生外卖小哥,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论