設定路由表 - Amazon Virtual Private Cloud

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定路由表

路由表包含一組名為路由的規則,可判斷來自子網或閘道之網路流量的方向。

路由表概念

以下是路由表的重要概念。

  • 主路由表 — 自動隨附於 VPC 的路由表。它會控制所有並未與任何其他路由表明確建立關聯之子網的路由。

  • 自訂路由表 — 您為 VPC 建立的路由表。

  • 目的地 — 您想要流量傳送的 IP 地址範圍 (目的地 CIDR)。例如,具有 CIDR 172.16.0.0/12 的外部公司網路。

  • 目標 — 要透過其傳送目的地流量的閘道、網路介面或連線;例如,網際網路閘道。

  • 路由表關聯 — 路由表與子網、網際網路閘道或虛擬私有閘道之間的關聯。

  • 子網路由表 — 與子網相關聯的路由表。

  • 本機路由 — VPC 內用於通訊的預設路由。

  • 傳播 – 若已將虛擬私有閘道連接至 VPC 並啟用路由傳播,則我們會自動將 VPN 連線的路由新增至子網路路由表。這表示您無需手動新增或移除 VPN 路由。如需詳細資訊,請參閱 Site-to-Site VPN 使用者指南中的 Site-to-Site VPN 路由選項

  • 閘道路由表 — 與網際網路閘道或虛擬私有閘道相關聯的路由表。

  • 邊緣關聯 — 您用來將傳入 VPC 流量路由至設備的路由表。您可以將路由表與網際網路閘道或虛擬私有閘道建立關聯,並且將您設備的網路界面指定為 VPC 流量的目標。

  • Transit Gateway 路由表 — 與 Transit Gateway 關聯的路由表。如需詳細資訊,請參閱 Amazon VPC Transit Gateways 中的傳輸閘道路由表

  • 本機閘道路由表 — 與 Outposts 本機閘道相關聯的路由表。如需詳細資訊,請參閱《AWS Outposts 使用者指南》中的本機閘道

子網路由表

您的 VPC 具有隱含路由器,並且您可以使用路由表,來控制網路流量的方向。您 VPC 中的每個子網都必須與路由表相關聯,此路由表會控制子網的路由 (子網路由表)。您可以明確地將子網與特定路由表建立關聯。否則,子網會隱含地與主路由表相關聯。子網只能一次與一個路由表建立關聯,但您可以將多個子網與相同的子網路由表建立關聯。

路由

路由表中的每個路由都會指定一個目的地和一個目標。例如,若要讓子網能夠透過網際網路閘道存取網際網路,請將下列路由新增至子網路由表。路由的目的地是 0.0.0.0/0,它代表所有的 IPv4 地址。目標是連接到 VPC 的網際網路閘道。

目的地 目標
0.0.0.0/0 igw-id

IPv4 和 IPv6 的 CIDR 區塊會分開處理。例如,目的地 CIDR 為 0.0.0.0/0 的路由不會自動包含所有 IPv6 地址。您必須為所有 IPv6 地址建立目的地 CIDR 為 ::/0 的路由。

如果您經常在 AWS 資源中參考相同的 CIDR 區塊集,則可以建立客戶管理的前置詞清單,將它們分組在一起。然後,您可以將字首清單指定為路由表項目中的目的地。

每個路由表都包含一個用於在 VPC 內進行通訊的本機路由。此路由預設為新增至所有路由表。若您的 VPC 有超過一個 IPv4 CIDR 區塊,您的路由表便會包含每個 IPv4 CIDR 區塊的本機路由。若您將 IPv6 CIDR 區塊與您的 VPC 建立關聯,您的路由表便會包含 IPv6 CIDR 區塊的本機路由。您可以視需要取代或還原每個本機路由的目標。

規則和考量
  • 您可以新增路由至比本機路由更具體的路由表。目的地必須符合 VPC 中子網的整個 IPv4 或 IPv6 CIDR 區塊。目標必須是 NAT 閘道、網路介面或閘道負載平衡器端點。

  • 如果您的路由表具有多個路由,我們會使用最具體且符合流量的路由 (最長的字首相符),從而判斷如何路由流量。

  • 無法將路由新增至完全相符的 IPv4 地址或以下範圍的子集:169.254.168.0/22。此範圍位於連結本機位址空間內,並保留供服務使用 AWS 。例如,Amazon EC2 將此範圍內的地址用於只能透過 EC2 執行個體存取的服務,如執行個體中繼資料服務 (IMDS) 和 Amazon DNS 伺服器。您可以使用大於但與 169.254.168.0/22 重疊的 CIDR 區塊,但不會轉傳至指定於 169.254.168.0/22 中地址的封包。

  • 無法將路由新增至完全相符的 IPv6 地址或以下範圍的子集:fd00:ec2::/32。此範圍在唯一的本地地址(ULA)空間內,並保留供 AWS 服務使用。例如,Amazon EC2 將此範圍內的地址用於只能透過 EC2 執行個體存取的服務,如執行個體中繼資料服務 (IMDS) 和 Amazon DNS 伺服器。您可以使用大於但與 fd00:ec2::/32 重疊的 CIDR 區塊,但不會轉傳至指定於 fd00:ec2::/32 中地址的封包。

  • 您可以將中間設備新增至 VPC 的路由路徑。如需詳細資訊,請參閱 中間設備的路由

