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, 10.2.1.0, 10.3.1.0
・ 仮のモビリティ・プリント・サーバのIPアドレス: 10.1.8.101, 10.1.8.102, 10.1.8.103
・ 仮のBIND DNSサーバのIPアドレス: 10.1.9.69


重要事項

この記事に記載するアドバイスのほとんどは、クライアント・デバイスの展開にAppleデバイスが含まれていることを前提としています。
つまり、iPadやiPhoneなどのiOSデバイスや、MacBook, iMac, Mac mini, Mac Pros などのmacOSデバイスに
プリンタ・アドバタイズを共有する必要があるかどうかということです。
iOS/macOSデバイスがある環境の場合、
「Android, Apple, Chrome, Windowsデバイス混在する複数のモビリティ・プリント・サーバがある環境」を参照してください。
Appleデバイスがない環境の場合、「Appleデバイスをサポートしない環境の場合」を参照してください。


Appleデバイスをサポートしない環境の場合

複数のモビリティ・プリント・サーバや複数のサブネットにまたがるAppleデバイスをサポートする必要がない場合、
BINDのDNSレコード設定は比較的簡単です。
Windows, Android, Chrome OSデバイスが BIND DNS サーバから必要とするのは
適切な forward-only ゾーンの設定のみとなります。


複数のモビリティ・プリント・サーバ(サブネット・フィルタリング有/無)
Windows DNSサーバを使用している場合、最大20台のモビリティ・プリント・サーバを設定することができます。
Windows DNSには「pc-printer-discovery-#」ゾーンの
其々の条件付きフォワーダが異なるモビリティ・プリント・サーバをポイントするようにDNSレコードを設定します。
Windows DNSのアドバイスがここでも当てはまります。
あるモビリティ・プリント・サーバに「pc-printer-discovery」の「forward-only」ゾーンを設定し、
次にモビリティ・プリント・サーバに「pc-printer-discovery-1」の「forward-only」ゾーンを設定します。

この例では、named.conf.localファイルを起動し、下記の行を使って各モビリティ・プリント・サーバのforward-onlyゾーンを追加します。

 cd /etc/bind/

 sudo nano named.conf.local

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

zone "pc-printer-discovery" {

     type forward;

     forward only;

     forwarders { 10.1.8.101; };

};

 

zone "pc-printer-discovery-1" {

     type forward;

     forward only;

     forwarders { 10.1.8.102; };

};

 

zone "pc-printer-discovery-2" {

     type forward;

     forward only;

     forwarders { 10.1.8.103; };

};

保存しnamed.conf.localファイルを閉じてください。

次に「named.conf.options」ファイルを起動し、
新しいエントリを追加して各モビリティ・プリント・サーバのforward-only ゾーンのdnssecセキュリティを無効化します。

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

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

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

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

保存しnamed.conf.optionsファイルを閉じてください。
そしてBINDを再起動してください。これでBINDのDNSレコードの編集は完了です。


いくつかのnslookupチェインを使用して設定を確認する
次のnslookupチェインを使用して、forward-onlyゾーンが正常に転送されているかを確認することができます。

 nslookup rpc.pc-printer-discovery && nslookup rpc.pc-printer-discovery-1 && nslookup rpc.pc-printer-discovery-2

コマンドを実行すると次のように出力されるはずです。

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

Server:     10.1.9.69

Address:    10.1.9.69#53

 

Non-authoritative answer:

Name:   rpc.pc-printer-discovery

Address: 10.1.8.101

 

Server:     10.1.9.69

Address:    10.1.9.69#53

 

Non-authoritative answer:

Name:   rpc.pc-printer-discovery-1

Address: 10.1.8.102

 

Server:     10.1.9.69

Address:    10.1.9.69#53

 

Non-authoritative answer:

Name:   rpc.pc-printer-discovery-2

Address: 10.1.8.103

次に各モビリティ・プリント・サーバにインデックス番号を設定します。
その後、サブネット毎にプリンタのアクセスを制限する必要ある場合は設定を行ってください。
(詳細は別紙「モビリティ・プリント設定ガイド」を参照してください。)
Appleデバイスのモビリティ・プリントをサポートする必要がない場合、DNSレコードの設定は完了です。


Android, Apple, Chrome, Windowsデバイスが混在する
複数のモビリティ・プリント・サーバがある環境の場合

