自宅サーバの思い出 Advent Calendar 2016

タイトルそのままです。

自宅サーバの思い出 Advent Calendar 2016の13日目の記事です。

www.adventar.org

ボタンを押せば希望のスペックのサーバが降ってきて、IPアドレスも付いていて、設定すればアプリケーションもデプロイされて、クラウド刺せばIPアドレスが降ってくる どころの話じゃない。 仕事とかで使う分には本当に楽で良いんだけど、やはり家にサーバがないのは寂しい。

現在の装備

サーバとして使ってるやつとネットワーク機器

f:id:kuro_m88:20161213224941j:plain

  • Fit-PC2
    • CPU: Atom Z530 (32bit CPU)
    • RAM 1GB
    • HDD 320GB
  • Intel NUC
  • NEC IX2105 (ルータ)
  • NEC IX2005 (ルータ)

f:id:kuro_m88:20161213225730j:plain

f:id:kuro_m88:20161213224954j:plain

今持っているものはこんな感じ。

自宅サーバを始めたきっかけ

大学1年生の時に大学の授業とかで初めてサーバにsshでログインして、自分も家で触りたくなったのがきっかけだったような。 当時は自分のものはWindowsのノートPCしか持っていなくて、Linuxのサーバというのはとにかくかっこいい気がしていて、ApacheIt Works! が出るまでのところを自分でやってみたかった。

家族用に自作したPCの予備でHDDは持っていたのと、ノートPCのメモリを載せ替えた余りのメモリがあったので新たに買ったのはマザーボードとPCケースだけ。 安くて消費電力が低いやつを探していたのでAtomD525が載っているマザーボードにした。

VMUbuntuのインストールはやった事があったので、インストール作業自体はそんなに手間取らなかった。 sudo apt-get install apache とか打って、Apacheを入れるのもあっさりできて感動した。

なんか繋がる

家の中でApacheが見られるようになって、今度は家の外からアクセスできるようにしたくなった。 ググると、 ポート解放 なる作業が必要らしい。 ポート解放するためにはルータにブラウザでアクセスして、何か設定が必要だという。 たいていは 192.168.0.1 とかにアクセスすると認証画面が出ると書いてあったけれど、アクセスしても繋がらないというエラーしか出ない。困った。 サーバのIPアドレスを確認しても、 192 で始まっていないし、 12x.xxx.xxx.xxx みたいに見たことない数字で始まっている。(ここで気づくべきだった) ネットワーク勉強したことないからよくわからん、Wi-Fiの設定だけで2日掛かったしやっぱダメかと思いつつ、先程のIPを大学から打ってみた。 すると…

f:id:kuro_m88:20161213232802p:plain

キタ━━━━(゚∀゚)━━━━!! なんと繋がってしまった。そう、後に知ったけれど自宅にプライベートIPなんてものはなくて、グローバルIPが直接降ってきていたのだった。

今だから分かることだけれど、実は家の回線は集合住宅向けのネット接続サービスだった。 最初から用意されているので、家にモデムを置いたこともなければ、そもそもルータなんてものはなかった。 あったのはスイッチングハブだけで、1戸あたり /29グローバルIPが降ってきていた。 NATもファイアウォールもなしに一般家庭のPCがグローバルIPを持っているのは大丈夫なのか…?

楽言えば楽だし複数IP使えるのは嬉しいけど、このせいでNATとかプライベートIPとかグローバルIPの概念が全然理解できなかった。

LXCとの出会い

家にサーバを置いて、用もなく外からsshしていると間違えてシャットダウンさせたり、NICの設定を間違えて疎通を取れなくしてしまったりトラブルはちょくちょく起こしていて、その度に色々と勉強になった。

そのうちホストの環境はあんまり汚したくないと思うようになって、KVMの事も調べてみたけれどCPUがAtom D525という貧弱な環境ではつらくて、そんなにお金ないしなぁと思っていたところに出会ったのがLXCだった。

LXCはLinuxのコンテナ技術で、ネットワークとかディスクのリソースを隔離してくれるのでコンテナ型のVMのような雰囲気で使える。

LXDとの出会い

いつから使い始めたかわからないけど2015年の8月には使い始めていた模様。

fit-PC2は社会人になってから手にいれたけれど、32bit CPUでLXCを使おうにも64bitマシンとバイナリが違って不便だし、ファイル転送するとNICが熱を持って死んでしまって通信できなくなるので疎通監視くらいにしか使えなかったのでIntelのNUCを買った。 Intel NUCは小さくて消費電力も低くて、音も耳を近づけないと聞こえないくらいだけどLXDでいくつかホストを常時起動しておくくらいなら十分な性能。

その後

ネットワーク系の友達にルータ(NEC IX2005)を貰ってしまい、わけもわからず使い方をググっていたり教えて貰ううちにVPNが張れるようになり、気がついたら5人くらいの家とVPNしていて、BGPで経路が勝手に流れてくるようになっていた。 JuniperのSRX300とか欲しくなってきたし、タダより怖いものはない。

最近CiscoのAironetも中古品を買ってしまった。

今後の展望

友達とかの繋がりで、データセンタに個人のサーバを置かせて貰えるかもしれないという話が舞い降りてきた。 ただ、肝心のラックマウントサーバを持っていないのでそれに向けてヤフオクでよさげなサーバを探している。

1UでCPUが6〜8コア 12〜16スレッド、メモリが32GBくらい、HDDが1TB x 2、NICは2本以上のスペックでいいやつが見つかるといいなぁ。

突然自宅を飛び出してDCにサーバを設置することになったけれど、NUC1個くらいは静かだし家で飼っておきたい。