仮想ルータでネットワークを構築する


はじめに

よくA拠点とB拠点のActiveDirectoryやOracleのデータのレプリケーションを検証する際に、複数ネットワークが欲しいシーンがあったりします。
そういうときはWindowsやLinuxで仮想ルータを作成して対応しています。

1. 環境

今回はRHEL7です。OSが動けばリソースはしょぼくてOKです。

2. 手順

まず、OSをセットアップします。ここではセットアップ時に192.168.10.254と192.168.20.254をNICに設定し、それらを各ネットワークのゲートウェイにする前提とします。

[root@router ~]#  ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:2d:69:6c brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.254/24 brd 192.168.10.255 scope global ens192
       valid_lft forever preferred_lft forever
    inet6 fe80::b347:e70a:2921:964d/64 scope link 
       valid_lft forever preferred_lft forever
3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:2d:69:76 brd ff:ff:ff:ff:ff:ff
    inet 192.168.20.254/24 brd 192.168.20.255 scope global ens224
       valid_lft forever preferred_lft forever
    inet6 fe80::9d1d:dec7:15ba:aa2/64 scope link 
       valid_lft forever preferred_lft forever

ルーティングの設定を有効にするため、sysctl.confに設定を追加します。

sysctl.conf
[root@router ~]# cat /etc/sysctl.conf
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
net.ipv4.ip_forward = 1 ←★追加

次に、firewalldの設定変更を行います。ここでは検証環境ということでサービスを停止させます。

[root@router ~]# systemctl status network
● network.service - LSB: Bring up/down networking
   Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled)
   Active: active (exited) since 金 2020-07-31 14:10:46 JST; 1 months 7 days ago
     Docs: man:systemd-sysv-generator(8)
  Process: 847 ExecStart=/etc/rc.d/init.d/network start (code=exited, status=0/SUCCESS)

 7月 31 14:10:46 router systemd[1]: Starting LSB: Bring up/down networking...
 7月 31 14:10:46 router network[847]: ループバックインターフェイスを呼び込…K  ]
 7月 31 14:10:46 router network[847]: インターフェース ens192 を活性化中: …K  ]
 7月 31 14:10:46 router network[847]: インターフェース ens224 を活性化中: …K  ]
 7月 31 14:10:46 router systemd[1]: Started LSB: Bring up/down networking.
Hint: Some lines were ellipsized, use -l to show in full.

[root@router ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

これで検証したいサーバのデフォルトゲートウェイに192.168.10.254や192.168.20.254を設定してあげれば通信可能になります!