私はFreeNAS(FreeBSD)を使用しています。刑務所を作成し、ホスト名を刑務所に割り当てました。 IPアドレスを介して刑務所にアクセスできますが、ホスト名は使用できません。 (マイホームネットワーク内)
どういうわけかローカルDNSが機能する必要がありますか?しかし、ホームネットワークには適切なDNSはありませんか?ホームネットワークで名前解決がどのように機能するのかわかりません。
つまり私はできるhttp://192.168.1.42:8000刑務所はこれらの要求に応答します。
刑務所について:
root@jailname:/ # hostname
jailname
しかし、ネットワークの他のコンピュータでは、次のようになります。
mckay@mckays-macbook ~ % ping jailname
ping: cannot resolve jailname: Unknown host
C:/> ping jailname
Ping request could not find host jailname. Please check the name and try again
FWIW、Windowsシステムのホスト名でNASとMacを解決できますが、MacはNASまたはWindowsシステムのホスト名を取得できません。 (しかし、IP経由でpingすることはできます)。
AndroidデバイスはNASで名前解決を実行できます。
答え1
ホームネットワークには、ルーターとそれをインターネットに接続するモデム(またはターミナルアダプタ)があります。アクセスポイント(AP)がある場合も、ルータにWiFi経由でルータに接続できる統合APがある場合もあります。ルータがLANに提供する2つのサービスは、DHCPとDNS検証です。ルーターがIPクライアントにDNSリゾルバーを見つけることができる場所を知らせると、DHCP中にDNS解決が提供されます。
デフォルトでは、ほとんどのルータはDNS解決のために独自のローカルIPアドレスを提供します。 DNS 要求が到着すると、LAN はアップストリーム DNS リゾルバとして DNS 要求をプロキシします。これらのアップストリームDNSリゾルバはISPに属することができます。または、もう少しスマートな場合は、ルーター設定に行き、より良い(より速く、プライバシーがより重要で、より信頼性が高いなど)パブリックDNSリゾルバーのセットを選択できます。
ルーターが依存するDNSリゾルバーはホームLANの外にあり、通常はルーターNATおよび/またはファイアウォールの背後に隠されているLANのホストについての知識はありません。
IPv4ホストがホスト名(NETBIOS、AppleTalk、zeroconf /マルチキャストDNS)を使用してLAN上で互いに通信できるようにするいくつかの独自の構成プロトコルがありますが、各プロトコルのサポートは制限されています。ルーターはこれらのプロトコルの1つ以上をサポートすることもでき、LANのホスト名に名前でアクセスできます。これが機能するにはルーターがそれをサポートする必要があり、ローカルホストの名前を公開するにはプロトコル用のクライアントをインストールする必要があります。
FreeBSD では、マルチキャスト DNS 構成用の mDNSResponder と avahi ポート、IP 経由の AppleTalk 構成用の netatalk、NETBIOS 構成用の samba ポートをご覧ください。私は上記のすべての方法を長年使用してきましたが、それぞれの効果はさまざまでした。
IPv4とIPv6によるホスト名解決のための完全な「常に動作」ソリューションが必要な場合は、次の手順を実行します。束縛されていないFreeBSDホストはそれをLANの静的IPアドレスにバインドします。通常、私はルータの上のLANで次に高いIPアドレスでDNSサーバーを実行します。したがって、ルータが 192.168.1.1 の場合、DNS は 192.168.1.2 に公開されます。次に、DHCP 割り当てにローカル DNS サーバーの静的 IP アドレスを使用するようにルーターを構成します。
これでローカルDNSサーバーがあるので、LAN内で信頼性の高いDNS解決に必要なローカルA、AAAA、およびPTRレコードを使用してそれらを設定できます。一度設定すると、LAN上のすべてのホストはDNS名を介して静的ホストにアクセスできます。