web-dev-qa-db-ja.com

AWSでプライベートDNSを変更しますか?

EC2サーバーのプライベートDNSを変更する方法はありますか?

Ip-1.1.1.1-uswest-aws-internalではなくmyserver.example.comのようなものでサーバー間で通信できるようにしたいのですが。私はsysadminロールとネットワーキングの初心者です。 VPCでDHCPオプションセットをいじってみましたが、動作しませんでした。

編集#1

私が達成しようとしていることを明確にするために...私は多数のサーバーでスレーブを実行するJenkinsをセットアップしています。任意のアドレスの代わりに自分で割り当てたアドレスを使用できるようにしたかったので、ジョブが実行されているマシンに依存するのがより理にかなっています。

また、将来的には他のサーバー間通信も容易になると確信しています。先ほど言ったように、sysadminは初めてなので、簡単な方法がない場合はお知らせください。

4
riotburn

My-dns-nameでサーバーにアクセスする場合は、独自のDNSサーバーをセットアップする必要があります。

デフォルトでは、AWS VPCがDHCPを処理し、AmazonのDNSサーバーが付属しています。

独自のDNSサーバーを提供するためのオプションについては、こちらをご覧ください。 http://docs.aws.Amazon.com/AmazonVPC/latest/UserGuide/VPC_DHCP_Options.html

DHCPオプション名:domain-name-servers

最大4つのドメインネームサーバーのIPアドレス、またはAmazonProvidedDNS。デフォルトのDHCPオプションセットはAmazonProvidedDNSを指定します。

DHCPオプション名:domain-name

米国東部(バージニア北部)リージョンでAmazonProvidedDNSを使用している場合は、compute-1.amazonaws.comを指定します。別のリージョンでAmazonProvidedDNSを使用している場合は、region.compute.amazonaws.comを指定します。それ以外の場合は、ドメイン名を指定します(たとえば、MyCompany.com)。

その他の関連メモ:

FQDN(myserver.example.com)を使用して通信する場合は、独自のDNSサーバーがなくてもそれを行うことができます。ドメインはすでにパブリックにアクセス可能です。

IPアドレスと通信できます。プライベートまたはパブリックです。OSレベルでプライベートIPを変更したり、OSレベルでホスト名を変更したり、/ etc/hostsを利用して一種の貧弱なDNSを作成したりできます。

ElasticIPs、Elastic Network Interface、Elastic Load Balancersを常に調べて、すべてがクエスチョンと同じスペースで再生されるようにする必要がある場合があります。

それはすべて、達成しようとしていることと、それをどのようにしたいかにかかっています!

7
Drew Khoury

独自のネームサーバーを展開しない限り、変更することはできませんが、CNAMEレコード、これは望ましい効果をもたらします。

「example.com」DNSゾーンでは、Route 53にあるか、別のDNSホスティングプロバイダーでホストされているかにかかわらず、create CNAMEレコードを作成できるはずです。

myserver IN CNAME ip-1.1.1.1-uswest-aws-internal.

