天天看點

AWS學習筆記-VPC小結

Amazon Virtual Private Cloud 文檔

VPC允許我們在基礎設施中提供一個邏輯上隔離的部分,在這裡我們可以在我們定義的虛拟網絡中啟動AWS資源。我們完全控制:

  • 虛拟網絡環境,包括選擇IP位址範圍、建立子網
  • 路由表的配置
  • 網絡網關

此外,我們可以在公司資料中心和VPC之間建立硬體VPN或專線直接連接配接,并在預設情況下利用AWS雲作為公司資料中心的擴充

CIDR,專用與公用IPv4

CIDR-IPv4(無類域間路由)

CIDR通常用于安全組規則或AWS網絡。它們有助于定義IP位址範圍

  • 192.168.100.0/32->一個IP
  • 0.0.0.0/0->所有IP
  • 我們還可以做一些類似192.168.0.0/26的事情,這意味着有64個IP(192.168.0.0-192.168.0.63)

CIDR由兩部分組成:

  1. 基本IP(xx.xx.x.x):它表示範圍中包含的IP
  2. 子網路遮罩(/32):定義IP範圍中可以變化的位數

子網ask可以采取兩種形式

  • 255.255.255.0
  • /24

例子:

/24允許2(32-24)=28=256個來自基本IP的IP

私有與公共IPv4

Internet配置設定号碼管理局Internet Assigned Numbers Authority(IANA)建立了某些IPv4位址塊,以供專用(LAN)和公用(Internet)位址使用

專用/私有IP隻能允許某些值

  • 10.0.0.0-10.255.255.255(10.0.0.0/8)<-在大型網絡中
  • 172.16.0.0-172.31.255.255(172.16.0.0/16)<-AWS
  • 192.168.0.0-192.168.255.255(192.168.0.0/16)<-家庭網絡

網際網路上所有其餘的IP都是公共IP

AWS預設專有網絡概述

  • 所有新帳戶都有一個預設VPC:172.31.0.0/16
  • 如果未指定子網,則會将新執行個體啟動到預設VPC中
  • 預設VPC具有internet連接配接,并且所有執行個體都具有公共IP(以便我們可以使用該執行個體執行類似于yum update…)
  • 我們還獲得了一個公共和私有DNS名稱

對于預設VPC

  • 使用者友好,允許您立即部署執行個體。
  • 預設VPC中的所有子網都有到internet的路由。
  • 每個EC2執行個體都有一個公共和私有IP位址。

VPC概述

VPC中的IPv4

  • 一個區域中可以有多個VPC(每個區域最多5個,但這是一個軟限制,可以申請提高配額)
  • 每個VPC的最大CIDR為5。對于每個CIDR

    ○ 最小大小為/28:16個IP位址

    ○ 最大大小為/16:65536個IP位址

  • 您的VPC CIDR不應與其他網絡重疊

子網Subnet概述

AWS在每個子網中保留5個IP(IP範圍中的前4個和最後1個)。這5個IP不可使用,無法配置設定給執行個體。

例如,如果CIDR塊為10.0.0.0/24,則保留的IP為:

  • 10.0.0.0:網絡位址
  • 10.0.0.1:AWS為VPC路由器保留,用于網關
  • 10.0.0.2:由AWS保留,用于映射到AWS提供的DNS
  • 10.0.0.3:由AWS保留,以備将來使用
  • 10.0.0.255:網絡廣播位址。AWS不支援VPC中的廣播

如果您需要EC2執行個體的xx個IP,在執行CIDR塊時,請記住-5(四舍五入)

例如,如果您需要29個IP,請選擇/26(64個IP)而不是/27(32個IP)

網際網路網關IGW

  • Internet網關幫助我們的VPC執行個體連接配接到Internet
  • 它可以水準擴充,并且是HA和備援的
  • 必須與VPC分開建立
  • 一個VPC網絡隻能連接配接到一個網際網路網關,反之亦然(如“1對1關系”)
  • Internet網關也是具有公共IPv4的執行個體的NAT

IGW本身不允許通路internet,是以還必須編輯路由表

NAT執行個體和NAT網關

NAT執行個體(過時但在考試中還有)

NAT代表網絡位址轉換,它允許私有子網中的執行個體連接配接到internet

  • 嘗試建立NAT執行個體時,請先禁用執行個體上的源/目标檢查
  • NAT執行個體必須位于公共子網中。
  • 必須将路由表配置為将流量從專用子網路由到NAT執行個體,才能使其工作。
  • 必須有彈性IP連接配接到它
  • NAT執行個體可以支援的通信量取決于執行個體大小。如果您遇到瓶頸,請增加執行個體大小。
  • 您可以使用自動縮放組、不同AZ中的多個子網以及自動化故障切換的腳本來建立高可用性。
  • 它在安全組後面

