orangeitems’s diary

40代ITエンジニアが毎日何か書くブログ

「ドラゴンクエストXを支える技術」という本が出たらしいのでご紹介

f:id:orangeitems:20181116072359j:plain

 

ドラゴンクエストXを支える技術

面白そうな本が出ていますのでご紹介。

 

ドラゴンクエストXを支える技術 ── 大規模オンラインRPGの舞台裏 (WEB+DB PRESSプラスシリーズ) 単行本(ソフトカバー) – 2018/11/14

 

私はWii Uでバージョン3までクリアして放置しています。バージョン4が完結したらNintendo Switchで一気にやってみようかなあと思っています。

 

興味をそそられる目次

インフラ周りをやっている私としては、この目次はそそられる。

 

『ドラゴンクエストX』は、ドラゴンクエストシリーズ初のオンラインRPGです。

本書は、ドラゴンクエストXの開発・運営の舞台裏を、現在はプロデューサーとして全体の責任者を務め、以前は技術責任者でもあった著者自らが徹底公開していきます。

著者のこだわりによりプログラミングやドラゴンクエストXの事前知識がなくても読み進められるよう丁寧に解説していますので、技術者やドラゴンクエストXのプレイヤーでなくても、幅広い方々に参考にしていただけます。

第1章 ドラゴンクエストXとは何か ── ドラゴンクエストかオンラインゲームか
第2章 開発・運営体制 ── ドラゴンクエストXを支える人々
第3章 アーキテクチャ ── クロスプラットフォームMMORPGの基本構成
第4章 開発と検証 ── 並走する追加と保守のサイクル
第5章 メモリ管理 ── MMORPGのボトルネック
第6章 ゲームクライアントグラフィックス ── 魅力的な絵を描画する工夫
第7章 ゲームサーバプロセス ── 機能ごとに分離して負荷分散
第8章 キャラクター移動 ── 移動干渉による押し合いへの挑戦
第9章 ゲームDB ── ワールド間の自由移動を実現する一元管理
第10章 ゲーム連動サービス ── ゲーム内とつなげるための工夫と力技
第11章 運営と運用 ── リリースしてからが本番!
第12章 不正行為との闘い ── いたちごっこ覚悟で継続対応

 

多分にKindleで買うより、単行本で買ったほうが良さそうだなという雰囲気なので、今日本屋に行って手に入れて見ようかなと思っています。

ドラクエXの実装というより、どのように運用し6年もの間運用してきたかに重点が置かれています。あの国民的素材を安定運用し続けているわけで、興味津々です。

しかも、Wii(現在は終了)、3DS、Wii Uと来て、PC、PS4、Nintendo Switchとマルチプラットフォームで運用。3DSはクラウドゲームでした。

おそらくは、この本の内容を知りたい人の範囲はそこまで広くないと思うのですが、私のブログを開く人には結構ピッタリではないかなと思い紹介しました。

 

周辺の本もなかなか良さそう

本屋でこちらも確認してみたい。

 

[24時間365日] サーバ/インフラを支える技術 ‾スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ)2008/8/7

 

もう10年も前の本で、陳腐化しているかと思いきや。

 

