VPC

写在前面~~

在这之前推一个在写文章的时候找到的好资料,点击图中的图标还有详细的描述哦。

https://lucid.app/lucidchart/703f6119-4838-4bbb-bc7e-be2fb75e89e5/view?page=eNbqbEM6f5NI#

截屏2021-02-28 下午7.50.03

1.VPC(Virtual Private Cloud)是什么

可以简单地理解为一个VPC就是一个虚拟的数据中心,在这个虚拟数据中心内我们可以创建不同的子网(公有网络和私有网络),搭建我们的网页服务器,应用服务器,数据库服务器等等服务。

如下图所示,互联网的流量想进到VPC里来时,首先就需要经过Internet Gateway,然后再通过与Internet Gateway绑定的路由表来转发到对应的子网(subnet),每个子网有不同的NACL(Network Access Control List),通过这些NACL来判断流量是否被允许进入,最后转发到对应的机器上。上述的一些概念我们会在下面一一介绍。

需要注意的是:

  • VPC内可以创建多个子网,一个VPC可以跨越多个可用区(AZ)

  • 一个路由表可以对应多个子网,

  • 每一个子网上可以分配自己规划的IP地址,我们可以在选择的子网上启动EC2实例,一个子网只能在一个可用区(AZ)内

  • 创建一个Internet Gateway并且绑定到VPC上,让EC2实例可以访问互联网

  • 安全组(Security Group)用来针对实例

  • 网络控制列表(Network Access Control List)用来针对子网

  • 安全组(Security Group)是有状态的,而网络控制列表(Network Access Control List)是无状态的

    • 有状态:如果入向流量被允许,则出向的响应流量会被自动允许

    • 无状态:入向规则和出向规则需要分别单独配置,互不影响

截屏2021-02-28 下午1.27.18

2.互联网网关(Internet gateway)

互联网网关是一种横向扩展、支持冗余且高度可用的 VPC 组件,可实现 VPC 与互联网之间的通信。

3.路由表(route table)

我们的 VPC 中的每个子网必须与一个路由表关联,而一个路由表可以关联多个子网,路由表用来控制子网的路由。

  • 一个VPC下只能有一个主路由表,当一个子网没有显式地与路由表关联时,它默认会隐式地与主路由表关联。

  • 路由表中的路由可以指向很多目标,比如下图,我们可以指定0.0.0.0/0,目标为Internet Gateway,这表示所有指向互联网的流量都转发到Internet Gateway上,当然我们也可以指定其他的AWS 服务,如下图选项所示。

  • local表示一个用于在 VPC 内部通信的本地路由,比如同一个VPC下且配置了这个路由表的EC2要跟另一台EC2通信,就可以通过这个来转发而不用走互联网。

截屏2021-02-28 下午4.08.48
截屏2021-02-28 下午4.21.59

4.子网(subnet)

我们需要在指定的VPC下指定子网,如下图,每个VPC有关联的CIDR,意味着我们在这个VPC下,可以分配给该VPC下服务这个范围内的IP地址,这一部分算是计算机网络基础就不在此赘述,简单的介绍可以看下面两个链接。

需要注意的是VPC下的子网CIDR范围不能超过VPC的CIDR大小,且子网的IPv4 块的大小必须介于 /16 网络掩码和 /28 网络掩码之间。

CIDR介绍

CIDR计算

截屏2021-02-28 下午4.54.08

4.1如何区分私有子网和公共子网?

公共子网指的是该子网绑定的路由表中,0.0.0.0/0指向的目标可以直接访问互联网,比如指向一个Internet gateway,那么这个子网就是一个公共子网。

相对的,0.0.0.0/0指向的目标不能直接访问互联网,比如这个子网的路由表没有配置0.0.0.0/0,或者只能间接地访问互联网,比如0.0.0.0/0指向的是NAT Gateway/Instance, 那么这个子网就是私有子网。

截屏2021-02-28 下午5.50.47

5.弹性IP(Elastic IP)

这个概念在EC2一章已经介绍过啦,今天再来复习一遍。

默认情况下,AWS分配的公网IP地址都是浮动的,这意味着如果关闭再启动EC2实例,这个地址也会被释放并且重新分配。但是弹性IP地址是和我们的AWS账号绑定的,除非手动释放掉这个地址,否则这个地址可以一直拥有这个账号。

6.终端节点(Endpoints)

终端节点(Endpoints)是虚拟设备,它是以能够自动水平扩展、高度冗余、高度可用的VPC组件设计而成,不需要为它的带宽限制和故障而有任何担忧。

接口终端节点PrivateLink 提供支持,它使用弹性网络接口 (ENI) 作为发往服务的流量的入口点。 网关终端节点充当路由表中路由的目标,用于处理以服务为目标的流量。 网关仅支持Amazon S3 和Dynamo DB

VPC终端节点能建立VPC和一些AWS服务之间的高速、私密的“专线”。这个专线叫做PrivateLink,使用了这个技术,你无需再使用Internet网关、NAT网关、VPN或AWS Direct Connect连接就可以访问到一些AWS资源了!

举个例子:VPC内的服务(比如EC2)需要访问S3的资源,只需要通过VPC终端节点和更改路由表,就可以通过AWS内网访问到这些服务。在这个情况下,VPC内的服务(EC2)甚至不需要连接任何外网。如下图所示

vpc endpoints

