AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 562333
Accepted
Carl
Carl
Asked: 2013-12-19 15:45:03 +0800 CST2013-12-19 15:45:03 +0800 CST 2013-12-19 15:45:03 +0800 CST

在同一个 EC2 安全组内通信

  • 772

我有几个实例在同一个安全组(比如:Group-A)中运行,它们需要相互通信,特别是端口 4369。

每个实例都有不同的弹性 IP。

安全组配置为允许通过 TCP:4369 Soruce:sg-XXXXX (Group-A) 的入站流量

但是,实例只能通过内部 IP (10.xxx.xxx.xx) 或亚马逊公共 DNS 相互通信:ec2-ELASTIC-IP.compute-1.amazonaws.com(显然亚马逊会将其转换为内部 IP) .

如果我使用弹性 IP,它将无法正常工作。如果我使用自己的指向弹性 IP 的 FQDN,它将无法正常工作。

如果我将入站规则中的源从 sg-XXXXX (Group-A) 更改为 0.0.0.0,它将与我自己的 FQDN 和弹性 IP 一起使用。但出于安全考虑,我们不会使用它。如果我删除入站规则,则没有任何效果,甚至使用内部 IP。

那么如果我想使用自己的 FQDN 应该怎么做呢?(worker-1.company.com -> Elastic IP),可读性更强,更易于管理。

amazon-ec2
  • 2 2 个回答
  • 4506 Views

2 个回答

  • Voted
  1. Best Answer
    Michael - sqlbot
    2013-12-20T04:56:46+08:002013-12-20T04:56:46+08:00

    您描述的行为是正常的,因为当通过弹性 IP 在实例之间进行通信时,安全组中机器的身份(出于依赖于 sg-xxxxxxxx 源的安全组配置的目的)实际上无法完全建立信心,因为翻译地址(可能)通过中间硬件发送流量,并且流量不再被视为直接来自实例。

    解决方案是在 DNS 中使用指向公共 DNS 记录的 CNAME 记录来命名您的主机,而不是指向特定 IP 地址的 A 记录。

    在 company.com DNS 区域中:

    worker-1   IN  CNAME  xx-xx-xx-xx.compute-1.amazonaws.com.
    

    现在,如果从内部查询,worker-1.company.com 将解析为私有 IP,而从外部查询则解析为公共 IP。

    • 8
  2. Barak
    2013-12-19T23:42:13+08:002013-12-19T23:42:13+08:00

    它并不完美,但您可以在每个实例的主机文件中添加从 FQDN 到私有 IP 的显式映射。因此,您的代码将使用 FQDN,但网络实际上将使用私人通信(无论如何这更安全)。

    如果您有少量、相对固定的实例集,这是一个合理的选择。如果可能的话,您可能应该自动化这个过程。

    您还可以使用 Route 53,Amazon 的 DNS 即服务。将您的 FQDN 映射到实例的公有 DNS 名称。在 EC2 内部,这将映射到私有 IP。您仍然需要使用 route 53 API 自动执行此操作。

    • 0

相关问题

  • 权限被拒绝(公钥)。从本地 Ubuntu 到 Amazon EC2 服务器的 SSH

  • 管理员如何管理他们的 EC2 EBS 和快照?

  • 云有多大?[关闭]

  • EC2 映像启动

  • 如何将安全组添加到正在运行的 EC2 实例?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve