本記事では自宅サーバーををルーター化する方法をご紹介致します。
ノートパソコンなどの小型パソコンをルーター化したい方
ルーターとは?
ルーターとは、ネットワーク内の複数台のパソコンをインターネットに接続することができる機械です。ネットワークの信号を分岐したりする「ハブ」とは違い、WAN側(インターネット側)のポートからLAN側(イントラネット側)ポートへの情報とその逆の信号を交通整理する機械です。このため、2つのLANポートとWANポートが実質必要です。
LAN側には、プライベートIPアドレスを割り振るためのDHCPサーバーの機能があり、WAN側にはプロバイダーと契約しているPPoE方式やIPoE方式などのデータ通信ができるようになっています。
以下ではもう少し丁寧に紹介します。
WANとLANの違い
LANとはローカルエリアネットワークのことです。一方、WANとは遠く離れた場所と繋ぐネットワークのことです。このLANとWANの主な違いとして以下の特徴があります。
LAN
- 局所的ネットワーク
- 多数のコンピューターやネットワークに接続
- ツリー型トポロジーもしくはメッシュ型トポロジー
- 低速での通信
- セキュリティーが低い
WAN
- 広域ネットワーク
- 物理的に同じ場所にあるコンピューターやネットワークに接続
- バス型トポロジーもしくはスター型トポロジー
- 高速通信
- セキュルティーが高い
グローバルIPアドレスとプライベートIPアドレス
WAN内で割り振られるIPアドレスはグローバルIPアドレスと呼んでいます。一方、LAN内で割り振られるIPアドレスはプライベートIPアドレスです。グローバルIPアドレスは、インタネット上で一意である必要があるのに対して、プライベートIPアドレスはローカルネットワーク内のデバイスに割り荒れ照れており、インタネット上で一意である必要がありません。このため、プライベートIPアドレスをインタネット上で利用するためには、ネットワークアドレス変換(NAT)が必要となります。
サーバーをルーター化するための方法?
市販で購入できる小型ルーター機には、様々な機能が備わっています。
例えば、一般的なルーターの機能一覧として下記のようなものがあります。
- 無線機能、
- フィルタリング機能
- ルーティング機能
- モデム機能
- IPマスカレード機能
- ポートマッピング機能
- DHCPサーバー機能
- アクセスログ機能
- VPN機能
サーバー機を無料でルーター化するフリーソフト
- pfSense:オープンソースのファイアウォールおよびルータープラットフォームで、高度な機能やセキュリティ機能を提供します。
- OPNsense:pfSenseから派生したオープンソースのファイアウォールおよびルータープラットフォームで、高度な機能やセキュリティ機能を提供します。
- RouterOS:MikroTikによって開発された、高度なルーティング機能とセキュリティ機能を備えたルーターOSです。
- DD-WRT:多くのルーターモデルで使用できる、オープンソースのルーターOSで、高度な機能を提供します。
Ubuntu機をルーター化するためのオープンソフト
これらの機能を一通り使えるようにしてくれるオープンソースソフトがあります。
- 1. dnsmasq
- 2. iptables
- 3. hostapd
- 4. ppp
Ubuntuでインストールする場合は以下のコマンドでそれぞれソフトウェアをインストールします。
sudo apt-get install dnsmasq
sudo apt-get install iptables
sudo apt-get install hostapd
sudo apt-get install ppp
sudo apt install isc-dhcp-server
ハード側の設定
サーバーに2つのネットワークインターフェースを追加します。このために、Linuxマシンを用意し、二枚のNICを指します。片方は、WAN(ワイドエリアネットワーク)側で、もう片方のNICはLAN(ローカルエリアネットワーク)側となるようにインターフェイスを分けます。
WAN側の設定
PPPの設定
サーバー上のWAN側には、pppをインストールします。
LAN側の設定
サーバー上のLAN側には、ルーティングソフウェアをインストールします。ルーティングテーブルとIPマスカレードの設定を行います。この設定で、WANインターフェースとLANインターフェイスを接続して、サーバーがルーターとして機能するように設定します。
IPマスカレードの設定
グローバルIPアドレス1個で、内部の複数のマシンが同時にインターネットを利用できるようにする。これにようりIPアドレス資源を有効に使用できます。
Linuxカーネルに組み込まれているファイアウォールで、ルーティングやNAT機能をサポートしています。コマンドラインベースの設定で、高度な設定が可能です。
iptablesでは、サーバーへ接続される通信ルールを設定できます。ローカルネットワークからは、インターネットに接続することができない場合、ローカルネットワークから、WAN側にでられるように許可するためiptablesを構成します。またIPのフィルタリングを掛けたいといったことができるようになります。
DNSサーバーの構築
dnsmasqは、軽量で高速なDNS(Domain Name System)とDHCP(Dynamic Host Configuration Protocol)サーバーで、LinuxやUNIX系オペレーティングシステムに広く利用されています。
dnsmasqは、小規模なネットワークに最適であり、特に自宅やオフィス内のネットワークに適しています。dnsmasqは、ローカルホスト上の設定ファイルから、クエリに対する応答、DHCPアドレス割り当て、DHCPオプションの配布など、さまざまな機能を提供します。
dnsmasqは、標準のLinuxディストリビューションであるUbuntuやDebianなどの多くのLinuxディストリビューションに含まれており、簡単にインストールすることができます。
DHCPサーバーの構築
isc-dhcp-serverとは、Internet Systems Consortiumが開発した、LinuxやUNIX系オペレーティングシステム用のDHCP(Dynamic Host Configuration Protocol)サーバーです。isc-dhcp-serverは、DHCPサーバーの役割を担い、クライアントがネットワークに接続されたときに必要なIPアドレスやその他のネットワーク情報を割り当てることができます。
DHCPサーバーの構築を行い、LAN側のPCに自動的にプライベートIPアドレスが割り振られるようにします。ローカルPCの名前解決は行わなくてもよいでしょう。
最後に、サーバーのLANインターフェースには、ローカルネットワークで利用するIPアドレスを設定します。IPアドレスにはプライベートIPアドレスをりようします。
必要に応じて、ポートフォーワードやNATの設定を行い外部から内部へアクセスできるように対応します。
まとめ
✔ サーバーをルーター化する方法を紹介しました。