[]Gehirn DNSを試してみた。

 TLでGehirnDNSなるサービスが流れて来たので早速試してみました。なぜ試そうかと思ったかというと、名前が中二病心をくすぐったからです。

ドメイン所有権の確認

dns-verification

 アカウントを取得してドメインを登録しようとすると、所有権の確認が行われます。ちょっと前に色々ありましたからね。「新規であればレジストラDNSにGehirn DNSと検証用のコードを登録してから来い。所有者なら出来るだろ!」「移転なら、ドメインのTXTレコードに検証用のコードを示せ。所有者なら出来るだろ!」って事だと思います。とりあえず移転扱いと言う事で、自ドメインのTXTに検証用コードを追加しました。

登録画面

gehirn-console

 GUIでぽちぽちする形で登録できます。登録出来る内容は、NS、A、AAAA、MX、CNAME、TXT、SRVです。ただし、GehirnDNSのDNSサーバがIPv4にしか対応していないので、AAAAは実質無駄かなと思います。また、RRSIGとDNSKEYに対応していないのでDNSSECは未対応です。なお、ゾーン転送に関する設定画面が存在しないため、セカンダリとしての使い方は出来ないと思います。

API利用

 ARIを利用する事で、DNSを操作する事が出来ます。ここらへん疎いので試せていません。。。Gehirn DNS APIリファレンス

インポート/エクスポート

 Bindのゾーンファイル形式でのインポート/エクスポートが出来ます。現在の設定をバックアップする意味でエクスポートが便利かなと思います。また、大量に追加したいけどGUIだとめんどくさい時に、インポートを使うこともできますね。


サブドメインをGehirnDNSで管理する

 GehirnDNSで管理しているドメインサブドメインを、GehirnDNSへ権限委譲する事はできません。aimless.jpを登録している状態で、gehirn.aimless.jpを登録しようとした際に、「409: Conflict: すでにドメインが存在しています」というメッセージが出て拒否されました。

勝手なまとめ

 APIでアクセスできるDNSって珍しいような気がします。そういった利用をしたい方にはお勧めかもしれません。

[]BIND10で権威DNSを試してみた

 前回にてBIND10のインストールが上手く行ったので、権威DNSの設定(Chapter 9. Authoritative Server)を試してみました。

b10-authを自動起動させる

 デフォルトではb10-auth(権威DNS用プロセス)が自動起動しないので、自動起動するように設定変更します。

[text]
[root@centos6 ~]# bindctl
> config add Boss/components b10-auth
> config set Boss/components/b10-auth/special auth
> config set Boss/components/b10-auth/kind needed
> config set Boss/components/b10-auth/priority 10
> config commit
2012-10-14 16:18:12.502 INFO [b10-boss.boss] BIND10_CONFIGURATOR_RECONFIGURE reconfiguring running components
2012-10-14 16:18:12.503 INFO [b10-boss.boss] BIND10_COMPONENT_START component b10-auth is starting
2012-10-14 16:18:12.503 INFO [b10-boss.boss] BIND10_STARTING_PROCESS starting process b10-auth
> 2012-10-14 16:18:12.515 INFO [b10-auth.auth] AUTH_SERVER_CREATED server created
2012-10-14 16:18:12.528 INFO [b10-auth.auth] AUTH_SERVER_STARTED server started
[/text]

ゾーンファイルを読み込ませる

 BIND10開発版だとsqlite方式と従来のゾーンファイル形式がサポートされているようで、デフォルトで両パターンの設定例が乗っています。

[text]
[root@centos6 ~]# bindctl
> config show all
(中略)
data_sources/classes/IN[0]/type "sqlite3" string (default)
data_sources/classes/IN[0]/params {"database_file": "/usr/local/var/bind10-devel/zone.sqlite3"} any (default)
data_sources/classes/IN[0]/cache-enable false boolean (default)
data_sources/classes/IN[0]/cache-zones list
data_sources/classes/CH[0]/type "static" string (default)
data_sources/classes/CH[0]/params "/usr/local/share/bind10-devel/static.zone" any (default)
data_sources/classes/CH[0]/cache-enable false boolean (default)
data_sources/classes/CH[0]/cache-zones
list
[/text]

 とりあえずゾーンファイル方式を試します。sqliteはデータベースファイルの作り方が分らなくて。。。まずはデフォルトで読み込まれているstatic.zoneを削除します。

