<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="../../../../../css/rss/feedRss2.xsl" media="screen" type="text/xsl"?>

<rss version="2.0"> 
  <channel> 
    <title>特に書くこともないけど、</title>  
    <link>http://pottan.blog.so-net.ne.jp/</link>  
    <language>ja</language>  
    <pubDate>Sat, 19 Feb 2011 15:30:04 +0900</pubDate>  
    <description><![CDATA[ぼちぼちやっていきます。]]></description>  
    <atom:link xmlns:atom="http://www.w3.org/2005/Atom" rel="self" href="http://rss.rssad.jp/rss/sonetrss/000212522359_index.xml" type="application/rss+xml"/>  
    <item> 
      <title>BIND9.8.0rc1でDNS64を使ってみる</title>  
      <link>http://pottan.blog.so-net.ne.jp/2011-02-19</link>  
      <category>未分類</category>  
      <pubDate>Sat, 19 Feb 2011 15:30:04 +0900</pubDate>  
      <guid isPermaLink="false">http://pottan.blog.so-net.ne.jp/2011-02-19</guid>  
      <description><![CDATA[<p><a href="http://www.isc.org/software/bind/980rc1" target="_blank">BIND-9.8.0rc1</a>で<code>dns64</code>を試したメモ。<br />
<br />
IPv6のみのホストがIPv4のホストにアクセスする場合に、IPv6セグメントとIPv4セグメントの間にNAT64サーバーという変換機能付ゲートウェイを設置してアクセスを可能にする仕組みがあるようですが、その際、DNSがIPv4ホストのAを返してもIPv6セグメントでは海を車で渡れと言われているようなもので使えないので、エンドポイントとなるNAT64サーバーの<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%95%E3%82%A7%E3%83%BC%E3%82%B9&ic=utf8" class="affiliate-link" target="_blank">インターフェース</a>への繋ぎとなるAAAAをある規則に従って合成して返すのがDNS64の役割みたいです。<br />
<br />
<code><a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=named&ic=utf8" class="affiliate-link" target="_blank">named</a>.conf</code>に記載する<code>dns64</code>ディレクティブは、そのAから合成変換したAAAAを作る<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E4%BD%9C%E3%82%8A%E6%96%B9&ic=utf8" class="affiliate-link" target="_blank">作り方</a>みたいなものを定義するもので、<code>options</code>と<code>view</code>に書けるみたいです。具体的には、<br />
<a name="2011021901_1" href="#2011021901_1"></a><blockquote><code><pre>acl rfc1918 { 10/8; 192.168/16; 172.16/12; };
...
dns64 64:FF9B::/96 {
    clients {
        2001:BD8:0:1::/64;
    };
    mapped { !rfc1918; any; };
    exclude { 64:FF9B::/96; ::ffff:0000:0000/96; };
    suffix ::;
    recursive-only yes;
    break-dnssec yes;
};
dns64-<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=server&ic=utf8" class="affiliate-link" target="_blank">server</a> "dns64.example.jp.";
dns64-contact "hostmaster.example.jp.";</pre></code></blockquote><br />
のように書くようです。合成変換するフォーマットについての詳細は<a href="http://www.ietf.org/rfc/rfc6052.txt" target="_blank">RFC6052</a>を参照することになりますが、<code>dns64</code>の後の<code>64:FF9B::/96</code>のところに<code>IPv6-prefix</code>を定義します。これは合成変換後のAAAAのプレフィックスになります。残りのものについては以下に列挙します。<br />
<ul>
 <li><strong><code>clients</code></strong>…合成変換したAAAAを返す対象となる<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88&ic=utf8" class="affiliate-link" target="_blank">クライアント</a>を定義します。デフォルトは<code>any;</code>です。
 <li><strong><code>mapped</code></strong>…合成変換の対象となるA RRの値を定義します。デフォルトは<code>any;</code>です。
 <li><strong><code>exclude</code></strong>…合成変換が適用された<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9&ic=utf8" class="affiliate-link" target="_blank">アドレス</a>かどうかの判定から除外するアドレスを記載します。
 <li><strong><code>suffix</code></strong>…<a href="http://www.ietf.org/rfc/rfc6052.txt" target="_blank">RFC6052</a>の2.2.IPv4-Embedded IPv6 Address Formatに記載されているprefixが96以外のときにsuffixにはめ込む値を定義します。例えば、prefixが<code>64:FF9B::/40</code>でsuffixが<code>::1f2a</code>で変換対象のAが<code>192.0.2.2</code>だとすると、変換後のAAAAは<code>64:ff9b:c0:2:2::1f2a</code>になります。
 <li><strong><code>recursive-only</code></strong>…RDビットが起っている問い合わせのみに変換後のAAAAを返すかどうかを定義します。つまり<code>yes</code>にすると再帰クエリーの場合に変換後のAAAAを返します。
 <li><strong><code>break-dnssec</code></strong>…<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=DNSSEC&ic=utf8" class="affiliate-link" target="_blank">DNSSEC</a>の問い合わせに対してAAAAを返すかどうかを定義します。<code>no</code>にするとAにDNSSECの署名がある場合にDOビットを<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%82%BB%E3%83%83%E3%83%88&ic=utf8" class="affiliate-link" target="_blank">セット</a>した問い合わせを行うと変換後のAAAAを返しません。<code>yes</code>にすると変換対象とします。当然ですが変換後のAAAAに署名は付きません。といいますか付けることができません。
 <li><strong><code>dns64-server</code></strong>…prefixに対する<code>IP6.ARPA.</code>の<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%BC&ic=utf8" class="affiliate-link" target="_blank">マスター</a>サーバーの値を定義します。例えば、prefixが<code>64:FF9B::/32</code>の場合に<code>b.9.f.f.4.6.0.0.ip6.arpa.</code>のSOAを問い合わせると、マスターサーバーのところにここに定義した値が入ります。
 <li><strong><code>dns64-contact</code></strong>…prefixに対する<code>IP6.ARPA.</code>の管理者メールアドレスの値を定義します。<code>dns64-server</code>の例と合わせて具体的なSOAの値を記載すると以下のようになります。
<blockquote><code><pre>b.9.f.f.4.6.0.0.ip6.arpa. 86400 IN SOA 
dns64.example.jp. hostmaster.example.jp. 
0 28800 7200 604800 86400</pre></code></blockquote>
</li></li></li></li></li></li></li></li></ul><br />
ちなみに、<code>dns64</code>は複数記載してクライアント毎にprefixを変えたりできるようです。<br />
<br />
上記<a href="#2011021901_1">具体例</a>の設定で<br />
<blockquote><code><pre>host.example.jp. 86400 IN A 192.0.2.2</pre></code></blockquote><br />
のAAAAを問い合わせると<br />
<blockquote><code><pre>host.example.jp. 10800 IN AAAA 64:ff9b::c000:202</pre></code></blockquote><br />
となるようです。変換後のTTLはネガティブキャッシュのものとなるようです。<a name="more"></a></p>]]></description>  
      <author>*生保単独*</author> 
    </item>  
    <item> 
      <title>ISC DLVからDS方式の移行</title>  
      <link>http://pottan.blog.so-net.ne.jp/2011-01-19</link>  
      <category>未分類</category>  
      <pubDate>Wed, 19 Jan 2011 19:14:08 +0900</pubDate>  
      <guid isPermaLink="false">http://pottan.blog.so-net.ne.jp/2011-01-19</guid>  
      <description><![CDATA[<p><a href="http://jprs.co.jp/press/2011/110117.html" target="_blank">JPRSがJPドメイン名サービスにDNSSECを導入</a>したことに伴い<a href="https://dlv.isc.org/" target="_blank">ISC DLV</a>から<a href="http://jprs.jp/" target="_blank">JPRS</a>上のDS方式に移行したので、そのメモでもと。尚、他の関連ネタ同様、<a href="http://pottan.blog.so-net.ne.jp/2010-10-28">ここ</a>なんかに書いている<code>auto-dnssec maintain;</code>が前提になっています。<code>auto-dnssec maintain;</code>については<a href="http://www.isc.org/files/arm97.pdf" target="_blank">BIND97付属のARM</a>の他、<a href="http://jprs.jp/dnssec/doc/smart-sign.pdf" target="_blank">これ</a>なんかも参考になりそうです。<br />
<br />
まず、新しいKSKを作ります。<a href="https://dlv.isc.org/" target="_blank">ISC DLV</a>で使っていたものをそのまま移行でもよいのでしょうけど、折角だしこの機会に切り替えた方がよいかと思いまして。使用期間もわかりやすいかと思いますし。まあ、ゴタクは兎も角、新しいKSK作ります。<br />
<br />
<blockquote><code><pre>$ su -
# su - <a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=named&ic=utf8" class="affiliate-link" target="_blank">named</a> --shell=/bin/bash
$ /usr/sbin/dnssec-keygen -f KSK -r /dev/urandom -3 -a \
 RSASHA256 -b 2048 -P now -A now+30h -I now+13mo -D now+13mo \
 -K /var/named/chroot/var/named/keys/example.jp \
 -n ZONE example.jp
Generating key pair...
Kexample.jp.+008+02746</pre></code></blockquote><br />
<br />
KSKのロールオーバー方式ですが、<a href="https://jprs.jp/doc/dnssec/jp-dps-jpn.html" target="_blank">ここ</a>とか<a href="http://jprs.jp/dnssec/doc/parameter.html" target="_blank">ここ</a>に2重署名方式(Double <a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=Signature&ic=utf8" class="affiliate-link" target="_blank">Signature</a>)とありますので、それに準じてみたいと思います。とはいうものの、そもそも登録しているところが違うので意味合いが変わって来ている感はありますが、まあ、似たような感じでやったと思って頂ければ。まず、publishedになってから<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=active&ic=utf8" class="affiliate-link" target="_blank">active</a>にするまでの時間ですが、DNSKEYのTTLとゾーン転送にかかる時間と誤差程度の作業時間(例えば、鍵作ってから実際に公開するまでの時間とか)ぐらいみればいいわけですが、TTLはまあ一般的には1日ぐらいだと思いますし、ゾーン転送は最近は<code>NOTIFY</code>とかあるのでそんなに掛からないとは思えども、普通に転送する場合とか失敗する場合とかも考えて多めに見積もって6時間ぐらいみておけばいいかなということで30時間としています。retiredとdeletedはどうせ更新時に明示的に行うことなので、ちょっと長めに適当です。<br />
<br />
で、これで、鍵が出来ているはずなので、<br />
<br />
<blockquote><code><pre>$ rndc loadkeys example.jp.</pre></code></blockquote><br />
<br />
とします。で、作成した<code>Kexample.jp.+008+02746</code>でDNSKEYの署名が開始されるまで待ちます。要するに30時間後です。署名が開始されたらDSを申請します。<code>dnssec-dsfromkey(8)</code>を使ってDS RRを得ます。<br />
<br />
<blockquote><code><pre>$ /usr/sbin/dnssec-dsfromkey \
 /var/named/chroot/var/named/keys/example.jp/Kexample.jp.+008+02746.key
example.jp. IN DS 2746 8 1 1D8F72D56BEA0EABA6E6BCAC2093906135C9457B
example.jp. IN DS 2746 8 2 C6884BFF053E0F63B00153411AD3873DCD9462CBDD1261707CA83F2B 762319F7</pre></code></blockquote><br />
<br />
<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%83%AC%E3%82%B8%E3%82%B9%E3%83%88%E3%83%A9&ic=utf8" class="affiliate-link" target="_blank">レジストラ</a>にもよるのでしょうけど、利用中の<a href="http://www.nadukete.net/" target="_blank">名づけてねっと</a>では鍵ID以降、つまり、<br />
<br />
<blockquote><code><pre>2746 8 1 1D8F72D56BEA0EABA6E6BCAC2093906135C9457B
2746 8 2 C6884BFF053E0F63B00153411AD3873DCD9462CBDD1261707CA83F2B 762319F7</pre></code></blockquote><br />
<br />
を<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0&ic=utf8" class="affiliate-link" target="_blank">フォーム</a>に貼り付ける方式でした。まあ、このあたりは利用中のレジストラの<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%82%84%E3%82%8A%E6%96%B9&ic=utf8" class="affiliate-link" target="_blank">やり方</a>に従えばよいだけかと思います。<br />
<br />
親のゾーン(この場合はjp)にDS RRが登録されるのを待ちます。jp.のNS RRは、<br />
<br />
<blockquote><code><pre>$ dig jp. ns</pre></code></blockquote><br />
<br />
なんぞで得られると思いますし、それらに<br />
<br />
<blockquote><code><pre>$ dig +norec @a.dns.jp example.jp. ds</pre></code></blockquote><br />
<br />
等とすれば確認はできるかと思います。確認できたら、<a href="https://dlv.isc.org/" target="_blank">ISC DLV</a>からDLV RRを消します。Zone Actionsの(delete)をぽちっとするだけです。ここで、また、DLV RRのTTLとゾーン転送にかかる時間程度を待つことになりますが、TTLが3600、Refreshが7200のようなので、3, 4時間程度待てばよいでしょう。その後、古いKSKがKexample.jp.+008+12199だったとしますと、<code>dnssec-settime(8)</code>使って、<br />
<br />
<blockquote><code><pre>$ /usr/sbin/dnssec-settime -I now \
 /var/named/chroot/var/named/keys/example.jp/Kexample.jp.+008+12199
$ rndc loadkeys example.jp.</pre></code></blockquote><br />
<br />
とします。その後、<br />
<br />
<blockquote><code><pre>$ /usr/sbin/dnssec-settime -D now \
 /var/named/chroot/var/named/keys/example.jp/Kexample.jp.+008+12199
$ rndc loadkeys example.jp.</pre></code></blockquote><br />
<br />
とすればゾーンから古いKSKは消えてくれます。<sup><small>(<a href="#2011011901_1">*1</a>)</small></sup>。<br />
<br />
<hr /><br />
<br />
<a name="2011011901_1" href="#2011011901_1">*1</a>: 別に<code>-I</code>と<code>-D</code>を一気にやってしまってもいいのですが、なんとなくかわいそうな気がするものでw<a name="more"></a></p>]]></description>  
      <author>*生保単独*</author> 
    </item>  
    <item> 
      <title>NSEC3PARAMをCRON(8)で更新する(DNSSECネタ)</title>  
      <link>http://pottan.blog.so-net.ne.jp/2011-01-16</link>  
      <category>未分類</category>  
      <pubDate>Sun, 16 Jan 2011 03:28:13 +0900</pubDate>  
      <guid isPermaLink="false">http://pottan.blog.so-net.ne.jp/2011-01-16</guid>  
      <description><![CDATA[<p>ネタ的には「<a href="http://pottan.blog.so-net.ne.jp/2010-10-28">auto-dnssec maintain; を試してみる</a>」あたりの設定が前提です。<br />
<br />
まず、以下のようなスクリプトを作ります。なるべく通常<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB&ic=utf8" class="affiliate-link" target="_blank">インストール</a>されてそうなコマンドに限定して書いたつもり。<br />
<br />
<blockquote><code><pre>$ su -
# cd /var/<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=named&ic=utf8" class="affiliate-link" target="_blank">named</a>
# mkdir bin
# chown -R named:named bin
# su - named --shell=/bin/bash
$ cd bin
$ cat > update-nsec3param.sh
#!/bin/sh

RETVAL=0

usage () {
    echo $"Usage: $0 -s <a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=server&ic=utf8" class="affiliate-link" target="_blank">server</a>_ip_address -d zone_name" 1>&2
    RETVAL=1
}

OPT=""
DOMAIN=""
<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=SERVER&ic=utf8" class="affiliate-link" target="_blank">SERVER</a>=""
while getopts s:d: OPT
do
    <a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=case&ic=utf8" class="affiliate-link" target="_blank">case</a> $OPT in
        d) DOMAIN=$OPTARG
           ;;
        s) SERVER=$OPTARG
           ;;
        \?) usage
            exit $RETVAL
            ;;
    esac