1章 サーバ/インフラ構築入門 ……冗長化/負荷分散の基本
1.1 冗長化の基本
1.2 Webサーバを冗長化する ……DNSラウンドロビン
1.3 Webサーバを冗長化する ……IPVSでロードバランサ
1.4 ルータやロードバランサの冗長化
2章 ワンランク上のサーバ/インフラの構築 ……冗長化、負荷分散、高性能の追求
2.1 リバースプロキシの導入 ……Apacheモジュール
2.2 キャッシュサーバの導入 ……Squid、memcached
2.3 MySQLのレプリケーション ……障害から短時間で復旧する
2.4 MySQLのスレーブ+内部ロードバランサの活用例
2.5 高速で軽量なストレージサーバの選択
3章 止まらないインフラを目指すさらなる工夫 ……DNSサーバ、ストレージサーバ、ネットワーク
3.1 DNSサーバの冗長化
3.2 ストレージサーバの冗長化 ……DRBDでミラーリング
3.3 ネットワークの冗長化 ……Bondingドライバ、RSTP
3.4 VLANの導入 ……ネットワークを柔軟にする
4章 性能向上、チューニング ……Linux単一ホスト、Apache、MySQL
4.1 Linux単一ホストの負荷を見極める
4.2 Apacheのチューニング
4.3 MySQLのチューニングのツボ
5章 省力運用 ……安定したサービスへ向けて
5.1 サービスの稼働監視 ……Nagios
5.2 サーバリソースのモニタリング ……Ganglia
5.3 サーバ管理の効率化 ……Puppet
5.4 デーモンの稼働管理 ……daemontools
5.5 ネットワークブートの活用 ……PXE、initramfs
5.6 リモートメンテナンス ……メンテナンス回線、シリアルコンソール、IPMI
5.7 Webサーバのログの扱い ……syslog、syslog-ng、cron、rotatelogs
6章 あのサービスの舞台裏 ……自律的なインフラへ、ダイナミックなシステムへ
6.1 はてなのなかみ
6.2 DSASのなかみ
Appendix
mymemcheck(4.3節)
apache-status(5.2節)
ganglia.patch(5.2節)

 

ソフトウェアはさすがにもっといいものが出ているのですが、項目は充実しているなあという印象です。私がここ10年に経験したものが凝縮している感じ・・。

 

最近思うこと

端的な技術を積み重ねるならWebの情報で十分なのですが、生産性高く構造的に学習するためには、こういった本を読んだりベンダーのイベントに参加したりと、インプットを多次元化する必要性を感じますね・・。

自分の評価は、基本的に他人が決めるものなので、他人に対してユニークな情報をアウトプットし続けないと評価は上がりません。

ということは、ユニークな情報のインプットこそ評価を上げるわけで、ネットの情報以外にも積極的に関与していくべきだよなあと思います。

 

ちなみにすぐ買いました

www.orangeitems.com

 

OpenJDK完全互換、Amazon Correttoは信用できるのか

f:id:orangeitems:20181115101700j:plain

 

AWSが、OracleJDK互換提供に手を挙げる

OracleJDKはバージョン11以降完全に有償サブスクリプションモデルに契約が変更され、バージョン8は2019年1月でOracleのサポートが終了します。また、9や10はすでにサポート切れです。かたや、無償版と言われるOpenJDKはサポート期間が半年しかないとされ、法人を中心にJavaとどうやってつきあっていくかが大きな課題となっています。

 

この状況で、AWSがOpenJDK互換、しかも長期サポート(LTS)を約束するAmazon Correttoを出すというニュースが飛び込んできました。

 

dev.classmethod.jp

「無償」かつ「AWS以外でも使えるマルチプラットフォーム」かつ「LTS(Long-Term Support)」つきのOpenJDKをAWSが提供するとのことです。
現在はプレビュー版ですが、対応プラットフォームには、現在、Amazon Linux 2以外に、Microsoft Windows、macOS、Dockerイメージが用意されており、正式リリース時には、UbuntuやRed Hat Enterprise Linuxも対応予定とのこと。
まぁ、もうJavaいれるときは全部これでええやん的な気持ちになる、ごついアナウンスです。

 

少なくともRed HatやRed Hat互換OSはRed HatがリリースするOpenJDKでいいんじゃないのかなあと思いつつ、WindowsやmacOSが含まれているところが戦略的に感じます。

 

AWSの真意を原文から読み砕く

さて、おいしい話には裏があるのが常ですが、今回のCorrettoは本当に信用できるのでしょうか。AWSが出している限りのドキュメントを日本語で確認していきたいと思います。

 

概要

aws.amazon.com

 

見出し

