Linuxサーバをルータにしてみよう!

2019 年 11 月 1 日 by fuku

こんにちは。fukuです。

今回はある案件で仮想Webサーバを構築した際に本番環境と同様のIPアドレスを設定した状態で
開発用PCから参照できるようにできないかと調べてみました。

本来なら間にルータなどを挟んであげれば別セグメント間でも通信ができるようになるのですが、
ただ、ルータが無い!足りない!といったこともあるので
今回は、間にLinuxサーバをおいてルータの代わりにする方法をご紹介します。

現在の環境はこのようなイメージです。

開発PC(192.168.10.1)から仮想Webサーバ(10.10.10.100)へはセグメントが異なるので直接通信をすることはできません。

本来であれば、下図のように間にルータをいれますが・・・

ルータが足りないなどの場合もあるので
今回は間にLinuxサーバを入れてみましょう。

構成とIPアドレスは以下となります。
中継サーバ(今回はCentOS7.5)
中継サーバのインターフェースは2つ(192.168.10.20と10.10.10.20)
開発PC、仮想Webサーバのデフォルトゲートウェイ(DG)は、中継サーバのIPアドレスを指定すること
開発PC    :192.168.10.20
仮想Webサーバ:10.10.10.20

まず、中継サーバと開発PC、中継サーバと仮想Webサーバをそれぞれのインターフェースで繋ぎます。
(それぞれ同じネットワーク上に繋がっていればOKです。)
繋いだら中継サーバから開発PCへ、中継サーバから仮想WebサーバへPing応答を確認します。(応答があればOK)
 # ping 192.168.10.1  ←開発PC宛
 # ping 10.10.10.100  ←仮想Webサーバ宛

これで下準備OKです!
あとは、中継サーバへ設定を追加するだけです。

1.まずは、IPフォワードの設定を変更する
初期値が0になっていること
 # cat /proc/sys/net/ipv4/ip_forward

 0

値を1に変更する
 # echo 1 > /proc/sys/net/ipv4/ip_forward
 # cat /proc/sys/net/ipv4/ip_forward

 1

2.次にNETWORKファイルへ設定を追加する
 # vi /etc/sysconfig/network
末行へ追加

 FORWARD_IPV4=yes 
 GATEWAY= 
 VATEWAYDEV=

3.最後にsysctl.confファイルの設定を変更する
 # vi /etc/sysctl.conf

 net.ipv4.ip_forward = 0    ←変更前
 net.ipv4.ip_forward = 1    ←変更後

以上で設定は完了です。

では、開発PCから仮想WebサーバへPingを打ってみましょう。
 # ping 10.10.10.100

応答があれば成功です!!!
ついでにブラウザも参照してみましょう。
 # http://10.10.10.100

表示されましたでしょうか?
今回は1対1でしたが、中継サーバへルーティング追加を行えば複数のセグメントとの通信も可能です。
その分インターフェースが必要となるので中継サーバ自体を仮想化するのも方法かもしれませんね。

TrackBack