範例

在下列範例中,假設 VPC 具有 IPv4 CIDR 區塊以及 IPv6 CIDR 區塊。IPv4 和 IPv6 流量會分開處理,如下列路由表所示。

目的地 目標
10.0.0.0/16 Local
2001:db8:1234:1a00::/56 Local
172.31.0.0/16 pcx-11223344556677889
0.0.0.0/0 igw-12345678901234567
::/0 eigw-aabbccddee1122334
  • Local 路由涵蓋要在 VPC (10.0.0.0/16) 內路由的 IPv4 流量。

  • Local 路由涵蓋要在 VPC (2001:db8:1234:1a00::/56) 內路由的 IPv6 流量。

  • 172.31.0.0/16 的路由會將流量傳送至對等連線。

  • 所有 IPv4 流量 (0.0.0.0/0) 的路由會將流量傳送至網際網路閘道。因此,除了 VPC 內和傳送到對等連線的流量,所有 IPv4 流量都會路由至網際網路閘道。

  • 所有 IPv6 流量 (::/0) 的路由會將流量傳送至輸出限定網際網路閘道。因此,除了 VPC 內的流量,所有 IPv6 流量都會路由至輸出限定網際網路閘道。

主路由表

當您建立 VPC 時,便會自動隨附一個主路由表。當子網未擁有與之關聯的明確路由表,則會根據預設使用主路由表。在 Amazon VPC 主控台中的 Route Tables (路由表) 頁面上,您可以透過尋找 Main (主要) 資料行中的 Yes (是),檢視 VPC 的主路由表。

依預設,當您建立非預設 VPC 時,主路由表僅包含本機路由。如果您 建立 VPC 並選擇 NAT 閘道,Amazon VPC 會自動將路由新增至閘道的主路由表。

下列規則會套用至主路由表:

  • 您可以新增、移除和修改主路由表中的路由。

  • 但無法刪除主路由表。

  • 您無法將閘道路由表設定為主路由表。

  • 您可以透過將自訂路由表與子網路建立關聯來取代主路由表。

  • 您可以明確將子網與主路由表建立關聯,即使其已經隱含地建立關聯。

    如果您變更哪個路由表是主路由表,則可能想這樣做。當您變更哪個路由表是主路由表時,它也會變更其他新的子網,或是任何尚未與其他路由表明確建立關聯之子網的預設值。如需詳細資訊,請參閱 取代主路由表

自訂路由表

依預設,每個路由表都包含一個用於在 VPC 內進行通訊的本機路由。如果您 建立 VPC 並選擇公有子網,Amazon VPC 會建立自訂路由表,並將路由新增至網際網路閘道。保護 VPC 的一種方法是將主路由表保留在原始的預設狀態。然後,明確地將您建立的每個新子網與您已建立的其中一個自訂路由表建立關聯。這可確保您明確控制每個子網路由流量的方式。

您可以新增、移除和修改自訂路由表中的路由。僅當自訂路由表格沒有關聯時,才可以刪除它。

子網路由表關聯

VPC 中的每個子網都必須與路由表建立關聯。子網可以明確地與自訂路由表相關聯,或者隱含或明確地與主路由表相關聯。如需檢視子網和路由表關聯的詳細資訊,請參閱判斷明確相關聯的子網及 (或) 閘道

位於與 Outposts 相關聯之 VPC 中的子網可有額外目標類型的本機閘道。這是與非 Outposts 子網的唯一路由差異。

範例 1:隱含和明確的子網關聯

下表顯示具有網際網路閘道、虛擬私有閘道、公有子網路和僅 VPN 子網路的 VPC 路由。


                    主路由表隱含地與私有子網路相關聯,自訂路由表明確地與公有子網路相關聯。

路由表 A 是自訂路由表,明確地與公有子網路關聯。該路由表具有將所有流量傳送至網際網路閘道的路由,這就能讓子網路成為公有子網路。

目的地 目標
VPC CIDR 區域
0.0.0.0/0 igw-id

