2016年9月2日

スタティック(静的)ルーティングの設定


特定の宛先ネットワークに対して、デフォルトゲートウェイとは異なるゲートウェイのIPアドレスを指定する方法を記します。


例えば「10.77.XXX.XXX」の宛先に対してはGW「 192.168.138.254」を指定する場合、以下のようになります。
「route」コマンドを使用しますがOSによって文法が多少違います。同じLinuxでもディストリビューションによって方言があるのがやっかいですね。

CentOS     route add -net 10.77.0.0/16 gw 192.168.138.254
Ubuntu      route add -net 10.77.0.0 netmask 255.255.255.0 gw 192.168.138.254
Windows    route add 10.77.0.0 mask 255.255.0.0 192.168.138.254 
MacOS      route add -net 10.77.0.0/16 192.168.138.254

設定を確認するには同じくrouteコマンドが使えます。例えばWindowsだったら「route print」なのですが、OSによってオプションが違っていたりして覚えるのが大変です。そこで便利なのが以下のコマンドです。おそらくほとんどのOSで同じコマンドでルーティングテーブルの確認ができます。

netstat -rn






さて、上記のrouteコマンドは一時的なものでPCを再起動すると消えてしまいます。再起動しても有効な恒久的 (永続的)な設定としたい場合には以下の作業を行います。


CentOS
以下のファイルを編集し、
/etc/sysconfig/network-scripts/route-eth0
以下の一文を追加します。
10.77.0.0/16 via 192.168.138.254

Ubuntu
以下のファイルを編集し、
/etc/network/if-up.d/static-routes
以下の一文を追加します。
#!/bin/sh
/sbin/route add -net 10.77.0.0 gw 192.168.138.254 netmask 255.255.0.0 dev eth0

Windows
「route add」コマンドを投入する際に「-p」オプションを加えると恒久的になります。最も簡単ですね。
route add -p 10.77.0.0 mask 255.255.0.0 192.168.138.254

MacOS
これが問題です。調べた限りでは設定方法はありません。FreeBSDベースということは聞いていますので当然Linuxと同様のテキストファイルに設定する方法だと思ったのですが違うようです。ということであればAppleがGUIで設定する方法を用意しているかと思いきやそれも無いようです。
どうしてもやりたければスクリプトのようなものを用意して起動時に自動実行させるしか方法が無いようなのです。

※MacOSでスクリプトを自動実行させる方法を調べました。ちょっと長くなるため別記事にしましたので、そちらをご覧ください。



0 件のコメント:

コメントを投稿