Amazon Correttoは、Open Java Development Kit(OpenJDK)の無償、マルチプラットフォーム、プロダクション対応の配布物です。Correttoには、パフォーマンスの向上とセキュリティの修正を含む長期サポートが付属しています。AmazonはCorrettoを何千ものプロダクションサービスで内部的に運営しており、CorrettoはJava SE標準と互換性があると認定されています。Correttoを使用すると、Amazon Linux 2、Windows、macOSなどの一般的なオペレーティングシステムでJavaアプリケーションを開発して実行できます。Amazon Corretto 8はプレビュー版です。

こちらは聞いている通りの内容です。

 

利点

Amazonによる支援

Amazon Correttoには、Amazon から無料で長期間サポートが提供されるため、必要なときにのみバージョンをアップグレードできます。AmazonはCorrettoに取り組んでおり、何千ものプロダクションサービスで内部的に運用しています。

プロダクションレディ

Amazon CorrettoはJava SE標準を満たすことが認定されており、多くのJava SEディストリビューションの代替として使用できます。Amazonは、エンタープライズアプリケーション開発に不可欠なパフォーマンスの向上とバグ修正を含む四半期のアップデートをリリースする予定です。

マルチプラットフォームのサポート

Amazon Correttoでは、クラウド、閉域、ローカルマシンで同じ環境を実行できます。プレビュー中も、CorrettoはAmazon Linux、Windows、macOS、Dockerをサポートし、一般から利用できます。

コストがかからない

Amazon Correttoは無料でダウンロードして使用できます。追加の有料機能や制限はありません。

Java SE標準を満たすことが認定される、とは何かを確認したいと思います。

アップデートは四半期ごととのこと。

また、プレビュー中は、Red Hatを外してあるあたりが戦略的に思います。

 

FAQs

aws.amazon.com

 

一般

Q:Amazon Correttoとは何ですか?

A:CorrettoはAmazonからの長期サポートを受けたOpen Java Development Kit(OpenJDK)のビルドです。CorrettoはJava Technical Compatibility Kit(TCK)を使用してJava SE標準を満たしていることを証明しており、Linux、Windows、およびMacOSで利用できます。これにはAmazonのパッチが含まれており、独自のサービスの実行に役立つことが証明されています。

 

Q:なぜCorrettoを使うべきですか?

A:CorrettoはOpenJDKの信頼できるビルドであり、長期間にわたるサポートを無償で提供します。AmazonはCorrettoを数千の制作サービスで社内で運用しています。Correttoが行うすべての変更は、OpenJDKを実行している問題を修正または緩和します。Amazonはまた、定期的な四半期サイクルの外で、利用可能ですぐに使用できるようになると、緊急の修正(セキュリティを含む)を適用する予定です。

 

Q:CorrettoとOpenJDKの違いは何ですか?

A:CorrettoはAmazonが含まれているOpen JDKのディストリビューションであり、まだ対応するOpenJDKアップデートプロジェクトに統合されていません。私たちはOpenJDKのパフォーマンスや安定性を向上させるパッチに焦点を当てます.OpenJDKは、大規模なサービスを実行するAmazonの観測に基づいて選択されています。

 

Q:AmazonはCorrettoにどのようなパッチを含めるつもりですか?

A:セキュリティ修正、頻繁に使用される機能の高速化などのパフォーマンス強化、ガベージコレクションのスケジューリング、メモリー不足の防止、監視機能、レポート機能、スレッド管理機能の改善がパッチに含まれます。

 

Q:Correttoの使用に伴う費用はありますか?

A:Correttoは無料でオープンソースライセンスでAmazonから配布されています。これは、クラスパス例外(CPLを伴うGPLv2)とともに GNU Public Licenseバージョン2の条件の下でライセンスされています。Amazonは、その使用または配布に料金を請求しません。

 

Q:Correttoの長期サポートには何が含まれていますか?

A:Amazonは、少なくとも2023年6月までCorretto 8のセキュリティアップデートを提供します。アップデートは四半期ごとにリリースされる予定です。OpenJDK 11に対応するCorretto 11は、2019年前半に利用可能となります。Amazonは、少なくとも2024年8月まで、Corretto 11を四半期ごとに更新する予定です。

