49-VPC基础知识

Hello大家好,欢迎来到《AWS解决方案架构师认证 Professional(SAP)中文视频培训课程》,今天的课时我们将讨论VPC基础知识,会涉及VPC的子网、路由表及联网组件等等一些主要的概念、相关知识点。

我们开始今天的课程内容。

CIDR、私有IP、共有IP

首先,我们先看下什么是CIDR,它在配置VPC、路由表、安全组等地方都会使用CIDR。
CIDR是一个按位的、基于前缀的,用于解释IP地址的标准,通过在IP地址后面加上一个/,然后跟上一个数字表示IP地址段范围。

当创建 VPC 时,必须为这个 VPC 指定 IPv4 CIDR 块。VPC允许的CIDR大小介于 /16 网络掩码 (65,536 个 IP 地址) 和 /28 网络掩码 (16 个 IP 地址) 之间。

在AWS很多配置都会使用CIDR块,如安全组、路由表、VPC、子网等等,当然理解CIDR对于通过考试也是非常重要的。

然后私有IP地址,只能在私有网络中通信和访问的IP是私有IP,由RFC1918指定的私有IPv4地址范围为:

  • 10.0.0.0 – 10.255.255.255 (10/8 前缀) ,对应大型网络,包含更多的子网和IP地址的大型网络
  • 172.16.0.0 – 172.31.255.255 (172.16/12 前缀),是AWS默认CIDR块。
  • 192.168.0.0 – 192.168.255.255 (192.168/16 前缀) 一般小型网络使用的地址范围。

我们在配置网络时可以使用以上这些地址范围作为私有IP地址,当然要注意VPC允许的CIDR块范围是/16和/28之间。

在以上这些范围之外的IP地址,就是公有IP地址,用于访问internet。

VPC、子网、路由表

VPC是 AWS 账户的虚拟网络。它在逻辑上与 AWS 中的其他虚拟网络隔离。可以在 VPC 中启动 AWS 资源,如 EC2 实例。

在创建 VPC 时,您必须以CIDR块的形式为 VPC 指定 IPv4 地址范围,且无法改变。允许的块大小介于 /16 网络掩码 (65,536 个 IP 地址) 和 /28 网络掩码 (16 个 IP 地址) 之间

VPC是您的私有虚拟网络,在创建VPC时,建议您配置私有的IPv4的地址范围CIDR块。

创建 VPC 之后,您可以在每个可用区中添加一个或多个子网,子网位于VPC内,在创建子网时,需要指定子网的 CIDR 块,它是 VPC CIDR 块的子集。

每个子网都必须完全位于一个可用区之内,不能跨越多个可用区。

每个在子网中启动的实例,都会被分配一个基于您定义的子网CIDR块范围内私有IP。

每个子网 CIDR 块中的前四个 IP 地址和最后一个 IP 地址无法供您使用,是AWS用于联网目的保留的。

然后是路由表,路由表中包含一组被称为路由的规则,用于决定来自您的子网或网关的网络流量的流向何处。

又分为主路由表以及自定义路由表,与子网进行关联。

在路由选择时,会使用路由表中与流量匹配的最具体的路由条目来路由流量 ,这也是最长前缀匹配原则,我们在后面的课时会在进行讨论。

Internet 网关(IGW)、公有子网、私有子网

Internet 网关(IGW),Internet 网关是一种横向扩展、冗余且高度可用的 VPC 组件,我们可以使用Internet 网关(IGW)将VPC接入internet。

Internet 网关(IGW)为已经分配了公有 IPv4 或IPv6地址的实例 执行网络地址转换 (NAT),它不会对您的网络流量造成可用性风险或带宽限制。

所以任何子网的关联路由表中,如果包含指向互联网网关的路由,那么该子网中的实例将拥有访问internet的能力,这也是公有子网的定义。

公有子网是指在子网的关联路由表中有一条内容为将0.0.0.0/0的流量发送到internet网关的路由,这条路由的意思是将子网中的 Internet 范围的流量发送到互联网网关。