[text]
[root@centos6 ~]# bindctl
> config remove data_sources/classes CH
> config commit
> config show all
(中略)
data_sources/classes/IN[0]/type "sqlite3" string
data_sources/classes/IN[0]/params {"database_file": "/usr/local/var/bind10-devel/zone.sqlite3"} any
data_sources/classes/IN[0]/cache-enable false boolean (default)
data_sources/classes/IN[0]/cache-zones list
[/text]

 そして、ソースファイルに含まれているexample.net用のゾーンファイルを読み込ませます。

[text]
[root@centos6 ~]# bindctl
["login success "] login as root
> config add data_sources/classes/IN
> config set data_sources/classes/IN[1]/type MasterFiles
> config set data_sources/classes/IN[1]/cache-enable true
> config set data_sources/classes/IN[1]/params { "example.net": "/usr/local/var/bind10-devel/example.net" }
> config commit
> config show all
(中略)
data_sources/classes/IN[0]/type "sqlite3" string
data_sources/classes/IN[0]/params {"database_file": "/usr/local/var/bind10-devel/zone.sqlite3"} any
data_sources/classes/IN[0]/cache-enable false boolean (default)
data_sources/classes/IN[0]/cache-zones
list
data_sources/classes/IN[1]/type "MasterFiles" string
data_sources/classes/IN[1]/params {"example.net": "/usr/local/var/bind10-devel/example.net"}any
data_sources/classes/IN[1]/cache-enable true boolean
data_sources/classes/IN[1]/cache-zones [] list
[/text]

 ゾーンファイルに記載されているa.dns.example.netを問い合わせるとちゃんと答えました。同一セグメントのwindowsPCからBIND10を指定してa.dns.example.netをnslookupしてみましたが、こちらもちゃんと答えました。

[text]
[root@centos6 ~]# dig @localhost a.dns.example.net
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.5 <<>> @localhost a.dns.example.net
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38474
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 7
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;a.dns.example.net. IN A

;; ANSWER SECTION:
a.dns.example.net. 1000 IN A 1.1.1.1

;; AUTHORITY SECTION:
example.net. 1000 IN NS a.dns.example.net.
example.net. 1000 IN NS b.dns.example.net.
example.net. 1000 IN NS c.dns.example.net.

;; ADDITIONAL SECTION:
a.dns.example.net. 1000 IN AAAA 2:2::2:2
b.dns.example.net. 1000 IN AAAA 4:4::4:4
b.dns.example.net. 1000 IN AAAA 5:5::5:5
b.dns.example.net. 1000 IN A 3.3.3.3
c.dns.example.net. 1000 IN AAAA 8:8::8:8
c.dns.example.net. 1000 IN A 6.6.6.6
c.dns.example.net. 1000 IN A 7.7.7.7

;; Query time: 0 msec
;; SERVER: ::1#53(::1)
;; WHEN: Sun Oct 14 17:01:33 2012
;; MSG SIZE rcvd: 257
[/text]

 逆に、設定を削除したstatic.zoneに記載されていたauthors.bindには答えません。

[text]
[root@centos6 bind10-devel]# dig @127.0.0.1 -c CH -t TXT authors.bind

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.5 <<>> @127.0.0.1 -c CH -t TXT authors.bind
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 30891
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;authors.bind. CH TXT

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Oct 14 19:21:50 2012
;; MSG SIZE rcvd: 30
[/text]

 細かい部分はさておき、権威DNSとしての基本的な設定が出来ました。従来のnamed.confを編集する方法ではなく、bindctlで作業していく方式の様です。後はゾーン転送とDNSSECですね。dnssec-signzoneなどのコマンドが見当たらないので、どうしたものかと悩んでいます。

