実は、ほとんどインフラとして手を動かす仕事をしていない。で、どのくらい知識がついたのか。

今まで読んでもすぐに忘れてしまうようなTCP/IP。今読めば「ああ!」と。
このことから学んだのは「ネットワークはレコードのビットとかから覚えるのは間違っている」ということ。先に概念を学んでから詳細を学べばいい。

知識よりも、経験を積む方がよほど力が付く。自宅で体験するにはVMを利用するのがいい。

今はサーバやネットワークを学習するにはとてもいい時代になった、とつくづく思う。
OS上で動くルータか、OS自体がルータの役割をするものか。OS上で動かすならデバイスドライバが必須だろう。後者の方が断然楽だろうけれど、軽量であるべきだろう。

ならWindonws系はなしで、UNIX系だろう。Linux系のCentOSは試したので除外。Debian系でだと思うがvyOSはちょっと情報が足りないし、設定が飛ぶことがあるこれが安定すればいいのだろう。ちなみにvyOSはVyattaってのがオープンソース化されたものらしく、元のVyattaの更新は止まっているらしい。
また、SEIL/x86ってのもあった。日本のインターネット黎明期から活躍しているIIJのもののようだ。フリーなのかどうかは不明で、ダウンロードサイトらしいのは見つからなかった。

軽量であればTRONが使えないか。B-TRON上に、となるとOS上で動くルータとなり、やはりデバイスドライバとかが要りそうであるし、そういう情報もなさそうである。ITRONも然り。
Androidはどうか?パソコン用もあり、VM上でも動くそうだがうまくいかなかった。


そんなこんなで足掻いていると、ふと「SDN」を思い出した。その類では OpenFlow が少し先行しているか。Tremaという開発環境らしきものがあるらしい。ネットワークの物理層からプログラミングをすることができる(というか、しないとダメだろう。)
これが今のところ一番手っ取り早そうだ。Rubyとかを使えるそうだが、通信の処理にRubyで対応ができるのかは心配ではある。しかし、試してみるには面白そうではある。


VM環境のCentOSでルータ、NTP、DNSを作成した。しかし、単機能のものならOSをフルでインストールする必要もなく、それに特化したものがあればいい。

俄然、作ってみたくなった。そう、仮想ルータ、仮想スイッチくらいなら作れるんじゃ?と。

しかしそんなに甘いものではない。

TCPやUDPの知識があれば内部の処理は作れそうではある。問題はインターフェース、つまり、仮想のNIC(LANポート)の作成だ。
おそらくはPCに「これがLANポートだよ」と分からせ、制御できる必要がある。OSから使うにはデバイスドライバの作成も必須になるだろう。一人でやるにはハードルが急激に上がった気がする。

面白そうだが、かなり時間をかけないと難しいだろう。となれば、いかにその時間を生み出すか。そこを解決する必要がある。
またバックログが積みあがっていく・・・。