サーバ証明書更新 The SSL certificate will be distrusted in M70.

ChromeおよびブラウザコミュニティによるSymantecの証明書の順次警告、無効化問題だそうで、該当する証明書(うちで該当するのはもちろん格安なDV RapidSSL)持ってるからさっさと更新せい、というメールが証明書屋さんから何度も来ました。TLSAの更新が必要なのでそれなりにめんどかったですが、本サイトも含めて2サイトの証明書を更新いたしました。皆さんどうしているのか見ようとしたところ…
続きを読む

ntpd – PPS discipline まずは普通に較正 編

A/Dコンバータでも作ろうかと秋月でセンサーを覗いているとGPS受信機キット 1PPS出力付き 「みちびき」対応 [AE-GYSFDMAXB]なるGPSが2,200円、こっちに目を奪われました。

出力データ形式
NMEA0183V3.01準拠
電源電圧
DC5V(3.8V~12V)
入出力信号レベル
C-MOSロジック(3.3V)
UART通信速度
9600bps(デフォルト)、4800~115200bps
1PPS出力
精度±10ns C-MOSロジック(3.3V)レベル,パルス幅:100mS(アクティブLow)

いー感じです。 続きを読む

Unique Local IPv6 Unicast Addresses – ULA ユニーク ローカル IPv6 ユニキャスト アドレス

NURO光を導入した知人宅でNAT2段超えIPsecトンネルを作って遊んでいた際、HG8045QというONU(無効にできないルータ内蔵)にULAモードなる設定があり、そのお家ではULA無しに設定されましたが、そういえば大昔に自分でも付けたなと思い起こし、プレフィックス生成ツールがごろごろある中RFC4193 3.2.2. Sample Code for Pseudo-Random Global ID Algorithmのサンプル通りに手動で生成だけしてみます。
続きを読む

.tc .vg .gd 問題

登録/更新料金の猛烈な値上げがレジストリによって行われるという笑撃の事態に出会ったのが1年ほど前、影響は比較的小さかったとはいえ先がやばそうなので3文字 .tc を1つその時に手放しました。

しばらくしてdd24.net(Key-Systems.com)のRSSでなんだかなアナウンスが出ていると思ってましたが、なんとこの事態は今まで続いていたということを最近のアナウンスで知りました。ググってみたところ、ちょっと見ない間にもうわけわからんことになっているようです。まがりなりにもTLDなのに恐るべし…

ググって出てくるページがまとまってました。whoisも両レジストリ(?)のデータベースで内容が違ったりしているようです。

グルーレコードは大丈夫なのかとかも含めて違いを探すだけで小一時間は遊べそうですが、はちゃめちゃすぎて時間の無駄っぽいですね…そして先ほどのフォーラムに出ていたIANAのページの抜粋です。

レジストリ(誰?)の指示だとして該当ドメインのDNSのリソースレコードの変更まで禁止されて悶絶の方々も見つかります。そこにその方自身がMeridial TLDとコンタクトを取った返事として載せられていることには、「AdamsNamesを動かしていたチームはMeridial TLDを動かしているチームだ。AdamsNamesにはもうレジストリを運用するインフラも知識もない」となっています。

レジストリのバックエンド担当のdd24と同じグループのKSregistryの2013/3/11ニュースのUpdate(4/12)では「(Key-Systemsの)RRPproxyは.tcと.gdと.vgの変更、登録、トランスファーを有効にしない」となっています。これはリソースレコードの変更には特に抵触しないですね。

AdamsNamesは違法に横取りされた(されるような退職者メールアドレスの管理をしているのが一番まずいと思いますが)、Meridian TLDが勝手にAdamsNamesを名乗ってICANNのミーティングに出席したと言っています。この記事によればAdamsNamesの言い分ではKey-Systems(KSregistry)を共犯としていたようです。

