OSルーティングを使用した通信遮断・セパレーション

投稿者:しんさん        2016/03/19

「/etc/hostsを使用した通信遮断・セパレーション」の続きの記事です。

 

/etc/hostsを使用した通信遮断の欠点

/etc/hostsを使用した通信遮断の欠点は

  • 名前解決の仕組みに依存していること

です。

 

例えば、

  • DNSでの名前解決がhostsでの名前解決より優先される設定の場合
  • 名前ではなくIPアドレスを直接指定して通信している場合

にはこの手法が使用できなくなります。
 

OSルーティングを使用して不要な通信をループバックアドレスに流す

名前解決に頼らない方法として、ローカルルーティングを使用する方法があります。

ローカルルーティングを使用して、「通信をしたくないサーバ」あての通信を、ループバックインターフェースの方へ流してしまうことで、通信の遮断を実現します。
 

通信遮断の方法

routeコマンドを使用することでOSローカル上の静的なルーティングを設定をすることができます。

routeコマンドを使用して、通信したく無い相手先のIPアドレスへの通信がループバックインターフェースの方へ行くように設定します。

 

routeコマンドの使い方はOSによって異なりますが、以下ではAIXとLinuxについて例に挙げて説明します。
今回の例では触れていませんが、手法としてはWindowsサーバでも同じことができます。

 

以降の例では全て

  • 通信したく無い相手先のIPアドレス = 192.168.1.1

として説明します。

 

AIXの場合

コマンドは下記の通り実行します。

route add -host [相手先IPアドレス] 127.0.0.1

 

以下はコマンド実行例です。


[root@testsv ~]# ping -c 1 192.168.1.1
PING 192.168.1.1: (192.168.1.1): 56 data bytes
64 bytes from 192.168.1.1: icmp_seq=0 ttl=123 time=2 ms

--- 192.168.1.1 ping 統計情報 ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 2/2/2 ms
[root@testsv ~]# route add -host 192.168.1.1 127.0.0.1
127.0.0.1 host 192.168.1.1: ゲートウェイ 127.0.0.1
[root@testsv ~]# ping -c 1 192.168.1.1
PING 192.168.1.1: (192.168.1.1): 56 data bytes

--- 192.168.1.1 ping 統計情報 ---
1 packets transmitted, 0 packets received, 100% packet loss

 

Linuxの場合

コマンドは下記の通り実行します。

route add -host [相手先IPアドレス] lo

 

以下はコマンド実行例です。


[root@testsv2 ~]# ping -c 1 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=122 time=3.11 ms
--- 192.168.1.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 3ms
rtt min/avg/max/mdev = 3.110/3.110/3.110/0.000 ms
[root@testsv2 ~]# route add -host 192.168.1.1 lo
[root@testsv2 ~]# ping -c 1 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
--- 192.168.1.1 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 10000ms

通信遮断解除の方法

遮断解除の方法はAIX・Linuxとも共通です。

 

コマンドは下記の通り実行します。

route delete -host [相手先IPアドレス]

 

以下はコマンド実行例です。


[root@testsv2 ~]# route delete -host 192.168.1.1
[root@testsv2 ~]# ping -c 1 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=122 time=2.95 ms
--- 192.168.1.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 3ms
rtt min/avg/max/mdev = 2.957/2.957/2.957/0.000 ms

 

注意点

OS上で設定したローカルのルーティング情報はOSを再起動すると消えてしまいますので、その点はご注意ください。

 

また、

  • 一時的に設定するつもりが設定の解除を忘れて必要な通信ができない。
  • ルーティングを間違えてサーバーにリモートログインできなくなってしまった。

ということが起きないように、管理・コントロールには注意して下さい。

この記事が気に入ったら
いいね ! しよう

Twitter で

 - サーバー運用 , ,