[]BIND10を起動してみた。

 先週の脆弱性を受けて、自ドメインのBINDをBIND 9.9.2にアップデートしました。その際「いっそのこと開発中のBIND10にするか?」と悩んだのですが、上手く行く気がしなかったので自宅の仮想マシン(CentOS6.3)で色々試してみました。まずは権威DNS用のプロセスが起動するまでです。

インストールしてみる

 ISCからソースをダウンロードしてきて./configureしたものの一筋縄ではいかず、下記を追加インストールしました。

  1. gcc-c++yum
  2. Python3.3.0をソースから
  3. setproctitle-1.1.6をソースから
  4. Botan-1.10.3をソースから
  5. log4cplus-1.1.0をソースから
  6. boost.1.51.0をソースから
  7. sqlite-develをyum

起動してみる

[text]
[root@centos6 bind10-devel-20120927]# bind10
Traceback (most recent call last):
File "/usr/local/sbin/bind10", line 68, in <module>
import isc.cc
File "/usr/local/lib/python3.3/site-packages/isc/__init__.py", line 7, in <module>
import isc.datasrc
File "/usr/local/lib/python3.3/site-packages/isc/datasrc/__init__.py", line 33, in <module>
from isc.datasrc.sqlite3_ds import *
File "/usr/local/lib/python3.3/site-packages/isc/datasrc/sqlite3_ds.py", line 16, in <module>
import sqlite3, re, random
File "/usr/local/lib/python3.3/sqlite3/__init__.py", line 23, in <module>
from sqlite3.dbapi2 import *
File "/usr/local/lib/python3.3/sqlite3/dbapi2.py", line 26, in <module>
from _sqlite3 import *
ImportError: No module named '_sqlite3'
[/text]

 pythonsqliteを読み込めてない模様。pythonを再度makeして再びbind10を起動してみる。

[text]
2012-10-13 22:58:18.593 INFO [b10-stats.stats] STATS_STARTING starting
Traceback (most recent call last):
File "/usr/local/libexec/bind10-devel/b10-cmdctl", line 36, in <module>
import ssl, socket
File "/usr/local/lib/python3.3/ssl.py", line 60, in <module>
import _ssl # if we can't import it, let the error propagate
ImportError: No module named '_ssl'
[/text]

 pythonsslを読み込めていない模様。openssl-develをyumでインストールしてpythonを再makeする。そして再びbind10を起動する。

[text]
[root@centos6 Python-3.3.0]# bind10 &
2012-10-13 23:12:07.689 INFO [b10-boss.boss] BIND10_STARTING starting BIND10: bind10 20110223 (BIND 10 20120927)
2012-10-13 23:12:07.689 INFO [b10-boss.boss] BIND10_CONFIGURATOR_START bind10 component configurator is starting up
2012-10-13 23:12:07.689 INFO [b10-boss.boss] BIND10_COMPONENT_START component Socket creator is starting
2012-10-13 23:12:07.692 INFO [b10-boss.boss] BIND10_SOCKCREATOR_INIT initializing socket creator parser
2012-10-13 23:12:07.692 INFO [b10-boss.boss] BIND10_COMPONENT_START component msgq is starting
2012-10-13 23:12:07.692 INFO [b10-boss.boss] BIND10_STARTING_PROCESS starting process b10-msgq
2012-10-13 23:12:07.797 INFO [b10-boss.boss] BIND10_COMPONENT_START component cfgmgr is starting
2012-10-13 23:12:07.797 INFO [b10-boss.boss] BIND10_STARTING_PROCESS starting process b10-cfgmgr
2012-10-13 23:12:07.874 INFO [b10-cfgmgr.cfgmgr] CFGMGR_CONFIG_FILE Configuration manager starting with configuration file: /usr/local/var/bind10-devel/b10-config.db
2012-10-13 23:12:08.802 INFO [b10-boss.boss] BIND10_STARTING_CC starting configuration/command session
2012-10-13 23:12:08.820 INFO [b10-boss.boss] BIND10_READING_BOSS_CONFIGURATION reading boss configuration
2012-10-13 23:12:08.820 INFO [b10-boss.boss] BIND10_CONFIGURATOR_RECONFIGURE reconfiguring running components
2012-10-13 23:12:08.820 INFO [b10-boss.boss] BIND10_COMPONENT_START component b10-cmdctl is starting
2012-10-13 23:12:08.820 INFO [b10-boss.boss] BIND10_STARTING_PROCESS starting process b10-cmdctl
2012-10-13 23:12:08.823 INFO [b10-boss.boss] BIND10_COMPONENT_START component b10-stats is starting
2012-10-13 23:12:08.823 INFO [b10-boss.boss] BIND10_STARTING_PROCESS starting process b10-stats
2012-10-13 23:12:08.829 INFO [b10-boss.boss] BIND10_STARTUP_COMPLETE BIND 10 started
2012-10-13 23:12:08.991 INFO [b10-stats.stats] STATS_STARTING starting
[/text]

 起動したっぽい。しかし、問い合わせに応答しない・・・。

