web-dev-qa-db-ja.com

Linux DNSサフィックス構成

前書き

Windows Serverベースのネットワークに接続されたRasbianを実行しているRaspberry Piを持っています。これは、すべての接続されたコンピューティングシステムで構成される独自のイントラネットと、一般にアクセス可能なWebサイトを備えた企業(教育)ネットワークです。この質問のために、ドメインの名前はexampledomain.comになります。

このイントラネットでは、接続されているWindowsコンピューターは、ネットワークアダプターの構成を通じて、ホスト名にDNSサフィックスを追加できます(手順は ここに記載されています )。これにより、comp1という名前のコンピューターがローカルネットワークからcomp1またはcomp1.ns.exampledomain.comでアドレス指定できるようになります(つまり、ipconfigリストns.exampledomain.comを接続とし​​て-特定のサフィックス)。

問題

ホスト名comppiのRaspberry Pi 2があり、アドレスcomppi.ns.exampledomain.comからアクセスできる必要があります。 Piは現在、ホスト名comppicomppi.local、またはIPアドレスを使用してアクセスできます。

ホスト名を介したアクセスは、Sudo apt-get -y install sambaを使用してsambaをRPiにインストールすることで実現されました。これは、RPiでavahiを設定する簡単な方法でした。

関連するDHCP/DNSサーバーにアクセスできません。しかし、私は必要なくこの結果を達成できるはずです。 (Windowsコンピューターからでも問題なく実行できるため)

また、関連するmanページを読んだ後でも、/etc/dhcp/dhclient.confファイルをよく理解していないことにも注意してください。些細なことを私はおそらく見逃している。

現在の試み

  • 以下のファイルのすべての場所でホスト名を直接comppi.ns.exampledomain.comに変更しようとしました。
  • send Host-name = "comppi.ns.exampledomain.com"のホスト名行を/etc/dhcp/dhclient.confに変更してみました。
  • askubuntu.comappend domain-name = "ns.exampledomain.com"ユーザーJordanに/etc/dhcp/dhclient.confという行を追加しようとしました。ただし、これは、失敗したときに送信ホスト名解決にns.exampledomain.comを追加するだけだと思います。

技術的な情報

  • OS:Raspbian GNU/Linux 8(jessie)(注:これはライトバージョンでした)
  • Pi:ラズベリーPi 2
  • ホスト名:comppi

ファイル

/etc/network/interfacesの内容は変更されていません。

/etc/hostnameの内容:

comppi

/etc/hostsの内容:

127.0.0.1       localhost
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

127.0.1.1       comppi comppi.ns.exampledomain.com

/etc/dhcp/dhclient.confの内容:

# Configuration file for /sbin/dhclient, which is included in Debian's
#       dhcp3-client package.

option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;

#send Host-name = gethostname();
send Host-name = "comppi"
append domain-name = "ns.exampledomain.com"
request subnet-mask, broadcast-address, time-offset, routers,
        domain-name, domain-name-servers, domain-search, Host-name,
        dhcp6.name-servers, dhcp6.domain-search,
        netbios-name-servers, netbios-scope, interface-mtu,
        rfc3442-classless-static-routes, ntp-servers;
4
samthecodingman

したがって、ネットワーク上のcomppi.ns.exampledomain.comを解決するには、DHCPサーバーの管理者の助けが必要です。その理由は次のとおりです。 この回答の下部にあるLinuxオプション

Windows環境

追加のソフトウェアがインストールされていない限り、LINUXクライアントはAD(Active Directory)を認識しません。したがって、適切に構成されたWindows環境でDNSサーバーを更新するには、DHCPサーバーに依存する必要があります。
DHCPサーバーがローカルDNSサーバーにホスト名を登録するには、動的更新が承認されている必要があります。この設定はユーザーが構成することはできません。ネットワーク管理者が設定を変更する必要があります。そうするためには、これを機能させる必要があります。
DHCP Server DHCPサーバーからのIPアドレスとともに、このネットワークのドメインサフィックスも受け取ります。サフィックスはホストによって保存され、後で使用されます。 DHCPサーバーとDNSサーバーが同じボックス上にない限り、動的更新ではDHCPサーバーがDNSサーバーで認証される必要があることに注意してください。

この時点で、DHCPサーバーはDNSネットワーク登録を実行します。クライアントのホスト制御下にはありませんが、ホストはそれを要求する必要があります。現在DebianはDNS登録を自動的に要求しています。

Windowsでは、ipconfig /registerndsで強制的に再登録できます。

ローカルネットワークでは、ホストは2つの「正当な」名前と方法(プレーンなホスト名とホスト名とドメイン)を使用してを見つけることができます。サフィックス「.local」は、しばしば無視され、別のサフィックスの追加を回避するために使用されます。

