先日、So-netからさくらインターネットへ我が家のサーバを切り替える際に、IPアドレスを変更するためDNS参照がうまくできるような構成にし、webサービスなどを停止せずに、旧IPアドレス→新IPアドレスへ切り替える方法について書いてみます。
今回は、固定IP1の方法についてです。
pp1を旧プロバイダ、pp2を新プロバイダとし、以下のような構成でネットワークを構築します。
[マルチホーミング的なネットワーク構成]
YAMAHA RT57iの設定 ip route default gateway pp 1 filter 501050 gateway pp 2 filter 501051 gateway pp 2 ip filter 501050 pass 192.168.11.2 * * * * ip filter 501051 pass 192.168.11.3 * * * * pp select 1 pp name PRV/1/1/3/0/0/0:old-provider ........ ip pp nat descriptor 1000 pp enable 1 pp select 2 pp name PRV/2/1/3/0/0/0:new-provider ........ ip pp nat descriptor 1100 pp enable 2 nat descriptor type 1000 masquerade nat descriptor masquerade static 1000 1 192.168.11.2 tcp www nat descriptor type 1100 masquerade nat descriptor masquerade static 1100 1 192.168.11.3 tcp www
※pp1宛のwebを192.168.11.2へ、pp2宛のwebを192.168.11.3へパケットがれ転送されるよう、NATディスクリプタとルーティングフィルタを作成します。
Webサーバ(FreeBSD6.0R)の設定
kenti.jp > ifconfig vge0: flags=8843<up,broadcast,running,simplex,multicast> mtu 1500 options=1b<rxcsum,txcsum,vlan_mtu,vlan_hwtagging> inet6 fe80::---:----:----:---%vge0 prefixlen 64 scopeid 0x1 inet 192.168.11.2 netmask 0xffffff00 broadcast 192.168.11.255 inet 192.168.11.3 netmask 0xffffffff broadcast 192.168.11.3 ether 00:--:--:--:--:-- media: Ethernet autoselect (1000baseTX ) status: active lo0: flags=8049<up,loopback,running,multicast> mtu 16384 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3 inet 127.0.0.1 netmask 0xff000000 </up,loopback,running,multicast></rxcsum,txcsum,vlan_mtu,vlan_hwtagging></up,broadcast,running,simplex,multicast>
※192.168.11.3をaliasとして割り当てます。
こうすることで、pp1宛に来た要求は192.168.11.2のwebへ、pp2宛に来た要求は192.168.11.3へ行くので、結果同じサーバを参照することになります。
そんなわけで、IPを切り替えている間もDNSの変更時間に関係なく、また無停止で移行ができます。