[text]
[root@centos6 bind10-devel]# dig @127.0.0.1 -c CH -t TXT authors.bind

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.5 <<>> @127.0.0.1 -c CH -t TXT authors.bind
; (1 server found)
;; global options: +cmd
;; connection timed out; no servers could be reached
[/text]

 ガイドを見ると、デフォルトでは特定のプロセスしか起動ないみたいなので、権威DNS用のプロセス(b10-auth)を別途起動させる。


The processes to be used can be configured for bind10 to start, with the exception of the required b10-sockcreator, b10-msgq and b10-cfgmgr components. The configuration is in the Boss/components section. Each element represents one component, which is an abstraction of a process.

BIND 10 Guide

[text]
[root@centos6 /]# /usr/local/libexec/bind10-devel/b10-auth &
[2] 2620
[root@centos6 /]# 2012-10-13 23:57:03.313 INFO [b10-auth.auth] AUTH_SERVER_CREATED server created
2012-10-13 23:57:03.320 INFO [b10-boss.boss] BIND10_SOCKET_GET requesting socket [::]:53 of type TCP from the creator
2012-10-13 23:57:03.320 INFO [b10-boss.boss] BIND10_SOCKET_CREATED successfully created socket 19
2012-10-13 23:57:03.321 INFO [b10-boss.boss] BIND10_SOCKET_GET requesting socket [::]:53 of type UDP from the creator
2012-10-13 23:57:03.321 INFO [b10-boss.boss] BIND10_SOCKET_CREATED successfully created socket 21
2012-10-13 23:57:03.322 INFO [b10-boss.boss] BIND10_SOCKET_GET requesting socket [0.0.0.0]:53 of type TCP from the creator
2012-10-13 23:57:03.322 INFO [b10-boss.boss] BIND10_SOCKET_CREATED successfully created socket 22
2012-10-13 23:57:03.323 INFO [b10-boss.boss] BIND10_SOCKET_GET requesting socket [0.0.0.0]:53 of type UDP from the creator
2012-10-13 23:57:03.323 INFO [b10-boss.boss] BIND10_SOCKET_CREATED successfully created socket 23
2012-10-13 23:57:03.328 INFO [b10-auth.auth] AUTH_SERVER_STARTED server started
[/text]

 改めて自身に問い合わせて見る。ちゃんと応答した。長かった・・・

[text]
[root@centos6 /]# dig @127.0.0.1 -c CH -t TXT version.bind

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.5 <<>> @127.0.0.1 -c CH -t TXT version.bind
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39377
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;version.bind. CH TXT

;; ANSWER SECTION:
version.bind. 0 CH TXT "bind10-devel 20120927"