1最初の方法はDNSを使用しません。LANブロードキャストを使用して、ホストが「この名前を知っている」という質問をすると、対象のホストがMACで応答しますアドレスとIP。

ホストは数秒ごとに名前をブロードキャストするので、LANを共有している他のユーザーは自分の存在を知ることができます。多くの場合、このブロードキャストはスイッチ/ルーターによってフィルタリングされるため、同じスイッチを使用していない限り、信頼性を確保することは困難です。
enter image description here

22番目の方法は、「プレーン」ホスト名とLANサフィックスが付いたホスト名を使用して、LAN指定のDNSサーバーにリクエストを送信することです。

ホームルーターとイントラネットはパブリックではないため、デフォルトのDNSサーバーで汎用DNS(8.8.8.8、8.8.4.4)を使用しても、ローカルホストはまったく解決されません。 DHCPが割り当てられたアドレスを持つすべてのローカルホストは、ルーターによって「記憶」されます。

ホストで、DNSアドレスを解決するときに必要な1つ以上のサフィックスを追加できます(Linux HostまたはDigを使用し、Windowsの場合はnslookup)。

enter image description here

ホスト名を正しく設定することをお勧めします。 /etc/hostname/etc/hosts(:: 1および127.0.0.1の場合)で実行し、. /etc/init.d/hostname.shを実行します。

LinuxからDNSサーバーを手動で更新する

クライアント上で手動の協力のみを必要とする別のオプションがあります。あまり知られていないユーティリティの使用 nsupdate 。これにより、有効なDNSサーバーに登録するために必要な機能が追加されます。 DNSに関連するRFC公開プロトコルに従います。

例:

$ nsupdate -v
>delete video.domain.com. a
>delete  git.domain.com. a
>delete  gateway.domain.com. a
>add  video.domain.com. 600 a 192.168.1.111
>add  git.domain.com. 600 a 192.168.7.10
>add  gateway.domain.com. 600 a 192.168.7.10
>send
>quit

動的に取得したIPV4またはIPv6アドレスを使用して単純なファイルを作成し、/etc/network/interfacesの「後処理」スクリプトで実行できます

0
fcm

Windowsクライアントは、Active Directoryの一部である場合、DNSに自分の名前を自動的に登録します(これは、あなたのケースでは正しいようです)。これは、ダイナミックDNS(DDNS)と呼ばれるプロセスを使用します。 LinuxマシンをWindows DDNSに登録する最も簡単な方法は、Sambaを使用してLinuxマシンをWindowsドメインに参加させることです。これには、Windowsドメインに参加する権限が必要です。インターネット上の多くのガイドでは、LinuxからWindowsドメインに参加する方法の詳細を説明していますが、簡単な手順は次のとおりです。

最初に/etc/krb5.confにドメイン情報を追加します

[realms]
    NS.EXAMPLEDOMAIN.COM = {
    }

[domain_realm]
    .ns.exampledomain.com = NS.EXAMPLEDOMAIN.COM
    ns.exampledomain.com = NS.EXAMPLEDOMAIN.COM

次に、smb.confをドメイン参加用に構成します

[global]
workgroup = EXAMPLEDOMAIN
realm = NS.EXAMPLEDOMAIN.COM
security = ADS

次にnet ads join -U windowsuserを実行します。ここで、windowsuserはドメインに参加する権限を持つ任意のユーザーです。

これにより、マシンがWindowsドメインに参加し、同時にマシンのIPアドレスがWindows DNSに登録され、他のユーザーがcomppi.ns.exampledomain.comcomppiの両方の名前を使用してマシンにアクセスできるようになります

1
Hesham Ahmed

ここにあるRaspberry Piでは、Raspbian Jessieも実行しており、DHCPクライアントは/sbin/dhcpcd。残念ながら、これはDNSサフィックスを指定できない別の構成ファイルを使用します。

ps -ef | grep -i [d]hcp
root       720     1  0 10:16 ?        00:00:00 /sbin/dhcpcd -q -w

幸い、このシステムにはresolvconfがインストールされており、これには構成ファイル/etc/resolvconf.conf DNSサフィックスの指定を許可します:

search_domains_append=ns.exampledomain.com

2つのJessie Piで異なるインストール構成を使用する必要がある理由はまったくわかりませんが、それは別の日の疑問かもしれません。比較のために、Debian Wheezyシステムの一部で見られるDHCPクライアントプロセスの別の例を次に示します。

# This uses /etc/dhcp/dhclient.conf and is not what I have on my Pi
ps -ef | grep -i [d]hcp
root      1683     1  0 09:58 ?        00:00:00 dhclient -v -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases eth0
0
roaima