HTTP/3のジオン脅威のメカニズム

やーいおまえんちhttp/1.1屋敷ー!

こらーカンタァ!

そんな会話が繰り広げられ始めると、夏を感じますね。今年も暑くてたまりません。1.1で何が悪い。風情があるだろ!(そんなもんありません)

さて、世の中はめっきりHTTP/2が浸透してきた感もあり、えーなにー1.1ぃー? 1.1が許されるなんて小学生までだよねーきゃははは、なんて女子高生にまで笑われていることでしょう(被害妄想)。

そんなHTTPですが、次代のHTTPとして策定が進んでいるのがHTTP/3です。さて、開発の方々などアプリ系の方々はおそらく「へーふーんほー。でも別になにも変わらないよねー。httpのバージョン変わったからって何が変わるってんだよ。まあよろしくやっとけよインフラども」ときっと思ってらっしゃることでしょう(多重被害妄想)。

さて、このHTTP/3ですが、インフラにとってはどちらかというとくそめんどくさい対応を迫られます。お気軽に「うちもHTTP/3にしたいんだよねー」とか言われるのは勘弁願いたいですね。

さて、HTTP/3の一体何がそんなに怖いのでしょう。

一言でいえば、HTTP/3のベースプロトコルがQUIC、ということです。まあ何それおいしいの?って言われるのはわかっています。QUICというのは、Googleさんが「TCP気にいらねぇな、俺の考えた最強に従えや!」と言って押し付けてきた提唱した、「UDPを使用するプロトコル」です。

まあ、UDP使ってUDP上で独自セッション作ってコネクションコントロールしてるプロトコルなんかいくらでもありますが、それをHTTPでやらかそう、という提案ですね。なお、セキュリティ意識高い系のGoogleさんですから、QUICはプロトコル自体がTLSコネクションで形成されています。

つまり、証明書セットしてないと通信自体出来ません。

ついでに、UDPの443番待ち受けになるので、HTTP/3に対応する=「経路上のネットワーク機器に片っ端から変更が生じる(可能性がある)」んですね。

クラウドならそんなもん、セキュリティグループちょちょいのちょいーで終わる可能性が高いですが、これがオンプレミスだったらどうなるか、というと多岐にわたるネットワーク設定の大設計変更祭りが開催され、年始年末お盆休みなにそれおいしいの?という感じでネットワークエンジニアが駆り出され、アーキテクトがそこらじゅうのネットワークトランザクションの表を突き付けられた挙句、「影響範囲を調べろ」と言われ、ついでにトランザクション表の内容は10年前で更新が止まっており、実際の現実とほんとうにあっているのかわからず、結局ミラーポート作って片っ端からパケット拾ってWiresharkに食わせるしかねぇ、とかいう苦渋の決断を迫られた挙句、サブシステムの一つは一年に一回くらいしか動かないので調査期間中にパケット飛ばさなかったので見落としました、みたいな爆弾が仕込まれる、というとても素敵なお祭りです。

ぜひ皆様ふるってご参加くださいますよう。

ただまあ、だからといってこれだからオンプレミスは。なんて言う気はありません。

どっちかっつーとオンプレミスのWebインターフェースがHTTP/3に対応する必要性自体がぶっちゃけ薄いでしょう。が、Googleさんのやること、というのが一番困る点でして。

怖いのが、そのうちChromeがHTTP/2を切り捨てかねない、というところなんですよね。これやられた瞬間にHTTP/2でいいじゃん。ってなってるオンプレミスで、HTTP/3祭りが開催されるわけです。怖いですね。あいつバージョンダウンしたまま固定バージョンで使わせてくれないし。一応、HTTP/2で初期ネゴするんで現時点では問題ないとは思うんですが、初回パケットからUDPに投げ始めたらマジどうしようという怖さを感じます。

個人的にはこの手の「俺に従え」感が最近のGoogleさんからは強く感じていて、ちょっとなぁ…というところはあったり増します。

 

さてさて。そんなQUICですが、それ自体は決して悪くはないんですよ。まあ、TCPとUDP両方でセッションもっちゃうからNAPTテーブルが半減するよねとか、TLS内包するけどこれLBの裏に配置するときオレオレじゃさすがに怒るんかな、とか心配事は尽きませんが。あとクライアント認証とかどうなってるんでしょうね。まだRFCまじめに読んでないんですよね、まだまだドラフトだとは思いますので。

このように、実は皆さんが意識していない中、水面下で実はいろいろ変えている、というのがプロトコルの世界。そして、このプロトコルの世界の上にアプリケーションプロトコルの世界が乗っかっており、アプリケーションはそのうえで動いています。

ここでいうHTTPとはHTTPセッションプロトコル、というもので、皆さんのブラウザhttp://~~っていwれたときに、一番最初に行う通信制御の話ですね。この後にhttpヘッダ制御が続き、そのうえでhtmlが流されます。例えばアプリやさんのいうセッションがーとかいうのは、このhtmlの領域の話。

我々インフラやネットワークの人間がセッションがーって言い出した時は、このHTTPセッション、あるいは、さらにその下層にあるTCPセッションのことを言っています。この辺はだいたい文脈で会話するので、いちいちHTTPセッションが!とかTCPセッションが!とか言わないでセッションが!っていうんですが、うっかりアプリ屋さんのいるところでこれを言うと、彼らにとってのセッションってhtmlの流れるとこのセッション、いわゆるphpセッション変数とかそういうのを指してしまうのです。

