49
69

More than 5 years have passed since last update.

複数NICマシンでのルーティング設定(static route)

Last updated at Posted at 2019-01-27

はじめに

例えば新しいパソコンを買ってきて家でネットワークにつなぐとき、SSIDとパスワードを入力してつなぐ。DHCPを指定すれば、接続に必要な情報は勝手に登録されるため、IPやデフォルトゲートウェイなどを意識して設定することはない。しかし、仕事で扱うパソコン等であれば、NICを複数枚持っているようなケースも存在する。

昨今色々なスクリプト言語やIDEによってアプリ開発のハードルは下がったように感じるが、ネットワークはまだまだ苦手な人が多い。今回は、特に新しくサーバや端末に固定IPを振って接続するケースで、どうすればよいかをまとめる。

ネットワーク設定の方法

やりがちな間違い

「パソコンにIPを設定する」=「IPやサブネットマスクやデフォルトゲートウェイを設定する」で概ね間違っていないが、複数のNICに対してデフォルトゲートウェイを設定してはいけない。複数のNICにデフォルトゲートウェイを設定してしまうとネットワークが不安定になり、通信ができなくなってしまう。

備考:開発する際の注意

仮に各NICにデフォルトゲートウェイを登録していても、他のNICが有効になっていなければ通信できてしまうこともある。例えば、個別テストのために、ひとつずつケーブルを突き刺した場合である。こうしてテストした場合、いざ全部のケーブルを接続した時点で、全部のNICに設定されたデフォルトゲートウェイが読み込まれ、結果ネットワークが不安定になる。個別の通信試験の段階から、実際に使用するすべてのNICを有効にして望むことが望ましい。

ルーティングの方法:Static Route

異なるネットワークのIPにアクセスするときの出口として必要なのがデフォルトゲートウェイであり、そもそも同じネットワークのIPとしか通信しない場合、デフォルトゲートウェイさえ必要ない。しかし、通常はデフォルトゲートウェイでいいが、特定のサブネットに対しては別のIPを経由したい場合がある。こういうケースでは、static routeを使う。

想定するケース

以下のケースを想定する。

  • パソコンの設定
    • NIC A
      • IP: 192.168.1.10/24
      • Gateway: 192.168.1.1/24
    • NIC B
      • IP: 10.20.30.40/24
  • ルーティングについて
    • 他のネットワークに通信するとき、通常は192.168.1.1/24を経由する(デフォルトゲートウェイ)
    • ただし、サブネット10.50.60.0/24に対しては、10.20.30.50/24(例えばL3スイッチ)を経由したい

このとき、10.50.60.0/24への接続を10.20.30.50/24を経由するようstatic routeで指定する。

Windowsの場合

コマンドプロンプトでrouteコマンドを使用する。

$ route add 10.50.60.0/24 mask 255.255.255.0 10.20.30.50

削除するときは次のように、adddeleteにすれば良い。

$ route delete 10.50.60.0/24 mask 255.255.255.0 10.20.30.50

この設定をずっと有効にする(再起動してもこの設定が有効になる)ためには、-pオプションを使用する。

$ route -p add 10.50.60.0/24 mask 255.255.255.0 10.20.30.50

設定がうまくできたかどうかは、

$ route print

で確認できる。

Linux(RHEL)の場合

RHEL(CentOS)の場合、routeコマンド(ip route)で追加するか、/etc/sysconfig/network-script/route-eth[x]ファイルに記述する(xは、NICに対応するethに合わせて数字を入れる)。今回は後者を紹介する。

上記の設定の場合、各ファイルには次のように設定してあるとする。
eth0が192.168.1.10/24のNIC A, eth1が10.20.30.40/24のNIC Bである。

/etc/sysconfig/network/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
NETMASK=255.255.255.0
IPADDR=192.168.1.10
GATEWAY=192.168.1.1
/etc/sysconfig/network/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
NETMASK=255.255.255.0
IPADDR=10.20.30.40

このとき、eht1用(IP=10.20.30.40)に対するファイル /etc/sysconfig/network-script/route-eth1 を追加する。

/etc/sysconfig/network-script/route-eth1
10.50.60.0/24 via 10.20.30.50

その後、ネットワークの再起動を行う。

# service network restart

おまけ

以上でstatic routeの設定は終わる。最後に、通信するサブネットがごくごく限られているなら、デフォルトゲートウェイを設定せずに、明示的にstatic routeだけにするのもアリだと考える。

49
69
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
49
69