まずはバージョン8に焦点を当てていることがわかります。2019年1月の期限切れまでにリリースを間に合わせてくる雰囲気ではあります。また、11については来年前半とのこと。とりあえずはOpenJDK 11を利用して開発し、Corretto 11を待てといったところでしょうか。

Linuxをサポートと言いつつ、Amazon Linux 2を前面に押し出しているところにAWSらしさが現れていると思います。

また、ライセンスが、クラスパス例外が含まれているGPLv2ということで、ここは安心材料かと思います。

 

Amazon Correttoを使用する

Q:Correttoを他のJDKの完全互換として使用できますか?

A:Correttoは、OpenJDKで利用できない機能(例:Java Flight Recorder)を使用していない限り、すべてのJava SEディストリビューションの完全互換として設計されています。Correttoバイナリがホストにインストールされ、Javaアプリケーションを実行するために正しく呼び出されると(Linux のalternativesコマンドを使用するなど)、既存のコマンドラインオプション、チューニングパラメータ、監視、その他のものは以前と同じように動作します。

 

Q:AWSでCorrettoを使用するにはどうしたらいいですか?

A:
Amazon Linux 2 - Amazon Linux 2 AMIを起動し、Corretto RPMをインストールします。
Docker - Docker HubからECRにイメージ(Amazon Linux 2ベース)をインストールします。
Windows - Windows AMIを起動し、Corretto Windowsパッケージをインストールします。

 

Q:AWS以外でCorrettoを使用するにはどうすればよいですか?

A:

Amazon Linux 2 - マシン上の端末を開き、Corretto RPMをインストールします。
Docker - Docker Hubから画像をダウンロードして実行します。
Windows - Corretto Windowsパッケージをダウンロードしてインストールします。
macOS - Corretto macOSパッケージをダウンロードしてインストールします。

 

Q:Correttoはどのオペレーティングシステムをサポートしていますか?

A:プレビュー中、Correttoのインストールパッケージは、Amazon Linux 2、Windows、およびmacOS用にAmazonによって配布されます。さらに、Dockerイメージ(Amazon Linux 2ベース)はDocker Hubでホストされています。

Windowsビルドは、バージョン7,10、Server 2008、Server 2012、およびServer 2016でサポートされています。

Mac OS Xのビルドは、10.10(Yosemite)以降でサポートされています。

 技術的にはいたってシンプルで、特にコメントはありません。

 

 

ライセンスとオープンソース

Q:Correttoのライセンス条項は何ですか?

A:CorrettoはOpenJDKと同じオープンソースライセンスでリリースされています。OpenJDKはGNU Public Licenseバージョン2のClass Path Exception(GPLv2 with CPE)でライセンスされています。

 

Q:AmazonはOpenJDKにどのように貢献していますか?

A:Amazonは2017年にOpenJDKに貢献し始めました。私たちは、数と複雑さの両方で寄付を増やす予定です。

 

Q:Correttoにはどのように貢献できますか?

A:AmazonはCorrettoにコードを入手する方法としてOpenJDKプロジェクトへの貢献を奨励しています。このようにして、OpenJDKコミュニティ全体があなたの変更から利益を得ます。あなたの貢献がビルドロジックのようなCorrettoに特有のものである場合、コードはGitHubで利用できます。GitHubでは、問題を確認し、要求を引き出す予定です。

Amazon Linuxと同じような戦略を取って、オープンソースとコードレベルで向き合って行きたいというところでしょうか。Amazon社内のシステム群でもJavaをたくさん使っているので、これを無償で取り組むことにメリットがあるというように読めます。

 

考察:Correttoとどう向き合うか

Amazon Linux 2も、Corretto同様、AWS以外の環境にも無償で入れられるようになっていますから、Javaも同様の戦略だと言えます。

 

Amazon Linux 2

Amazon Linux 2 は、Amazon Elastic Compute Cloud (Amazon EC2) で使用する Amazon Machine Image (AMI) として提供されます。KVM (Kernel-based Virtual Machine)、Oracle VM VirtualBox、Microsoft Hyper-V、および VMware ESXi の Docker コンテナイメージおよび仮想マシンイメージとしても使用できます。仮想マシンイメージは、オンプレミスでのデプロイとテストに使用できます。Amazon Linux 2 では Amazon EC2 の最新機能がサポートされており、AWS と簡単に統合できるパッケージが含まれています。Amazon Linux 2 のセキュリティアップデートとメンテナンスアップデートは継続的に提供されます。

 