で、言葉として同じもんだから、うっかり双方「ああ、あのセッションの話ね」でいちいちお互い確認しないまま会話が流れていき、認識齟齬の原因になったりします。確認大事、お互いにw

ネットワークやインフラの人は、セッション、というものがネットワークトランスポートにおける各層で独立して行われるコネクションコントロールを指している、という理解をしているので、TCP層の話をしているときに出てくるセッション、という言葉はTCPセッションですし、TLSの話をしているときに出てくるセッションはTLSのセッションなんです。プロトコル層の話を始めたらHTTPセッションだとかFTPセッションの話になったな、って理解しますし、最終的なアプリケーション層の話になったらphpセッションだったり、スティッキーセッションの話だったりになります。

このように、ネットワークスタックの構造を理解する、というのは実はアプリケーション屋さんにとっても結構大事な意味を持つのですが、実態の見えないネットワークという謎技術の塊はどうやら世の中からはなんだか蛇蝎のごとく嫌われており、なんか人によっては「あなたネットワークケーブルに親御さん殺されたんですか?」くらいの勢いでネットワークがきらいな人もいたりします。

ネットワーク、楽しいんですけどねぇ?w

まあ、そんなこんなで皆さんが楽しく動画サイトを見てる間にも、実はインフラとかネットワークのほうでもじみーに、本当に地味ーぃに物事は変化しています。

ちなみにネットワーク絡みつつもクソ派手な話としては、例えばStarlink。低軌道周回衛星群を利用した衛星通信ですね。これとかは一般の方でも面白く感じる話の一つでしょう。ただし、面白いと思うのは宇宙に打ち上げるとことか衛星のばらまき方とかそういうところでしょうけれどw

Amazonの本体さんも、子会社立ち上げてProject Kuiperとして同様のサービスを今年~来年で開始する予定です。宇宙ってずいぶん身近なものになっちゃったなぁ、という感じがすごいです。ちなみにばらまく衛星の数は3000とか。Starlinkはすでに6000以上ばらまいていますけどもw

ここでばらまかれる低軌道衛星、とは中・高軌道で周回するいわゆる人工衛星、と比べてとっても小さく、一機当たりも低価格です。打ち上げも宇宙往還機で低軌道まで行って投入できれば良いので、ISSまで行く、というのよりは少し安いんでしょうね。

そのうちご家庭に一機くらいは静止衛星、欲しいですよね。何に使うかわかんないけど。ダイソン球でも作ってエネルギー転送でもするのかしら。

 

こちらもStarlink同様宇宙にゴミ衛星をばらまくプロジェクトではありますが、ネットワークの人とかは衛星の打ち上げ事態もすごいとは思うんですが、どっちかってーとこの衛星群のメッシュネットワーク構造とかが面白い。ちなみに電波帯域としては5Gとかと同じだったっけな? 総務省に相互影響性がない、というような資料なんかも提示、公開されているので無線通信とか移動体通信のネットワーク屋さんは楽しく読めるんじゃないでしょうか。私は有線畑なのでファイバーのほうが楽しいですがw

宇宙を使うこういった派手さのある話も、実はネットワーク屋の領分の一つです。無線畑の人々の出番です。

もう一つ、有線畑のネットワーク屋で派手なのは、大規模海底ケーブルネットワークですね。いいですか、日本からアメリカに通信するのに、まあ国内いくつかのポイントから引いているんですが、アメリカの西海岸まで、ぶっとい光ファイバーの束でできたケーブルが海の底を這ってるんです。何千キロも。ハワイに上がる線もありますが、メインは西海岸まで一直線です。この辺の敷設図はNTTさんだかOCNさんだかで公表されてたかと。見てるだけで楽しいです(変態)。

でもね、いろいろ想像力掻き立てられて面白くないですか。で、これ定期的にメンテナンスされてるんですよ。どうやってるのかとか知りたくありませんか? ちなみに太平洋には当然マリアナ海溝みたいなクソ深い海もあるんですから。

深海、って人間はまだほとんど触れていない空間なんですが、下手するとネットワークケーブルは人間よりも深海を知っているかもしれませんw 海中都市の窓からの景色に100年前のケーブルの残骸が、とかあったらなんか素敵じゃないですか。

まあ世の中にはサーバ冷やす電気代を下げるために海にサーバ沈めた企業もありますしねwwww

ね、なんとなくインフラとかネットワークって面白く感じませんか?

実は皆さん大好きなSFチックな世界の一部ってITインフラとネットワーク屋の出番だったりするので、JAXAをあきらめたあなたはネットワークと移動体通信に向かってみるのも面白いかもしれません。まあ言っちゃえば我々はサイバーパンクの手先の一人なので、サイバーパンクに傾倒してともにスチームパンクを打倒しませんか!(もはや何の話なのか)

いや、普通にスチームパンクも好きですw 歯車ががっしゃがっしゃ動いてると萌えますね。

ところでこれなんの話がしたかったんだろうか? 自分でもわからない。