路由表 B 是主路由表,隱含地與私有子網路相關聯。該路表具有將所有流量傳送至虛擬私有閘道的路由,但不具有將所有流量傳送至網際網路閘道的路由,這就能讓子網路成為僅 VPN 子網路。如果您在此 VPC 中建立另一個子網路,但未建立與自訂路由表的關聯,則子網路也會隱含地與此路由表相關聯,因為此表是主路由表。

目的地 目標
VPC CIDR 區域
0.0.0.0/0 vgw-id
範例 2:取代主路由表

您可能想要對主路由表進行變更。若要避免任何流量中斷,建議您先使用自訂路由表來測試這些路由變更。在您滿意測試之後,便可以使用新的自訂表取代主路由表。

下圖顯示兩個子網路和兩個路由表。子網路 A 隱含地與路由表 A (主路由表) 相關聯。子網路 B 隱含地與路由表 A 相關聯。路由表 B (自訂路由表格) 並未與任何一個子網路相關聯。


                    與路由表 A (主路由表) 都具有隱含關聯的兩個子網路。

若要取代主路由表,請先在子網路 B 和路由表 B 之間建立明確關聯。然後測試路由表 B。


                    子網路 B 現在明確地與路由表 B (自訂路由表) 相關聯。

在測試路由表 B 之後,您可以將之設為主路由表。子網路 B 仍與路由表 B 具有明確關聯。但是,子網路 A 現在與路由表 B 具有隱含關聯,因為路由表 B 為新的主路由表。路由表 A 不再與任何一個子網路相關聯。


                    子網路 A 現在隱含地與路由表 B (主路由表) 相關聯,而子網路 B 仍然明確地與路由表 B 相關聯。

(選用) 若您取消子網路 B 與路由表 B 的關聯,子網路 B 和路由表 B 之間仍然具有隱含關聯。若不再需要路由表 A,您可以將其刪除。


                    這兩個子網路都隱含地與路由表 B 相關聯。

閘道路由表

您可以將路由表與網際網路閘道或虛擬私有閘道建立關聯。當路由表與閘道相關聯時,它稱為閘道路由表。您可以建立閘道路由表,以精細控制進入 VPC 的流量路由路徑。例如,您可以透過網際網路閘道攔截進入 VPC 的流量,方法是將該流量重新導向至 VPC 中的中間設備 (例如安全設備)。

閘道路由表路由

與網際網路閘道相關聯的閘道路由表可支援具有下列目標的路由:

與虛擬私有閘道相關聯的閘道路由表可支援具有下列目標的路由:

當目標是閘道負載平衡器端點或網路界面時,允許下列目的地:

  • VPC 的整個 IPv4 或 IPv6 CIDR 區塊。在此情況下,您可以取代預設本機路由的目標。

  • VPC 中子網的整個 IPv4 或 IPv6 CIDR 區塊。這是比預設本機路由更具體的路由。

如果您將閘道路由表中的本機路由目標變更為 VPC 中的網路界面,您可以稍後將其還原為預設 local 目標。如需詳細資訊,請參閱 取代或還原本機路由的目標

範例

在下列閘道路由表中,前往具有 172.31.0.0/20 CIDR 區塊之子網的流量會路由至特定網路介面。前往 VPC 中所有其他子網的流量會使用本機路由。

目的地 目標
172.31.0.0/16 區域
172.31.0.0/20 eni-id
範例

在下列閘道路由表中,本機路由的目標會取代為網路界面 ID。前往 VPC 內所有子網的流量會路由至網路界面。

目的地 目標
172.31.0.0/16 eni-id

規則和考量

如果下列任一種情況適用,您就無法將路由表與閘道建立關聯:

  • 路由表包含具有網路界面、閘道負載平衡器端點或預設本機路由以外目標的現有路由。

  • 路由表包含 VPC 範圍外 CIDR 區塊的現有路由。

  • 路由表會啟用路由傳播。