では、世の中のSI案件で、積極的に他環境でAmazon Linux 2が使われているかというとそうではありません。

 

japan.zdnet.com

 

世界で見るとubuntuが大変人気のようなのですね。日本だとまた事情が違っていて、少なくとも私の経験では「有償であれはRed Hat Enterprize Linux、無償だとCentOS」というのが暗黙の了解です。

この記事内でも、AWSであってもUbuntuが断然トップだと記載されておりました。

 

個人的な意見としては、AWSによるベンダーロックインがJavaというアプリケーションの中核でも進んでしまうことの解釈が問題の焦点だと思います。

 

www.itmedia.co.jp

同社の今野芳弘パートナーアライアンス本部長

「(中略)もしベンダーロックインがもたらすリスクに対する懸念があるとすれば、そこはぜひともAWSを信用していただきたい」

 

信用する、しないの問題になるので、「信用する」とすれば使うでしょうし、「信用しない」となれば使わない、ということです。ロックインしようと思えばロックインできるけれども、それはしないので信用してほしい、ということです。

AWSを主業とするベンダーが、「Amazon Linux 2、Correttoはタダで長期サポート!、これはすごい!」と強くポジティブに反応するのはわかるのですが、第三者的な立場からすると、そうはいかないよなあというのが本音です。

経営的にAWSと強くコミットすることを決断した企業は、それはもう使いに使うと思いますしそのような企業も増えているのでAWSは成長しています。一方で「そうではない」というのも一理あると思いますし、これは一概には言えない話です。

 

・・ということで、私の予想としては、今のAmazon Linux 2のように、CorrettoはAWSに限定して使われると思っています。予想が当たるか外れるかはともかく、客観的な評価視点は持ち続けるべきだとクラウドの世界にいて思う次第です。

 

 

HTTP-over-QUIC(HTTP/3)の使いどころに気が付いたのでメモ

f:id:orangeitems:20181114194659j:plain

 

なぜHTTP/3はUDPを使おうとしているのか

前回のエントリーで、HTTP/3がUDPを使うと知っておののきました。

 

www.orangeitems.com

LAN内のセキュアなネットワークならともかく、インターネットでUDPをANYにオープンするサービスが増やすのはどうなんだろう---。

 

しかし、GoogleやIETFが精力的に策定を進めているところからすると、何か強いモチベーションがあるのだろうと思って考えていましたら、使いどころを思いつきました。しっくりきたので記事にしておきます(エンジニアの妄想ですので、話半分に捉えてください)。

 

思いついたこと

思いついたことはこうです。

CDNネットワークのエッジサーバーについては、UDPによるHTTP/3対応をします。そしてChromeなどのWebブラウザについてもHTTP/3クライアント対応をします。そのうえで、CDNが見に行くオリジンサーバーに対してはHTTPS (over TCP)のままとするのです。動的なページやキャッシュの時間切れのみオリジンサーバーにアクセスします。

そうすれば、データセンター側のサーバー運用は相変わらずUDPがクローズドのままで十分運用できます。サイズの大きい静的コンテンツはCDNにキャッシュさせておきUDPで配信するのです。

そもそも、HTTP/3の目的は大容量のバイナリファイルや、ストリーミングの高速化が目的と聞いていました。とすれば、CDNでのコンテンツデリバリーには最適です。かつオリジン側は動的ページの生成でありアウトプットとしてはサイズが小さいので、強いてHTTP/3にする必要はないと思います。

今後、4K/8K、そして5Gにて映像のサイズはどんどん大きくなっていくのに、相変わらずTCPでデリバリーしていかなければいけないCDNやGoogleの悲鳴が、HTTP/3を強く推進しているのではないか、と感じました。UDPで配信すれば速いのがわかっている。

