web-dev-qa-db-ja.com

dnsmasqを使用して、ドメイン名をローカルでCNAMEエイリアスに解決します

ドメイン名somedomain.comをCNAME(AWSロードバランサー、たとえばsome-balancer-1213231237.ap-southeast-2.elb.amazonaws.com)に解決したいのですが、ローカルのみです。

私が達成したいのは、somedomain.comにアクセスしようとするときはいつでも、上記のロードバランサーのサービスを受けたいということです。これは自分のコンピューターにのみ限定する必要があります。

マッピングできるのはAレコード(IPアドレス)だけなので、/etc/hostsを編集してこれを実現することはできません。私はどこかでdnsmasqがこれを達成するための最も堅牢な解決策になると読んだ。ただし、ドキュメントでは、これをどのように実現できるかについて非常に不明確です。私はあなたの助言と、おそらく例のある構成の一部に感謝します。ありがとう!

8
luqo33

以下をdnsmasqの構成ファイルに追加できます。

cname=somedomain.com,some-balancer-1213231237.ap-southeast-2.elb.amazonaws.com

man page で指定されているとおり:

--cname=<cname>,[<cname>,]<target>[,<TTL>]

<cname>が本当に<target>であることを示すCNAMEレコードを返します。ターゲットには大きな制限があります。/etc/hosts(または追加のhostsファイル)、DHCP、--interface-name、または別の--cnameからdnsmasqが認識しているDNS名である必要があります。ターゲットがこの基準を満たさない場合、cname全体が無視されます。 cnameは一意である必要がありますが、同じターゲットを指す複数のcnameを持つことは許容されます。実際、次のように1行で複数のcnameをターゲットに宣言することが可能です:--cname=cname1,cname2,target

存続可能時間が指定されている場合、それはデフォルトのゼロまたは--local-ttlの値をオーバーライドします。値は正の整数であり、存続時間を秒単位で示します。

Manページで指定されているように、/ etc/hostsファイルでターゲットを定義する必要があります。

203.0.113.80   some-balancer-1213231237.ap-southeast-2.elb.amazonaws.com

したがって、これがあなたにとって非常に役立つかどうかはわかりません。

3
Tommiie