Posted at: 2018-01-28 07:18:37  Category: FRED


前回記事に引き続き、FREDの機能を試してみます。

はじめに

前回記事で説明した通り、レジストラはレジストリに対して、ドメイン名の登録等申請を行うことができます。
今回は、Fred-clientを用い、 .cz ドメインのレジストラになった気分で申請を試して見ます。
デモ環境が一般に公開されてるのってすごいなー

クライアント

Python実装のFred-clientがCZ.NICのFREDのページ公開されています。
preconfigured client

レジストリに対するドメインの各種申請はEPP(Extensible Provisioning Protocol)によって行われます。
上記クライアントを起動すると CZ.NIC のデモ環境に接続しEPPをしゃべってくれます。
EPPの詳細についてはこちらをどうぞ。Extensible Provisioning Protocol (EPP)

使ってみる

このへんのページ(Fred-client HOW TO)を参考にドメインの登録を試してみたいと思います。
起動して、helpコマンドにより使えるコマンドを確認してみます。
fred-client-2.4 $ ./fred-client.py 
Unsupported language code: 'ja' in os.environ.LANG. Available codes are: cs, en. Set default to: 'en'.
FredClient 2.4
Type "help", "license" or "credits" for more information.

Using configuration from data_files/conf/fred/fred-client.conf
Connecting to demo.fred.nic.cz, port 700 ...
Connected!

REG-FRED_A@demo.fred.nic.cz> help
Type "help command" to get details of the chosen command.

Available session commands:
! license
escaped_input poll_autoack
confirm quit
credits validate
help verbose
lang fetch_from_info

Available EPP commands:
check_contact info_keyset prep_nssets_by_contact
check_domain info_nsset prep_nssets_by_ns
check_keyset list_contacts renew_domain
check_nsset list_domains sendauthinfo_contact
create_contact list_keysets sendauthinfo_domain
create_domain list_nssets sendauthinfo_keyset
create_keyset login sendauthinfo_nsset
create_nsset logout technical_test
credit_info poll transfer_contact
delete_contact prep_contacts transfer_domain
delete_domain prep_domains transfer_keyset
delete_keyset prep_domains_by_contact transfer_nsset
delete_nsset prep_domains_by_keyset update_contact
get_results prep_domains_by_nsset update_domain
hello prep_keysets update_keyset
info_contact prep_keysets_by_contact update_nsset
info_domain prep_nssets

Report bugs to fred@nic.cz
REG-FRED_A@demo.fred.nic.cz>
Fred-client How-Toのページによるとドメインを登録するには、
まずコンタクトの情報(ドメインの登録者に関する情報)を作成しないといけないとあります。
コンタクト情報を作成するには以下のようにcreate_contactコマンドを使うようです。
REG-FRED_A@localhost> create_contact ID01 'John Smith' john.smith@mail.com 'Working str. 21' Prague 12300 CZ
必須項目は7個で以下の通り。
contact_id (required) Contact ID
name (required) Name
email (required) Email
street (required) Street (list with max 3 items.)
city (required) City
pc (required) Postal code
cc (required) Country code