必須管理安全組和規則

  • inbound

    ○ 允許來自專用子網的HTTP/HTTPS通信

    ○ 允許從家庭網絡進行SSH(通過Internet網關提供通路)

  • outbound

    ○ 允許到internet的HTTP/HTTPS通信

NAT Gateway

  • AWS管理的NAT,更高的帶寬,更好的可用性,無需使用者管理
  • NAT網關在可用性區域AZ内是備援的。每個可用區域AZ一個NAT網關。
  • 不與安全組關聯。安全組關聯執行個體instance
  • NAT網關使用彈性IP在特定的AZ中建立
  • 無需禁用源/目标檢查。
  • 為了獲得高可用性,我們應該在每個可用性區域中建立一個NAT網關。
  • 從5 Gbps開始,目前擴充到45 Gbps。自動縮放
  • 需要Internet網關典型情況

    ○ 私有子網将與NAT網關通信,NAT網關将與IGW通信,以便我們的私有執行個體可以與internet通信

NAT網關的高可用性

  • NAT網關在單個網絡中具有彈性
  • 但是,為了容錯,必須在多個AZ中建立多個NAT網關
  • 不需要跨AZ故障切換,因為如果AZ發生故障,則不需要NAT
    AWS學習筆記-VPC小結
    Comparison of NAT Instance and NAT Gateway
屬性 NAT 網關 NAT 執行個體
可用性 高度可用。每個可用區中的 NAT 網關都采用備援實施。在每個可用區中建立一個 NAT 網關可確定架構不依賴于可用區。 使用腳本管理執行個體之間的故障轉移。
帶寬 可以縱向擴充到 45 Gbps。 取決于執行個體類型的帶寬。
維護 由管理AWS 您不需要進行任何維護。 由您管理,例如您需要對執行個體安裝軟體更新或作業系統更新檔。
性能 軟體經過優化以便處理 NAT 流量。 配置來執行 NAT 的通用 AMI。
費用 費用取決于您使用的 NAT 網關的數量、使用時長以及您通過 NAT 網關發送的資料量。 費用取決于您使用的 NAT 執行個體的數量、使用時長以及執行個體類型和大小。
類型和大小 整合提供;您不需要選擇類型或範圍。 根據您的預測工作負載選擇适當的執行個體類型和大小。
公有 IP 位址 建立時選擇彈性 IP 位址,與公有 NAT 網關關聯。 為 NAT 執行個體使用彈性 IP 位址或公有 IP 位址。您随時可以通過将新的彈性 IP 位址與執行個體關聯來更改公有 IP 位址。
私有 IP 位址 在您建立網關時自動從子網的 IP 位址範圍中選擇。 在您啟動執行個體時,從子網的 IP 位址範圍内配置設定特定的私有 IP 位址。
安全組 您不能将安全組與 NAT 網關相關聯。您可以将安全組與 NAT 網關後的資源關聯,以控制入站和出站流量。 與您的 NAT 執行個體和 NAT 執行個體之後的資源關聯,以控制入站和出站流量。
網絡 ACL 使用網絡 ACL 控制進出您的 NAT 網關所在子網的流量。 使用網絡 ACL 控制進出您的 NAT 執行個體所在子網的流量。

DNS Resolution Options

DNS解析選項:

  • enableDnsSupport 支援DNS解析設定

    ○ 預設為True

    ○ 幫助确定專有網絡是否支援DNS解析

    ○ 如果為True,則通過169.254.169.253查詢AWS DNS伺服器

  • enableDnsHostname DNS主機名設定

    ○ 自定義VPC預設為False,預設VPC為True

    ○ 除非enablednsupport=True,否則不會執行任何操作

    ○ 如果為True,則将公共主機名配置設定給EC2執行個體(如果它具有公共主機名)

    如果在Route 53的專用區域中使用自定義DNS域名,則必須将這兩個屬性都設定為true

NACL & Security Groups

AWS學習筆記-VPC小結

Inbound / Outbound

  • 安全組是有狀态的,這意味着,即使出站規則在入站請求通過時拒絕所有内容,該請求也可以通過出站(規則檢查)
  • NACL是無狀态的,這意味着入站和出站是分開計算的