先ほどのニュースには、もうひとつ5/6にKSregistryが.gdのレジストリになったと書かれています。これは.gdのSponsoring Organisationが国立のNTRCだったからできたのでしょう。

ハチャメチャながらも少し流れがわかったところで先ほどの最近のアナウンスに戻ります。”The current operator of the ccTLDs is Meridian TLD Corp.” だそうです。っておーい、どういう流れでそうなったのか、IANAだかICANNだかの見解の説明をKSRegistryなりKey-SystemsなりKeyDriveの誰かがしてくれないと、これから公式ハイジャックとかできるようになるの?とか思っちゃいます。オペレータってなんだろう。

実際にこれらのドメインを使っていた人にとって、長期間にわたる不便は本当に困ったもんだと思いますが、わけのわからないccTLDと認識されてしまった痛手も長引きそうです…DNSSEC使ったところでレジストリが簡単にハイジャックされたとなれば意味がなくなっちゃいます。インターネットが脆弱なことを示す事件がまた増えましたが、事実関係が早くちゃんと明らかにされるとよいです。

NTT VG230i – ひかり電話SIP <-> ISDN ゲートウェイ

電波時計で 2012-12-12 12:12:12 を見ようと思っていたら、過ぎてました。

あまりのショックにというわけではないですがVG230i
Server: mcas/3.0 (VG230i 2.0.0.0; B2BUA; NTTEAST/NTTWEST)
を4台ほどNTTより取り寄せ、某所で予定より早く使う必要が出たので試しにいじってみました。取り寄せる前にオンラインで取扱説明書を見ました。「テレホタイム」という言葉が存在していた10年以上前になんかよくわからんけど P-MP で申し込むんだぁ!と申込書にチェックを付けた懐かしい記憶がよみがえり、今や自分が P-MP or P-P の設定をする側の立場になれるのかと優越感には浸れるものの、知りたいSIP/2.0側の情報は「本商品は、接続後、ひかり電話ルータが自動設定サーバから取得したひかり電話の設定情報を自動的に取得します」ということしかわかりません。無いよりましそうなので気づいたことを順不同で羅列しておきます。「ひかり電話」、「自動設定サーバ」ですぐに何のことかわかる人には(にも)不要な情報だと思われます。