ということなので、以下のようにコンタクトを作成してみます。
REG-FRED_A@demo.fred.nic.cz> check_contact ID99
ID99: Available. Not in registry: Object is available.
REG-FRED_A@demo.fred.nic.cz> create_contact ID99 'Nanashi no Gombei' nanashi.gombei@example.tld 'Street' City 12300 CZ
Do you really want to send this command to the server? (y/N): y
Contact ID: ID99
Created on: 2018-01-27T12:51:37+01:00
REG-FRED_A@demo.fred.nic.cz> check_contact ID99
ID99: Not available. Registered already
REG-FRED_A@demo.fred.nic.cz> info_contact ID99
Contact ID: ID99
Repository object ID: C0001002337-CZ
Created by: REG-FRED_A
Designated registrar: REG-FRED_A
Created on: 2018-01-27T12:51:37+01:00
Name: Nanashi no Gombei
Street: Street
City: City
Postal code: 12300
Country code: CZ
Password for transfer: CkLPGFbG
Email: nanashi.gombei@example.tld
Status: ok - Object is without restrictions
Disclose: voice
fax
email
vat
ident
notify_email
addr
つづいて、登録したいドメインの権威DNSサーバーの情報を作成します。create_nssetコマンドによって行います。
コマンドの先頭に!を付加するとインタラクティブモードになり、コマンドの引数を各行で作成するようになる様です。
REG-FRED_A@demo.fred.nic.cz> !create_nsset
Interactive input mode started. Press Ctrl+C to abort or Ctrl+D to finish command.
NSSET ID [required]: ID99
LIST of DNS[1/9] / Name server [required]: ns1.test-test.cz
LIST of DNS[1/9] / Server address[1/oo] [optional]:
LIST of DNS[2/9] / Name server [required]: ns2.test-test.cz
LIST of DNS[2/9] / Server address[1/oo] [optional]:
LIST of DNS[3/9] / Name server [optional]:
Technical contact[1/oo] [required]: ID99
Technical contact[2/oo] [optional]:
Password required by server to authorize the transfer [optional]: test
Report range level (0 - 10; higher = more detailed) [optional]:
Client transaction ID [optional]:

Interactive input completed. [Press Enter]
Command to issue:
create_nsset ID99 ((ns1.test-test.cz), (ns2.test-test.cz)) ID99 test
Do you really want to send this command to the server? (y/N): y
NSSET ID: ID99
Created on: 2018-01-27T13:54:46+01:00
REG-FRED_A@demo.fred.nic.cz> info_nsset ID99
NSSET ID: ID99
Repository object ID: N0001002350-CZ
Created by: REG-FRED_A
Designated registrar: REG-FRED_A
Created on: 2018-01-27T13:54:46+01:00
Password for transfer: test
Status: ok - Object is without restrictions
Technical contact: ID99
Name servers: ns1.test-test.cz
ns2.test-test.cz
Report level: 3

最後に作成したコンタクト情報とnsset(権威DNSサーバーの情報)からドメインを登録してみます。
test-test.czを登録してみます。
REG-FRED_A@demo.fred.nic.cz> create_domain test-test.cz ID99 NULL ID99
Do you really want to send this command to the server? (y/N): y
Domain name: test-test.cz
Created on: 2018-01-27T14:01:30+01:00
Expiration date: 2019-01-27
REG-FRED_A@demo.fred.nic.cz> info_domain test-test.cz
Domain name: test-test.cz
Repository object ID: D0001002353-CZ
Created by: REG-FRED_A
Designated registrar: REG-FRED_A
Created on: 2018-01-27T14:01:30+01:00
Expiration date: 2019-01-27
NSSET ID: ID99
Password for transfer: fzW9XBWs
Status: ok - Object is without restrictions
Registrant ID: ID99

無事登録できたみたいなので、whoisもひいてみます。
create_domainを行ってからおおよそ1分程度以内にwhoisをひいてますが、すぐに反映されています。
$ whois -h demo.fred.nic.cz test-test.cz
% (c) 2006-2013 CZ.NIC, z.s.p.o.
%
% Intended use of supplied data and information
%
% Data contained in the domain name register, as well as information
% supplied through public information services of CZ.NIC association,
% are appointed only for purposes connected with Internet network
% administration and operation, or for the purpose of legal or other
% similar proceedings, in process as regards a matter connected
% particularly with holding and using a concrete domain name.
%
% Full text available at:
% http://www.nic.cz/page/306/intended-use-of-supplied-data-and-information/
%
% See also a search service at http://www.nic.cz/whois/
%
% Whoisd Server Version: 3.10.2
% Timestamp: Sat Jan 27 14:02:18 2018

domain: test-test.cz
registrant: ID99
nsset: ID99
registrar: REG-FRED_A
registered: 27.01.2018 14:01:30
expire: 27.01.2019

contact: ID99
name: Nanashi no Gombei
address: Street
address: City
address: 12300
address: CZ
e-mail: nanashi.gombei@example.tld
registrar: REG-FRED_A
created: 27.01.2018 12:51:37