マシンが「myserver.example.com」を解決しようとすると、基本的に「example.com」DNSサーバーから、「実際の」内部ホスト名(「c匿名の 名前")。マシンがEC2デプロイメント内にある場合、これはEC2 dnsリゾルバーにこれを検索するように要求し、EC2リゾルバーは内部IPアドレスを返します...希望する動作につながります-できます希望するホスト名で内部マシンにアクセスします。

EC2デプロイメントの外部にあるシステムがこのホスト名を検索すると、マシンは外部からアクセスできないため(プライベートIPしかない場合)、失敗します。これは正しい動作です。

逆に、パブリックIPと対応するパブリックホスト名を備えたマシンがある場合は、ec2-x-x-x-x.us-west-2.compute.amazonaws.comそのホスト名をCNAMEターゲットとして使用すると、同じことが行われます。内部yourEC2デプロイメントからクエリを実行すると、EC2が透過的に実行するDNSマジックを介して内部IPアドレスになります...または外部から外部パブリックIPアドレスを返します。

https://stackoverflow.com/a/19148569/1695906

明確化:

DNSサーバーの動作には2種類あります。「権限のある」サーバーは、権限のあるリソースレコードに対する任意のホストからの要求に応答します...承認されたクライアントに代わってグローバルDNSを照会する再帰的な「リゾルバー」 。 DNSサーバーが両方の機能を実行することも可能です。

EC2インスタンス(デフォルト)は、AWSリゾルバーサーバーを使用して、インスタンスがアクセスしようとする外部の内部のホスト名を検索し、IPアドレスを返します...しかし、AWSリゾルバーは「.internal」に対しても権限があります疑似ドメイン。インスタンスが「.internal」ホストを検索しようとすると、正しい内部IPが返されます。

ここで、外部の「example.com」DNSサーバーでCNAMEターゲットとして内部ホスト名を構成し、「myserver.example.com」を内部で検索しようとすると、AWSリゾルバーはグローバルDNS階層を調べて、 「myserver.example.com」の信頼できるネームサーバーの1つ。応答は基本的に「myserver.example.comを見つけるには、ip-1.1.1.1-uswest-aws-internalを検索する必要があることを知っているだけです」と表示されます... AWSリゾルバーは、参照する必要がないことを認識します外部エンティティはこの新しい質問に答えます。これは偽の内部ドメインに対して信頼できるため、すでに知っている正しい答えで単に応答します。

外部の「example.com」はCNAMEターゲットを検証する必要がないか、検証する必要がありません。これは、その仕事ではないためです。

CNAMEが外部ホスト名を参照している場合、AWSリゾルバ(内部マシンによって行われたすべてのDNSクエリを処理する)は実際に正しい正しいものを検索しないため、プロセスは同じであり、結果は同じです。 "compute.amazonaws.com"ドメインに対して権威のあるDNSサーバーからのIPアドレス...代わりに、設計上、外部ホスト名のIPアドレスをすでに知っているともう一度信じます...しかし、答えは再びあなたの内部プライベートIPアドレスになります。

上記のAWSリゾルバーは、インスタンスにのみアクセスできる仮想エンティティです。パブリックホスト名からプライベートIPへのマッピングに関する情報には、インスタンスがクエリを実行するときにのみアクセスできます。外部からはアクセスできません。

内部ホスト名をCNAMEターゲットとしてプロビジョニングする場合、外部クエリは「内部」の回答を取得します。これはそれらにとって行き止まりになります。 CNAMEターゲットとして外部ホスト名をプロビジョニングすると、CNAMEを見つけると、インスタンスのみがアクセスできるプライベートな内部リゾルバーではなく、パブリックな権威DNSサーバーにリダイレクトされるため、最終的にパブリックIPになります。

これは実際にはすべて非常に単純ですが、ここで説明するのはそれほど簡単ではありません。最初にDNSの基本の多くを理解する必要があるためです...しかし、これは「example.com」DNSサーバーが単にそれらが理解するCNAMEでそれらを構成するかどうかは気にしません。それを理解することは彼らの問題ではありません-CNAMEに現れる中間的な答えを究極的に理解するための答えを探しているリゾルバに負担がかかります。

5

ルート53のプライベートホストゾーンでこれを簡単に実現できます http://docs.aws.Amazon.com/Route53/latest/DeveloperGuide/hosted-zones-private.html

1
ahmad82pkn

私はまったく同じ問題を抱えていました。私のドメインはAmazonの外部で管理されていますが、Amazon Route 53を使用してプライベートホスト名を作成し、インスタンスのプライベートAWS DNS名を指すようにCNAMEレコードを追加しました。これはサブドメインの問題を解決しましたが、ルート「example.com」ではCNAMEルールに違反するため機能しませんでした。

その後、CNAMEエントリを削除し、パブリックIPを指す2つのAレコード(example.comと* .example.com)に置き換えました。私の使用例のように、常に同じであるパブリックElastic IPを使用しましたが、状況は異なる場合があります。あなたはあなたのプライベートIPを使用できるはずですが、私はこれをテストしませんでした。

私のサーバーはWindowsベースであると指摘する必要がありますが、違いはありません。 NSLOOKUP example.comをコマンドプロンプトで使用すると、他の投稿で提案されている変更の監視に役立つことがわかりました。また、変更内容が非常に小さいTTL=値であるため、変更ができるだけ早く適用されるようにすることも重要です。AmazonRoute 53の最小のプリセットは60秒ですが、低くなる場合があります。 Aレコードを設定することは、私が最初に試したことの1つだったと思いますが、すぐには反映されなかったため、盲目の路地を何時間も費やしました。

1
Jules
  1. Namedなどの独自のDNSサーバーが必要です。
  2. http://docs.aws.Amazon.com/AmazonVPC/latest/UserGuide/VPC_DHCP_Options.html を見てください。 domain-name-serversオプションは変更するものです。
0
antimatter