もちろん、IP制限をしている拠点間で、サーバー側のHTTP/3を有効にしてUDPも通して大型のファイル転送をスムーズに行うのはアリだと思います。ただ大きな目的は、エッジのUDP化であり、インターネットにおける放送の最適化なのだと考えると腑に落ちた次第です。

 

セキュリティーも大丈夫っぽい

もしエッジだけUDPを開けるのであれば、ここにUDP Floodをかけたとしてもオリジンまでは届きません。オリジンに取りにすらいかないでしょう。HTTP/3はTCPのセッションを取り込むようなので、無茶苦茶なUDPパケットは破棄します。そしてCDNネットワークはそれこそ巨大な帯域を持ちますので、攻撃者のルーティングを捻じ曲げて終わりだと思います(GitHubのときにAkamaiがやったように)。

データセンター側は相変わらずTCPのみにしてファイアウォールでガチガチに固めておいて、配るエッジと端末の間はUDP。これがHTTP/3による近未来かどうかは、数年先にはわかると思います。もしかしたら全然違う実装を予定しているのかもしれません。引き続きHTTP/3の進展を待ちたいと思います。

(予想が当たるか外れるかはともかく)CDNとWebブラウザがHTTP/3を実装したら、ぜひ使ってみたいです!。

 

HTTP-over-QUIC(HTTP/3)って、UDPなの!??

f:id:orangeitems:20181113185752j:plain

 

 

HTTP/3のお話

IETFやGoogleは、Webの世界を発展させるためにはHTTP/HTTPSをもっと最適化させなければいけないと思っています。これは正しいです。

ただ、今考えられているHTTP over QUIC、これをHTTP/3と呼ぶ、と決まったらしいのですが。

 

gigazine.net

インターネットのネットワークプロトコルを標準化する業界団体のInternet Engineering Task Force(IETF)が、これまで「HTTP-over-QUIC(hq)」と呼ばれていたプロトコルを「HTTP/3」という名称に変更すると発表しました。

 

技術的な説明は下記が詳しいです。

 

asnokaze.hatenablog.com

 

asnokaze.hatenablog.com

 

で、私なぞは基本サーバー屋だったのでネットワークのこのあたりのプロトコルスタックの話は読んでもなかなか頭に入ってこないのですが。このUDPを採用しているあたりに恐怖感があるのです。

 

UDPによる様々な攻撃

TCP/IPにおけるトランスポート層は、TCPとUDPがあることは有名です。アプリケーション層であるHTTPやHTTPSは、TCPにくるまれて送受信されています。

TCPは、セッションを確立しないと通信そのものが始まりません。その後も受け取ったかどうかの確認を行いながら通信を行い、終了確認まで行います。したがって、セッションを確立する手順を経ないでパケットを投げつけても、ファイアウォールなどで弾くことが可能です。セキュリティーの教科書的な考え方です。いろいろと理論はあるのですが今回は大雑把に説明します。

最近は、なんでもかんでもHTTPSでやろうというトレンドがあり、HTTPはできるだけなくそうというGoogleの意向もあり、HTTP over なんたらかんたら、という通信手順が非常に増えたのは実感できると思います。

一方で、UDPはセッションレスと呼ばれ一方的にパケットを投げつけても良いことになっています。有料のファイル転送ソフトウェアはUDPを使うことで、SCPやSFTP、FTP、CIFSを使うことに比べ数倍早く送ることができるようです。ただし、ファイアウォールでUDPのポートをオープンしておかないといけません。特にUDPはセッションを見ないので、インバウンドもアウトバウンドも両方通信できるようにしてあげる必要があります。ステートフルセッションの設定ができません。

さて、このUDPですが、UDP floodという攻撃が大変有名です。例を挙げていきます。

 

DNSリフレクション攻撃

下記にわかりやすい説明を置いておきます。

「DNSリフレクション(リフレクター)攻撃」とは? | マルウェア情報局