複数のモビリティ・プリント・サーバを複数のサブネットで見えるようにする場合
この例では、複数のサブネットがあり、
複数のモビリティ・プリント・サーバからプリンタ・アドバタイズを見る必要があると想定しています。
ここでは、Appleデバイスが存在する各サブネットに対応する逆引きゾーン・ファイルを記述します。
サブネットは「10.1.1.0」「10.2.1.0」「10.3.1.0」とします。
新しい逆引きゾーン・ファイルは「rev.0.1.1.10」「rev.0.1.2.10」「rev.0.1.3.10」とし、
サンブルのdb.127ゾーン・ファイルをベースにします。
次のコマンドを実行してサンプルを「production zones」フォルダへコピーします。

 cd /etc/bind/

 sudo cp db.127 ./zones/rev.0.1.1.10

 sudo cp db.127 ./zones/rev.0.1.2.10

 sudo cp db.127 ./zones/rev.0.1.3.10

各逆引きゾーン・ファイルは上辺では全く同じように見えます。
この例では rev.0.1.1.10 を使用しています。
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アドレスがオクテット順に反転して表示されていることに注意してください。
rev.0.1.1.10の場合、下記のようになっているはずです。

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

 

; PTR Records for Mobility server 1

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

 

; PTR Records for Mobility server 2

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

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

 

; PTR Records for Mobility server 3

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

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

 

下記はrev.0.1.2.10の例です。

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

 

; PTR Records for Mobility server 1

b._dns-sd._udp       IN PTR 0.1.2.10.pc-printer-discovery.    ; b record for 10.2.1.0

lb._dns-sd._udp      IN PTR 0.1.2.10.pc-printer-discovery.    ; lb record for 10.2.1.0

 

; PTR Records for Mobility server 2

b._dns-sd._udp       IN PTR 0.1.2.10.pc-printer-discovery-1.    ; b record for 10.2.1.0

lb._dns-sd._udp      IN PTR 0.1.2.10.pc-printer-discovery-1.    ; lb record for 10.2.1.0

 

; PTR Records for Mobility server 3

b._dns-sd._udp       IN PTR 0.1.2.10.pc-printer-discovery-2.    ; b record for 10.2.1.0

lb._dns-sd._udp      IN PTR 0.1.2.10.pc-printer-discovery-2.    ; lb record for 10.2.1.0;

 

下記はrev.0.1.3.10の例です。

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

 

; PTR Records for Mobility server 1

b._dns-sd._udp       IN PTR 0.1.3.10.pc-printer-discovery.    ; b record for 10.3.1.0

lb._dns-sd._udp      IN PTR 0.1.3.10.pc-printer-discovery.    ; lb record for 10.3.1.0

 

; PTR Records for Mobility server 2

b._dns-sd._udp       IN PTR 0.1.3.10.pc-printer-discovery-1.    ; b record for 10.3.1.0

lb._dns-sd._udp      IN PTR 0.1.3.10.pc-printer-discovery-1.    ; lb record for 10.3.1.0

 

; PTR Records for Mobility server 3

b._dns-sd._udp       IN PTR 0.1.3.10.pc-printer-discovery-2.    ; b record for 10.3.1.0

lb._dns-sd._udp      IN PTR 0.1.3.10.pc-printer-discovery-2.    ; lb record for 10.3.1.0;

 

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     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 for Mobility server 1

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

 

; PTR Records for Mobility server 2

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

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

 

; PTR Records for Mobility server 3

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

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

 

各ゾーン・ファイルを保存して閉じる前に必ずシリアルを更新してください。

次にローカル設定ファイルを編集し、
各モビリティ・プリント・サーバの新しい逆引きゾーンとforward-only ゾーンを含めます。
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";

 

};

 

zone "0.1.2.10.in-addr.arpa" {

        type master;

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

 

};

 

zone "0.1.3.10.in-addr.arpa" {

        type master;

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

 

};


次に、各モビリティ・プリント・サーバにforward-only ゾーンを追加します: 10.1.8.101, 10.1.8.102, 10.1.8.103

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

 

zone "pc-printer-discovery" {

     type forward;

     forward only;

     forwarders { 10.1.8.101; };

};

 

zone "pc-printer-discovery-1" {

     type forward;

     forward only;

     forwarders { 10.1.8.102; };

};

 

zone "pc-printer-discovery-2" {

     type forward;

     forward only;

     forwarders { 10.1.8.103; };

};


保存してnamed.conf.local ファイルを閉じてください。

次に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;


各モビリティ・プリント・サーバのforward-only ゾーンの
dnssecセキュリティを無効化するための新しいエントリを追加してください。

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

 

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

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

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


