dnsmasqは、存在しないサブドメインをローカルIPとして指します。

dnsmasqは、存在しないサブドメインをローカルIPとして指します。

IP が変わり続ける特定のリモート サブドメインがあり、mymachine.home.com正しく解決するには DNSMasq を更新する必要があります。

しかし、存在しないpingをテストしましたが、xxxxxx.home.comすべて私のNginXリバースプロキシを指したいと思いました。 (私の項目のほとんどがそこを指しています。)

DNSMasqが存在しないサブドメインをローカルIPとして解決するのを防ぐ方法は? (常に同じIP)

または

特定のエントリに対して常に外部DNSを使用するようにDNSMasqに指示するにはどうすればよいですか?

これが私のインストール構成です。

#DNS_Config
#Dont use external file for custom dns
no-hosts
#Use this file for DNS nameservers (contains googles DNS)
resolv-file=/etc/resolv.dnsmasq.conf

##CUSTOM_DNS
#PING home.com = 192.168.1.210
address=/home.com/192.168.1.210
##DHCP##

##DHCP_Config
#Listen only on eth0
interface=eth0
#DHCP Range 192.168.1.2-127 (12hr lease time)
dhcp-range=192.168.1.2,192.168.1.127,12h
#RESERVE DNSMasq SERVER IP
dhcp-host=00:0c:29:c2:56:bf,192.168.1.149
#Change DEFAULT GATEWAY (Default is same IP as DNSMasq Server)
dhcp-option=option:router,192.168.1.1


##STATIC_DHCP
#STATIC IP to 2 MAC Address that WILL NOT be used simultaneously [IE: Laptop with WiFi + LAN]
dhcp-host=00:00:00:00:00:00,00:00:00:00:00:00,192.168.1.210
#Assign STATIC IP by MAC
dhcp-host=00:00:00:00:00:00,192.168.1.211

答え1

存在しないドメインの偽のIPアドレスを取得する最も一般的な理由は、誤ったWebサイトアドレスを入力したときにより多くの広告を提供するために、ISPが否定的な答えを広告サーバーのアドレスに変換するためです。これは確かに間違った慣行ですが、残念ながら一部のISPではそうします。

通常、他のアップストリームDNSサーバーを使用してこの状況を処理できます。オープンDNSserver=208.67.222.222およびserver=208.67.220.220)またはGoogle(server=8.8.8.8およびserver=8.8.4.4)。独自のカスタマーサービスを提供するためにISPサーバーが必要な場合は、server=/myisp.com/203.0.113.1特定のドメイン()内でのみ使用できます。

つまり、あなたの場合の問題は、設定が望みどおりに機能しないことです。

DNSMasq が存在しないサブドメインをローカル IP として解決するのを防ぐ方法。

ドメインが存在すると宣言しないことによって。 Dnsmasq は存在しないドメインを IP アドレスに置き換えません。

特定のエントリに対して常に外部DNSを使用するようにDNSMasqに指示する方法は?

ホスト名の値を宣言しないか、ホスト名にワイルドカード文字を含めます。

構成の問題は行です

address=/home.com/192.168.1.210

これはワイルドカードです。これは、このドメインの下のアドレス192.168.1.210とすべてのホスト名であることを宣言します。home.comこのワイルドカードは必要ありませんので削除してください。

代わりに、home.com合計の個々の領域を次home.comのように宣言してください。CPU名/etc/hosts、ワイルドカードの代わりにその行をにリストして削除します。no-hosts特定のホストを宣言しようとしているので必要です!または、使用したくない場合は、/etc/hostsこの行を維​​持し、宣言を使用して他のファイルを指す行を追加してくださいaddn-hosts=/path/to/hosts-file。または、すべてを内部に保つには、dnsmasq.conf行を次に置き換えます。host-record=home.com,192.168.1.210

例外を持つワイルドカードが必要な場合(例外をxxx.home.com除くすべての項目は192.168.1.210を返すmymachine.home.comか、常にアップストリームサーバーに問い合わせて否定的な答えに対して192.168.1.210のみを置き換える)、dnsmasqはそうすることはできないと思います。

答え2

Jillの正解を拡張すると、次のようになります。

TheKelleys.org DNSMasq のマニュアルページから

-A, --address=/<domain>/[domain/][<ipaddr>]

指定されたドメイン内のすべてのホストに対して返されるIPアドレスを指定します。ドメイン内のクエリは転送されず、常に指定されたIPアドレス(IPv4またはIPv6のいずれか)で応答されます。ドメインにIPv4アドレスとIPv6アドレスの両方を提供するには、-Aフラグを繰り返し使用します。 /etc/hosts および DHCP リースは、個々の名前のこの設定を上書きします。一般的な用途は、バナー広告を避けるために、doubleclick.netドメイン全体をおなじみのローカルWebサーバーにリダイレクトすることです。ドメイン仕様は --server と同じように機能しますが、すべてのドメインと一致する /#/ の追加機能があります。したがって、--address = /#/ 1.2.3.4は、/ etc / hostsまたはDHCPから応答せず、より具体的なネームサーバーによってアップストリームネームサーバーに送信されないすべてのクエリに対して常に1.2.3.4を返します。--サーバーコマンド。 --server の場合、アドレスを持たない 1 つ以上のドメインは no-such-domain 応答を返すため、--address=/example.com/ は --server=/example.com/ と等しく、たとえば NXDOMAIN を返します。 。 comとすべてのサブドメイン。

--host-record=<name>[,<name>....],[<IPv4-address>],[<IPv6-address>][,<TTL>]

A、AAAA、および PTR レコードを DNS に追加します。これにより、1つ以上の名前と関連するIPv4(A)およびIPv6(AAAA)レコードがDNSに追加されます。名前は複数のホストレコードに表示されるため、複数のアドレスを割り当てることができます。最初のアドレスだけがアドレスを名前に関連付けるPTRレコードを生成します。これは、ホストファイルの読み込みに使用されるのと同じルールです。ホストレコードオプションはホストファイルの前に読み込まれると見なされるため、ここに表示される名前は、ホストファイルにも表示される場合はPTRレコードの生成を抑制します。ホストファイルとは異なり、拡張ホストが有効であっても名前は拡張されません。たとえば、短い名前と長い名前が同じホストレコードに表示されることがあります。 --host-record=laptop,laptop.thekelleys.org,192.168.0.1,1234::100 TTL (time-to-live) が指定された場合は、デフォルト値 (0 または --local-ttl 値) をオーバーライドします。値は、生存時間(秒単位)を提供する正の整数です。

答え3

私のドメイン名のエントリがあります。

address=/domain.com/192.168.1.7(マイNginXリバースプロキシ)

これにより、存在しないすべてのサブドメイン(acoimasdin.domain.comなど)が192.169.1.7と識別されます。

domain.comをwww.domain.comに転送するために、Apacheにはすでにすべての設定があるので、次のように入力しました。

address=/www.domain.com/192.168.1.7

これで、自分のリモートサブドメインDNSがGoogle DNSに転送され、存在しないDNSは「ホストが存在しません」として返されます。これがまさに私が望むものです!

デフォルトでは、下部/上部(正しい用語がわからない)レベルのエントリ(domain.comなど)を持つことはできません。それ以外の場合は、存在しないすべてのDNSエントリがそのDNSエントリを使用します。

関連情報