;; AUTHORITY SECTION:
bind. 0 CH NS bind.

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Oct 13 23:57:39 2012
;; MSG SIZE rcvd: 78
[/text]

今後の予定

 次はゾーンファイルを食べさせる所ですね。DNSSECが動く所まで確認出来たら、自ドメインの権威DNSをbind10にしてしまおうと思います。

[]Nexus7000をラッキングする

 仕事でNexus7009を触る機会がありそうなので色々とお勉強中です。ライセンスやモジュールが多岐にわたっていて「とりあえずこれでいけばなんでもOK!」みたいな構成が取りにくいですね。今回はラッキングに関するお話です。

エアフロー

 n7kシリーズのエアフローは下記の通りです。コールドアイルホットアイルなDCやオープンラックなDCを困らせる側面吸気や側面排気があります。


7004 : side-to-rear airflow
7009 : side-to-side airflow
7010 : front-to-back airflow
7018 : side-to-side airflow

Cisco Nexus 7000 Series Site Preparation Guide

 これを解決する方法にひとつが、Panduitから出ているNexus専用ラックです。専用のダクトを利用して強引に前面吸気背面排気にすることができます。さらに配線まで考慮された出来る奴です。

パンドウイット/Cisco® Nexus 7009ソリューション
Net-Access ™ キャビネット(Cisco Nexus7018スイッチ用

 Nexus7009専用ラックの専用吸気ダクトだけも販売しているみたいです。普通のラックに収まるn7009の為に専用ラックを買わなくていいのはかなり大きい。世のNexus使いはどうやったラッキングしてるのかかなり興味があります。

Net-Access™ スイッチキャビネット用 Cisco®Nexus7009 専用吸気ダクト

[]出産に掛かる費用

 子供が生まれたので、記念?に病院にかかった費用を簡単にまとめておきます。記憶があいまいな部分もありますが、今後出産を考えている人の参考になればなと。

出産までの検診

 母子手帳&公費助成の受診票(詳細:妊婦一般健康診査)をもらえるまでの診察は完全実費で¥5,000〜¥10,000くらい、以降の診察はほとんど受診票が利用可能だったため、0円〜数千円でした。受診表はマジで神。40週で生まれてきたので受診表はぴったり足りました。受診表がなくなった後の診察は完全実費なので、予定週に生まれてきた息子に感謝。

出産

 自然分娩で部屋は個室、入院中に受けた抗生物質の点滴、陣痛促進剤の点滴、栄養剤の点滴、出産後のリラクゼーションエステ?などを含め、総額は¥538,180でした。ここから出産育児一時金¥420,000が引かれ、窓口での支払いは¥118,180でした。なお、ITS独自の出産育児付加金¥90,000を事後申請したので、最終的な実費は¥28,180になる予定です。ここまで来るとほぼゼロ円ですね。ありがたいことです。

Sep 24 22:37:42.951: %BGP-5-ADJCHANGE: neighbor 10.0.2.1 Up

right#show bgp ipv4 unicast summary

Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.0.1.1 4 65001 17 17 31 0 0 00:02:02 2
10.0.2.1 4 65001 15 16 31 0 0 00:01:58 2

right#show ip route

10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
C 10.0.1.0/24 is directly connected, FastEthernet1/0
L 10.0.1.254/32 is directly connected, FastEthernet1/0
C 10.0.2.0/24 is directly connected, FastEthernet1/1
L 10.0.2.254/32 is directly connected, FastEthernet1/1
B 192.168.1.0/24 [20/0] via 10.0.2.1, 00:02:36
[20/0] via 10.0.1.1, 00:02:36
B 192.168.2.0/24 [20/0] via 10.0.2.1, 00:02:36
[20/0] via 10.0.1.1, 00:02:36
[/text]

 EEMのタイミングとBGPのホールドダウンタイマを合わせたりと微調整が必要な気がしますが、想定通り動きました。フルルートを食べてる時にちゃんと動くのかは要検証です。