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は現在、ホスト名comppi
、comppi.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
に変更してみました。append domain-name = "ns.exampledomain.com"
ユーザーJordanに/etc/dhcp/dhclient.conf
という行を追加しようとしました。ただし、これは、失敗したときに送信ホスト名解決にns.exampledomain.com
を追加するだけだと思います。/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;
したがって、ネットワーク上のcomppi.ns.exampledomain.com
を解決するには、DHCPサーバーの管理者の助けが必要です。その理由は次のとおりです。 この回答の下部にあるLinuxオプション
追加のソフトウェアがインストールされていない限り、LINUXクライアントはAD(Active Directory)を認識しません。したがって、適切に構成されたWindows環境でDNSサーバーを更新するには、DHCPサーバーに依存する必要があります。
DHCPサーバーがローカルDNSサーバーにホスト名を登録するには、動的更新が承認されている必要があります。この設定はユーザーが構成することはできません。ネットワーク管理者が設定を変更する必要があります。そうするためには、これを機能させる必要があります。
DHCPサーバーからのIPアドレスとともに、このネットワークのドメインサフィックスも受け取ります。サフィックスはホストによって保存され、後で使用されます。 DHCPサーバーとDNSサーバーが同じボックス上にない限り、動的更新ではDHCPサーバーがDNSサーバーで認証される必要があることに注意してください。
この時点で、DHCPサーバーはDNSネットワーク登録を実行します。クライアントのホスト制御下にはありませんが、ホストはそれを要求する必要があります。現在DebianはDNS登録を自動的に要求しています。
Windowsでは、ipconfig /registernds
で強制的に再登録できます。
ローカルネットワークでは、ホストは2つの「正当な」名前と方法(プレーンなホスト名とホスト名とドメイン)を使用してを見つけることができます。サフィックス「.local
」は、しばしば無視され、別のサフィックスの追加を回避するために使用されます。
1最初の方法はDNSを使用しません。LANブロードキャストを使用して、ホストが「この名前を知っている」という質問をすると、対象のホストがMACで応答しますアドレスとIP。
ホストは数秒ごとに名前をブロードキャストするので、LANを共有している他のユーザーは自分の存在を知ることができます。多くの場合、このブロードキャストはスイッチ/ルーターによってフィルタリングされるため、同じスイッチを使用していない限り、信頼性を確保することは困難です。
22番目の方法は、「プレーン」ホスト名とLANサフィックスが付いたホスト名を使用して、LAN指定のDNSサーバーにリクエストを送信することです。
ホームルーターとイントラネットはパブリックではないため、デフォルトのDNSサーバーで汎用DNS(8.8.8.8、8.8.4.4)を使用しても、ローカルホストはまったく解決されません。 DHCPが割り当てられたアドレスを持つすべてのローカルホストは、ルーターによって「記憶」されます。
ホストで、DNSアドレスを解決するときに必要な1つ以上のサフィックスを追加できます(Linux Host
またはDig
を使用し、Windowsの場合はnslookup
)。
ホスト名を正しく設定することをお勧めします。 /etc/hostname
と/etc/hosts
(:: 1および127.0.0.1の場合)で実行し、. /etc/init.d/hostname.sh
を実行します。
クライアント上で手動の協力のみを必要とする別のオプションがあります。あまり知られていないユーティリティの使用 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
の「後処理」スクリプトで実行できます
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.com
とcomppi
の両方の名前を使用してマシンにアクセスできるようになります
ここにある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