ネームサーバ独立記念日

開発:さてさて、DNSサーバ用のVMはどうしますかね。

基盤:まず当社標準アマゾンセールは、月$5プランと思います。最安の$3.5プランは危険です。Azure での長期運用の経験では、ストレージ30GBはちょっときつかった。ですので20GBは不安。またAzureで0.5GBメモリのVMを試したことがありますが、Ubuntu18が重くてまともに動きませんでした。あれはAzureのUbuntuパックが無駄に重いためという可能性もありますが。いずれにしても、月$1.5のためにこのようなリスクを負うべきでないと思います。

開発:うーむこの価格表。いわゆる単体のスケールアップは、複数台でのスケールアウトに比べて割高という感じなんですね。

経理:月$40プランでは 2 CPU、8GBメモリ、160GB ストレージ、転送 5TBですが、同じ費用で$5プランを8つ作ると、合わせて 8 CPU、8GBメモリ、320GBストレージ、8TB転送、ということになるように読めます。

基盤:しかもその台数の固定IPアドレスをゲットというお得さ。やや不思議な価格体系かなと思いますが、まあ普通のユーザは複数のマシンを管理するのが面倒と思うかも知れません。

開発:同じゾーンにあるVM間だと通信速そうだから、NFSとかSMBでサーバ間のディスクを連結すればけっこういい感じに使えるかも知れませんね。遅くてもよければだぶついている各種のクラウドドライブをマウントするとか。アマゾンドライブが高速に使えるかなとか。

基盤:アマゾンセールでの既製インスタンスの選択肢は、Bitnami WordPress版か、OSのみUbuntu 18.04 LTS かと思います。

基盤:このWordPress版は Ubuntu 16.04 LTS です。Linuxカーネルは4.4。

基盤:一方、Ubuntu 18.04 LTS はLinuxカーネル 4.15。

基盤:ハードウェア的には全く同じものだと思いますし、実際いつもやっている DeleGate のビルドベンチマークでは全く同じ性能でした。ですが、不思議なのは、openssl rand による乱数生成の性能が4倍近く違う。18.04 のほうが遅いのです。ほぼCPU時間なので、要するに OpenSSLの版の違いということかなとは思います。

基盤:今回作成するサーバは基本、DNS専用サーバですので、いずれにしてもこれらは無視できるかなと思います。まあ、もし問題があればサクッと移転すれば良いことでもあります。

