自宅にサーバー環境を作る前にネットワークのおさらい。
こんにちは
現在無職で職業訓練校にて Javaをお勉強しております。
職業訓練に来ている面々とは仲良くやってまして、プログラマではないにしても私のようなIT業界にいた者はプログラミング未経験者に教える事ができることもあります。
職業訓練では Tomcatを使ってサーブレットによる Webアプリ開発をしているのですが、未経験者にとって Javaプログラミングも難しいのに、開発環境の構築・維持や Tomcatといったサーバーの立ち上げというのは結構難しいように見えます。
訓練のお仲間に教えると仮定したら、何をどう伝えるかを考え、今回はお家でのお勉強に知っておくと良いよねって事を書こうと思いました。
企業勤めの人でも後輩に教える時に色々考えますよね。
で、これが私の家のLAN環境です。
一般的な家庭ではほぼほぼこんな感じかと思います。
これについては特に言うことも無く…。
このうち、光ルーターと無線ルーターに関して、それぞれのことを。
まず光ルーターなんですが、純粋なルーティング機能以外に以下 5つの機能があります。
- DNSサーバー
- DHCPサーバー
- NAPT(IPマスカレード)
- パケットフィルタリング
- スイッチングハブ
1.DNSサーバー
DNSサーバーと言っても自分で情報を持っているのではなくて、単に家の中の機器から DNSへの問い合わせ([https://〜.com]とかをIPアドレスに変換するための問い合わせ)を契約しているインターネットサービスプロバイダにあるDNSサーバーに中継してくれるだけです。
家の中の機器からは 光ルーターが DNSサーバーに見えますので、コイツが DNSサーバーなんだって知っていれば良いと思います。
私は家の中に作ったサーバーの名前解決(上の DNS問い合わせのこと)もしたいのですが、本当の DNS機能をもったルーターって家庭用ではみかけませんね。欲しいです。
2.DHCPサーバー
家の中の機器も全てがちゃんと IPアドレスを 1つずつ持っています。
自分で割り当てた覚えがないのは、この機能のおかげです。
機器が家の LANに繋がった時(電源を入れた時かな)に、DHCPサーバーに「IPアドレスを割り振ってくれや」という問い合わせをしています。
その結果、決められた範囲内の IPアドレスの中から他と重複しないよう 1つ割当がされます。
この時に家の LANの共通設定事項(DNSサーバーの IPアドレスと 家のLANの IPアドレスの範囲)も併せて機器に設定されます。
3.NAPT(IPマスカレード)
各ご家庭で契約しているインターネットサービスプロバイダからは IPアドレスが 1個しか貸与されていません。
しかし家の中には複数の機器があり、それぞれが IPアドレスを持っています。
光ルーターにある NAPTという機能で、家の中の機器からインターネットへのアクセスは全て光ルーターからのアクセスであるかのように変換してくれます。
光ルーターはこんな風にIPアドレスを 2つ持っています。
4.パケットフィルタリング
パケットというのはネットワークを行き来するデータそのものと捉えれば良いかと思います。
光ルーターの外と内、上の図で言うと黒い線と紫色の線との間で、特定の IPアドレスやポート(説明は割愛)から発せられたもの、IPアドレスやポートを目指してやってくるもの、これらが光ルーターを通過するのを拒否することができます。
セキュリティの確保のための機能で、できるならキリキリと設定しておくのが良いのですが殆どの人がやってないと思います。
ちょっと前に任天堂 Swichのスプラトゥーンというゲームで、ここの設定を変えておいた方が良いなんて話がありました。
5.スイッチングハブ
光ルーターの裏を見ると、[LAN]って書いてある所にネットワーク線を挿す口が 4つくらいあると思います。
これのおかげで有線機器を複数繋ぐことができます。
私の家では、私のデスクトップPCと無線ルーターと VoIPアダプタ(IP電話に使うやつ)を繋いでいます。
次に無線LANルーターなんですが、機能的には光ルーターと同じです。
最近の光ルーターには無線機能が付いているようですので、これを使わない家庭が増えているかも知れません。
買ってきたままだと多分初期設定ではルーターとして機能するようになっていますが、私はルーター機能はオフにして、単に有線から無線への変換だけをさせています。
これには理由があって、無線ルーターがルーターとして働いていると、無線ルーター以下の機器の LANと、光ルーター以下の LANが別なものとなってしまうからなのです。
家の中の機器同士での通信、例えば無線ルーターにぶら下がっている PCを WEBサーバーとして稼働させて光ルーターにぶら下がっている PCの WEBブラウザからアクセスする場合にやや面倒なことになります。
これはサーバーのお勉強の観点ではノイズなので排除しています。
(ネットワークのお勉強にはなるけど一々面倒臭い。)
さて、このホームページでは「家の中でサーバーを立ち上げてお勉強をしましょうね」と言ってるのですが、前提の環境を整備するという点での大まかな方法としては 2つ。
- PCを買ってくる
- 既存のPCに仮想環境を作る
私はお手軽さや費用の面から2を使っています。
ただ現在お持ちの PCがスペック的に手狭とかの場合は、中古のPCを買ってくる手もありますね。
お勉強の度合いによりますが、LinuxOSを使ってみたいという程度なら、Core2Duoの中古PCでも大丈夫っちゃ大丈夫です。(メモリは 4GBくらい欲しいですが)
買ってきた PCの家庭内 LANへの接続は有線/無線どちらでも構いませんが、有線接続で光ルーター等に接続口が残ってないなんて場合は、スイッチングハブを買いましょう。
安いところではこのあたりですが、どこのを買っても問題ないと思います。
極力金をかけたくないというなら、通信速度が主流の 1Gbit/sではなく 100Mbit/sの旧いやつならブックオフで 300円で売ってました。
ジャンクで売ってる無線ルーター(1Gbit/sのスイッチングハブ機能を持っている)でも代用できるのですが、これが 500円くらいです。
無線ルーターをスイッチングハブで使う場合は、ルーター機能と無線機能を全停止にします。
接続はこんな感じになりましょうか。
これでハードウェア的な環境は揃ったということで、次はソフトウェア的なところを。
まずサーバーというのは基本的に固定IPアドレスで運用するものと思って下さい。
これは DHCPサーバーからの IPアドレス貸与を受けない事を意味します。
ですので固定IPの枠を DHCPサーバーが貸与する IPアドレス範囲から除外しないといけません。
我が家の光ルーターにある DHCPサーバーの例をこちらに書いていますので、よろしければご参照下さい。
どんな家庭用のルーターでもこの機能はあると思います。
「自宅環境のDHCPサーバー設定変更」
私は全部で 254つのうち数十個の固定IPアドレス枠を確保しております。
次に仮想環境のこと。
私は VMWare Workstation Pro という個人利用であれば無料の製品を愛用しています。
このソフトのインストールについてはこちらに書いています。
「VMware Workstation Pro インストール」
このソフトを使って仮想マシン(≒仮想OS)を作る際のネットワークの選択肢に[ブリッジ][NAT]がありますが、これらの違いはどういうことかというと、こういう感じです。
物理的なネットワークの接続は有線/無線に関わらず 1つあるだけですが、ソフト的にこんなネットワーク構成をエミュレートしています。
1.ブリッジ
スイッチングハブを買ってきてPC(仮想OS)をそこにつないだのと同じ。
仮想OSが独立しているイメージで、これが普通の感覚かと思います。
2.NAT
こちらは仮想OSから外向きの通信(例えばインターネットアクセス)はOKなんですが、外から内への通信は NGなんですね。
これから仮想OSにサーバーを立てようとしているのに、アクセスができないのは困ります。
VMWare Workstation Proをインストールしている OSからはアクセスできるので、大丈夫と言えば大丈夫なんですが、例えば仮想OSに WEBサーバーを立ててスマホからアクセスしたい場合は難儀します。
これもネットワークのお勉強にはなるんですが、サーバーのお勉強となるとノイズですね。
よって私のオススメはブリッジなのです。
長々と書いてきましたが、この辺に注意しておけば後は仮想OSだろうがラズベリーパイや他IoT機器(最近初心者用のお手頃価格のも出てきました)だろうが家庭内LANに繋いで、他の機器と通信させることができると思います。
私は最近 IoT機器に興味があって、こんなのを欲しいな〜なんて思っています。