網絡ACL

  • NACL就像一個防火牆,控制子網之間的流量
  • 預設情況下,NACL允許所有出站和入站内容
  • 每個子網一個NACL,新子網被配置設定預設NACL

定義NACL規則

  • 規則有一個數字(1-32766),數字越小,優先級越高

    ○ 例如,如果定義#100 ALLOW和#200 DENY,則将允許IP,因為100具有更高的優先級(#100<#200)

    ○ 100,200是規則數字,或者你可以說它是“重量”,隻要你能記住它

    ○ 最後一條規則是星号(*),在沒有規則比對的情況下拒絕請求

    ○ AWS建議增量 為100 的規則

  • 新建立的NACL将default否認any
  • NACL是在子網級别阻止特定IP的一種很好的方法

這類似于VPC中所有(或任何)子網的安全組。我們可以添加允許/拒絕規則。預設VPC附帶預設網絡ACL,預設情況下,它允許所有出站和入站流量。

建立自定義網絡ACL時,預設情況下拒絕所有入站和出站流量,直到添加規則。VPC中的每個子網都必須與網絡ACL相關聯。如果未将子網與網絡ACL顯式關聯,則該子網将自動與預設網絡ACL關聯。

注意:要阻止IP位址,我們需要使用ACL,而不是安全組。

  • 網絡ACL可以與N個子網關聯,但1個子網隻能與1個NACL關聯。
  • 網絡ACL包含按順序計算的規則的編号清單,從編号最低的規則開始。
  • 網絡ACL有單獨的入站和出站規則,每個規則可以允許或拒絕流量。
  • 網絡ACL是無狀态的;對允許的入站流量的響應受出站流量規則的限制,反之亦然。

臨時port

實際上,為了涵蓋可能向VPC中面向公衆的執行個體發起通信的不同類型的用戶端,您可以打開臨時端口1024-65535

配置VPC

  1. 轉到專有網絡服務>您的專有網絡>建立專有網絡
  2. 填寫IPv4 CIDR塊和租約,然後單擊建立。

目前尚未建立任何子網和internet網關。已建立路由表、網絡ACL和安全組。安全組不能跨越VPC。

  1. 轉到子網->建立子網
  2. 命名,選擇我們的VPC、可用性區域和IPv4 CIDR塊。最後,單擊create。

預設情況下,沒有子網具有公共IP。為此,選擇子網并單擊操作,使其自動應用公共IP。Amazon始終為您的子網保留5個IP位址。

  1. 轉到Internet網關->建立Internet網關
  2. 命名它并單擊create。
  3. 選擇它并通過操作将internet網關連接配接到VPC(隻能将VPC連接配接到一個internet網關)

目前,我們所有的專有網絡都是公共的,因為我們的routes允許。讓我們解決這個問題:

  1. 轉到route表->選擇我們的路線表并選擇“route”
  2. 編輯route
  3. 用目标internet網關填充目标(任意IP)
  4. 轉到子網關聯
  5. 編輯子網關聯以選擇需要公開的子網。

現在,我們無法通過ssh從公共子網通路私有EC2執行個體。

  1. 轉到EC2>安全組->建立安全組
  2. 選擇我們的VPC,鍵入“All ICMP”(協定ICMP),并将源輸入公共子網。
  3. 選擇我們的VPC,鍵入“SSH”并将源檔案添加到私有子網。
  4. 更改EC2執行個體的安全組。

VPC Peering

  • 允許您使用專用private IP位址通過直接網絡路由将一個VPC連接配接到另一個VPC
  • 執行個體的通信就像它們在同一個PVC上一樣
  • 不得有重疊的CIDR
  • 我們可以與其他AWS帳戶以及同一帳戶中的其他VPC對等VPC
  • 必須更新每個VPC子網中的路由表,以確定執行個體可以通信

注意:VPC的連通性不可傳遞,如下圖所示:

AWS學習筆記-VPC小結

Reference:

https://docs.aws.amazon.com/vpc/latest/peering/invalid-peering-configurations.html#transitive-peering

VPC Endpoints

There are two types: interface and gateway.

Currently, gateway endpoints support S3 and DynamoDB

  • 端點Endpoint允許使用專用網絡而不是公用網絡連接配接到AWS服務
  • 可以水準縮放并且是備援的
  • 端點不再需要IGW、NAT網關等。。通路AWS服務
  • 接口Interface:提供一個ENI(專用IP位址)作為大多數AWS服務的入口點(必須連接配接安全組)
  • 網關Gateway:提供一個目标,必須在路由表中使用-S3和DynamoDB
  • 排查問題:
    ○ 檢查VPC中的DNS設定
    
      ○ 檢查路由表
               
