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でしたが、中継サーバへルーティング追加を行えば複数のセグメントとの通信も可能です。
その分インターフェースが必要となるので中継サーバ自体を仮想化するのも方法かもしれませんね。