ルーター
ルーター【router】
デジタル大辞泉(小学館)より引用
1 彫刻機。彫刻工具。
2 異なるコンピューターネットワーク間を接続する通信機器。パケット転送の経路選択、選別と破棄、経路情報の管理などの役割を担う。
目的
今回のルーターを構築する目的は、宅内の検証用環境(インターネット未接続)に接続されているコンピューターをインターネットに接続し、Visual Studio IDE(総合開発環境)へのNuGetインストールや、クラウドサービス(Azure DevOpsなど)への接続を実現することです。
また、インターネットに接続することでセキュリティーパッチの更新もおこなえるようになりますので、いろいろな不具合に対応することも可能となります。
ただし、費用をかけるつもりはありませので、インターネットに接続するためのルーターには自持ちのパソコンを使用し、目的を達成する予定です。
また、ハブなどの他の機器類に関しても、パソコンと同様に自持ちの機器を活用します。
ウブントゥ【Ubuntu】
weblio辞書より引用
Linuxをパッケージ化したLinuxディストリビューションの一。インストールが容易なことで知られる。
ネットワーク構成
下図のネットワーク構成図の通り、インターネット接続用ネットワーク(192.168.1.0/24)と検証用ネットワーク(192.168.255.0/24)は別セグメントとなっています。
ですので、検証用環境のコンピューターは現状でのインターネットへの通信はおこなえません。
最近では、インターネットに接続できないと機能的な制限をされたりと不都合なことが多く、クライアントにインストールしたツールも徐々にオンライン接続が主流となってきています。
そこで、そういった不都合を解消するために、検証用環境へUbuntuで構成したルーターを配置し、また、そのルーターを通して検証用環境のコンピューターのインターネット接続を実現しようと計画しました。
なお、ルーターからインターネット接続用の外部ルーターへは、WI-FIを経由して接続します。
準備
以下が準備した機器類となります。
すべて自持ちの機器類です。※OSのインストーラーはダウンロードしています。
パソコン | Dell INSPIRON N5050(ノートパソコン) 有線LAN、WI-FI機能搭載。 |
ハブ | ELECOM EHC-G05MN-HJB(ギガハブ) 家電量販店でも販売しているギガハブです。背面にマグネットがついていますので便利です。 |
LANケーブル | CAT6のLANケーブル。 |
OS | Ubuntu20.04 Ubuntuの公式サイトからUbuntuのインストーラーをダウンロードします。 |
ノートパソコンはディスプレイ、キーボードが壊れて倉庫で眠っていたため、丁度よい役割を与えることができました。※有線LANは100Mbpなので、そのうちラズパイに取り換えるかもしれません。
キーボードの壊れ具合をお見せすることはできませんが、ディスプレイの壊れ具合をお見せします。
液晶画面に横線が入っています。いずれ、液晶画面を交換する予定ですが、今のところはこのまま使用します。
以前、購入し未使用なまま放置していたハブです。
作業プロセス
以下に、パソコンにルーターを構成する作業プロセスをまとめした。作業プロセスに沿って進めていこうと思います。
- OSのインストール
- パケージのインストール
- IPフォワードの設定
- NAT(IPマスカレード)の設定
- サスペンドの解除
OSのインストール
はじめに、OSのインストールです。
OSにインストーラーをセットしパソコンを起動します。
「インストール」ウィンドウが表示されるため、[日本語] を選択し、[Ubuntu をインストール] をクリックします。
次に、キーボードレイアウントにて、[Japanese] → [Japanese] を選択し、[続ける] をクリックします。
次に、アップデートと他のソフトウェアにて、[通常のインストール] を選択し、[続ける] をクリックします。
[グラフィックスとWi-Fiハードウェアと追加のメディアフォーマットのサードパーティ製ソフトウェアをインストールする] をチェックしましょう。ドライバ類がインストールされますので、「WI-FIが繋がらない!」などのトラブルを回避することができます。
次に、インストールの種類にて、[ディスクを削除してUbuntuをインストール] を選択し、[インストール] をクリックします。
「ディスクに変更を書き込みますか?」ダイアログが表示されるため、[続ける] をクリックします。
次に、[どこに住んでますか?] と、地域の選択を求められますので、[Tokyo] を選択し、[続ける] をクリックします。
次に、[あなたの情報を入力してください] と、ユーザー情報の入力を求められますので、ユーザー情報を入力し、[続ける] をクリックします。
あなたの名前 | 名前を設定します。名前をアルファベットで設定した場合、ファーストネームが [ユーザー名の入力] に自動的に設定されます。 |
コンピューターの名前 | コンピューター名を設定します。 |
ユーザー名の入力 | 名前をアルファベットで設定した場合、自動的されますが、変更することも可能です。 |
パスワードの入力 | パスワードを設定します。 |
パスワードの確認 | 確認のため、再度、パスワードを設定します。 |
インストールが開始されます。
インストール後、再起動が要求されますので、再起動を実施します。
パケージのインストール
続いて、パッケージのインストールとなります。
デフォルトでは、「iptables-persistent」がインストールされてませんので、「iptables-persistent」をインストールします。
以下のコマンドを実行し、「iptables-persistent」のインストール状況を確認をします。
dpkg -l | grep iptables-persistent
「iptables-persistent」は、インストールされていませんでした。
次に、以下のコマンドを実行し、「iptables-persistent」をインストールします。
sudo apt install iptables-persistent
次に、「iptables-persistent」のインストール時に、[現在の IPv4 ルールを保存しますか?] を聞かれますので、[はい] をクリックします。
次に、[現在の IPv6 ルールを保存しますか?] を聞かれますので、[はい] をクリックします。
次に、「iptables-persistent」のインストール後、以下のコマンドを実行し、「iptables-persistent」のインストール状況を確認をします。
dpkg -l | grep iptables-persistent
「iptables-persistent」のインストールが確認できました。
IPフォワードの設定
続いて、「IPフォワード」の設定となります。
検証用ネットワーク(有線LAN)で受信したパケットを、インターネット接続用ネットワーク(WI-FI)へ転送するために、「IPフォワード」の設定値を変更します。
以下のコマンドを実行し、「IPフォワード」の設定値を確認します。
grep net.ipv4.ip_forward /etc/sysctl.conf
デフォルトでは、コメントアウト(行の先頭に「#」)が設定されていますので、コメントアウトを解除し、「IPフォワード」の設定値を変更します。
次に、設定変更後、以下のコマンドを実行し、「IPフォワード」の設定値を確認します。
grep net.ipv4.ip_forward /etc/sysctl.conf
「IPフォワード」の設定が有効化されました。
※net.ipv4.ip_forward=1
NAT(IPマスカレード)の設定
続いて、NAT(IPマスカレード)の設定となります。
NAT(IPマスカレード)を設定する際に、パソコンのWI-FIインターフェース名が必要になりますので、以下のコマンドを実行し、WI-FIインターフェース名を確認します。
ip -4 a
WI-FIインターフェース名は「wlp4s0」でした。
次に、「iptables」にNAT(IPマスカレード)設定を追加します。
以下のコマンドを実行し、NAT(IPマスカレード)設定を確認します。
vi /etc/iptables/rules.v4
デフォルトでは、何も設定されていません。
次に、以下のコマンドを実行し、NAT(IPマスカレード)の設定を追加します。
iptables -t nat -A POSTROUTING -s 192.168.255.0/24 -o wlp4s0 -j MASQUERADE
簡単なコマンドパラメーターの解説となります。
-t nat | natテーブル。 |
-s 192.168.255.0/24 | 送信元アドレス。今回は検証用ネットワークアドレス。 |
-A | 新しいルールの追加。 |
POSTROUTING | 送信時に変換するチェイン。 |
-o wlp4s0 | 送信先となるインターフェース名。今回はWI-FIインターフェース名。 |
-j MASQUERADE | IPマスカレード。 |
次に、設定変更後、以下のコマンドを実行し、NAT(IPマスカレード)設定を確認します。
vi /etc/iptables/rules.v4
NAT(IPマスカレード)設定が追加されました。
サスペンド設定の解除
続いて、サスペンド設定の解除となります。
Ubuntuで構成したルーターはノートパソコンですので、ノートパソコンのカバーと閉じるとサスペンドになってしまいます。
そのため、ノートパソコンのカバーと閉じてもサスペンドにならないように、サスペンドの設定を変更します。
以下のコマンドを実行し、サスペンドの設定を確認します。
grep HandleLidSwitch /etc/systemd/logind.conf
デフォルトでは、「HandleLidSwitch」がコメントアウト(行の先頭に「#」)が設定されていますので、コメントアウトを解除します。また、「HandleLidSwitch」は「suspend」となっていますので、「ignore」に変更します。
設定変更後、以下のコマンドを実行し、サスペンドの設定を確認します。
grep HandleLidSwitch /etc/systemd/logind.conf
サスペンドの設定が解除されました。
ノートパソコンのカバーを閉じても、サスペンドにはならず、NAT(IPマスカレード)の設定は有効化されているはずです。
動作確認
最後に、検証用環境に構築した他のコンピューターからインターネットへ接続できるかの動作確認をおこないます。
他のコンピューターのデフォルトゲートウェイに、ルーターのIPアドレスを設定します。
インターネットへの接続ができました。正常に動作確認ができましたので、作業プロセスは完了です。
まとめ
いかがでしたでしょうか?
通常の用途、例えば、宅内でインターネット閲覧したり、オンラインゲームを楽しんだりする場合は、あまり必要ないかもしれません。
ですが、実験的な環境を構築し、その環境からインターネットに接続するときに、ルーターが必要になってくる場合が多いかと思います。
そんな時は、Ubuntu(Linux)でルーターを構成することにより、安価で、かつ、Ubuntu(Linux)の知識も取得することができ、さらに、ほかの人に対しドヤる(笑)こともできるのではないでしょうか。まー、なによりも、楽しいと思います。
もし、眠っているパソコンやハブなどの機器類があれば、それを活用し、ルーターの構成にチャレンジしてみてはいいかがでしょうか。
最後までお読みいただきありがとうございました。
では。
「iptables」に、NAT(IPマスカレード)の設定を追加します。再起動すると、「iptables」の設定が消えてしまいますので、再起動後も「iptables」の設定が消えないように、「iptables-persistent」をインストールし、「iptables」の設定を保護します。