Enable Private DNS Name: To use private DNS names, ensure that the attributes ‘Enable DNS hostnames’ and ‘Enable DNS support’ are set to ‘true’ for your VPC
接口Interface端點是一個具有專用IP位址的彈性網絡接口,該Interface用作連接配接到受支援服務的流量的入口點。

VPC端點使使用者能夠私自将VPC連接配接到受支援的AWS服務和由PrivateLink提供支援的VPC端點服務,而無需internet網關、NAT裝置、VPN連接配接或AWS直接連接配接。

VPC中的執行個體不需要公共IP位址來與服務中的資源通信。您的專有網絡和其他服務之間的流量可以沒有AWS網絡。

端點Endpoints是虛拟裝置。它們是水準擴充的、備援的、高可用的VPC元件,允許VPC中的執行個體和服務之間進行通信,而不會對網絡流量造成可用性風險或帶寬限制。

Bastion Hosts

AWS學習筆記-VPC小結
  • 使用一個堡壘主機SSH到我們的私有執行個體中
  • 堡壘位于公共子網中,然後連接配接到所有其他私有子網
  • 必須在堡壘主機加安全組
  • 堡壘用于安全地管理EC2執行個體(使用SSH或RDP)。
  • 不能将NAT網關用作堡壘主機。

檢查提示:確定bastion主機隻有來自所需IP的端口22流量,而不是來自其他執行個體的安全組

Site-to-Site VPN

AWS學習筆記-VPC小結

Virtual Private Gateway

  • 虛拟私有網關Virtual Private Gateway 是站點到站點 VPN 連接配接在 Amazon 一端的 VPN 集中器。
  • 您可以建立虛拟私有網關,并将其附加到要從中建立站點到站點 VPN 連接配接的 VPC。
  • 建立虛拟專用網關時,可以為網關的 Amazon 端指定專用自治系統編号 (ASN)。
    ○ 如果不指定 ASN,則會使用預設 ASN (64512) 建立虛拟專用網關
      ○ 建立虛拟專用網關後,無法更改 ASN
               

Customer Gateway

  • VPN連接配接用戶端的軟體應用程式或實體裝置
  • 客戶網關裝置必須通過生成流量并啟動 Internet 密鑰交換 (IKE) 協商過程來為站點到站點 VPN 連接配接啟動隧道
  • 使用者提供的為Customer gateway device
  • 客戶網關Customer Gateway 是您在 AWS 中建立的資源,它表示本地網絡中的客戶網關裝置。

Transit gateway & VPN

AWS學習筆記-VPC小結
  • A transit gateway is a transit hub that you can use to interconnect your virtual private clouds (VPC) and on-premises networks.
  • 可以将站點到站點 VPN 連接配接的目标網關從虛拟私有網關修改為中轉網關。
  • Transit gateway視作新一代Region邊緣路由器

Transit gateway

  • 中轉網關是網絡中轉中心,您可用它來互連 Virtual Private Cloud (VPC) 和本地網絡。
  • Region間的對等連接配接
  • 跨雲和本地網絡的單一管理門戶
  • SD-WAN相容

關鍵概念

  • 挂載Attachments — 您可以挂載以下各項:
    ○ 一個或多個 VPC
    
      ○ Connect SD-WAN/第三方網絡裝置
    
      ○ 一個 AWS Direct Connect 網關
    
      ○ 與另一個中轉網關的對等連接配接
    
      ○ 與中轉網關的 VPN 連接配接
               
  • 中轉網關最大傳輸機關 (MTU)
    ○ 對于 VPC、AWS Direct Connect、Transit Gateway Connect 和對等連接配接挂載之間的流量,中轉網關支援的 MTU 為 8500 位元組。
      
      ○ VPN 連接配接上的流量可以具有的 MTU 為 1500 位元組。
               
  • 中轉網關路由表
    ○ 中轉網關具有預設的路由表,且可選具有其他路由表。
      ○ 路由表包含動态路由和靜态路由,它們根據資料包的目标 IP 位址決定下一個躍點。
      ○ 這些路由的目标可以是任何中轉網關挂載。
      ○ 預設情況下,Transit Gateway 挂載與預設的中轉網關路由表關聯。
               
  • 關聯Associations
    ○ 每個挂載都正好與一個路由表關聯。		
      ○ 每個路由表可以與零到多個挂載關聯。
               
  • 路由傳播(轉發)
    ○ VPC、VPN 連接配接或 Direct Connect 網關可以動态地将路由傳播到中轉網關路由表。
      ○ 預設情況下,使用 Connect 挂載,路由會傳播到中轉網關路由表。
      ○ 使用 VPC 時,您必須建立靜态路由以将流量發送到中轉網關。
      ○ 使用 VPN 連接配接或 Direct Connect 網關時,路由使用邊界網關協定 (BGP) 從中轉網關傳播到本地路由器。
      ○ 使用對等連接配接的連接配接時,您必須在中轉網關路由表中建立靜态路由以指向對等連接配接。
               

