ネットワーク機器のカタログに,よく「○○規格に準拠」などと書かれています。製品を購入する場合,こうした情報は重要です。必要な規格に準拠していない製品では,手持ちの機器とつながらないかもしれません。

 「規格に準拠する」と書かれている場合,ユーザーはその製品が同じ規格に準拠したほかの製品と混在させてシステムを運用できるものだと考えます。しかし,製品を開発・製造するメーカーの立場から見ると,話はそう簡単ではありません。

新しい規格だと難しい

 作られてからある程度時間がたっていて,なおかつ広く使われている規格ならあまり問題はありません。どのような用件を満たせば「準拠した」と言えるか,製品に要求される仕様やテストの方法が固まっているからです。また,確立した手法に基づいてテストするツールや機器が用意されています。

 しかし,ネットワークの世界は常に新しい技術やプロトコルが登場し,標準の規格や仕様になっていきます。新しい規格の場合,テスト・ツールはないのが普通です。テスト・ツールがあっても,それを全面的に信じるわけにはいきません。結局のところ,テスト・ツールを使ったうえで,メーカーが独自のテストを作成し,できる限りの範囲をカバーするよう努力するしかありません。

 具体的に「準拠する」ためのテスト作業は2種類あります。一つは,製品が規格書に書かれた通りに動作するかをチェックするコンフォーマンス(適合性)・テスト。もう一つは,他社の製品と相互運用できるかをチェックするインタオペラビリティ(相互運用性)・テストです。

適合していても相互接続できない

 規格に準拠する目的は,ユーザーに対してほかのメーカーの機器との相互接続を保証することです。しかし,製品が規格の仕様に適合していると,相互接続できない不幸なケースもあります。

 有名な事例として,こんな話があります。プロバイダ間のルーティングに使うプロトコルBGPには「コンフェデレーション」という機能があります。これは当初,RFC1965として標準化されました。しかし,あるメーカーが規格書を読み違え,ある二つの変数を逆に使うように実装した製品を出荷してしまいました。しかも,その機器が広く普及したのです。

 つまり,RFC通りに作ると,最も普及している製品と相互運用できない状況になったのです。そこで後発のメーカーは,相互運用性を重視して,普及した製品と同じように変数を扱うようにしました。最終的には,RFC3065で値を逆に規定し直したのです。

 今後も「準拠する」の作業は,二つのテストが柱になると思われます。ただ,新しいプロトコルなどの場合,そもそもインタオペラビリティ・テストを行う相手探しが難しい場合があります。相手があっても規格への適合と相互運用が矛盾するケースもあります。

 このようにメーカー側から見た「規格への準拠」には,ここで終わりという明確な基準がありません。どこに線を引くかは,メーカーのポリシーに任されているのが現状なのです。