0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

サーバーの設定を変更せずにIPアドレスを付け替えるには

Posted at

サーバの更新を行っていた際、無性にIPアドレスの入れ替えを行いたい衝動に駆られたのでその記録です。

前提

名前でのアクセスであれば、DNSに登録してあるIPアドレスを変更することでサーバーを入れ替えることが可能です。テスト時であれば /etc/hosts や windows/system32/drivers/etc/hosts を使って宛先を偽ることもできるでしょう。しかし、一部にはIPアドレス指定でアクセスする必要があるサーバーもあります。
この場合どうすればよいでしょう?

NATを使いましょう

いきなり結論ですが、NATを使います。
NATというと家庭用ルーターでも標準的に使われるあの技術です。NATには様々な拡張仕様があるので何をしているもの?と言われてもなかなか説明が難しいと思いますが、今回必要な機能は単純にNetwork Address Translationの名前通りIPアドレスを変換するだけです。

YAMAHAルーターでVPN接続された環境を例にしていますが、NAT自身はルーター以外にもiptablesやnpf等でも使えるので様々な環境に応用可能だと思います。

具体的な作業例

サンプル環境
 10.22.0.30
server1 ----LAN---- routerA ----VPN---- routerB ----LAN---- PC
server2
 10.22.0.31

server1の新しい環境としてserver2を用意します。ただ、server1は稼働中なのでここは手を付けず、IPアドレスは10.22.0.31として別の機材を用意しています。ある程度移行がすすんだところで、IPアドレスでのアクセス確認を行うのですが、アドレスを付け替えるてしまうと運用(=server1)に支障が出ます。そこで、途中経路に細工をして10.22.0.30でserver2へのアクセスを行いますが、routerBに細工をすると影響が出る範囲はごくわずかに限られそうです。

YAMAHAルーターの場合、追加の設定はは以下のようになります。

tunnel select 1
  ip tunnel nat descriptor reverse 1

nat descriptor type 1 nat
nat descriptor address outer 1 10.22.0.30-10.22.0.31
nat descriptor static 1 1 10.22.0.30=10.22.0.31 1
nat descriptor static 1 2 10.22.0.31=10.22.0.30 1

先頭のip tunnel natは用意されたnatをtunnelに適用しているのですが、YAMAHAのNATは「自分と相手のある通信で、相手に自分を偽る仕組」と説明があります。通常の利用では、宅内のサーバーにNATの外からアクセスするときに自分側のIPアドレスやポートを変換するのが基本機能だからですね。
今回はこれを逆向きに使っているのでreverseと記述します。

次にnat descriptor type で1番のnatをtype=natで定義していきます。

outerは外側ネットワークでの変換対象のIPアドレスを記載しています。

static として変換の対応を書いていますが、routerBの外側にある10.22.0.30へアクセスする際に10.22.0.31に変換しています。逆の変換も記述しておくと、お互いにアドレスが入れ替わる形になります。

NATの外側ではserver1, server2は正しいIPアドレスで認識されていますが、routerBを経由する場合だけお互いが入れ替わっている状態になります。

応用範囲は様々

今回は仮環境として、異なるIPアドレスでアクセスするためにNATを使いましたが同じような設定で、同じIPアドレスの範囲を持つ別々のネットワークをつなぎ合わせたり応用範囲は様々です。ただ、凝り過ぎるとどこで何が起きてるのかさっぱりわからなくなるのでやり過ぎにはお気を付けください。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?