最佳實踐:

  • 為每個中轉網關 VPC 附件使用單獨的子網。對于每個子網,可以配置以下内容:
    ○ 将與中轉網關子網關聯的入站和出站網絡 ACL 保持打開狀态。
    
      ○ 根據流量,您可以将網絡 ACL 應用于工作負載子網。
               
  • 建立一個網絡 ACL 并将其與關聯到中轉網關的所有子網相關聯。確定網絡 ACL 在入站和出站方向打開。
  • 将同一個 VPC 路由表與關聯到中轉網關的所有子網相關聯,除非設計需要
  • 使用邊界網關協定 (BGP) 站點到站點 VPN 連接配接。
  • 為 AWS Direct Connect 網關挂載和 BGP Site-to-Site VPN 挂載啟用路由傳播。
  • 不需要額外的中轉網關即可實作高可用性,根據設計,中轉網關具有高可用性。
  • 限制中轉網關路由表的數量,除非設計需要多個中轉網關路由表。
  • 對于多區域部署,我們建議您為每個中轉網關使用唯一自治系統編号 (ASN)。為了實作備援,請在災難恢複區域中使用多個中轉網關。

官網:https://docs.aws.amazon.com/zh_cn/vpc/latest/tgw/what-is-transit-gateway.html

示例

需求

一家全球性企業,總部設在英國倫敦,在那裡他們有一個資料中心和總部辦公室。他們還在世界各地設有分支機構。最大的位于洛杉矶和首爾。大部分應用程式托管在eu-west-2地區(倫敦) 和ap-northeast-2(首爾),以及一些正在遷移過程中的舊應用程式,在倫敦資料中心托管。

他們的分支機構需要 500 Mbps 的網絡容量來接入 AWS 地區,以及連接配接其資料中心的 10 Mbps 網絡容量。不得在分支機構之間進行路由。資料中心需要 5 Gbps 的網絡容量來回 AWS 區域,以處理資料密集型工作負載遷移到 AWS。

AWS學習筆記-VPC小結

設計

AWS學習筆記-VPC小結
  • 本地資料中心與eu-west-2, AWS ap-northeast-2與eu-west-2 區域通過 10 Gbps AWS 直接連接配接專用連接配接的彈性對。
  • 建立兩個傳輸虛拟接口(T-VIF),每個直接連接配接連接配接一個接口,并将這些連接配接關聯到直接連接配接網關 (dxgw-eu-west-2).直接連接配接網關連接配接到 AWS 傳輸網關 (tgw-eu-west-2)。
  • 将所有挂載的位址段通過 BGP 路由協定向客戶網關宣布,将其添加到允許的字首清單中
  • 所有分支機構都使用加速站點到站點 VPN 連接配接到 AWS
    ○ 首爾分行連接配接到 VPN 連接配接配置在ap-northeast-2地區 (vpn-icn);
      ○ 倫敦分行連接配接到 VPN 連接配接配置在eu-west-2地區 (vpn-lhr);
      ○ 洛杉矶分公司連接配接到兩個 VPN 連接配接配置在eu-west-2地區 (vpn-lax).
      ○ 如需備援,使用多VPN鍊路
               

View of AWS Transit Gateway and inter-Region connectivity

AWS學習筆記-VPC小結

AWS PrivateLink (VPC Endpoints Services)

  • Most secure & scalable way o expose a service to 1000s of VPC (own or other accounts)
  • Does not require VPC Peering, Internet Gateway, NAT, Route Tables
  • Requires a network load balancer (Service VPC) and ENI (Customer VPC)

Egress Only Internet Gateway

Egress means Outgoing
  • Egress Only Internet Gateway is for IPv6 only
  • Similar function as a NAT, but a NAT is for IPv4

    IPv6 is all public address

  • Egress Only Internet Gateway gives our IPv6 instances access to the internet, but they won’t be directly reachable by the internet
  • After creating an Egress only Internet Gateway, edit the route tables

繼續閱讀