nsset: ID99
nserver: ns1.test-test.cz
nserver: ns2.test-test.cz
tech-c: ID99
registrar: REG-FRED_A
created: 27.01.2018 13:54:46

Posted at: 2018-01-22 09:00:33  Category: FRED

Fred(Free Registry for ENUM and Domains)を試してみようの2回目です。
Try Outにあるように、レジストラや一般ユーザーの立場からFREDの機能を試してみたいと思います。

レジストリの機能

FREDに限らないですが、ドメインレジストリの機能は大きく分けて3つあるように思います。

  • 1. ドメインの登録等申請を受け付ける機能

  • 2. 受け付けた申請情報の一部をDNSのゾーン情報に反映し提供する機能

  • 3. 受け付けた申請情報の一部をWhoisやRDAP等RDS(Registration Directory Service)にて提供する機能

レジストリレジストラモデルの元では、1の申請はレジストラが行うことができます。
登録者(Registrant)はレジストラを介してレジストリに申請を行うことになります。

2の機能は、平たくいえば権威DNSサーバーを運用することです。
権威DNSサーバーには誰でもアクセスすることができます。

3の機能により、登録されているドメインに関する各種情報(登録者の情報など)を閲覧することができます。
基本的に誰でも閲覧することができます。
RDAPとかだとアクセス元ユーザーの属性に応じて情報量が変わることはあり得ます。

Try Out

FREDにはしっかりデモ環境があるっぽいです。すげー。
簡単に試せるので上記の3の機能にあたる、whoisをやってみます。
$ whois -h demo.fred.nic.cz test.cz
% (c) 2006-2013 CZ.NIC, z.s.p.o.
%
% Intended use of supplied data and information
%
% Data contained in the domain name register, as well as information
% supplied through public information services of CZ.NIC association,
% are appointed only for purposes connected with Internet network
% administration and operation, or for the purpose of legal or other
% similar proceedings, in process as regards a matter connected
% particularly with holding and using a concrete domain name.
%
% Full text available at:
% http://www.nic.cz/page/306/intended-use-of-supplied-data-and-information/
%
% See also a search service at http://www.nic.cz/whois/
%
% Whoisd Server Version: 3.10.2
% Timestamp: Sun Jan 21 16:09:56 2018

domain: test.cz
registrant: SB:GA
nsset: NSSET
registrar: REG-CZTEST_B
registered: 22.12.2010 13:57:38
changed: 22.12.2010 16:18:36
expire: 22.12.2011

contact: SB:GA
org: Organization
name: GA
address: Street
address: City
address: 12345
address: Czech Republic
address: CZ
e-mail: ga@example.com
registrar: REG-CZTEST_B
created: 22.12.2010 14:50:04

nsset: NSSET
nserver: nameserver.cz (1.1.2.0)
nserver: abc.psov.cz (123.123.10.1, 157.123.10.1)
tech-c: TEST
registrar: REG-CZTEST_A
created: 25.05.2010 10:13:07
changed: 15.06.2010 10:29:11

contact: TEST
org: organizace p\xc5\x99edko\xc5\xbeka, s.r.o.
name: tojdezm\xc4\x9bnit taky?
address: test
address: test
address: test
address: CZ
registrar: REG-FRED_B
created: 21.05.2010 11:54:14
changed: 02.09.2011 14:52:54
Posted at: 2018-01-17 09:11:20  Category: FRED


Fred(Free Registry for ENUM and Domains)というものがあります。
FREDはCZ.NIC(*1)が開発しているオープンソースのドメインレジストリシステムで、
czを含め12のドメインにて使用されているようです。(何れもccTLDのようです)

Introducing FRED - Who uses FRED

cz.nicといえば、Knot DNSで有名ですが、レジストリシステムもオープンソースで作ってるのですね。
本記事以降、FREDを試してみた結果を書いてみたいと思います。 

(*1) トップレベルドメイン .cz を管理運用している組織です。