done
<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=shift&ic=utf8" class="affiliate-link" target="_blank">shift</a> `expr $OPTIND - 1`

if [ -z "$DOMAIN" ]; then
    usage
    exit $RETVAL
fi

if [ -z "$SERVER" ]; then
    usage
    exit $RETVAL
fi

ITER=$((RANDOM % 6 + 5))
LEN=$((RANDOM % 16 + 3))
HASH=`/usr/bin/openssl rand $LEN | /usr/bin/hexdump -e '1/1 "%02x"'`


cat << UFILE
server $SERVER
update delete $DOMAIN. IN NSEC3PARAM
update add $DOMAIN. 0 IN NSEC3PARAM 1 0 $ITER $HASH
send
UFILE

exit 0</pre></code></blockquote><br />
<br />
スクリプトは<code>openssl(1)</code>と<code>hexdump(1)</code>がインストールされていることを前提にしてます。<code>salt</code>の長さや<code>iterations</code>の回数は適当です。まあ、長すぎず短すぎない程度にした感じ。<br />
<br />
<code>nsupdate(1)</code>を受け付けてくれるIP<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9&ic=utf8" class="affiliate-link" target="_blank">アドレス</a>を<code>192.0.2.2</code>、更新対象のゾーンを<code>example.jp</code>と仮にでもしておきます。<code>crontab -e</code>とかして以下のような行を追加します。<br />
<br />
<blockquote><code><pre>10 3 1,11,21 * * /var/named/bin/update-nsec3param.sh \
 -s 192.0.2.2 -d example.jp \
 | /usr/bin/nsupdate \
 -k /var/named/chroot/var/run/named/<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=session&ic=utf8" class="affiliate-link" target="_blank">session</a>.key \
 > /dev/null 2>&1</pre></code></blockquote><br />
