2021年8月30日月曜日

BINDにモビリティ・プリントのレコードを設定(基本)

この記事では、DNSサーバにBINDを使用している環境で、
モビリティ・プリント用プリンタのアドバタイズ・レコードをなるべく簡単に設定でいる方法について説明します。

BINDの環境変数

BINDサーバの設定は、人により異なります。この記事で使用するファイル名やディレクトリは環境により完全に一致しない可能性があります。
ここで説明する設定が参考になれば幸いです。

・ BINDのオプション設定ファイル「named.conf.options」またはこれに類似した名前のファイルが存在すること
・ ローカルのBIND設定ファイル「named.conf.local」またはこれに類似した名前のファイルが存在すること
・ 「named.conf.options」と「named.conf.local」は次のディレクトリにあること: /etc/bind/
・ 「db.local」や「db.127」などのサンプル・ゾーン・ファイルは次のディレクトにあること: /etc/bind
・ 本番のゾーンファイルが次のディレクトリに存在すること: /etc/bind/zones/

その他の環境変数
・ 仮のサブネット: 10.1.1.0
・ 仮のモビリティ・プリント・サーバのIPアドレス: 10.1.8.101
・ 仮のBIND DNSサーバのIPアドレス: 10.1.9.69

逆引きゾーンファイル(Reverse zone file) の作成

ここでは、Appleデバイスをホストするサブネットに対応する逆引きゾーンファイルを記述します。
例えば、サブネットが「10.1.1.0」の場合、新しい逆引きゾーンファイルを「rev.0.1.1.10」と呼び、
サンプルの「db.127」ゾーンファイルをベースにします。
下記のコマンドでサンプルを本番のゾーンファイルのフォルダにコピーします。

 cd /etc/bind/
 sudo cp db.127 ./zones/rev.0.1.1.10

次に新しい逆引きゾーンファイルを編集します。

 cd /etc/bind/zones
 sudo nano rev.0.1.1.10

最初は次のような感じのファイルです。

                   File: /etc/bind/zones/rev.0.1.1.10

;

; BIND reverse data file for local loopback interface

;

$TTL    604800

@       IN      SOA     localhost. root.localhost. (

                              1         ; Serial

                         604800         ; Refresh

                          86400         ; Retry

                        2419200         ; Expire

                         604800 )       ; Negative Cache TTL

;

@       IN      NS      localhost.

1.0.0   IN      PTR     localhost.

 

SOAを変更して、最初の「localhost」をBINDサーバのFQDNに変更し、「root.localhost」を連絡先情報に変更します。
またデフォルトのPTRレコードを削除します。次にネームサーバのレコードを追加します。最終的には次のようになります。

                   File: /etc/bind/zones/rev.0.1.1.10

;

; BIND reverse data file for local loopback interface

;

$TTL    604800

@       IN      SOA     dns.paper.cut. admin.dns.paper.cut. (

                              1         ; Serial

                         604800         ; Refresh

                          86400         ; Retry

                        2419200         ; Expire

                         604800 )       ; Negative Cache TTL

; name server - NS records

        IN      NS      dns.paper.cut. 

 

ファイルの最後に、Appleデバイスがモビリティ・プリント用プリンタを検出するために使用するPTRレコードを追加します。

データ列にはファイル名と同じようにサブネットのIPアドレスがオクテット順に反転して表示されていることに注意してください。
またシリアルも更新してください。次のようになるはずです。

                   File: /etc/bind/zones/rev.0.1.1.10

;

; BIND reverse data file for local loopback interface

;

$TTL    604800

@       IN      SOA     dns.paper.cut. admin.dns.paper.cut. (

                              2         ; Serial

                         604800         ; Refresh

                          86400         ; Retry

                        2419200         ; Expire

                         604800 )       ; Negative Cache TTL

; name server - NS records

        IN      NS      dns.paper.cut.

 

; PTR Records

b._dns-sd._udp       IN PTR 0.1.1.10.pc-printer-discovery.    ; b record for 10.1.1.0

lb._dns-sd._udp      IN PTR 0.1.1.10.pc-printer-discovery.    ; lb record for 10.1.1.0 


新しい逆引きゾーンファイルを保存して閉じてください。


ローカル設定ファイルの編集

「forward-only」ゾーンは、Appleデバイスがb と lb のPRTレコードでクエリを完了するのに役立ちます。
「forward-only」ゾーンは、Android, Windows, Chromeクライアントがモビリティ・プリント・サーバを検出するために直接使用するものでもあります。
つまり、Appleデバイスでは逆引きゾーンファイルとforward-onlyゾーンからモビリティのアドバタイズを検出するための補助が必要ですが、
Android, Windows, Chromeクライアントではforward-onlyゾーンのみで検出することができます。

BINDのローカル設定ファイル「named.conf.local」に移動し、新しい逆引きゾーンを指定し、フォワーダを追加します。

 sudo nano /etc/bind/named.conf.local

次のラインを使用して逆引きゾーンを追加します。

                   File: /etc/bind/named.conf.local

 

zone "0.1.1.10.in-addr.arpa" {

        type master;

        file "/etc/bind/zones/rev.0.1.1.10";

}; 


次の行にforward-only ゾーンを追加します。「10.1.8.101」はモビリティ・プリント・サーバのIPアドレスを示します。

                   File: /etc/bind/named.conf.local

 

zone "pc-printer-discovery" {

     type forward;

     forward only;

     forwarders { 10.1.8.101; };

}; 

 

ローカル設定ファイルを保存して閉じてください。


オプション・ファイルの編集

BINDオプション・ファイル「named.conf.options」を開いてください。

 sudo nano /etc/bind/named.conf.options

