UDPを受け入れる

開発:それでUDPを使った高速データ転送の件ですが。

社長:あれについては我社はかなり本気モードです。

基盤:公開されてるサーバへのアップロードはまだ良いとして、ダウンロードのために自分ちの玄関に穴を開けとくのは嫌ですね。

開発:そもそも受信してから、これは妙なところから来たパケットだなとかアプリケーション層で判定するのも今ひとつ。

基盤:DOS攻撃とかやられたら嫌ですね。

開発:なので、ルータレベルで、オンデマンドに特定のソースアドレスからだけを通すようにしたい。データ転送を始める前に、指定したアドレスからのUDPだけを受け取るように設定して、受信が完了したら速攻で閉じる。

基盤:iptablesをいじれば一瞬でしょうね。

社長:うちにあるルータですと、設定を変えると90秒間リブートでネットから遮断されます。

一同:(笑)

基盤:UnixでやればOSのルータ機能で簡単にできるわけです。性能的にも50MB/sの単純中継ならラズパイで足りるかもと。

開発:でもネットの口は2つ必要なんじゃないですか?

基盤:いえ、たとえばUDPは全開にして、全部ラズパイに投げる、で良いかと。

社長:開発のしやすさから言うと、ふつうにiMacでやればいいんじゃないですかね。

基盤:現状、あのへっぽこルータが生活線をささえてますから、できれば実験は別の回線にしたいですね。もうひとつ、プロバイダと契約するんですかね?

開発:今入っているV6プラスというやつ、使えるポート番号がトビトビのスカスカなのもなんですね。

基盤:4096ポートごとに15ポートですね。要するにIPマスカレードと言うかNAPTをやってるんですかね?

社長:ライトセールがV6使えないらしいのは痛いですね。ひとつくらいEC2を入れてもいいのかなと。

基盤:EC2は無料使用キャンペーンばりばりですしねw

開発:クラウドのファイアウォールではねた場合には通信料金は免除してくれそうな気もするんですよね。VMまで到達してから拒否した場合にはおそらく、課金されてしまう。

基盤:まあ、ファイアウォールの設定はブラウザでやっているわけで、HTTPのメッセージの仕様がわかれば自動でできますね。ただ、ライトセールでも数秒はかかってしまいますが。

開発:管理者の認証もしないといけないから、ブラウザで認証を通して、あとはそのブラウザに対してメッセージで指令するって感じですかね。

社長:そういえば、ブラウザ改造祭りやってたのもずいぶん昔のような気がします。

開発:まあ結局、ブラウザよりシェルのほうが断然面白いです。なにせゼロから好きなように作れますし、実装は簡単だし。

基盤:ブラウザも、Goのパッケージレベルに部品化して、shellで組み合わせればいいんじゃないですかね。

社長:うちはだいたい3日間の短期スプリントで切り替えてきましたが、GShellは1週間になりますね。

開発:ブラウザに対してちょっかいかけたり、その他もろもろ当社のインフラやアプリを統括するのもこのシェルになると思います。

社長:ついに出発点に立てた感じはしています。

— 2020-0811 SatoxITS

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です