UDPは、IPアドレスの詐称がTCPより簡単なので、ボットネットからたくさんのリクエストを53/UDPをオープンするDNSサーバーに大量に送り、攻撃対象のIPアドレスに大量のUDPレスポンスを返す。

流行当時は、オープンリゾルバ撲滅運動のようなものが起こりましたね実際。

オープンリゾルバ(Open Resolver)に対する注意喚起 - JPNIC

 

memcachedリクレクション攻撃

これは、当ブログでも過去説明しました。

GitHubとmemcachedとDDoS攻撃とAkamaiの件。きちんと理解する。 - orangeitems’s diary

UDPを開けっぴろげなmemcachedに、ガツガツget要求を投げ、またまた送信者を偽装する。GitHubはこれで大量のトランザクションを投げつけられAkamaiが救ったという件です。

memcachedをちゃんと閉じろ運動が起こりましたねこれも。

memcached のアクセス制御に関する注意喚起

 

とにかくUDP使うなら何でも

まとまっている記事がありますので紹介しておきます。

リフレクション攻撃(アンプ攻撃)を防御する方法 | ブログ | 最新情報 | A10ネットワークス ロードバランサ|アプリケーション配信|プロキシ|DDoS防御

このタイプの最も一般的な攻撃では、数百万もの無防備なDNS、NTP、SSDP、SNMP、その他のUDPベースのサービスを使用します。このような攻撃は、1.3TbpsのMemcachedベースのGithub攻撃など、記録的な大容量攻撃となっており、これらのDDoS攻撃の大部分を占めています。以下の図1のグラフは、2018年7月のある1週間において、DDoS攻撃の約73%がamp_flood(増幅かつフラッド型)だったことを示しています。こちらから、現在の攻撃プロトコルの頻度のチャートを確認できます。

UDPは送信者を簡単に偽装できる、ことから始まる無限のストーリーです。

今回、HTTP/3がUDPを使うと聞いて、かなりの不安を持っています。何番を使うかは知りませんが、UDPを待ち受けるサービスなど無くなってしまえばいいのにと個人的には思っておりました。

LAN内のセキュアなネットワークならともかく、インターネットでUDPをANYにオープンするサービスが増やすのはどうなんだろう---。

 

ファイアウォールで閉めればいいは間違い

UDP floodを食らったシステム運用者はわかるはずです。

ファイアウォールは無力です。

数Gbps~数十Gbpsのトランザクションを一方的に投げられたら、ルータのCPUが100%になって、正常な通信ができなくなります。

Akamaiなど、CDN業者の超広帯域で吸収してやらないと攻撃を回避できないのは有名な話です。上のGitHubの話などがそうです。

一方で、Youtubeを持つGoogleや大量の通信をさばくCDN業者が、UDP通信をHTTPSの世界に適用することへの魅力もよくわかります。彼らもUDP Floodに対しては何か知恵があるのでしょう。ただし、そこまでは現在情報が公開されていないように見受けられます。

私がシステム運用を行う際には絶対にUDPのインバウンド通信は通してませんが(リフレクションの踏み台にならないために)。

ハラハラしながらこの件の進展を待ちたいと思います。

 

追記(2018/11/14)

最新のドラフトを見つけましたが、なかなか読み込むのが大変そう。ConnectionとかStateとかいう表現を捉えるに、UDPにTCPが持つトランザクション系の一部機能をくるんで、アプリケーション側に管理させようとしているように見えますが・・。

 

datatracker.ietf.org

 

追記2(2018/11/14)

いい使い方に気が付いたのでメモ。

 

www.orangeitems.com

 

さようなら、インターネット掲示板

f:id:orangeitems:20181112214338p:plain

原典:https://gigazine.net/news/20110415_nifty_serve/より引用

 

掲示板の終わり

Yahoo! Japanの掲示板サービスであるtextreamが終了となるそうです。

 

www.itmedia.co.jp

ヤフーは、掲示板サービス「textream」(テキストリーム)を年内いっぱいで終了する。「株式」「FX、為替」カテゴリのみ残して「Yahoo!ファイナンス」に移管し、そのほかのカテゴリは閉じる。

 