ファームウェアのバージョンや組み合わせるNGN/フレッツ網やひかり電話ルータによって違う動作をするか、あるいはまったく動作しないかもしれません。あと下の拠点bのRV-230SEでは動作しましたが、そもそもBフレッツはVG230iの対応する動作環境とはなっていないようです。下記のDHCPに対応できていないひかり電話ルータがあるとかいう話でしょうか、それともQoS絡みでしょうか。あしからず。

  • VG230i 2.0.0.0
  • 使用したひかり電話ルータ/ホームゲートウェイ: RT-400NE 4.02(フレッツ光ネクスト)(拠点a) および RV-230SE 16.14(Bフレッツ)(拠点b)
  • 横で動作していたルータなど: 拠点a,b ともに NVR500(ATAとして) 11.00.19 および RTX1200(PPPoEおよびVLAN担当) 10.01.42
  • 「ひかり電話ルータが自動設定サーバから取得したひかり電話の設定情報を自動的に取得します」の「設定情報を自動的に取得します」とはDHCPのことらしい(((Bフレッツ版では:DHCPにてIPアドレス等を取得した場合の技術条件 -) ユーザ・網インタフェース仕様 – レイヤ3の仕様 – IPv4プロトコル)。VG230iにログされているDHCP後の「簡易設定」は意味が良くわからないのでパケット見るしかないかも。
  • ログから見るとDHCP optionは 1,3,6,51,53,54,58,59,90,120,125 が渡ってきている模様
  • ログから見るとその直後に「簡易設定」なるものをして「自動設定」が完了する模様。
  • VG230iの設定ページから自分で好きなSIPサーバを設定することはできない。
  • 端末とは「音声利用IP 通信網サービス(第2種サービスタイプ2)に接続される端末機器のうち、セッション制御用ユーザエージェント(SIP-UA)を実装するものを指す。特に、網に対して、セッションを起動する側の端末を発端末、網からセッションを起動される端末を着端末と呼ぶ。」そうです。Bフレッツ(第2種サービスタイプ1)版にも同じことが書いてあるのは第6.0版でのコピペ後の修正忘れでしょうか。

面白そうな項目など

  • アドレス重複時の対策
  • 「また、端末が利用可能なIPv4アドレスは、網に接続する際に網から割り当てられたIPv4アドレスの範囲のみで、その他のIPv4アドレスを利用した場合の動作は保証されません。」
  • 音声利用IP通信網サービス(第1種サービス)のインターフェース-ひかり電話ビジネスタイプ- では、「また、発ユーザが通知したい発番号を送信INVITEのP-Preferred-Identityに設定することで着ユーザにその番号を通知可能とします。」となっている。ビジネスでなら当たり前なことができるということか…それとも実はひかり電話でもできる?
  • 関係なさそうだけどなんかみつけたので気が向いたら読む。特開2009-200980

というわけで PPPoEパススルー している人はひかり電話ルータのDHCPサーバを使っていない人が多いでしょうから、ひかり電話ルータのDHCPサーバを動作させてVG230iに「設定情報を自動的に取得」させてあげる必要あり(PPPoEパススルーのままで動作してました)。”ngn type lanX ntt”したRTX1200やNVR500のDHCPサーバはもしかしたらVG230i用に使えるのかもしれない(*1)(確認してません)。

既にひかり電話ルータに自力でSIP接続している場合は以下のように内線設定が自動的に書き換えられてしまうので、VG230iを接続する前に受け入れ態勢を整え、ひかり電話ルータの設定を保存しておかないと半べそになります。

  • VG230iが端末登録(ユーザ網インタフェース仕様 – セッション制御(ここはセションではないのねん))するとひかり電話ルータは、「使用する」にチェックがついていて、その時点でSIPでREGISTERされていない内線を相手に明け渡し、相手のMACアドレスをその内線設定に書き込む。VG230iに対してRV-230SEはSIPユーザIDとSIPパスワードも渡したことを確認。ちゃんと網羅して確認していないがユーザIDとパスワードをブランクに設定し、あるのはMACアドレスのみにするという場合もあったように見える。
  • 気づいて別の内線に変えようとしてもMACアドレスが重複する設定はできないので、SIPクライアント側を切断(expire 0)してLANケーブルを抜くか、あるいは「使用する」のチェックを全部はずし、勝手に変更されて困った方の内線設定をあって欲しい姿に戻してから、接続してほしい方の内線設定にMACアドレスを設定してやり直す、という不毛な作業が発生します。

ISDN側にもいろいろつなげました。手近にあったTAを1台とNVR500を2台の計3台、NVR部分はなつかしのBMJ-8相当の分岐を使ってLANケーブルでバス接続、できあがった全7個のアナログ回線には計14個のRJ11 RJ45アダプタを利用しLANケーブルで家庭用電話機やモデムと接続、NVRはLANに接続、さらにTAのRS-232CのDB9ピンにもRJ45アダプタを利用した挙句にRS-232CのついているPCが離れていたので RS-232C LANコンバータ を2台使用。普段からなんでもLANケーブルで済ませるという横着のおかげでアナログ電話周りなのにLANケーブルだらけの変態試験環境になってしまいました。LANケーブルをLAN用に使っている部分はNVRのsyslog出力用と、RS-232C over IPの部分だけですね… 一部で人気の某機のようにひかり電話ルータが出力するモデムダイアルインやナンバーディスプレイ信号で誤動作することもなく(SIP機とアナログ線機で対決させては非常にかわいそうだけど)、NVRの吐くsyslogをsyslog-ngに喰わせて簡単なシェルスクリプトで自分好みのCTIになったところで満足して解体。倉庫からホコリをかぶったホームテレホンを引っ張り出してくる元気は無かったのでここで終了。発信者番号が1つに固定なのが悲しいので、全部の発信者番号で内線登録してでもなんとかするといった改善をしてくれればもう8,400円はお買い得と思われます。というか1IPアドレス1内線(ユーザ網インタフェース仕様 – セッション制御 – 端末登録 – 端末登録の制限)というひかり電話側のしょぼい制限を昔のように無くしてもらえないものだろうか…

FAXは1つのFAXモデムを、受信2回線、送信1回線で使うために TELFAX MINI P&Pというかゆいところに手が届く製品を多く作っている会社の切り替え機を使ってしましたが、ついでにここもシンプルに整理しよう。

落書きのようなものなので随時追加、修正します。読みづらくてすいません。間違いなどはコメントで教えてくださいませ。

(*1) 2017/6/8追記: 実験されたmobu様よりIPアドレスも割り振られないとのご連絡をいただきました。確かにこの状態ではSIPサーバがどこにもいないのでSIP <-> ISDNゲートウェイであるVG230iが動作する由もないのでした。

チクタック、チクタック US Navy の時計

tick.usno.navy.mil と tock.usno.navy.mil のntpサーバが2000年を指していた模様。正確な時間に依存しているセキュリティモデルは壊滅してしまいますね。ちょっと前にも leap second でハングする Linuxカーネルとかあったような気がします。

あと全然関係ないですが、bitsquattingの話、面白いですね。typosquattingと違って注意してタイピングしていても防げないので。いつだったかソフトエラーを目の当たりにしてしまいましたし。

HTTP status code 416 (Chrome)

HTTPサーバのログにはステータスコード416を返していることが結構あったりするようです。Rangeヘッダは先ごろApache Killerで有名な問題がありましたが、特にDoSしようとしているわけでもなく普通のリクエスト。共通項は

  • Chrome (新旧問わず 6.0.472.63, 15.0.874.121, 17.0.963.56, …)
  • GET対象のサイズが6で割り切れる(リクエストは複数ですが対象は高々3つだけなのでたぶんたまたま)。

くらいしか見当たりません。ただし新しめのChromeでは416の直後に再度GETして正常取得しているので、何らかの対症療法が施されているように見えます。https://code.google.com/p/chromium/issues/detail?id=68298によれば13で修正されているようですがregressionでしょうか、はたまた別件でしょうか。Range, If-*ヘッダをログ、ChromeからのRangeはunsetして様子を見ることにします。

クリニック向けのマーケティング・ソリューションはじめました

弊社の 予約情報管理システム「アポ助」は、ちょうど5年前、初代が初めてクリニックに導入されました。

以降、先生やスタッフの皆さんのご希望を取り入れつつ機能改善を重ねながら、「クリニックの人達が本当に必要で使いやすいシステムってどういうのだろう」「貴重なデータをもっと有効活用できないのか」と熟考と議論を繰り返した末に、新「アポ助」の開発に着手しました。

その新しい「アポ助」がこの度完成し、「アポ助」と同じように先生のご希望を実現したアンケート・ソリューション「アケ助」と共に、皆様にご利用いただけるようになりました。

先生達と一緒に作り上げた、予約情報管理システム「アポ助」とアンケート・ソリューション「アケ助」は、クリニックの皆様にITの本当の楽しさや便利さを最大限に活用してもらいたい、という気持ちから生まれた、私たちの自信作です。
業務効率を向上しつつ、データを駆使したマーケティングにも活用できる、「アポ助」「アケ助」のコンセプトや機能などを、まずは専用サイトでご確認いただければ幸いです。
デモも体験できるので、是非一度クリックしてアポ助/アケ助専用サイトをご覧ください。

国ごとのIPアドレスの範囲 – RIR stats -> 各国のIPv4とIPv6のCIDR

ありがちな作業なのでそのものずばりなツールはごまんとありそうですが、極力先人の知恵を組み合わせて手抜きしながらIPv6対応のものを自力生成してみます。net-mgmt/p5-Net-IPが超便利です。最近はaggregateされたものは置いてないようなので aggregate-cidr-addresses を使います。NANOG MLのメールのとおりにIPv6の場合はprefix()をprint()に変更します。

上を hoge.pl とでもして保存。先ほどの aggregate-cidr-addresses もその名前のままダウンロードして、最後の

の部分を

に置き換えます。日本のサイダーであればfetchなりwgetなりを使って

お気楽日本のサイダー jp のできあがり。全部のRIR statsは以下のとおり。

頻繁にRIRにftpしないように良い子はちゃんとftpしたファイルを保存します。あとRIR dbはただの登録情報なので、実際に設置されている国と異なったりanycastだったりする場合も多いので、もう少し精度良く場所を知りたい場合はGeoIPなどの他、looking glass, traceroute, whoisなどを使って推察していくことになります。

RIP, dmr 1941-2011

すごい勢いでつぶやかれているようですが、まさにこの本(K&R)が世のプログラミング言語に与えた影響は計り知れず、彼がいなければ世のOSの状況も変わっていたし、それに広範囲に依存している世の中も大きく変わっていたと思います。鶯色のカバーのANSI C対応第2版の翻訳本は今でもきれいに本棚に並んでいますが、高校生のころ読んだ白いカバーの初版の翻訳本はぼろぼろです。

IPv4無くなりました

枯渇時計を表示させていた方はお気づきのことでしょうが、IANAから通常の分配が終了し、Two /8s allocated to APNIC from IANA【速報】IANAからAPNICへ、二つの/8ブロックが割り振られました によると近日中に最後の/8の5ブロックを5つのRIRに割り振って完全終了になるそうです。v4.fullbogons.cymru.com は今年から来年にかけて bogons.cymru.com との違いがほとんどなくなるはずです。(Bogons vs. Fullbogons – what’s that all about?) とはいえまだあるっちゃあるわけですが…

2011/4/16 追記:APNICにも通常割り振りの在庫が無くなったそうです。

2011/2/5 参考追加

DNSSEC始めました

ルートからJPへのチェイン。弊社が利用しているドメイン(co.jp jp ch me es be dk com net org…)もすべてDNSSECおよびDANE/TLSA対応完了。DNSSECが有効でTLSA RR,CAA RRにも対応したセカンダリDNSサーバ,DANE,TLSA,DMARC,DKIM,SPFに関するご相談は弊社へどうぞ。と宣伝をしたところで以下は設定を確認するためのリンク集と自分で確認する手順。

続きを読む

タイムゾーンのオフセット+09:18:59 はて、18:59はなんぞや?

いろいろ検索したつもりでしたが、実は :18:59 timezone と検索することで先人の方々のサイトがヒットし、Google先生がいれば誰でも天才ということで表題の件は簡単に速攻で解決できたことがわかりました。しかしせっかく書いたので恥ずかしながら公開しておきます…

続きを読む

プログラムを作るプログラムを作れ – プログラムを自動生成せよ

2013/8/9 追記: 右脳左脳うそ説プラナリアの記憶の場所など興味深い話がある中で、右脳プログラミング環境だそうです。どうなっていくでしょう。


何の文脈も無く「プログラムを作るプログラムを作れ」と言われた場合、まずそれを言われた方のITスキルやバックグラウンドを知らないと延々と禅問答が続いてしまいそうです。プログラムとはコンピュータへの命令のことなので、それを作るプログラムとなるとコンピュータへの命令を作るコンピュータへの命令を作ることになりますね。最初から直接命令すればよいじゃん、となってしまいます。

各種言語のコンパイラはプログラムを出力するプログラムですし、古くからあるlexとyaccあたりで新しく構文を解釈してプログラムを出力するプログラムを作れば、lexとyaccはプログラムを作るプログラムを作るプログラムでしょうか。

program to create programなどのフレーズでいろいろ検索してみます。Visual Basicのようにコンポーネントをたくさん準備しておきそれらを配置、接続していくもの、イベントに対するアクションもあらかじめ複数準備し、視覚をベースにプログラミングするものがまず目に付きます。準備しなければいけないものは無数ですが、多くの作成者を満足できるレベルになれば便利です。あとは各種言語用のエディタも出てきます。確かにプログラムを組むため(ソースコードを書くため)のプログラムです。そして決められた形式の設計書に基づいて各種言語のソースコードを自動生成と称して出力するプログラムもたくさん登場してきます。UMLとJavaがその典型でしょうか。自動生成されたソースコードは設計書に書かれた枠だけができるため、実際に必要なロジック、つまりほとんどの部分は自力で追記していくことになります。

もしコンピュータへの命令の仕方を知らない方が言った言葉であるとすると、きっと自分で理解できる命令の仕方を作って欲しい、つまり自分にも使えるプログラミング言語、あるいはプログラミング言語までにも至らないプログラムする方式を作って欲しいということなのかと想像できます。自分で理解ができる命令の仕方という意味で考えてみると、最善はしゃべった言葉をそのまま理解して実行してくれるということになるでしょう。サイロン、ターミネーターがそんな感じだと思われます。

かつて自分が小学生であった頃、親に「マイコン」を買ってもらうための殺し文句に「英語の勉強になる」というものがありました。残念ながら自分の親は共にホストコンピュータを触っているような人達だったのでそれはまったく通じませんでしたが、知らない人にはコンピュータは英語で動作していると思われていたのかもしれません。そしてそのような古き良き時代、日本語を入出力できる日本語BASICならぬ、日本語で動作するBASICなるものがマイコン雑誌の広告に出ていたりしたものです。日本語であればプログラムができると思う層を取り込む試みだったと思われますが、1,2年もしないうちに見なくなったと記憶しています。

もし I < 100 ならば I = I + 1900

半べそです。そもそも知らない人にはIFやらTHENやらが日本語になったところで I = I + 1900 で、そんなアホな、です。実際には英語も含めて自然言語を完全に理解するプログラムはいまだにできていません。言語は進化することを考えると言語の進化も取り込めるようにする必要もあるでしょうし、自然言語は前後の文脈が無いと理解不可能な場合が頻繁にあります。受け身や敬語のように前後の文脈どころか発言者の立場までわかっていないといけない場合もあるでしょう。人間の脳は小さい頃からお勉強してそれらを学んできたのですね。

現在でも日本語でプログラムを書けるようなプログラミング言語は作られているようですが、みな教育用のようです。英語と日本語が大きな壁になる場合には有効な教育方法だと思われます。一方、実際のプログラミング言語で予約されている「英単語」は数十の場合が多いので数十単語覚える方が早いのかもしれません。利用したわけではないので時間があれば「パソコン」を買ってもらえた今、実際に日本語プログラミング言語を使って楽しみながら確認してみたいです。

日本語英語の壁を考えないとして、現在の自分で理解ができる命令の仕方となると、やはり何かしらのプログラミング言語、あるいはプログラミング言語のソースコードを作成するためのかなり限定的な枠組み、ということになるでしょうか。プログラムを作るプログラムがあってもプログラミングができる人間の脳は必要とされている状態で、ロボコップがそんな感じです。

ターミネーターはストーリーにはもう大分できていないといけないくらいの時期だったかと思いますが、スカイネット様への納期を死守するには越えなければいけない高い山が続々とあるようです。あれ、スカイネット様をまず納品しないといけないのでしたっけ。

以上は飲み屋でMetaMojiという会社の記事から始まってまだ世の中はロボコップかねぇという話になるまでを思い出しながら書いたもので、とりとめが無いです。お後がよろしゅう。