<br />
言うまでもないですが<code>\</code>は継続行の意味です。これで毎月1日11日21日の3時10分頃に<code>NSEC3PARAM</code>を更新してくれるはず。<a name="more"></a></p>]]></description>  
      <author>*生保単独*</author> 
    </item>  
    <item> 
      <title>多数派は言わざるですので</title>  
      <link>http://pottan.blog.so-net.ne.jp/2011-01-03</link>  
      <category>未分類</category>  
      <pubDate>Mon, 03 Jan 2011 17:51:22 +0900</pubDate>  
      <guid isPermaLink="false">http://pottan.blog.so-net.ne.jp/2011-01-03</guid>  
      <description><![CDATA[<p><blockquote cite="http://blog.livedoor.jp/lunarmodule7/archives/1903072.html" title="窒息死亡事故が多発する餅はなぜ規制されないのか？"><cite>引用:<a href="http://blog.livedoor.jp/lunarmodule7/archives/1903072.html" target="_blank">窒息死亡事故が多発する餅はなぜ規制されないのか？</a></cite><br /><br />

危ないと言われれば、コストがかかり多少利便性が悪くなっても、危なくないように対応するのが日本の行政だ。彼らは国民の声を聞いて仕事をしているのだ（と少なくとも彼らは主張するだろう）。<br /><br />

責任の一端は彼らにそういう仕事をさせてきた我々社会の側にもある。無視できるほどのリスクに目くじらを立て、責任者は誰だ？と犯人探しをし、多額の損害賠償と再発防止策を求める。そのたびに新たな規制が追加され、少しずつ社会は住みにくくなる。もちろんそうした規制の中には必要なものも多い。しかし不要なものも多いのもまた事実だ。<br /><br />

この負の連鎖をなんとか断ち切り、より全体的な視点でバランスのとれた対応をすることは出来ないのか、それこそ政治主導の出番なのだろうけれど……ねえ？</blockquote><br />
<br />
恐らく、無視できるほどのリスクに関しては、犯人探しをしたり多額の損害賠償を求めたり再発防止策を求めている方々は少数なはずで、それらを不要と思っている人は多数なはずだと思うのですが、そもそも不要と思っている人は目くじらを立てない、つまり、意見を出さないですから。<br />
<br />
何も言わない人と何か言ってくる人のどちらに対応するかといえば、通常、何か言ってくる人に対応せざるを得ないでしょうし。「危ないと＊言われれば＊」もそうなのでしょう。<br />
<br />
そういう多数派が積極的に意見を出さないという意味で「責任の一端は彼らにそういう仕事をさせてきた我々社会の側にもある」というのは的を射ているとは思いますけど、例えば、モンペに<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%81%9D%E3%81%AE%E4%BB%96&ic=utf8" class="affiliate-link" target="_blank">その他</a>の親御さんが「おまえの<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E6%95%99%E8%82%B2&ic=utf8" class="affiliate-link" target="_blank">教育</a>は間違っている」と思っても面と向かって主張しないのと同じで、ある意味三猿的なものが今の日本の文化的なところに根付いてますから。<br />
<br />
結局のところ、より全体的な視点でバランスのとれた対応をするためには、そういう物言わぬ少数派が積極的に意見を言う社会を作るか、行政が積極的に意見を取りに行くかしかないんでしょうけど、それをどう実現するかが難しいところですかね。<a name="more"></a></p>]]></description>  
      <author>*生保単独*</author> 
    </item>  
    <item> 
      <title>謹賀新年</title>  
      <link>http://pottan.blog.so-net.ne.jp/2011-01-01</link>  
      <category>未分類</category>  
      <pubDate>Sat, 01 Jan 2011 00:36:08 +0900</pubDate>  
      <guid isPermaLink="false">http://pottan.blog.so-net.ne.jp/2011-01-01</guid>  
      <description><![CDATA[<p><div align="center"><img src="http://pottan.blog.so-net.ne.jp/_images/blog/_8b1/seiho_tandoku/blog01.png" width="320" height="473" border="0" align="" alt="年賀状2011" /></div><br />
<br />
新年あけましておめでとう御座います。<a name="more"></a></p>]]></description>  
      <author>*生保単独*</author> 
    </item>  
    <item> 
      <title>なんだかな…ServersMan@VPS</title>  
      <link>http://pottan.blog.so-net.ne.jp/2010-12-30-2</link>  
      <category>未分類</category>  
      <pubDate>Thu, 30 Dec 2010 10:38:18 +0900</pubDate>  
      <guid isPermaLink="false">http://pottan.blog.so-net.ne.jp/2010-12-30-2</guid>  
      <description><![CDATA[<p>今朝、ServersMan@VPSのメンテに関してメールが。<br />
<br />
<blockquote><cite>引用:ServersMan@VPS メンテナンス経緯のご報告 ならびに AirDisplay設定変更のお願い</cite><br /><br />

# 当メールは、SSH のポート番号変更にあたりまして、再度手動による設定が<br />
# 必要なお客様を対象にお送りさせていただいております。<br />
# 大変ご面倒ながら、ご協力をお願いいたします。</blockquote><br />
<br />
勝手に環境弄っておいてその修正は客の方で行えと？まあ、各所で勝手に弄るなと突っ込まれた手前、弄れない立場になってしまったんでしょうかね。個人的には、どのみち使ってないし使わない機能なのでどうでもいいんですが。そもそも、<br />
<br />
<blockquote cite="http://info.dti.ne.jp/announce/docs/20101207_01.html" title="ServersMan@VPSサービス SSH接続用のポート変更に伴う設定変更のお願い"><cite>引用:<a href="http://info.dti.ne.jp/announce/docs/20101207_01.html" target="_blank">ServersMan@VPSサービス SSH接続用のポート変更に伴う設定変更のお願い</a></cite><br /><br />

プリインストールされているアプリケーションの他、お客様が自由に環境を構築できるメリットもありますが、その反面、<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E5%AF%BE%E7%AD%96&ic=utf8" class="affiliate-link" target="_blank">セキュリティ対策</a>もお客様ご自身で行っていただく必要があります。</blockquote><br />
<br />
と言っておきながら、その対策を客に任せていないからこういうことになるんじゃないかと思ったり。まあ、途中から高負荷対策などという名目が案内メールに入り込んできてますので、DTI都合の意味合いが大きいメンテなんだと邪推したりしてますが。<br />
<br />
別にたいした料金払っているわけではないので、弄りたきゃ弄ってもらえればいいとは思うのですが<sup><small>(<a href="#2010123003_1">*1</a>)</small></sup>、なんかセキュリティ対策を口実に負荷対策を行うのはなんだかなといったところ。言っていることが首尾一貫してないし、言い訳がましい口実を書いているように読めてしまうところが個人的に反感を買う要因ではないかと思うところ。<br />
<br />
<hr /><br />
<br />
<a name="2010123003_1" href="#2010123003_1">*1</a>: 事前に断る必要はあると思いますけど。<a name="more"></a></p>]]></description>  
      <author>*生保単独*</author> 
    </item>  
    <item> 
      <title>続・YAMAHAルータDNSリカーシブサーバー機能検証(フルリゾルバがBIND 9.7.2-P3の場合)</title>  
      <link>http://pottan.blog.so-net.ne.jp/2010-12-30-1</link>  
      <category>未分類</category>  
      <pubDate>Thu, 30 Dec 2010 06:08:37 +0900</pubDate>  
      <guid isPermaLink="false">http://pottan.blog.so-net.ne.jp/2010-12-30-1</guid>  
      <description><![CDATA[<p><cite><a href="http://pottan.blog.so-net.ne.jp/2010-12-30" target="_blank">YAMAHAルータDNSリカーシブサーバー機能検証</a></cite><br />
<br />
<a href="http://pottan.blog.so-net.ne.jp/2010-12-30" target="_blank">同じテスト</a>をフル<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%83%AA%E3%82%BE%E3%83%AB%E3%83%90&ic=utf8" class="affiliate-link" target="_blank">リゾルバ</a>を<a href="http://www.isc.org/software/bind" target="_blank">BIND 9.7.2-P3</a>にしてやってみた。<br />
<br />
まず、<code><a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=dhcp&ic=utf8" class="affiliate-link" target="_blank">dhcp</a> <a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=scope&ic=utf8" class="affiliate-link" target="_blank">scope</a> <a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=option&ic=utf8" class="affiliate-link" target="_blank">option</a></code>を付けない場合。要するに、<br />
<br />
<blockquote><code><pre>DNS Servers . . . . . . . . . . . : 192.168.141.1
                                    192.0.2.81
</pre></code></blockquote><br />
<br />
となる場合。結果は、<br />
<br />
<div align="center"><a href="http://pottan.blog.so-net.ne.jp/_images/blog/_8b1/seiho_tandoku/rtx1100-80390-bind42.png" target="_blank"><img src="http://pottan.blog.so-net.ne.jp/_images/blog/_8b1/seiho_tandoku/m_rtx1100-80390-bind42.png" width="350" height="247" border="0" align="" alt="DNSSEC compatibilty report(RTX1100 Rev.8.03.90)その１" /></a></div><br />
<br />
42/43 tests passed(failedしたのは<a href="http://www.nic.cz/dnssectests/tests/e/" target="_blank">E</a>のみ)。かなり良好です。<br />
<br />
次に、<code>dhcp scope option 1 dns=192.168.141.1</code>とした場合。要するに、<br />
<br />
<blockquote><code><pre>DNS Servers . . . . . . . . . . . : 192.168.141.1</pre></code></blockquote><br />
<br />
となる場合。ルータのみに問い合わせる場合です。結果は、<br />
<br />
<div align="center"><a href="http://pottan.blog.so-net.ne.jp/_images/blog/_8b1/seiho_tandoku/rtx1100-80390-bind6.png" target="_blank"><img src="http://pottan.blog.so-net.ne.jp/_images/blog/_8b1/seiho_tandoku/m_rtx1100-80390-bind6.png" width="350" height="247" border="0" align="" alt="DNSSEC compatibilty report(RTX1100 Rev.8.03.90)その２" /></a></div><br />
<br />
6/43 tests passed(<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=pass&ic=utf8" class="affiliate-link" target="_blank">pass</a>したのは<a href="http://www.nic.cz/dnssectests/tests/b/" target="_blank">B</a>, <a href="http://www.nic.cz/dnssectests/tests/g/" target="_blank">G.1</a>, <a href="http://www.nic.cz/dnssectests/tests/g/" target="_blank">G.2</a>, <a href="http://www.nic.cz/dnssectests/tests/g/" target="_blank">G.3</a>, <a href="http://www.nic.cz/dnssectests/tests/g/" target="_blank">G.4</a>, <a href="http://www.nic.cz/dnssectests/tests/g/" target="_blank">G.5</a>)。変わらず悲惨です。<br />
<br />
次に、<code>dhcp scope option 1 dns=192.0.2.81</code>とした場合。要するに、<br />
<br />
<blockquote><code><pre>DNS Servers . . . . . . . . . . . : 192.0.2.81</pre></code></blockquote><br />
<br />
となる場合で、直接フルリゾルバに問い合わせる場合です。結果は、<br />
<br />
<div align="center"><a href="http://pottan.blog.so-net.ne.jp/_images/blog/_8b1/seiho_tandoku/rtx1100-80390-bind43.png" target="_blank"><img src="http://pottan.blog.so-net.ne.jp/_images/blog/_8b1/seiho_tandoku/m_rtx1100-80390-bind43.png" width="350" height="247" border="0" align="" alt="DNSSEC compatibilty report(RTX1100 Rev.8.03.90)その３" /></a></div><br />
<br />
43/43 tests passed。この上ないですな。<a href="http://www.unbound.net/" target="_blank">Unbound</a>の場合は<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3&ic=utf8" class="affiliate-link" target="_blank">バージョン</a>が古いからか設定に不足があるのかもですね。いずれにしろ、<a href="http://netvolante.jp/products/rtx1100/" target="_blank">RTX1100</a>のDNSリカーシブ<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC&ic=utf8" class="affiliate-link" target="_blank">サーバー</a>機能は駄目っぽい。<a name="more"></a></p>]]></description>  
      <author>*生保単独*</author> 
    </item>  
    <item> 
      <title>YAMAHAルータDNSリカーシブサーバー機能検証</title>  
      <link>http://pottan.blog.so-net.ne.jp/2010-12-30</link>  
      <category>未分類</category>  
      <pubDate>Thu, 30 Dec 2010 02:15:07 +0900</pubDate>  
      <guid isPermaLink="false">http://pottan.blog.so-net.ne.jp/2010-12-30</guid>  
      <description><![CDATA[<p><a href="http://netvolante.jp/products/rtx1100/" target="_blank">RTX1100</a>のDNSリカーシブサーバー機能ですが<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=DNSSEC&ic=utf8" class="affiliate-link" target="_blank">DNSSEC</a>が絡むとあまりよろしくない感じがするので検証してみようかと。検証といっても<a href="http://www.nic.cz/dnssectests/" target="_blank">http://www.nic.cz/dnssectests/</a>あたりからダウンロードした<a href="http://www.nic.cz/public_media/dnssectests/windows/dnstester-latest.zip" target="_blank">DNSSEC Hardware Tester(Windows version)</a>によるものなのでおもいっきり他力本願ではありますが。<br />
<br />
まあ、枯れた機種かもしれませんけど、一応現役で売ってますし、<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%83%95%E3%82%A1%E3%83%BC%E3%83%A0%E3%82%A6%E3%82%A7%E3%82%A2&ic=utf8" class="affiliate-link" target="_blank">ファームウェア</a>も2010年12月30日現在最新の<a href="http://www.rtpro.yamaha.co.jp/RT/firmware/firmware.php?model=rtx1100&rev=803" target="_blank">Rev.8.03.90</a>にして検証してみました。<br />
<br />
<a href="http://netvolante.jp/products/rtx1100/" target="_blank">RTX1100</a>のプライベート側のIP<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9&ic=utf8" class="affiliate-link" target="_blank">アドレス</a>は192.168.141.1、DNSサーバーのIPアドレスは実際のものを書くのも何なので192.0.2.81としておきます。192.0.2.81で動作しているフルリゾルバは<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=Fedora&ic=utf8" class="affiliate-link" target="_blank">Fedora</a> EPELのunbound 1.4.4です。この場合、要所だけ書くと、<br />
<br />
<blockquote><code><pre>…
ip lan1 address 192.168.141.1/24
…
dhcp service <a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=server&ic=utf8" class="affiliate-link" target="_blank">server</a>
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.141.192-192.168.141.224/24 expire 1:00
dns service recursive
dns server 192.0.2.81
…</pre></code></blockquote><br />
<br />
みたいな設定を入れるかと思うんですが、この設定でWindows<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88&ic=utf8" class="affiliate-link" target="_blank">クライアント</a>なんぞで<code>ipconfig /all</code>なんぞを実行すると、以下のような感じで、<br />
<br />
<blockquote><code><pre>IP Address. . . . . . . . . . . . : 192.168.141.192
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.141.1
DHCP <a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=Server&ic=utf8" class="affiliate-link" target="_blank">Server</a> . . . . . . . . . . . : 192.168.141.1
DNS Servers . . . . . . . . . . . : 192.168.141.1
                                    192.0.2.81
Lease Obtained. . . . . . . . . . : 2010年12月30日 0:42:09
Lease Expires . . . . . . . . . . : 2010年12月30日 1:42:09</pre></code></blockquote><br />
<br />
DNS Servers欄にDNSリカーシブサーバー機能が動作している<a href="http://netvolante.jp/products/rtx1100/" target="_blank">RTX1100</a>のIPアドレスと実際のDNSサーバーのIPアドレスが返ってきます。実際、この場合はそこそこ良好な結果(38/43 tests passedでfailedは<a href="http://www.nic.cz/dnssectests/tests/c/" target="_blank">C.1</a>, <a href="http://www.nic.cz/dnssectests/tests/c/" target="_blank">C.2</a>, <a href="http://www.nic.cz/dnssectests/tests/d/" target="_blank">D.1</a>, <a href="http://www.nic.cz/dnssectests/tests/d/" target="_blank">D.2</a>, <a href="http://www.nic.cz/dnssectests/tests/e/" target="_blank">E</a>のみ)を叩き出すのですが、なんとなく192.0.2.81に直接問い合わせた結果がよいだけで本来のDNSリカーシブサーバー機能は頑張ってないんじゃないのかと思えたので検証してみる次第。<br />
<br />
そのようなわけで、DHCPがDNSサーバーとして192.168.141.1しか返さないように、以下の設定を加えます。<br />
<br />
<blockquote><code><pre>dhcp scope option 1 dns=192.168.141.1</pre></code></blockquote><br />
<br />
これで、<code>ipconfig /all</code>なんぞを実行すると、<br />
<br />
<blockquote><code><pre>IP Address. . . . . . . . . . . . : 192.168.141.192
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.141.1
DHCP Server . . . . . . . . . . . : 192.168.141.1
DNS Servers . . . . . . . . . . . : 192.168.141.1
Lease Obtained. . . . . . . . . . : 2010年12月30日 0:52:36
Lease Expires . . . . . . . . . . : 2010年12月30日 1:52:36</pre></code></blockquote><br />
<br />
となります。これでテストしてみると、<br />
<br />
<div align="center"><a href="http://pottan.blog.so-net.ne.jp/_images/blog/_8b1/seiho_tandoku/rtx1100-80390-6pass.png" target="_blank"><img src="http://pottan.blog.so-net.ne.jp/_images/blog/_8b1/seiho_tandoku/m_rtx1100-80390-6pass.png" width="350" height="247" border="0" align="" alt="DNSSEC compatibilty report(RTX1100 Rev.8.03.90)" /></a></div><br />
<br />
6/43 tests passed(passしたのは<a href="http://www.nic.cz/dnssectests/tests/b/" target="_blank">B</a>, <a href="http://www.nic.cz/dnssectests/tests/g/" target="_blank">G.1</a>, <a href="http://www.nic.cz/dnssectests/tests/g/" target="_blank">G.2</a>, <a href="http://www.nic.cz/dnssectests/tests/g/" target="_blank">G.3</a>, <a href="http://www.nic.cz/dnssectests/tests/g/" target="_blank">G.4</a>, <a href="http://www.nic.cz/dnssectests/tests/g/" target="_blank">G.5</a>)のみ。結構悲惨な有様。<br />
<br />
そもそもルータにDNSリカーシブサーバー機能が要るのかどうかは兎も角、<a 
href="http://netvolante.jp/products/rtx1100/" target="_blank">RTX1100</a>のDNSリカーシブサーバー機能は使えない感じ。何か設定が足らんのでしょうか。最新の機種だとそうでもないんですかね。<br />
<br />
ちなみに、実際のルータの全設定は以下のような感じです。なるべく余計なものは書かないようにしたつもり。<br />
<br />
<blockquote><cite><code>dhcp scope option</code>付</cite><br /><br />
<code><pre>console character ascii
ip route default <a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=gateway&ic=utf8" class="affiliate-link" target="_blank">gateway</a> pp 1
ip filter source-route on
ip filter directed-broadcast on
ip icmp redirect send off
ip lan1 address 192.168.141.1/24
pp select 1
 pp always-on on
 pppoe use lan2
 pp auth accept chap
 pp auth myname user_id password
 ppp lcp mru on 1438
 ppp ipcp ipaddress on
 ppp ipcp msext on
 ppp ccp type none
 ip pp mtu 1438
 ip pp nat descriptor 1
 pp enable 1
nat descriptor type 1 masquerade
nat descriptor address outer 1 ipcp
nat descriptor address inner 1 auto
rip use off
telnetd service on
telnetd host 192.168.141.1-192.168.141.254
dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.141.192-192.168.141.224/24 expire 1:00
dhcp scope option 1 dns=192.168.141.1
dns service recursive
dns server 192.0.2.81
httpd service off
httpd host none</pre></code></blockquote><br />
<br />
<blockquote><cite><code>dhcp scope option</code>無</cite><br /><br />
<code><pre>console character ascii
ip route default gateway pp 1
ip filter source-route on
ip filter directed-broadcast on
ip icmp redirect send off
ip lan1 address 192.168.141.1/24
pp select 1
 pp always-on on
 pppoe use lan2
 pp auth accept chap
 pp auth myname user_id password
 ppp lcp mru on 1438
 ppp ipcp ipaddress on
 ppp ipcp msext on
 ppp ccp type none
 ip pp mtu 1438
 ip pp nat descriptor 1
 pp enable 1
nat descriptor type 1 masquerade
nat descriptor address outer 1 ipcp
nat descriptor address inner 1 auto
rip use off
telnetd service on
telnetd host 192.168.141.1-192.168.141.254
dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.141.192-192.168.141.224/24 expire 1:00
dns service recursive
dns server 192.0.2.81
httpd service off
httpd host none</pre></code></blockquote><br />
<a name="more"></a></p>]]></description>  
      <author>*生保単独*</author> 
    </item>  
    <item> 
      <title>ECPGでSELECT FOR UPDATE</title>  
      <link>http://pottan.blog.so-net.ne.jp/2010-12-27</link>  
      <category>未分類</category>  
      <pubDate>Mon, 27 Dec 2010 03:01:26 +0900</pubDate>  
      <guid isPermaLink="false">http://pottan.blog.so-net.ne.jp/2010-12-27</guid>  
      <description><![CDATA[<p><a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=Windows&ic=utf8" class="affiliate-link" target="_blank">Windows</a>版の<a href="http://www.postgresql.org/docs/8.4/static/release-8-4-6.html" target="_blank">PostgreSQL 8.4</a>に付いてきた<a href="http://www.postgresql.org/docs/8.4/interactive/ecpg.html" target="_blank">ECPG</a>でSELECT ... FOR UPDATEをやってみたときの微妙なメモ。まあ、普通に動くので微妙ではないかもしれないですけど。ちなみに開発環境は<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=Visual&ic=utf8" class="affiliate-link" target="_blank">Visual</a> C++ 2005。<br />
<br />
取り敢えず、テスト用に簡単な<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB&ic=utf8" class="affiliate-link" target="_blank">テーブル</a>を作ってみる。<br />
<br />
<blockquote><code><pre>CREATE TABLE T_TEST (
    TEST_ID SERIAL NOT NULL PRIMARY KEY,
    TEST_STR VARCHAR(8) DEFAULT '' NOT NULL
);</pre></code></blockquote><br />
<br />
序でに申し訳程度にレコードも足しておく。<br />
<br />
<blockquote><code><pre>INSERT INTO T_TEST (TEST_STR) VALUES ('aaaa');
INSERT INTO T_TEST (TEST_STR) VALUES ('bbbb');
INSERT INTO T_TEST (TEST_STR) VALUES ('cccc');
INSERT INTO T_TEST (TEST_STR) VALUES ('dddd');</pre></code></blockquote><br />
<br />
以下のような<a href="http://www.postgresql.org/docs/8.4/interactive/ecpg.html" target="_blank">ECPG</a>に食わせるコードを書いてみる。<br />
<br />
<blockquote><code><pre>EXEC <a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=SQL&ic=utf8" class="affiliate-link" target="_blank">SQL</a>
    BEGIN;

EXEC SQL
    SELECT TEST_ID 
     FROM T_TEST 
      WHERE TEST_ID > 0 FOR UPDATE;
...
EXEC SQL
    COMMIT WORK;
...</pre></code></blockquote><br />
<br />
<code>BEGIN;</code>で明示的にトランザクションを開始して<code>COMMIT WORK;</code>しているので、<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%83%97%E3%83%AA%E3%83%97%E3%83%AD%E3%82%BB%E3%83%83%E3%82%B5&ic=utf8" class="affiliate-link" target="_blank">プリプロセッサ</a><code><a href="http://www.postgresql.jp/document/8.4/html/app-ecpg.html" target="_blank">ecpg(1)</a></code>に渡すときには<code>-t</code><a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3&ic=utf8" class="affiliate-link" target="_blank">オプション</a>を付けます。で、エラーもなくVisual C++ 2005のビルドまで通るのですが、実行すると<code>SQLCODE</code>が<code>-202</code>、<code>SQLSATTE</code>が<code>07002</code>なエラーを吐きます。<code>INTO</code>句がないからなのですが、エラーだからといって別に<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%83%AD%E3%83%83%E3%82%AF&ic=utf8" class="affiliate-link" target="_blank">ロック</a>に失敗しているわけでもなくそこでトランザクションが<code>ROLLBACK</code>しているわけでもなく正常に動作してたりします。まあ、デフォルトが<code>EXEC SQL WHENEVER SQLERROR CONTINUE;</code>なので処理を続行するのはわかるんですが、エラーって続行可能な場合を指すのかなと。<code>SQLWARNING</code>扱いでも良さそうな気が。兎も角、<code>INTO</code>句を付ければ解消しそうなので付けてみることに。返ってくる行数が事前にわかるわけでもないので、ここは<code>DESCRIPTOR</code>を使って以下のように書いてみる。<br />
<br />
<blockquote><code><pre>EXEC SQL
    BEGIN;

EXEC SQL ALLOCATE DESCRIPTOR test_desc;

EXEC SQL
    SELECT TEST_ID 
     INTO DESCRIPTOR test_desc 
      FROM T_TEST 
       WHERE TEST_ID > 0 FOR UPDATE;

EXEC SQL DEALLOCATE DESCRIPTOR test_desc;
...
EXEC SQL
    COMMIT WORK;
...</pre></code></blockquote><br />
<br />
別に<code>descriptor area</code>から値を取り出すわけでもないので何となくもったいない感はありますが特にエラーも吐かず実行できます。勿論、ちゃんとロックもかかります。で、マニュアルの<a href="http://www.postgresql.org/docs/8.4/interactive/ecpg-dynamic.html" target="_blank">32.7. Dynamic SQL</a>を読んでみると、こんな記述が。<br />
<br />
<blockquote cite="http://www.postgresql.org/docs/8.4/interactive/ecpg-dynamic.html" title="PostgreSQL 8.4.6 Documentation(32.7. Dynamic SQL)"><cite>引用:<a href="http://www.postgresql.org/docs/8.4/interactive/ecpg-dynamic.html" target="_blank">PostgreSQL 8.4.6 Documentation(32.7. Dynamic SQL)</a></cite><br /><br />

An <code>EXECUTE</code> command can have an <code>INTO</code> clause, a <code>USING</code> clause, both, or neither. </blockquote><br />
<br />
<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E6%97%A5%E6%9C%AC%E8%AA%9E&ic=utf8" class="affiliate-link" target="_blank">日本語</a>だとここ。<br />
<br />
<blockquote cite="http://www.postgresql.jp/document/8.4/html/ecpg-dynamic.html" title="PostgreSQL 8.4.4文書(32.7. 動的SQL)"><cite>引用:<a href="http://www.postgresql.jp/document/8.4/html/ecpg-dynamic.html" target="_blank">PostgreSQL 8.4.4文書(32.7. 動的SQL)</a></cite><br /><br />

<code>EXECUTE</code>コマンドは<code>INTO</code>句、<code>USING</code>句、この両方を持つことも、どちらも持たないこともできます。 </blockquote><br />
<br />
ん？動的SQLを使うと<code>INTO</code>句が省略できるのか？とか思って以下のようにやってみましたが、<br />
<br />
<blockquote><code><pre>EXEC SQL BEGIN DECLARE SECTION;
    ...
    const char *sfu_stmt 
     = "SELECT TEST_ID FROM T_TEST WHERE TEST_ID > ? FOR UPDATE;";
    ...
EXEC SQL END DECLARE SECTION;
...
EXEC SQL
    BEGIN;

EXEC SQL
    PREPARE test_query FROM :sfu_stmt;

EXEC SQL
    EXECUTE test_query USING 0;

EXEC SQL
    DEALLOCATE PREPARE test_query;
...
EXEC SQL
    COMMIT WORK;
...</pre></code></blockquote><br />
<br />
同じように<code>SQLCODE</code>が<code>-202</code>、<code>SQLSATTE</code>が<code>07002</code>なエラーを吐きました。この場合も<code>INTO</code>句は要るようで、<br />
<br />
<blockquote><code><pre>EXEC SQL BEGIN DECLARE SECTION;
    ...
    const char *sfu_stmt 
     = "SELECT TEST_ID FROM T_TEST WHERE TEST_ID > ? FOR UPDATE;";
    ...
EXEC SQL END DECLARE SECTION;
...
EXEC SQL
    BEGIN;

EXEC SQL
    PREPARE test_query FROM :sfu_stmt;

EXEC SQL ALLOCATE DESCRIPTOR test_desc;

EXEC SQL
    EXECUTE test_query 
     INTO DESCRIPTOR test_desc USING 0;

EXEC SQL DEALLOCATE DESCRIPTOR test_desc;

EXEC SQL
    DEALLOCATE PREPARE test_query;
...
EXEC SQL
    COMMIT WORK;
...</pre></code></blockquote><br />
<br />
とすると特にエラーも吐かず実行できました。ちなみに、動的SQLじゃない場合と同様にどちらも正常に意図した通りに動いてはいます。でも、なんだか「<code>INTO</code>句や<code>USING</code>句は書かなくて良い場合は書かなくてよい。」と言われているようでなんだか「赤く塗られたところは赤いです。」とか「500円のものは500円です。」と同じような感覚があり、そりゃそうだろうと言いたくなるような仕様ではあります。<br />
<br />
後、最新の<a href="http://www.postgresql.org/docs/9.0/interactive/index.html" 
target="_blank">PostgreSQL 9.0.2 Documentation</a>でもそうなんですが、ずっと、<br />
<br />
<blockquote cite="http://www.postgresql.org/docs/9.0/interactive/ecpg-dynamic.html" title="PostgreSQL 9.0.2 Documentation(32.7. Dynamic SQL)"><cite>引用:<a href="http://www.postgresql.org/docs/9.0/interactive/ecpg-dynamic.html" target="_blank">PostgreSQL 9.0.2 Documentation(32.7. Dynamic SQL)</a></cite><br /><br />

<code><pre>EXEC SQL EXECUTE mystmt INTO v1, v2, v3 USING 37;</pre></code></blockquote><br />
<br />
と書かれていますが、<code>:v1, :v2, :v3</code>と書かないと動作しないはず。このあたりからして<a href="http://www.postgresql.org/docs/8.4/interactive/ecpg.html" target="_blank">ECPG</a>ってあんまり使われてないんでしょうね。<a name="more"></a></p>]]></description>  
      <author>*生保単独*</author> 
    </item>  
    <item> 
      <title>Phreebird Suite 1.02お試し</title>  
      <link>http://pottan.blog.so-net.ne.jp/2010-11-17-1</link>  
      <category>未分類</category>  
      <pubDate>Wed, 17 Nov 2010 19:52:56 +0900</pubDate>  
      <guid isPermaLink="false">http://pottan.blog.so-net.ne.jp/2010-11-17-1</guid>  
      <description><![CDATA[<p>まだまだデモレベルな感じですが、<a href="http://en.wikipedia.org/wiki/Dan_Kaminsky" target="_blank">Dan Kaminsky</a>氏ご提供の<code>Phreebird Suite 1.02</code>の<code>phreebird</code>をお試し程度に使ってみる。大雑把にいえば、<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=DNSSEC&ic=utf8" class="affiliate-link" target="_blank">DNSSEC</a>未対応のDNSサーバーのレコードに署名を付けてくれるプロキシーのようです。<br />
<br />
モノは、<br />
<br />
<a href="http://s3.amazonaws.com/dmk/phreebird_suite_1.02.tar.gz" target="_blank">http://s3.amazonaws.com/dmk/phreebird_suite_1.02.tar.gz</a><br />
<br />
あたりにあるようです。後、プレゼンらしきものが、<br />
<br />
<a href="http://www.slideshare.net/dakami/phreebird-suite-10-introducing-the-domain-key-infrastructure" target="_blank">http://www.slideshare.net/dakami/phreebird-suite-10-introducing-the-domain-key-infrastructure</a><br />
<br />
なんかにあります。<br />
<br />
テスト環境は、某βテスト中のクラウド/VPSのCentOS5.5。まずは、<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB&ic=utf8" class="affiliate-link" target="_blank">インストール</a>。取り敢えず、取得と展開<br />
<br />
<blockquote><code><pre>$ wget \
    <a href="http://s3.amazonaws.com/dmk/phreebird_suite_1.02.tar.gz" target="_blank">http://s3.amazonaws.com/dmk/phreebird_suite_1.02.tar.gz</a>
$ tar xpvzf  phreebird_suite_1.02.tar.gz
$ cd phreebird_suite_1.02</pre></code></blockquote><br />
<br />
まずは、依存するライブラリとかのインストール<br />
<br />
<blockquote><code><pre>$ su
# sh depbuild.sh
# exit
$</pre></code></blockquote><br />
<br />
うまくいかなければ、<code>deps</code><a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA&ic=utf8" class="affiliate-link" target="_blank">ディレクトリ</a>に<code>cd</code>してアーカイブ展開して<code>./configure && make && make install</code>とか各々のドキュメントの指示に従う等してインストールします。<br />
<br />
そして本体のインストール。<br />
<br />
<blockquote><code><pre>$ su
# make && make install</pre></code></blockquote><br />
<br />
後は、<code>ldconfig(8)</code>を実行しておきます。<br />
<br />
<blockquote><code><pre># cat > /etc/ld.so.conf.d/phreebird.conf
/usr/local/lib
# ldconfig</pre></code></blockquote><br />
<br />
で、使い方。<br />
<br />
<blockquote><code><pre># phreebird -?</pre></code></blockquote><br />
<br />
とすると簡単なヘルプが出ます。ZSKを作成します。<br />
<br />
<blockquote><code><pre># phreebird -g</pre></code></blockquote><br />
<br />
とするとカレントディレクトリに<code>dns.key</code>という名前で秘密鍵が出来ます。<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0&ic=utf8" class="affiliate-link" target="_blank">アルゴリズム</a>はRSASHA1_NSEC3。できるモノは<code>ldns-keygen(8)</code>や<code>dnssec-keygen(8)</code>で作られるモノと同じなので、他のアルゴリズムを使いたい場合、そっちで作っても構わないのですが、<code>Private-key-format</code>が<code>v1.3</code>なモノは使えないようなので、イマドキの<code>dnssec-keygen(8)</code>なんぞで作る場合は<code>-C</code>オプションを付ける必要があるようです。<br />
<br />
後は、適当なコンテンツDNSサーバ(Authoritative <a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=Server&ic=utf8" class="affiliate-link" target="_blank">Server</a>)を指定して起動します。以下は、適当なコンテンツDNSサーバのIP<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9&ic=utf8" class="affiliate-link" target="_blank">アドレス</a>が192.0.2.2だった場合。<br />
<br />
<blockquote><code><pre># phreebird -b 192.0.2.2:53</pre></code></blockquote><br />
<br />
<code>-b</code>を指定しなければ、ローカルの50053に向くようです。<br />
<br />
後は、<code>dig(1)</code>とかで、動作確認。<br />
<br />
<blockquote><code><pre>$ dig +dnssec +multiline @127.0.0.1 example.jp. soa</pre></code></blockquote><br />
<br />
キャッシュDNSサーバ(Recursive Server)といいますかフルリゾルバに向けてやると漏れなく署名付けてくれたりします。すでに付いているものは署名し直されることになります。<br />
ちなみに、rootのhint <a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=file&ic=utf8" class="affiliate-link" target="_blank">file</a>が設定されていないコンテンツDNSサーバー、たとえば、<br />
<br />
<blockquote><code><pre>zone "." {
    <a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=type&ic=utf8" class="affiliate-link" target="_blank">type</a> hint;
    file "/dev/null";
};</pre></code></blockquote><br />
<br />
になっているものや、<code>zone "."</code>がないコンテンツDNSサーバー<sup><small>(<a href="#2010111701_1">*1</a>)</small></sup>に向けてやって、<br />
<br />
<blockquote><code><pre>$ dig +dnssec @127.0.0.1 . ns</pre></code></blockquote><br />
<br />
とかすると、Segmentation faultで落ちます。<br />
<br />
<hr /><br />
<br />
<a name="2010111701_1" href="#2010111701_1">*1</a>: コンテンツDNSサーバーって普通そうだとは思いますけど。<a name="more"></a></p>]]></description>  
      <author>*生保単独*</author> 
    </item>  
    <item> 
      <title>cron(8)でZSKを作る件</title>  
      <link>http://pottan.blog.so-net.ne.jp/2010-11-17</link>  
      <category>未分類</category>  
      <pubDate>Wed, 17 Nov 2010 18:10:04 +0900</pubDate>  
      <guid isPermaLink="false">http://pottan.blog.so-net.ne.jp/2010-11-17</guid>  
      <description><![CDATA[<p><blockquote cite="http://pottan.blog.so-net.ne.jp/2010-10-28" title="auto-dnssec maintain; を試してみる"><cite>引用:<a href="http://pottan.blog.so-net.ne.jp/2010-10-28">auto-dnssec maintain; を試してみる</a></cite><br /><br />
ま、取り敢えず、これで上位へのDSやDLVの登録なんかを除けば、鍵を作り足し忘れない限り、大丈夫そうな状態が作れる感じ。適切なoffset値で<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=dnssec&ic=utf8" class="affiliate-link" target="_blank">dnssec</a>-keygen(8)に<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=timing&ic=utf8" class="affiliate-link" target="_blank">timing</a> <a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=option&ic=utf8" class="affiliate-link" target="_blank">option</a>を指定してcron(8)あたりで呼べば、作成もなんとかなるのかも。</blockquote><br />
<br />
取り敢えず、こんな感じの<code>crontab(5)</code>を<code><a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=named&ic=utf8" class="affiliate-link" target="_blank">named</a>(8)</code>の実行ユーザーで作って試してみる。GNU <a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=date&ic=utf8" class="affiliate-link" target="_blank">date</a>が使える環境前提ですけど。<br />
<br />
<blockquote><code><pre>SHELL=/bin/sh
MAILTO=""
#
13 * * * * /usr/sbin/dnssec-keygen -r /dev/urandom -3 -a RSASHA256 \
 -b 1024 -i 1h \
 -A `/bin/date -u -d "1 <a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=hour&ic=utf8" class="affiliate-link" target="_blank">hour</a>" "+\%Y\%m\%d\%H\%M\%S"` \ 
 -I `/bin/date -u -d "2 <a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=hours&ic=utf8" class="affiliate-link" target="_blank">hours</a> 10 <a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=minutes&ic=utf8" class="affiliate-link" target="_blank">minutes</a>" "+\%Y\%m\%d\%H\%M\%S"` \ 
 -D `/bin/date -u -d "2 hours 20 minutes" "+\%Y\%m\%d\%H\%M\%S"` \ 
 -K /var/named/chroot/var/named/keys/example.jp \
 -n <a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=ZONE&ic=utf8" class="affiliate-link" target="_blank">ZONE</a> example.jp > /dev/null 2>&1 \
 && /usr/sbin/rndc loadkeys example.jp. > /dev/null 2>&1</pre></code></blockquote><br />
<br />
問題なさそうなら、<code>-i</code>の値を<code>1mo</code>ぐらいにして、<code>hour</code>を<code>month</code>にして、<code>10 mintutes</code>を<code>3 <a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=days&ic=utf8" class="affiliate-link" target="_blank">days</a></code>ぐらいにして実機でやってみようかな。<br />
<br />
<code>dnssec-keygen(8)</code>って<code>man</code>読むと、<code>-P</code>も<code>-A</code>も<code>default is "now"</code>って書いてますけど、<code>-A</code>だけ書いて<code>-P</code>付けなかったら<code>-P</code>には<code>-A</code>の値が採用されるんですね。おもいっきり<code>-i</code>の説明に書いてますけど見落としてた。<a name="more"></a></p>]]></description>  
      <author>*生保単独*</author> 
    </item>  
    <item> 
      <title>続・auto-dnssec maintain; を試してみる</title>  
      <link>http://pottan.blog.so-net.ne.jp/2010-11-08</link>  
      <category>未分類</category>  
      <pubDate>Mon, 08 Nov 2010 23:50:27 +0900</pubDate>  
      <guid isPermaLink="false">http://pottan.blog.so-net.ne.jp/2010-11-08</guid>  
      <description><![CDATA[<p>所有<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3&ic=utf8" class="affiliate-link" target="_blank">ドメイン</a>を使って、<code>auto-<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=dnssec&ic=utf8" class="affiliate-link" target="_blank">dnssec</a> maintain;</code>な設定で、暫くISC DLVして遊んでみているわけなんですが…。<br />
<br />
<blockquote cite="http://pottan.blog.so-net.ne.jp/2010-10-28" title="auto-dnssec maintain; を試してみる">引用:<cite><a href="http://pottan.blog.so-net.ne.jp/2010-10-28">auto-dnssec maintain; を試してみる</a></cite><br /><br />
これで、Kexample.jp.+008+12199とKexample.jp.+008+59595が署名に使用され、Wed Oct 27 22:45:55 JST 2010 を過ぎればKexample.jp.+008+58539がゾーンに公開され、Thu Oct 28 00:42:57 JST 2010を過ぎればKexample.jp.+008+59595が署名に使われなくなったりしてくれます。</blockquote><br />
<br />
PublishとDeleteに関して言及を避けているわけですが、まあ、単刀直入にいえばPublishとDeleteのお時間には勝手には何も起きなかったわけでして、まあ、そのあたりどうなのかなと暫く使ってみてまして…。<br />
<br />
<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89&ic=utf8" class="affiliate-link" target="_blank">レコード</a>の追加・削除・変更等のきっかけがあれば、そのときの<code>key-<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=directory&ic=utf8" class="affiliate-link" target="_blank">directory</a></code>等で指定された<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA&ic=utf8" class="affiliate-link" target="_blank">ディレクトリ</a>にある鍵に応じてPublishもDeleteもActivateもInactiveも行ってくれるんですが、結論から言いますと、<code>auto-dnssec maintain;</code>の設定の下で、<br />
<br />
<blockquote><code><pre># rndc loadkeys <a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=zone&ic=utf8" class="affiliate-link" target="_blank">zone</a> [<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=class&ic=utf8" class="affiliate-link" target="_blank">class</a> [view]]</pre></code></blockquote><br />
<br />
を実行してやると、その時点で<code>key-directory</code>に指定されたディレクトリにある鍵に応じた処理を時の経過と共に行ってくれるようです。"ようです"というのが微妙な表現ですが、例えば、Activateに関していえば、Activateに指定されている時間に署名をしてくれたりしてくれなかったりでなんだか微妙な感じです。ログに<br />
<br />
<blockquote><code><pre><a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=next&ic=utf8" class="affiliate-link" target="_blank">next</a> key event: 08-Nov-2010 23:10:48.521</pre></code></blockquote><br />
<br />
という感じで、次に起こる鍵の追加や削除や署名に関することが起こる日時が示されるのですが、<code>key-directory</code>等で指定されたディレクトリにある鍵のPublishとActivateとInactiveとDeleteに指定されている時間を時系列に並べて調べてみると、なぜだか、たまに飛ばされてしまうものがあるようです。傾向としてはActivateな時間とInactiveな時間にあって、PublishとDeleteな時間にはないようです。というか今のところPublishとDeleteな時間には体験してないです。大雑把にいえば、Activateな時間に署名が自動的に付くこともあれば付かないこともある、Inactiveな時間を過ぎた時間にDelete等のSOA RRのシリアルが変更されるようなイベントが入ってもInactiveな鍵で署名され続けたりすることがあります。何度か、同じ時間差条件でテストしてみましたけど、取り敢えず、傾向は読めないです。バグなんですかね？<br />
<br />
まあ、そんな感じなので、新しい鍵がActivateなお時間に特に署名されることがないまま古い鍵がDeleteされる時間が訪れ、そのタイミングで新しい鍵がActivateになったりとTTL的に微妙な状態が起こったりするときもあります。<br />
<br />
後、<br />
<br />
<blockquote><code><pre># rndc sign zone [class [view]]</pre></code></blockquote><br />
<br />
という、そのときの<code>key-directory</code>等に指定されたディレクトリにある鍵を読み込んでActivateな時間を過ぎている鍵で署名してくれる<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89&ic=utf8" class="affiliate-link" target="_blank">コマンド</a>もあるのですが、これもたまに微妙な動作します。既に Inactiveな鍵で署名を付けたりしてくれることがありました。「あれ？」と思って、短い有効期間の鍵でテストしているので、その時間の短さが影響しているのかもしれませんけど、<code>loadkeys</code>を含めて、今のところ手放しにおまかせするのは少々躊躇われるところかもしれません。何か<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E4%BD%BF%E3%81%84%E6%96%B9&ic=utf8" class="affiliate-link" target="_blank">使い方</a>を間違えているのかもしれませんけど。<a name="more"></a></p>]]></description>  
      <author>*生保単独*</author> 
    </item>  
    <item> 
      <title>auto-dnssec maintain; を試してみる</title>  
      <link>http://pottan.blog.so-net.ne.jp/2010-10-28</link>  
      <category>未分類</category>  
      <pubDate>Thu, 28 Oct 2010 14:38:21 +0900</pubDate>  
      <guid isPermaLink="false">http://pottan.blog.so-net.ne.jp/2010-10-28</guid>  
      <description><![CDATA[<p><a href="http://www.isc.org/software/bind" target="_blank">BIND-9.7.2-P2</a>で<code>auto-dnssec maintain;</code>を試したメモ。<br />
<br />
<a href="http://www.isc.org/files/arm97.pdf" target="_blank">ARM</a>を見る限り、<code>auto-dnssec</code>に指定できる値としては、<code>allow|maintain|create|off</code>があるみたいですけど、<code>allow</code>は、<code>dnssec-signzone(8)</code>の<code>-S</code>で使える<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=Smart&ic=utf8" class="affiliate-link" target="_blank">Smart</a> signingに毛が生えた程度な感じだし、完全放置プレイができそうな<code>create</code>は、まだ未実装みたいなので、取り敢えず、一番便利そうな<code>maintain</code>を試してみることに。大雑把にいえば、timing metadataを付けた鍵を用意しておけば、そのtimingで鍵をゾーンにpublishedにしたり、ゾーンでactiveにしたりInactiveにしたりrevokeにしたり、ゾーンからdeleteしたりしてくれるシロモノのようです。<br />
<br />
お試しの環境はCentOS 5.5で、ディレクトリ構成なんかはchrootな場合のデフォルトです。起動オプションは、<br />
<br />
<blockquote><pre><code># /usr/sbin/named -u named -t /var/named/chroot</code></pre></blockquote><br />
<br />
になります。用意するゾーンはテストなので<code>example.jp.</code>にして、鍵は、<code>/var/named/chroot/var/named/keys/example.jp</code>に置くことにして、ゾーンファイルは、<code>/var/named/chroot/var/named/dynamic</code>に置くことにします。まず、下準備。<br />
<br />
<blockquote><code><pre>$ su -
# cd /var/run/named
# ln -s /var/named/chroot/var/run/named/<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=session&ic=utf8" class="affiliate-link" target="_blank">session</a>.key .
# cd /var/named/chroot/var/named
# mkdir -m 770 dynamic
# chown -R named:named dynamic
# mkdir -m 770 keys
# chown -R named:named keys
# su - named --shell=/bin/bash
$ cd /var/named/chroot/var/named/keys
$ mkdir -m 770 example.jp
$ cd example.jp</pre></code></blockquote><br />
<br />
んで、鍵を作ります。お試しするだけなので、賞味期限は短めで。まずは、KSK。<br />
<br />
今すぐゾーンに公開され署名に使用され、1 日後署名に使用されなくなり、2 日後ゾーンから消えるものを。<br />
<br />
<blockquote><code><pre>$ /usr/sbin/dnssec-keygen -f KSK -r /dev/urandom -3 -a RSASHA256 \
 -b 2048 -I +86400 -D +172800 -n ZONE example.jp
Generating key pair........+++ .........................................................+++
Kexample.jp.+008+12199
$ cat Kexample.jp.+008+12199.key
; This is a key-signing key, keyid 12199, for example.jp.
; Created: 20101027123754 (Wed Oct 27 21:37:54 2010)
; Publish: 20101027123754 (Wed Oct 27 21:37:54 2010)
; Activate: 20101027123754 (Wed Oct 27 21:37:54 2010)
; Inactive: 20101028123754 (Thu Oct 28 21:37:54 2010)
; Delete: 20101029123754 (Fri Oct 29 21:37:54 2010)
example.jp. IN DNSKEY 257 3 8 ...
$</pre></code></blockquote><br />
<br />
次に、ZSK。2つ作ります。<br />
<br />
今すぐゾーンに公開され署名に使用され、3 時間後署名に使用されなくなり、4 時間後ゾーンから消えるものと、1 時間後ゾーンに公開され、2 時間後署名に使用され、5 時間後署名に使用されなくなり、6 時間後ゾーンから消えるものを。<br />
<br />
<blockquote><code><pre>$ /usr/sbin/dnssec-keygen -r /dev/urandom -3 -a RSASHA256 \
 -b 1024 -I +10800 -D +14400 -n ZONE example.jp
Generating key pair...++++++ ..............++++++
Kexample.jp.+008+59595
$ cat Kexample.jp.+008+59595.key
; This is a zone-signing key, keyid 59595, for example.jp.
; Created: 20101027124257 (Wed Oct 27 21:42:57 2010)
; Publish: 20101027124257 (Wed Oct 27 21:42:57 2010)
; Activate: 20101027124257 (Wed Oct 27 21:42:57 2010)
; Inactive: 20101027154257 (Thu Oct 28 00:42:57 2010)
; Delete: 20101027164257 (Thu Oct 28 01:42:57 2010)
example.jp. IN DNSKEY 256 3 8 ...
$ /usr/sbin/dnssec-keygen -r /dev/urandom -3 -a RSASHA256 \
 -b 1024 -P +3600 -A +7200 -I +18000 -D +21600 -n ZONE example.jp
Generating key pair..........++++++ ..............++++++
Kexample.jp.+008+58539
$ cat Kexample.jp.+008+58539.key
; This is a zone-signing key, keyid 58539, for example.jp.
; Created: 20101027124555 (Wed Oct 27 21:45:55 2010)
; Publish: 20101027134555 (Wed Oct 27 22:45:55 2010)
; Activate: 20101027144555 (Wed Oct 27 23:45:55 2010)
; Inactive: 20101027174555 (Thu Oct 28 02:45:55 2010)
; Delete: 20101027184555 (Thu Oct 28 03:45:55 2010)
example.jp. IN DNSKEY 256 3 8 ...
$</pre></code></blockquote><br />
<br />
ちなみに、metadataの<code>20101027124555</code>みたいな日時はUTCなもの、<code>Wed Oct 27 21:45:55 2010</code>みたいなのはJSTです。そして、テスト用に簡単な<code>example.jp.</code>ゾーンファイルを作成。<br />
<br />
<blockquote><code><pre>$ cd ../../dynamic
$ cat > example.jp.zone.signed
$ORIGIN example.jp.
$TTL 3600
@       IN      SOA     localhost.example.jp.  hostmaster.example.jp.    (
                                2010102701      ; <a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=Serial&ic=utf8" class="affiliate-link" target="_blank">Serial</a>
                                10800           ; Refresh
                                1200            ; Retry
                                604800          ; Expire
                                1200    )       ; Minimum TTL

                        IN      NS      localhost.example.jp.
                0       IN      NSEC3PARAM 1 0 10 1234ab
localhost               IN      A       127.0.0.1
$</pre></code></blockquote><br />
<br />
まあ、かなり適当です。<br />
<br />
次に、<code>named.conf(5)</code>の<code>options</code>か<code>view</code>に<br />
<br />
<blockquote><code><pre>dnssec-enable yes;</pre></code></blockquote><br />
<br />
を足して、<code>zone</code>を以下のように追加します。<br />
<br />
<blockquote><code><pre>zone "example.jp." {
	type master;
	<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=file&ic=utf8" class="affiliate-link" target="_blank">file</a> "dynamic/example.jp.zone.signed";
	key-<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=directory&ic=utf8" class="affiliate-link" target="_blank">directory</a> "/var/named/keys/example.jp";
	update-policy local;
	auto-dnssec maintain;
};</pre></code></blockquote><br />
<br />
尚、お試しならば<code>zone</code>に<code>dnssec-secure-to-insecure yes;</code>を足しておいた方が幸せかもしれません。ちなみに、<code>update-policy local;</code>ですが、名前からするとDynamic DNSなupdateをローカルに限定してくれそうですが、<a href="http://www.isc.org/files/arm97.pdf" target="_blank">ARM</a>によると、<br />
<br />
<blockquote><code><pre>update-policy { grant local-<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=ddns&ic=utf8" class="affiliate-link" target="_blank">ddns</a> zonesub any; };</pre></code></blockquote><br />
<br />
と完全に等価ですので、例えば、<br />
<br />
<blockquote><code><pre>view "world" {
        match-clients { any; };
        match-destinations { 外側の<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%95%E3%82%A7%E3%83%BC%E3%82%B9&ic=utf8" class="affiliate-link" target="_blank">インターフェース</a>のIPアドレス; };
        ...
};</pre></code></blockquote><br />
<br />
みたいな<code>view</code>に追加した場合、デフォルトのTSIG session keyを他のホストにコピーすればリモートからもupdateがかけられます。尚、デフォルトのTSIG session keyの場所や名前も変えられるようで、<code>options</code>に<br />
<br />
<blockquote><code><pre>session-keyfile "/var/run/named/session.key";
session-keyname "local-ddns";
session-keyalg "hmac-sha256";</pre></code></blockquote><br />
<br />
とか記述すればできます。ちなみに、上記はデフォルト値です。<br />
<br />
これで、準備ができたので、<code>reload</code>して<code>loadkeys</code>します<sup><small>(<a href="#2010110901_1">*1</a>)</small></sup>。<br />
<br />
<blockquote><code><pre># rndc reload
# rndc loadkeys example.jp.</pre></code></blockquote><br />
<br />
これで、Kexample.jp.+008+12199とKexample.jp.+008+59595が署名に使用され、Wed Oct 27 22:45:55 JST 2010 を過ぎればKexample.jp.+008+58539がゾーンに公開され、Thu Oct 28 00:42:57 JST 2010を過ぎればKexample.jp.+008+59595が署名に使われなくなったりしてくれます<sup><small>(<a href="#2010110901_2">*2</a>)</small></sup>。<br />
<br />
ゾーンへの RR の追加などは、<code>nsupdate(1)</code>で行います。ローカルから更新できる<code>view</code>内にあるのであれば、<br />
<br />
<blockquote><code><pre># nsupdate -l</pre></code></blockquote><br />
<br />
なんぞで、そうでなければ、<br />
<br />
<blockquote><code><pre># nsupdate -k /var/run/named/session.key</pre></code></blockquote><br />
<br />
とかして、<code><a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=server&ic=utf8" class="affiliate-link" target="_blank">server</a></code>を指定するなりすれば更新できます。別解としては、<br />
<br />
<blockquote><code><pre># rndc freeze example.jp.</pre></code></blockquote><br />
<br />
して、<code>/var/named/chroot/var/named/dynamic/example.jp.zone.signed</code>をエディタで編集し、SOA RRのシリアルを上げて、<br />
<br />
<blockquote><code><pre># rndc thaw example.jp.</pre></code></blockquote><br />
<br />
する手もあります。ちなみに、鍵に timing metadata が付いていて、ちゃんと<code>key-directory</code>が指定されていれば、<code>auto-dnssec off;</code>でも<code>nsupdate(1)</code>等で更新すれば適切に署名してくれます。<br />
<br />
ただ、<code>key-directory</code>を指定せずデフォルト以外の場所に鍵を置いていたりすると、署名の有効期限が近づいたときに、<code>named(8)</code>が勝手に署名の更新をかけようとして鍵が見つからないので、署名の除去をしたりするのはなんだかなといった感じ。<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=DNSSEC&ic=utf8" class="affiliate-link" target="_blank">DNSSEC</a>なゾーンはDynamic DNSが使えるように設定しとかないと面倒な状態になるみたいですね。<code>auto-dnssec off;</code>なら署名の期限切れなんて自己責任にしてくれてもいいんじゃないかなと。設定であるのかな。取り敢えず、<code>rndc freeze</code>しとけば、そういう更新は起こりませんけど、なんか使い方が違う気がしますし。<br />
<br />
ま、取り敢えず、これで上位へのDSやDLVの登録なんかを除けば、鍵を作り足し忘れない限り、大丈夫そうな状態が作れる感じ。適切なoffset値で<code>dnssec-keygen(8)</code>にtiming optionを指定して<code>cron(8)</code>あたりで呼べば、作成もなんとかなるのかも。<br />
<br />
<hr /><br />
<br />
<a name="2010110901_1" href="#2010110901_1">*1</a>: <code>rndc loadkeys</code>に関する記述を追加(Nov 09, 2010)。まあ、reloadしてるんで問題ないんですけど、鍵追加したときには<code>loadkeys</code>しようねという意味で。<br />
<a name="2010110901_2" href="#2010110901_2">*2</a>: <a href="http://pottan.blog.so-net.ne.jp/2010-11-08" target="_blank">うまく動作しない場合もある</a>みたいです(Nov 09, 2010)。<a name="more"></a></p>]]></description>  
      <author>*生保単独*</author> 
    </item>  
    <item> 
      <title>YAMAHAのルータとDO bit</title>  
      <link>http://pottan.blog.so-net.ne.jp/2010-10-18-1</link>  
      <category>未分類</category>  
      <pubDate>Mon, 18 Oct 2010 11:46:27 +0900</pubDate>  
      <guid isPermaLink="false">http://pottan.blog.so-net.ne.jp/2010-10-18-1</guid>  
      <description><![CDATA[<p>RTX1200とRTX1100とRTX1000ぐらいしか試してませんけど、こいつらににDO bit立てた名前解決をお願いすると必要な応答すら返さないのはうちだけですかね。ファームが古い？<a name="more"></a></p>]]></description>  
      <author>*生保単独*</author> 
    </item>  
    <item> 
      <title>.jp DNSSEC</title>  
      <link>http://pottan.blog.so-net.ne.jp/2010-10-18</link>  
      <category>未分類</category>  
      <pubDate>Mon, 18 Oct 2010 02:09:35 +0900</pubDate>  
      <guid isPermaLink="false">http://pottan.blog.so-net.ne.jp/2010-10-18</guid>  
      <description><![CDATA[<p><cite><a href="http://jprs.jp/info/notice/20101015-keyceremony.html" target="_blank">.jp DNSSECキーセレモニーの実施について</a></cite><br />
<br />
<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=10%E6%9C%88&ic=utf8" class="affiliate-link" target="_blank">10月</a>17日(日)の予定みたいですけど、今のところルートゾーンにjp.のDS RRは見当たらず。もうちーとかかるんですかね。後は、今後の<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%83%97%E3%83%AD%E3%83%90%E3%82%A4%E3%83%80&ic=utf8" class="affiliate-link" target="_blank">プロバイダ</a>側のセカンダリなんぞの対応が気になるところ。そのあたりはやっぱり2011年1月16日以降なんかな。<a name="more"></a></p>]]></description>  
      <author>*生保単独*</author> 
    </item>  
    <item> 
      <title>復活改善？</title>  
      <link>http://pottan.blog.so-net.ne.jp/2010-10-13</link>  
      <category>未分類</category>  
      <pubDate>Wed, 13 Oct 2010 15:09:28 +0900</pubDate>  
      <guid isPermaLink="false">http://pottan.blog.so-net.ne.jp/2010-10-13</guid>  
      <description><![CDATA[<p><cite><a href="http://pottan.blog.so-net.ne.jp/2010-10-09">緊急メンテナンスとなりましたか</a></cite><br />
<br />
<a href="http://web.arena.ne.jp/cgi-bin/suitepro/v3/news.cgi?target=20101008182616" target="_blank">11日のメンテ</a>が終了して改善…といいますか使い物にならないレベルからなんとか我慢して使えるレベルにはなったという感じでしょうか。たぶん、根の深い問題なのでしょうかね。<br />
<br />
VPSの<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF&ic=utf8" class="affiliate-link" target="_blank">ディスク</a>の<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%83%99%E3%83%B3%E3%83%81%E3%83%9E%E3%83%BC%E3%82%AF&ic=utf8" class="affiliate-link" target="_blank">ベンチマーク</a>って意味があるのかどうかわからないですけど、<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=bonnie&ic=utf8" class="affiliate-link" target="_blank">bonnie</a>++なんぞで計る限り、1000円未満で借りることができる他社の方がだいぶ速い感じ。ということは今のウリは回線の安定性とかディスクの容量とかでしょうかね。ちょっと価格差考えると悲しいところ。まあ、頑張ってください、中の方々。<a name="more"></a></p>]]></description>  
      <author>*生保単独*</author> 
    </item>  
    <item> 
      <title>緊急メンテナンスとなりましたか</title>  
      <link>http://pottan.blog.so-net.ne.jp/2010-10-09</link>  
      <category>未分類</category>  
      <pubDate>Sat, 09 Oct 2010 06:45:11 +0900</pubDate>  
      <guid isPermaLink="false">http://pottan.blog.so-net.ne.jp/2010-10-09</guid>  
      <description><![CDATA[<p><cite><a href="http://pottan.blog.so-net.ne.jp/2010-10-07">WebARENA SuitePRO V3 をしばし使ってみて</a></cite><br />
<br />
<a href="http://web.arena.ne.jp/cgi-bin/suitepro/v3/news.cgi?target=20101001094236" target="_blank">7日に設備増強の緊急メンテナンス</a>やったけど、その結果、<a href="http://web.arena.ne.jp/cgi-bin/suitepro/v3/news.cgi?target=20101008182616" target="_blank">一部仮想サーバーで著しいパフォーマンス低下</a>を招いて、<a href="http://web.arena.ne.jp/cgi-bin/suitepro/v3/news.cgi?target=20101007191147" target="_blank">11日に緊急メンテナンス</a>になってしまった。しっかり、一部に該当してしまってるし。<br />
<br />
なんか、空の<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA&ic=utf8" class="affiliate-link" target="_blank">ディレクトリ</a>で ls とかやっても30秒ぐらい応答が戻ってこなかったり、<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB&ic=utf8" class="affiliate-link" target="_blank">ファイル</a>開こうとするとそのぐらい待たされたりで、結構厳しい状況。<br />
<br />
でも、この状況だと、担当者か機器の納品業者かわかりませんけど、大変な状況なんだろうなぁ。<a name="more"></a></p>]]></description>  
      <author>*生保単独*</author> 
    </item>  
    <item> 
      <title>WebARENA SuitePRO V3 をしばし使ってみて</title>  
      <link>http://pottan.blog.so-net.ne.jp/2010-10-07</link>  
      <category>未分類</category>  
      <pubDate>Thu, 07 Oct 2010 08:14:26 +0900</pubDate>  
      <guid isPermaLink="false">http://pottan.blog.so-net.ne.jp/2010-10-07</guid>  
      <description><![CDATA[<p><cite><a href="http://pottan.blog.so-net.ne.jp/2010-08-23">WebARENA PRO V3</a></cite><br />
<br />
V2 から乗り換えて2ヶ月ほど経過しましたけど、<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF&ic=utf8" class="affiliate-link" target="_blank">ディスク</a> I/O が極端に遅いときが多々あるのは私んとこだけですかね？<a name="more"></a></p>]]></description>  
      <author>*生保単独*</author> 
    </item>  
    <item> 
      <title>第八回吟道祭</title>  
      <link>http://pottan.blog.so-net.ne.jp/2010-09-22</link>  
      <category>未分類</category>  
      <pubDate>Wed, 22 Sep 2010 02:18:22 +0900</pubDate>  
      <guid isPermaLink="false">http://pottan.blog.so-net.ne.jp/2010-09-22</guid>  
      <description><![CDATA[<p><div align="center"><a href="http://pottan.blog.so-net.ne.jp/_images/blog/_8b1/seiho_tandoku/gindosai8_640.jpg" target="_blank"><img src="http://pottan.blog.so-net.ne.jp/_images/blog/_8b1/seiho_tandoku/m_gindosai8_640.jpg" width="252" height="350" border="0" align="" alt="第八回吟道祭チラシ" /></a></div><br />
<br />
『吟道光世流志清吟社 第八回吟道祭<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E5%A4%A7%E9%98%AA&ic=utf8" class="affiliate-link" target="_blank">大阪</a>』のご案内。 <br />
<br />
とき: 2010年11月23日(火・祝) 午前9時30分開演<br />
ところ: 大阪国際交流センター「大ホール」<br />
〒543-0001 大阪市<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E5%A4%A9%E7%8E%8B%E5%AF%BA&ic=utf8" class="affiliate-link" target="_blank">天王寺</a>区上本町8-2-6<br />
<br />
入場は無料だそうです。<a name="more"></a></p>]]></description>  
      <author>*生保単独*</author> 
    </item>  
    <item> 
      <title>そんなとこに個性要らんから</title>  
      <link>http://pottan.blog.so-net.ne.jp/2010-08-24</link>  
      <category>未分類</category>  
      <pubDate>Tue, 24 Aug 2010 03:26:32 +0900</pubDate>  
      <guid isPermaLink="false">http://pottan.blog.so-net.ne.jp/2010-08-24</guid>  
      <description><![CDATA[<p><a href="http://rpmrepo.org/RPMforge" target="_blank">RPMforge</a>から取れる<a href="http://packages.sw.be/thttpd/thttpd-2.25b-4.el5.rf.x86_64.rpm" target="_blank">thttpd-2.25b-4.el5.rf.x86_64.rpm</a>ですけど、indexing出来ないようにしてあるんですね。<br />
<br />
うーん、デフォがindexingアリなんだから、別にそんな変更加えなくてもいいような。リコンパイルせんと変更できないし。ちなみに、<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=spec&ic=utf8" class="affiliate-link" target="_blank">spec</a><a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB&ic=utf8" class="affiliate-link" target="_blank">ファイル</a>のdescription見ればわかりますが、<a href="http://packages.sw.be/thttpd/thttpd-2.25b-4.rf.svn3053.src.rpm" target="_blank">thttpd-2.25b-4.rf.svn3053.src.rpm</a><a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E5%8F%96%E3%82%8A%E5%AF%84%E3%81%9B&ic=utf8" class="affiliate-link" target="_blank">取り寄せ</a>て、<a href="http://match.seesaa.jp/afr.pl?hid=25&sid=seiho_tandoku:000212522359&k=%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB&ic=utf8" class="affiliate-link" target="_blank">インストール</a>して、<br />
<br />
<blockquote><pre><code># rpmbuild -bb thttpd.spec --with indexes</code></pre></blockquote><br />
とかすれば、indexingできるrpmが出来ます。<a name="more"></a></p>]]></description>  
      <author>*生保単独*</author> 
    </item> 
  </channel> 
</rss>