インターネットにおける掲示板の祖先というと、2ちゃんねるのことを思い出される方が多いでしょうがこれは違います。ニュースグループという存在がインターネット普及期にはありました。このニュースグループのクライアントですが古くはOutlook express、Netscape Communicatorなどにも搭載されていました。

 

ニュースグループ - Wikipedia

ニュースグループとは、ネットニュースにおいて話題のテーマや目的別に分けられた、記事の集まりのことである。あるグループを購読すると、そのテーマや目的に添った記事を読んだり、投稿したりすることができる。利用に関して、習慣的に「購読する」という言葉が使用されているが、ISP利用料以外は原則的に無料である。

 

日本にも、fj.*という巨大なニュースグループもあったのですが、いつの間にか無くなってしまったようです。

 

fj (ニュースグループ) - Wikipedia

京都大学のネットニュースサービスが3月をもって終了 | スラド

 

パソコン通信、ひいてはNifty Serveの掲示板の流れを組む、インターネット掲示板サービスは今回のYahoo!掲示板後継textreamの終了をもって、一つの区切りを迎えることになります。純粋な掲示板と言えば5ちゃんねるしか見当たりませんが、最近は世の中も5ちゃんねるを注目する機会も減りました。SNSの台頭が掲示板の衰退を招いたと言えます。

 

ネットワークにおけるコミュニケーションチャネル

私は20年ほど前に大学の卒論で、ネットワークにおける掲示板やチャットにおける人間の心理について書きました。そのときの結論が、「匿名性が高くなると他人への攻撃性が高くなりモラルが下がる」だったのですが、その時の仮説は当たってたなあという感想です。

卒論には、メディアにはいろいろ種類があり、特徴があるとも書きました。

・メール=非同期。相手は決まっている。1対(1or 多)のコミュニケーション。
・掲示板=非同期。相手は不特定多数。多対多のコミュニケーション。
・チャット=同期。相手は決まっている。1対(1or 多)のコミュニケーション。

メールについては、メールアドレスがあるので間違いなく、コミュニケーションを取る相手が特定されています。

掲示板については、投稿したとしても誰が読むかはわかりません。また、その掲示板トピックについてレスポンスがあったとしても、自分に向けて書いたものではない可能性もあります。誰かと誰かが言い争いを始めて、投稿者が置いてけぼりになる可能性もありました。そういう意味で多対多のコミュニケーションです。

チャットは、1対1か、もしくはLINEのグループチャットに似た1対多です。LINEは後から返信しても言い分非同期的な側面もあるのですが、基本は同期的なコミュニケーションになるのではないかと思います。なお、誰でもチャットルームに入って不特定多数の人と話すという形のサービスもあったのですが、長続きしませんでした。

本日時点で、掲示板サービスはどんどん廃れ、メールとチャットはまだ元気です。この違いは相手が不特定多数なのか、特定なのかという違いがあるのでしょう。人類は、知らない人とあまり関わり合いになりたくないのです。出会いは欲しいけれども、コントロールしたい。

SNSがその答えでありコミュニケーションする人を自分が主体的に選べる性質を持ちます。また、不特定多数へテキストを公開したい人はブログに移りました。

長い時間をかけてインターネットは、双方向コミュニケーションの形を最適化し、Yahoo!掲示板の延長上のTextreamが無くなるというイベントを迎えました。

 

なるべき姿に

この状況は、おそらく「匿名性が高くなると他人への攻撃性が高くなりモラルが下がる」と私が学生の際に思った結論が、人類にジャブのように効いていき、運営側もこんな殺伐としたサービスを継続する意味は感じられない、とモチベーションがダウンしていき、現在、なるべき姿になったという感想を持っています。

とは言え、匿名掲示板のような人間の暗い部分を体現したような場所は社会の精神衛生上一定の面積は必要と思われ今後も細々と残っていくのでしょうが、本件で一定の役割を終えたように思います。

さようなら、インターネット掲示板。

  

NIFTY‐Serveアクセスガイド〈’95〉 単行本 – 1995/7