2017-01-05 80 views
2

我有兩個實例(實例A和實例B)都是同一個安全組的一部分(比如說sg-1)。爲什麼我不能ping公共IP的aws實例,儘管我可以ping專用IP很好?

安全組具有以下入站規則集:

  • 類型:所有流量
  • 協議:所有
  • 端口範圍:所有
  • 來源:SG-1

我可以使用實例B的私有IP從實例A ping實例B,但是當我使用實例B的公共地址時,我沒有得到任何響應。

我在想什麼?

編輯:
如果我將上述安全配置中的源更改爲「Anywhere」,ping到公網IP工作。

+0

一個使用它的公網IP可以ping實例?在實例A和B中運行什麼操作系統?你檢查過操作系統的防火牆設置嗎? –

+0

你的意思是來自實例A的ping實例A?我在兩者上運行rancherOS。不認爲有任何操作系統防火牆處於活動狀態 – Nithin

+3

[當您將安全組指定爲規則的源或目標時,該規則會影響與該安全組關聯的所有實例。根據與源安全組關聯的實例的私有IP地址(而不是公有IP或彈性IP地址)允許傳入通信。](http://docs.aws.amazon.com/AWSEC2/latest /UserGuide/using-network-security.html) –

回答

4

只有當您ping實例B的private地址時,您纔會感到驚訝。

您的子網的路由表將路由公共地址到您的VPC之外。當它離開VPC並且流量回來時,源地址將是公共IP,而不是私有IP。路由表首先在安全組之前。當您將流量發送到另一臺機器:

  • DNS名稱解析爲IP
  • 在你的情況,你指定一個IP,所以沒有DNS解析發生
  • 如果地址中的一個瀑布路由表的規則,將相應地路由
  • 當您指定的專用IP,它是最有可能的內部路由和安全組允許的流量,你能ping
  • 當您指定一個公網IP,它是最有可能走出去。無需查看子網路由表,就很難猜測流量的來源。告訴我們路由表,我可以告訴你究竟發生了什麼。 在這種情況下,源地址將是公共IP,而不是私有IP
  • 使用traceroutelft跟蹤網絡跳數
+0

這很有道理。感謝您的澄清 – Nithin

相關問題