dnssec のオプションがauto に設定されている場合、次のように yes に変更してください。

                   File: /etc/bind/named.conf.options

 

dnssec-enable yes;

dnssec-validation yes; 


次に、pc-printer-discoveryの「forward-only」ゾーンのdnssecセキュリティを無効化するため、
新しいエントリを追加します。

                  File: /etc/bind/named.conf.options

 

dnssec-must-be-secure pc-printer-discovery no;

オプション・ファイルを保存して閉じてください。



BINDを再起動しステータスをチェックする

次のコマンドを入力してBINDを再起動してください。

 sudo systemctl restart bind9

ステータスの確認には次のコマンドを入力してください。

 sudo systemctl status bind9

何も問題がなければ次のように出力されます。

 coolkid@BINDSERVER:~$ sudo systemctl status bind9

 bind9.service - BIND Domain Name Server

   Loaded: loaded (/etc/systemd/system/bind9.service; enabled; vendor preset: enabled)

  Drop-In: /run/systemd/generator/bind9.service.d

           └─50-insserv.conf-$named.conf

   Active: active (running) since Fri 2019-08-23 15:22:12 PDT; 6s ago

     Docs: man:named(8)

  Process: 1300 ExecStop=/usr/sbin/rndc stop (code=exited, status=0/SUCCESS)

 Main PID: 1306 (named)

    Tasks: 4

   Memory: 9.5M

      CPU: 20ms

   CGroup: /system.slice/bind9.service

           └─1306 /usr/sbin/named -f -u bind -4

 

Aug 23 15:22:12 dns named[1306]: configuring command channel from '/etc/bind/rndc.key'

Aug 23 15:22:12 dns named[1306]: command channel listening on 127.0.0.1#953

Aug 23 15:22:12 dns named[1306]: managed-keys-zone: loaded serial 41

Aug 23 15:22:12 dns named[1306]: zone 0.in-addr.arpa/IN: loaded serial 1

Aug 23 15:22:12 dns named[1306]: zone 0.1.1.10.in-addr.arpa/IN: loaded serial 12

Aug 23 15:22:12 dns named[1306]: zone 127.in-addr.arpa/IN: loaded serial 1

Aug 23 15:22:12 dns named[1306]: zone 255.in-addr.arpa/IN: loaded serial 1

Aug 23 15:22:12 dns named[1306]: zone localhost/IN: loaded serial 2

Aug 23 15:22:12 dns named[1306]: all zones loaded

Aug 23 15:22:12 dns named[1306]: running 


確認

BINDサーバの設定を確認します。

Forward-only ゾーンの動作確認
nslookupクエリを使用して転送専用ゾーンが正しく転送されているかどうかを確認します。

 nslkookup rpc.pc-printer-discovery

nslookupが何を問合せしていて正しい応答は何なのか?
nslookupは、BINDサーバにモビリティ・プリント・サーバのプライマリrpcレコードの特定を依頼します。
BINDサーバは、クエリのpc-printer-discovery文字列をforward-only ゾーンにマッチさせて、
リクエストをモビリティに転送し、モビリティはそのIPアドレスを返信します。

 coolkid@BINDSERVER:~$ nslookup rpc.pc-printer-discovery

Server:     10.1.9.69

Address:    10.1.9.69#53

 

Non-authoritative answer:

Name:   rpc.pc-printer-discovery

Address: 10.1.8.101 

 


逆引きゾーンのPTRレコードの動作確認
次のnslookupチェーンを使用して、BINDが正しいbとlbのレコードデータを返信できるかを確認してください。
クエリには逆引きゾーン・ファイル名と同様に、サブネットを逆オクテット記法で表記し、その中のPTRレコードを含める必要があります。

 nslookup -query=ptr b._dns-sd._udp.0.1.1.10.in-addr.arpa && nslookup -query=ptr lb._dns-sd._udp.0.1.1.10.in-addr.arpa

nslookupが何を問合せしていて正しい応答は何なのか?
このnslookupでは、Appleデバイスがモビリティ・プリント・サーバ経由で公開されているプリンタを検出するためのPTRレコードが
逆引きゾーンにあるかどうかを決定します。次の成功したクエリでbとlbのレコードが正しいネームデータをポイントしていることを示しています。

 coolkid@BINDSERVER:~$ nslookup -query=ptr b._dns-sd._udp.0.1.1.10.in-addr.arpa && nslookup -query=ptr lb._dns-sd._udp.0.1.1.10.in-addr.arpa

Server:     10.1.9.69

Address:    10.1.9.69#53

 

b._dns-sd._udp.0.1.1.10.in-addr.arpa    name = 0.1.1.10.pc-printer-discovery.

 

Server:     10.1.9.69

Address:    10.1.9.69#53

 

lb._dns-sd._udp.0.1.1.10.in-addr.arpa   name = 0.1.1.10.pc-printer-discovery 

 


最後にプリンタ・アドバタイズの検出の確認
最後に、BINDサーバに _ipps._tcp サービス・タイプを使用したプリンタ・リストの検索をリクエストするnslookupを実行します。
ネームレコードのデータからプリンタが識別できるはずです。

 nslookup -query=ptr _ipps._tcp.pc-printer-discovery

 coolkid@BINDSERVER:~$ nslookup -query=ptr _ipps._tcp.pc-printer-discovery

Server:     10.1.9.69

Address:    10.1.9.69#53

 

Non-authoritative answer:

_ipps._tcp.pc-printer-discovery name = library._ipps._tcp.pc-printer-discovery.

_ipps._tcp.pc-printer-discovery name = reception._ipps._tcp.pc-printer-discovery. 

 


-------------------------
https://www.papercut.com/kb/Main/BetterBIND


0 件のコメント :

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。