Amazon-Ec2

將一個區域的 VPC 之間的流量路由到另一個區域的 VPC

  • December 6, 2017

為了允許俄勒岡州 (us-west-2) 的 VPC 中的實例與愛爾蘭 (eu-west-1) 的另一個 VPC 上的實例聯繫,我在兩個區域都安裝了 OpenSwan 網關機器,並在兩個區域之間建立了 IPSEC 隧道兩個執行正常的區域。

Details:
Oregon VPC CIDR: 172.31.0.0/16
Ireland VPC CIDR: 172.91.0.0/16

在愛爾蘭,我使用了我編寫的 CloudFormation 模板來創建一個新堆棧,其中包括創建一個新的隔離 VPC,CloudFormation 正在執行的任務之一是在預設愛爾蘭 VPC 和新創建的(隔離) VPC。

The new isolated VPC CIDR: 172.52.0.0/16.

目前,如果我從位於俄勒岡州 (172.31.xx) 的預設 VPC 中的實例向位於愛爾蘭預設 VPC (172.91.xx) 中的實例執行 ping 命令,它就像一個魅力。

接下來,我希望新隔離 VPC (172.52.xx) 中的機器能夠訪問俄勒岡州 (172.31.xx) 的預設 VPC 中的實例。

與俄勒岡州預設 VPC 關聯的路由表配置為路由流量:

to: 172.52.0.0/16 GW: Interface of the OpenSwan server in Oregon.
to: 172.91.0.0/16 GW: Interface of the OpenSwan server in Oregon.

與愛爾蘭的預設 VPC 關聯的路由表配置為路由流量:

to: 172.31.0.0/16 GW: Interface of the OpenSwan server in Ireland.
to: 172.52.0.0/16 GW: The peering connection ID (between 172.52.x.x and 172.91.x.x)

附加到 OpenSwan 實例 @ Oregon 的安全組:

Allows all traffic to 172.52.x.x/16, 172.91.x.x/16, 172.31.x.x/16.
Allows UDP 500 and 4500 to the EIP of the OpenSwan instance in Ireland.

附加到 OpenSwan 實例 @ Ireland 的安全組:

Allows all traffic to 172.52.x.x/16, 172.91.x.x/16, 172.31.x.x/16.
Allows UDP 500 and 4500 to the EIP of the OpenSwan instance in Oregon.

ipsec.conf:

version 2.0     # conforms to second version of ipsec.conf specification

# basic configuration
config setup
       protostack=netkey
       nat_traversal=yes
       virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:172.91.0.0/16,%v4:172.52.0.0/16,%v4:25.0.0.0/8,%v4:172.31.0.0/16,%v4:172.59.0.0/20,%v6:fd00::/8,%v6:fe80::/10
       oe=off

include /etc/ipsec.d/*.conf

我能夠從每台 OpenSwan 機器(俄勒岡/愛爾蘭)ping 駐留在俄勒岡州預設 VPC 中的實例,反之亦然,但我無法從駐留在 172.52.xx/16 子網中的實例 ping 該實例.

你認為我錯過了哪條路線?我需要允許愛爾蘭的隔離 VPC 中的實例訪問俄勒岡州的預設 VPC。

好的,所以亞馬遜似乎在幾天前聽到了我的電話並擴展了他們目前的“create-vpc-peering”命令,現在它允許跨不同區域對等 VPC。

目前它似乎還不受 AWS Cloud Formation 的支持,但可以通過 UI 和 Cli 完成。

如果你查看亞馬遜的官方文件——create-vpc-peering,你會看到一個新的開關:

[--peer-region <value>]

因此,不再需要區域之間的 VPN,因為我可以使用此跨區域對等功能來實現我在愛爾蘭的隔離 VPC 和俄勒岡州的管理 VPC 之間建立網路的目標。

您的配置將不起作用,因為 VPC 對等互連不具有傳遞性,請參閱:http : //docs.aws.amazon.com/AmazonVPC/latest/PeeringGuide/invalid-peering-configurations.html#transitive-peering 上的官方文件它。這對您的設置意味著只有愛爾蘭預設 VPC 和愛爾蘭獨立 VPC 之間的流量才會流動 (172.91.0.0/16 <-> 172.91.0.0/16)

來自俄勒岡州的發往隔離 VPC (172.31.0.0/16 <-> 172.52.0.0/16) 的數據包將被對等鏈路丟棄,即使您將路由放在隔離和預設 VPC 路由表中,我認為你不見了。

如果您只需要一個方向的連接(即俄勒岡州隔離 VPN 客戶端中的伺服器。您可以讓 openVPN 實例愛爾蘭 NAT 流量從俄勒岡州流向隔離 VPC。這將使跨對等鏈路的流量來自 172.91.0.0 /16 這是允許的。

如果 NAT 不起作用,您需要在隔離的 VPC 和 Oregon VPC 之間設置直接連接,或者使用更多 VPN 隧道或新的跨區域對等互連https://aws.amazon.com/about-aws /whats-new/2017/11/announcing-support-for-inter-region-vpc-peering/ (注意我還沒有使用它,所以我不知道它可能有什麼額外的限制)

引用自:https://serverfault.com/questions/886352