此外,下列規則和考量也適用:

  • 您無法將路由新增至 VPC 範圍之外的任何 CIDR 區塊,包括大於個別 VPC CIDR 區塊的範圍。

  • 您只能將 local、閘道負載平衡器端點或網路界面指定為目標。您無法指定任何其他類型的目標,包括個別主機 IP 地址。如需詳細資訊,請參閱 路由選項範例

  • 您無法將字首清單指定為目的地。

  • 您無法使用閘道路由表來控制或攔截 VPC 外的流量,例如通過連接之傳輸閘道的流量。您可以攔截進入 VPC 的流量,並僅將其重新導向至相同 VPC 中的另一個目標。

  • 為了確保流量到達您的中間設備,目標網路界面必須連接到執行中的執行個體。對於流經網際網路閘道的流量,目標網路介面也必須具有公有 IP 地址。

  • 設定中間設備時,請注意設備的考量

  • 當您透過中間設備路由流量時,來自目的地子網的傳回流量的路由方式必須透過相同的設備。不支援非對稱路由。

  • 路由表規則適用於離開子網的所有流量。離開子網的流量會被定義為目的地為該子網閘道路由器之 MAC 地址的流量。目的地為子網中另一個網路界面的 MAC 地址的流量會使用資料連結 (第 2 層) 路由,而非網路 (第 3 層),因此規則不會套用至此流量。

  • 並非所有 Local Zones 都支援與虛擬私有閘道有邊緣關聯。如需有關可用區域的詳細資訊,請參閱《AWS Local Zones 使用者指南》中的考量事項

路由優先順序

一般而言,我們會使用符合流量的最具體路由來引導流量。這就是所謂的最長字首相符。如果您的路由表有重疊或相符的路由,則會套用其他規則。

最長字首相符

IPv4 和 IPv6 地址或 CIDR 塊的路由彼此獨立。我們會使用最具體且符合 IPv4 流量或 IPv6 流量的路由,從而判斷如何路由流量。

下列範例子網路由表具有適用於 IPv4 網際網路流量 (0.0.0.0/0),指向網際網路閘道的路由,以及適用於 172.31.0.0/16 IPv4 流量,指向對等連線 (pcx-11223344556677889) 的路由。任何來自子網,前往 172.31.0.0/16 IP 地址範圍的流量都會使用對等連線,因為這個路由比起網際網路閘道的路由更為具體。任何目標在 VPC (10.0.0.0/16) 內的流量都會涵蓋於 local 路由之中,因此會在 VPC 內路由。任何來自子網的其他流量都會使用網際網路閘道。

目的地 目標
10.0.0.0/16 本機
172.31.0.0/16 pcx-11223344556677889
0.0.0.0/0 igw-12345678901234567

路由優先順序和傳播路由

若您已將虛擬私有閘道連線至您的 VPC,並在您的子網路由表上啟用路由傳播,則代表您 Site-to-Site VPN 連線的路由會自動做為廣播路由,在您的路由表中出現。

如果傳播路由的目的地與靜態路由重疊,則靜態路由優先。

如果傳播路由的目的地與靜態路由的目的地相同,若目標為下列其中一種,則靜態路由優先:

  • 網際網路閘道

  • NAT 閘道

  • 網路界面

  • 執行個體 ID

  • 閘道 VPC 端點

  • Transit Gateway

  • VPC 對等連線

  • 閘道負載平衡器端點

如需詳細資訊,請參閱《AWS Site-to-Site VPN 使用者指南》中的路由表和 VPN 路由優先順序

下列範例路由表具有連向網際網路閘道的靜態路由,以及連向虛擬私有閘道的傳播路由。兩種路由的目標都是 172.31.0.0/24。由於通往網際網路閘道的靜態路由優先,因此目的地為 172.31.0.0/24 的所有流量會路由至網際網路閘道。

目的地 目標 已傳播
10.0.0.0/16 本機
172.31.0.0/24 vgw-11223344556677889
172.31.0.0/24 igw-12345678901234567

路由優先順序和字首清單

如果您的路由表參考字首清單,則適用下列規則:

  • 如果您的路由表包含具有目的地 CIDR 區塊的靜態路由 (它將靜態路由與字首清單重疊),則具有 CIDR 區塊的靜態路由優先。

  • 如果您的路由表包含與參考字首清單之路由一致的傳播路由,則參考字首清單的路由優先。請注意,對於重疊的路由,更具體的路由始終優先,無論其是傳播路由、靜態路由還是引用字首清單的路由。

  • 如果您的路由表參考多個字首清單,這些清單具有目標不同的重疊 CIDR 區塊,我們會隨機選擇任一路由優先順序。此後,相同的路由一律優先。

路由表配額

每個 VPC 可以建立的路由表數量有配額。您可以在每個路由表中新增的路由數量也有配額。如需詳細資訊,請參閱 Amazon VPC 配額

疑難排解可達性問題

Reachability Analyzer 是一種靜態配置分析工具。使用可 Reachability Analyzer 來分析和偵錯 VPC 中兩個資源之間的網路連接性。可 Reachability Analyzer 產生這些資源之間的虛擬路徑的 hop-by-hop 詳細信息,當它們是可訪問的,並識別阻塞組件,否則。例如,它可以識別缺少或配置錯誤的路由表路由。

如需詳細資訊,請參閱 Reachability Analyzer Guide (《Reachability Analyzer 指南》)。