另外,公有子网实例要访问internet,需要确保您的子网中的实例具有全局唯一 IP 地址 (公有 IPv4 地址、弹性 IP 地址或 IPv6 地址)。

而私有子网是通过NAT实例或者NAT网关访问internet。

NAT网关或NAT实例需要配置到公有子网中,这一点一定要记住。

然后需要配置私有子网的路由表,添加0.0.0.0/0 将所有其他流量路由至您的NAT网关或实例。

以上是internet网关、公有子网、私有子网的内容。

NAT网关、NAT实例

我们继续,来讨论NAT网关和NAT实例的内容。

NAT实例是需要部署在公有子网的一台实例,作用是可让在私有子网中的实例通过NAT实例访问 Internet 或其他 AWS 服务的出站 IPv4 流量,但阻止这些实例接收由 Internet 上的用户发起的入站流量。

使用NAT实例访问internet需要在私有子网的路由表中添加0.0.0.0/0 将所有其他流量路由至您的NAT实例,然后NAT实例会在将流量发送到VPC的互联网网关,然后在到internet。

NAT实例不是高可用的,在出现故障时需要您自行处理故障转移;

它的带宽也是受限的,具体的带宽取决于选择的实例类型的带宽,但是价格可能会便宜一点。

另外一种选择是NAT网关,NAT网关是AWS管理的NAT解决方案,也是AWS建议采用的方式,那么为什么建议使用NAT网关而不是NAT实例呢?

NAT网关的带宽可以自动扩展,费用包括NAT网关的每小时使用费率以及数据处理费率。

NAT网关在每个可用区是高度可用的,就是说在每个可用区中的 NAT 网关都采用冗余方案,当底层硬件出现问题,AWS会管理迁移。但是如果这个可用区出问题了,那么NAT网关就无法在提供服务了。

在这种情况下,可以通过在每个可用区中创建一个 NAT 网关可确保您的架构不依赖于可用区。

NAT网关需要绑定一个弹性IP地址,是通过使用这个弹性 IP 地址作为源 IP 地址,将流量发送到 Internet 网关。在子网实例通过NAT网关访问外部服务时,在外部服务看到的请求的来源会是NAT网关的弹性IP地址。我举个例子,看下右边的图:

这里有个VPC,VPC内包括一个私有子网以及一个公有子网。比如我们在这私有子网中有一台EC2实例,需要访问internet的一个外部的网站。

所以,这台实例就需要通过路由表配置的路由将流量发送到公有子网中的NAT网关或NAT实例,然后NAT网关在通过internet网关将请求的流量发送到internet的外部网站。

正如前面所说,这个NAT网关或者NAT实例需要绑定一个弹性IP地址,在这里是这个弹性IP为198.51.100.4,在实例通过NAT网关访问外部网站时,在外部网站上看到的实例访问请求来源IP地址就会是这个NAT网关的IP地址。

也就是说,假如这个外部网站需要配置访问白名单只允许我们的这个实例的访问,您就需要将NAT网关或NAT实例的弹性IP地址:198.51.100.4,加入外部网站的访问白名单。

网络ACL、安全组

接下来我们看看安全方面的组件:

网络ACL,是在子网级别定义的无状态的防火墙,用来控制子网进出的流量,也就是说子网内的实例,进出子网的流量都需要经过网络ACL,都可以通过它来进行访问控制。

网络 ACL 是无状态的,无状态的意思是对于允许出站请求的返回的流量,也必须在规则中明确允许,反之亦然。

网络ACL支持添加允许和拒绝的规则。当你需要拒绝某个特定IP地址的流量时,可以非常快速的使用网络ACL添加相应的拒绝规则。比如,当发现某个IP对我们的实例发出大量恶意请求时,就可以通过网络ACL添加拒绝规则拒绝此IP的访问。

然后安全组,安全组充当实例的虚拟防火墙以控制入站和出站流量。它运行在实例级别,而非子网级别。