いくつかのnslookupチェインを使用して設定を確認する
次のnslookupチェインを使用して、forward-onlyゾーンが正常に転送されているかを確認することができます。

 nslookup rpc.pc-printer-discovery && nslookup rpc.pc-printer-discovery-1 && nslookup rpc.pc-printer-discovery-2

コマンドを実行すると次のように出力されるはずです。

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

Server:     10.1.9.69

Address:    10.1.9.69#53

 

Non-authoritative answer:

Name:   rpc.pc-printer-discovery

Address: 10.1.8.101

 

Server:     10.1.9.69

Address:    10.1.9.69#53

 

Non-authoritative answer:

Name:   rpc.pc-printer-discovery-1

Address: 10.1.8.102

 

Server:     10.1.9.69

Address:    10.1.9.69#53

 

Non-authoritative answer:

Name:   rpc.pc-printer-discovery-2

Address: 10.1.8.103

保存してnamed.conf.optionsファイルを閉じてください。
そしてBINDを再起動してください。これですべてのDNSレコードの設定は完了です。

次にnslookupをチェインしてbとlbのPTRレコードが解決できるかを確認します。
次の例では、10.1.1.0サブネットの出力のみを使用しています。

他のサブネットについては、必ずサブネット固有の逆オクテット表記でテストしてください。

 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

出力は次のようになります。

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


最後に、_ipps._tcpサービス・タイプを使用しているすべてのモビリティ・プリント・サーバから
プリンタを検出できるようにするため、BINDサーバのnslookupチェインを実行します。
ネームレコード・データの中のプリンタを識別してください。

 nslookup -query=ptr _ipps._tcp.pc-printer-discovery && nslookup -query=ptr _ipps._tcp.pc-printer-discovery-1 && nslookup -query=ptr _ipps._tcp.pc-printer-discovery-2

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

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.

 

 

Server:     10.1.9.69

Address:    10.1.9.69#53

 

Non-authoritative answer:

_ipps._tcp.pc-printer-discovery-1   name = konica._ipps._tcp.pc-printer-discovery-1.

_ipps._tcp.pc-printer-discovery-1   name = hpf2651b._ipps._tcp.pc-printer-discovery-1.

_ipps._tcp.pc-printer-discovery-1   name = bigxerox._ipps._tcp.pc-printer-discovery-1.

 

 

Server:     10.1.9.69

Address:    10.1.9.69#53

 

Non-authoritative answer:

_ipps._tcp.pc-printer-discovery-2   name = legal._ipps._tcp.pc-printer-discovery-2.


次に各モビリティ・プリント・サーバにインデックス番号を設定します。
(詳細は別紙「モビリティ・プリント設定ガイド」を参照してください。)


サブネット・フィルタリング
ここまでの説明を踏まえて、モビリティ・プリント・サーバ 10.1.8.103 のプリンタがサブネット10.3.1.0のクライアントPCにのみ公開されるように設定します。

「rev.0.1.3.10」ゾーン・ファイルは次のように記述されているはずです。

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

 

;

; BIND reverse data file for local loopback interface

;

$TTL    604800

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

                              4         ; Serial

                         604800         ; Refresh

                          86400         ; Retry

                        2419200         ; Expire

                         604800 )       ; Negative Cache TTL

; name server - NS records

        IN      NS      dns.paper.cut.

 

; PTR Records for Mobility server 3

b._dns-sd._udp       IN PTR 0.1.3.10.pc-printer-discovery-2.    ; b record for 10.3.1.0

lb._dns-sd._udp      IN PTR 0.1.3.10.pc-printer-discovery-2.    ; lb record for 10.3.1.0;


次に別紙「モビリティ・プリント設定ガイド」の「6-4 サブネット毎にプリンタ・アクセスを制限」を参考に
モビリティ・プリント・サーバ10.1.8.103 の「printer.conf.toml」ファイルを編集します。

                  File: /PaperCut Mobility Print/data/config/printer.conf.toml

 

DefaultEnabled = true

 

[DisabledPrinters]

 

[EnabledPrinters]

 

[[SubnetFilterRule]]

  PrinterName = "Legal"

  Subnets = ["10.3.1.0/22"]

 

[Authentication]

  PerJob = []

  PerPrinter = []

  Default = "per-printer"


以上で設定は完了です。



-------------------------

https://www.papercut.com/kb/Main/AdvancedBIND


0 件のコメント :

コメントを投稿

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