7.NAT网关/实例

  • NAT的全程是“Network Address Translation”,中文解释是“网络地址转换”,它可以让整个机构只使用一个公有的IP地址出现在Internet上。

  • NAT是一种把内部私有地址(192.168.1.x,10.x.x.x等)转换为Internet公有地址的协议,它一定程度上解决了公网地址不足的问题。

7.1 NAT Instance

在实际的场景下,我们经常需要将数据库、EC2放到私网,但是实例中的服务又必须要访问互联网,这个时候NAT Instance就可以帮我们解决这个问题,以私有子网内的EC2请求互联网为例,我们的请求会被先被路由表路由到公共子网内的NAT Instance中,然后通过NAT Instance服务来访问互联网。

  • 每项 EC2 实例都会默认执行源/目标检查。这意味着实例必须为其发送或接收的数据流的源头或目标。但是,NAT 实例必须能够在源或目标并非其本身时发送和接收数据流。因此,创建NAT实例之后,一定要关闭源/目标检查(Source/Destination Check)

  • NAT实例需要创建在公有子网内

  • 私有子网需要创建一条默认路由(0.0.0.0/0),指到NAT实例

  • NAT实例的瓶颈在于实例的大小,需要自己创建弹性伸缩组(Auto Scaling Group),自定义脚本来达到NAT实例的高可用(比如部署在多个可用区)

  • 我们更推荐使用NAT Gateway的形式来实现功能,如果我们真的想要使用NAT Instance,可以在社区AMI来搜索它。

    截屏2021-02-28 下午5.38.36
截屏2021-02-28 下午5.33.49

7.2 NAT Gateway

当我们使用,就不用再创建NAT Instance了,也就没有实例大小的烦恼,NAT Gateway会自动扩容。

  • NAT Gateway需要关联到公共子网,它自动分配一个公网IP地址(EIP)

  • 私有子网需要创建一条默认路由(0.0.0.0/0)到NAT网关

  • 不需要更改源/目标检查(Source/Destination Check)

7.3 堡垒机

堡垒机(Bastion Host)又叫做跳板机(Jump Box),主要用于运维人员远程登陆服务器的集中管理。运维人员首先登陆到这台堡垒机(公网),然后再通过堡垒机管理位于内网的所有服务器。

需要与NAT Instance区分,私有子网中的流量会发送到NAT Instance里,而堡垒机只是用来登录、管理。

8. 对等连接(Peering)和Transit Gateway

8.1 Peering Connect

VPC对等连接(VPC Peering)是两个VPC之间的连接,通过VPC Peering,我们就可以使用私有地址让两个VPC之间相互通信,就像它们在同一个VPC内一样。

我们可以给自己、其他AWS账号的VPC、不同区域的VPC来建立Peering Connect.

如下图所示,VPC A和VPC B之间建立了对等连接,那么VPC A中网段10.0.0.0/16内的实例就可以和VPC B中网段172.31.0.0/16内的实例进行互相通信,仿佛它们是处于同一个内网一样。

如果两个VPC出现了地址覆盖/重复,那么这两个VPC不能做Peering

  • 例如10.0.0.0/16的VPC与10.0.0.0/24的VPC是不能做对等连接的

  • VPC Peering没有传递性

    • 即如果VPC A与VPC B进行了对等连接

    • VPC B与VPC C进行了对等连接

    • VPC A是不能与VPC C进行直接通信的,必须再建立VPC A和VPC C的对等连接才可以

img

8.2 Transit Gateway

我们先来看一个情况,当我们需要创建多个VPC之间的连接时,需要非常多的Peering,Transit Gateway就是为了解决这一个问题。

需要注意的是,Transit Gateway 需要保证所有的VPC在一个region下面。

截屏2021-03-07 下午7.21.13.png

通过Transit Gateway,我们就可以简单地来管理多个VPC啦。

截屏2021-02-28 下午6.47.06

9.Network ACLs与Security Group

  • 在你的默认VPC内会有一个默认的网络ACL(NACL),它会允许所有入向和出向的流量

  • 对于所有VPC内的子网,每一个子网都需要关联一个网络ACL。如果没有关联任何网络ACL,那么子网会关联默认的网络ACL

  • 一个网络ACL可以关联多个子网,但一个子网只能关联一个网络ACL

  • 网络ACL包含了一系列(允许或拒绝)的规则,网络ACL会按顺序执行,一旦匹配就结束,不会再继续往下匹配

  • 网络ACL有入向和出向的规则,每一条规则都可以配置允许或者拒绝, 还记得我们的安全组吗,它只支持显式的允许。

  • 网络ACL是无状态的(安全组是有状态的)

    • 被允许的入向流量的响应流量必须被精准的出向规则所允许(反之亦然)

    • 一般至少需要允许临时端口(TCP 1024-65535)

截屏2021-02-28 下午7.05.06

临时端口

客户端来说,每次发起 TCP 连接请求时,都需要分配一个空闲的本地端口(临时端口),去连接远端的服务器。由于这个本地端口是独占的,所以客户端最多只能发起 65535 个连接。

服务器端来说,其通常监听在固定端口上(比如 80 端口),等待客户端的连接。根据五元组(源IP地址、目的IP地址、协议号、源端口、目的端口)结构,我们知道,客户端的 IP 和端口都是可变的。如果不考虑 IP 地址分类以及资源限制,服务器端的理论最大连接数,可以达到 2 的 48 次方(IP 为 32 位,端口号为 16 位),远大于 65535。

所以,综合来看,客户端最大支持 65535 个连接,而服务器端可支持的连接数是海量的。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容