基盤:と、いうことで、先程作成した delegate.org 用のサーバの中身をごっそり18.04のほうへ転送することにします。とその前に、adduser して sudoer に追加… おっと、何か間違って書いてしまったらしく、sudo が出来なくなってしまいました (^-^; こいつは捨てて新しくつくりましょう。

基盤:せっかくなので、いくつか作って面白いIPアドレスのやつを選びます。

開発:おっと、アタマが 3. というのが取れました。これにしましょう。

基盤:では他のは削除。ぽち、ぽち、ぽちっと。

基盤:ああ、sudoer の先頭に、編集するなら visudo を使えとありますね。反省。sudo visudo… なんでデフォルトのエディタが vi じゃないんですかねムカつく。で、/etc/localtime を Asia/Tokyo にして。~/.ssh を作って delegate.org の鍵をコピペ。ssh delegate.org。準備できました。では、sshで tar cf したのを tar xfv。

開発:これ、どのくらい掛かりますかね。同じAWSの東京内だから速いかな。

基盤:速度測るの忘れましたね。これ終わったら測りましょう。あー、テスト用に作った1GBというファイルをコピーし始めた(笑)

開発:でも10秒かからなかったですかね。100MB/s 出てそう。

基盤:しかしこの、ブラウザを端末にしてSSHでログインって、めっちゃ便利ですね。EC2でもできるはずなんですが、何か準備が必要なのか、つながらなかった。

開発:というか、この端末エミュレータアプリだけ欲しいです。これだと、普段はターミナルとして使ってて、必要に応じて、エスケープシーケンスでマルチメディアの表示をブラウザにさせるとかできそうな。

基盤:終了しました。20GBの60万ファイルの転送を12分で終了。scp で測ると… ぴったり50MB/s ですね。リミッターかかってるのかな?

基盤:では dgbind を root のものにして chmod 6755。で sh httpd。そして telnet localhost 80。OKです。

開発:なんだかんだ、反射的に telnet しちゃうけど、普通に存在するのがうれしいですね。

基盤:で crontab -e。エディタはviと決まっております。 @reboot でサーバ起動スクリプト呼び出し。で、sudo reboot。

開発:どうもアマゾンはリブートが遅いですね。特に作ってから最初のリブート?定期的にはsyncしてないとか?

基盤:SSH端末の再接続がブラウザの Reload だってのが面白いですね。 あーでもログインユーザ名を代えられないのかなあ?これがお仕着せの悲しさというものか。Reload。あ、繋がりました。サーバ動作確認OK。

開発:移転作業に35分でした。

社長:ちょっと休憩しましょう。

* * *

基盤:いちおう apt update してみます。おー、249 packages can be upgraded。どうしますかね。セキュリティ関係多数。そういや、ログインした時にこういうの出てました。

256 packages can be updated.
152 updates are security updates.

開発:upgrade しときましょう。

基盤:なんか聞いてきました。

開発:よしなに。

基盤:しかし、こういうのってエスケープシーケンスで作ってるんでしょうね。なんというかいじらしいというか。

開発:昔の端末エミュレータにはテクトロモードといのがありました。

社長:今どきだとHTMLをエスケープシーケンスで表示できたりするんですかね。

基盤:なんか聞いてきました。・・・ なるほど、この辺がAWS用のローカライズなのかな。

社長:以前Azureでこういうのを upgradeしてしまって二度とつながらなくなったという悲劇をを経験したような。

開発:実運用し始めてからの upgrade はスナップショットを撮ってからということでしょね。

基盤:これはそのままにしといてくださいよと・・・

開発:すっかりさわやかになりました。

社長:ちょっと休憩しましょう。

* * *

基盤:まずXSOで its-more.com のネームサーバをアマゾンセールに向けます。えーと、ネームサーバー設定。この業界で「サーバー」ってのはいかがなものかと。その他のネームサーバーを使う…

開発:その前に一応、DNSサーバの設定を…

基盤:bind とかですか?

社長:とりあえず DeleGate で。

基盤:$DGROOT/etc/hosts … なんか10年以上前のホスト名がぞろぞろとありますね。dig @localhost its-more.com。OK。では、XSOにて「確認」!あれ?

基盤:「失敗しました」。何をどう失敗したかか説明は無し。

開発:ファイアーウォールでDNSを通してないでは。

基盤:確かに。@localhost だけで試験してました。では、ネットワーキングのファイアーウォールににDNSを追加して… うーん、この「作成」ってのがイマイチですね。ボタン形状にしといて欲しい。ぽちっと。

基盤:はい追加されました。外部から dig 3.x.x.x. its-more.com。OKです。では XSO にて再度OK!

開発:ふむ。DNSサーバ側のログに何か出てますか?

基盤:何も。

開発:それ、ネームサーバがXSOのに設定されてるからかな?それを解除してみては。

基盤:では、一旦初期設定に戻し。確認そしてOK!

開発:何を失敗してるんですかね。53/tcp でも見てるのかな?

社長:NSO ではそういうことはなかったですけどね。ちょっとNSOのドメインでやってみますか。

開発:ではこのとっておきの networksolutions.work で。

基盤:これでどうかな?ポチッと。

開発:あそうか、NSはホスト名で指定しないといけないんだっけ(笑)。どこにしましょうかね?

社長:うーん、やはり長期に抑えてる its-more.jp か、delegate.org ですかね。

基盤:では、ns.its-more.jp という名前で XSOに、ns.delegate.org 名前で NSO に登録します。これ、ホスト名違ってIPアドレス同じだったら怒られますかね?

開発:面白いからやってみましょう。

社長:というか、逆引き出来ないといけないんじゃなかったでしたっけ?

基盤:いや、何が地獄ってこのXSOの管理コンソールの重さが辛いです。んー、なんかつながらない。

開発:気配を察知されましたかね。

基盤:あ、繋がりました。このコンソール、ドメイン名が100件超えたら地獄ですかね。さて、このこはレンタルサーバ利用者様向けのDNSサーバなんだな。おもてなしの心でお願いします。ns.its-more.jp の A レコードを登録!

開発:うって変わって親切ですね(笑)

基盤:これ、XSOの他のネームサーバを使うというところでXSOを指定したら何が起きますかね。混ぜてみますか。ぽちっと。

開発:めでたし。あ、ネームサーバ変更完了メールも来てますね。

基盤:では早速、test1 とか hosts に追加して、dig test1.its-more.com。

開発:めでたし。

基盤:dig test1.its-more.com NS はまだ通らないのが面白いです。この辺、コンシステンシーってものが無くて良いものなのか。ところで、キャッチオール的なのはDeleGateのDNSではどう書くんでしたっけ。

社長:確か hosts に *.its-more.com みたいに。

基盤:・・・確認。でも、*.its-more.com だけだと its-more.com が通らないですね。

社長:まあ、本運用は bind とかでやればいいんじゃないですか。

基盤:それにしてももし中継サーバに、そういう名前は存在しない、なんてキャッシュを付けたら悪用されてパンクしますね。

社長:DNSの悪用とか色々ありそうだし、あんまり関わりたくない世界かもです。

基盤:あ、hosts に 1.2.3.4 * って書いとけば、デフォルトが 1.2.3.4 になりますね。当面はこれで良さそうです。

社長:それでは、今後我社のネームサーバはこれでいきましょう。

— 2020-0628 SatoxITS

DNSデータ更新伝播遅延

基盤:delegate9.org 引越し後のサーバの動作も問題無いようですので、delegate.org もこのアマゾンLightsailに向けたいと思います。

開発:完全移転しましょう。アデュー Azure。

基盤:それで、delegate.org は NSO の DNS サーバにあるのですが、大変こざっぱりとしたUIになっています。もちろん、コピペもできるので設定も簡単。ただちょっと困るのが、TTLが7200秒になっていることです。

基盤:この点、XSOはTTL 300秒がデフォなので、まあいかにもらしい感じはします。実際、昨日のdelegate9.orgの変更でも、数分内に各所観測地点に反映されたことを確認しました。

開発:今回の更新には仕方ないですが、次回以降のために短くして置きたいですね。

基盤:ところが、TTLを短くしようとすると、3600秒以上にしろと怒られてしまいました。

開発:そのへんは社会に対して誠実と言うべきか、事なかれ主義というか、頑迷というべきか、ただの時代錯誤というべきか、ですね。今のHTTPの世界を考えれば、DNS程度データのTTLなんてデフォルト10秒で楽勝にも思うのですが。

基盤:ライブドアの1円株式を思い出します。

開発:まあDNSのTTLって、データ転送の負荷を減らすためなのか、名前世界の安定を求めるためなのか、イマイチ位置づけがわからないんですが。

社長:これって、HTTPのリクエストと同じように「キャッシュを使わない」でリロードするオプションがあればいいのにと25年前から思っているのですが。

開発:データアップロードのメカニズムを別にすれば、ダウンロード側には特殊なメカニズムは要らないはずですね。というか、途中の配達経路はHTTPにして、サーバエンドとクライアントのエンドだけDNSのプロトコルにするというのでも良いかもしれません。

基盤:ただ今回観察して気づいたのですが、dig で見ているとTTLがビシバシ不思議な値に変化するんです。10秒間隔でdigした結果がこれです。

基盤:これはどういう意味なのかなと思ったのですが、どうも中間のレゾルバが設定している値のように思われます。あるいは dig 自身のキャッシュかも知れませんが。

AWS$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
nameserver 172.26.0.2
search ap-northeast-1.compute.internal

開発:しかしなかなか更新後のほうに落ち着きませんね。

社長:これって、オリジナルのタイムスタンプを見れば、古いデータを復活させることは無いと思うんですが、DNSってそうなって無いんでしたっけね?

基盤:ネームサーバが多重化されていることの副作用かとは思いますが。そもそもの発信地である2つのDNSサーバがちゃんと同期していたのかとか。確認していませんが。

基盤:例えば、ns58.worldnic.com を直接サーバ指名して dig を続けた結果がこんな有様なんです。

開発:あー、これはもう末期的ですね。やはり自社のDNSサーバをメインにしましょう。この人達は最後の最後のリザーブで結構。

社長:いやあ、自分とこでDNSサーバを維持し続けるよりは安心できていいかなって、移行したんですが。当時、NSOがベリサインに買われた頃でしたが、すごいプッシュにも負けて。

基盤:一方我社MacMiniですが、こういうところから始まりまして、

基盤:ただいまこういう状況です。

開発:あと10分待つのだぞってところですね。でも、一瞬値が古くなってるのはなんでしょうね?これも冗長DNSのせいかな。

社長:これ、DNSのキャッシュを強制的にサラにする方法無いんですかね。まあ、Mac とルータをリブートすればよいのでしょうけど。

基盤:と噂をしていたのが聞こえたのか、ついに我社にも新アドレスが到達しました。

開発:お約束どおりの7200秒てとことですね。

基盤:亡霊が最後のあがきをしているようではあります。

基盤:ついに亡霊が消えたかなと思ったら、もうひとつ亡霊が (^-^;

基盤:さすがにこれで名前の問題は解決ですかね。

開発:完全かつ不可逆的な感じですね。

基盤:delegate.org のほうも、まれに旧サーバに来ますが、ほぼ新サーバに切り替わりました。

社長:ではこの問題は集結ということで。さて、問題は iMac をどこにお迎えするかなのですが…

基盤:その件、現在の作業エリアを整理してからというのは色々大変ですので、この際に新しいエリアに引っ越すのが良いのでは、と思いました。

社長:うーん確かに。夏季作業用エリアを作るというのも手ですね…

— 2020-0627 SatoxITS

フェリカでドライブ

社長:昔、ソニーがアップルであった頃。

基盤:時間的な前後関係がおかしくないですかね。

開発:いや、子供心を思い返せば、今で言うアップルみたいなイメージの会社でした。

社長:それでさっき飲んで帰って郵便受けを覗いたら、S.O.N.Yブランドの非接触ICカードリーダがこっそり届いていたんですよJPで。おー来たかと思って開封したんですが、同梱のUSBケーブルが白いねじりっこで止めてあったんです。シラケました。

基盤:しかし2千円ちょっとのリーダにアップル的手触りを求められましても…

開発:しかしあのねじりっこて、実用性と価格は認めるとしても、なんでああ手触りが気持ち悪いんですかね。

社長:それなんですが、特にコンピュータ系の部品ではああいう、やわい鉄ですか?みたいな不思議な応答する金属を芯にして物を束ねるコード状のものが商品に入っていて、あれがとっても好きなんです。ねじりっこみたいに品のない高反発な反応とか、指にいらつくぺらぺらした感触ではない。低反発ウレタンみたいな感じのしっとりとしたあれです。一言で言えば、たしかにApple的な。

開発:アップルっていつからそういうイメージを打ち出すようになったんですかね。関サバですみたいな。

社長:きっとあの気持ちの良い針金は、探せばメーター何円とかで売っちゃってるんでしょう。業務用プチプチロールみたいな、子供の夢を破壊する話ではあります。