安全组只能添加允许规则,无法添加拒绝规则,这一点要注意。

安全组是有状态的,如果您从实例发出一个出站的请求,则无论入站安全组规则如何,都将允许该请求的响应流量流入。

在配置安全组的规则时,您可以在规则中引用同一区域的其他安全组,也可以引用对等连接中的安全组或者跨账户的安全组,这个特性让我们配置和管理安全组规则非常的方便和灵活。

VPC流日志、堡垒机

VPC 流日志,利用 VPC 流日志您可以捕获有关传入和传出您的 VPC 中网络接口的 IP 流量的信息

可以将VPC流日志数据发布到 Amazon CloudWatch Logs 或 Amazon S3。创建流日志后,可以在您选定的目标中检索和查看其数据。

可以为 VPC、子网或网络接口创建流日志。

当您想了解流量的具体行为时,VPC 流日志就会非常有帮助。当流量没有按照您预期走向时,比如流量被拒绝了,您可以捕获拒绝的日志,查看失败的节点和原因等等。

然后是堡垒机,堡垒机是配置在公有子网的一台EC2实例。当需要SSH私有子网的实例时,可以通过先SSH堡垒机,在通过堡垒机登陆私有子网的实例,一般堡垒机还需要有安全审计的功能。

AWS是没有堡垒机托管服务的,您需要自己配置和管理堡垒机,并自行负责堡垒机的故障迁移和安全性等工作。

当然您也可以使用SSM的会话管理服务登陆并管理实例,而不是通过SSH的方式。这种方式需要在实例上安装SSM代理,关于这部分的内容,我们后面的课时在详细讨论。

IPv6

好,接下来我们看下IPv6的内容。

AWS的VPC是支持IPv6的,EC2实例如果要使用IPv6地址访问internet,大致的流程是这样的:

首先在创建VPC的时候,创建一个IPv6的CIDR块与该VPC关联,然后将互联网网关附加到您的VPC,互联网网关是支持IPv6的。

然后,在公有子网中启动一台EC2实例并分配一个IPv6的地址,并在对应路由表中添加一个路由表条目,内容为将去往::/0的流量发送到互联网网关,将任何去往IPv6的流量发送到互联网网关。这样这台实例就可以通过互联网网关,通过IPv6的流量访问internet。

如果需要允许在这个VPC下的私有子网中的实例,经由 IPv6 到 Internet 的出站通信,并防止 Internet 发起与您的实例的 IPv6 连接,在这种场景下,我们就需要使用类似NAT网关的服务,在公有子网中创建一个 名为“仅出口互联网网关”,它只适用于IPv6的流量。

同样,需要在对应私有子网路由表中添加一条规则,将去往::/0的IPv6流量发送到 “仅出口互联网网关”,这样的话我们在私有子网中的实例,就可以通过IPv6访问,使用“仅出口互联网网关”访问外部的服务。

好的,以上就是VPC基础的内容,概念性的内容比较多,可能会有一些枯燥,不过这些都是基础的知识点,是通过考试必须要掌握的。在后面的课时我会对VPC部分的重点内容展开讨论并进行实操演示。

本节课就到这里,希望能够给大家带来帮助。

希望此系列教程能为您通过 AWS解决方案架构师认证 Professional 认证考试带来帮助,如您有任何疑问,请联系我们:

  • 如果您想获取本课程全部课时,请扫PPT的二维码加入。
  • AWS爱好者的网址是www.iloveaws.cn,认证视频课程,免费的认证考试仿真题以及认证课程文章,都可以在网站找得到
  • 可以通过扫码加入【AWS爱好者】微信公众号,查看原创的AWS知识点相关文章。
  • 加入【AWS爱好者】微信群,和其他同学一起备考,以及探讨交流AWS相关知识。

我们今天的视频课程就到这里,感谢大家的观看,我们下一课程再见。

2021年10月29日

0 responses on "49-VPC基础知识"

Leave a Message

Setup Menus in Admin Panel

error: Content is protected !!