先日、サービス無停止のプロバイダ切り替え方法について書いてみましたが、あれは固定IP1での話でした。
今回は、固定IP8などの複数IPを使用している際の無停止切り替えや、冗長化構成にする方法を書いてみます。
[ルータを別にした、マルチホーミング的なネットワーク構成]
RT1とRT2では、特に複雑なことはしていません。いわゆるunnumbered接続で、複数固定IP運用を行うPPPoE接続、専用線接続などによる運用をしていると仮定します。
肝心なのは、その先をL2SWで接続し、結果1台のサーバへ接続してしまいます。
サーバ(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::202:----:f---:e--%vge0 prefixlen 64 scopeid 0x1 inet 20x.112.8.66 netmask 0xfffffff8 broadcast 20x.112.8.71 inet 6x.11.12.114 netmask 0xfffffff8 broadcast 6x.11.12.119 ether 00:--:--:--:--:-- media: Ethernet autoselect (1000baseTX ) status: active vge1: flags=8843<up,broadcast,running,simplex,multicast> mtu 1500 options=1b<rxcsum,txcsum,vlan_mtu,vlan_hwtagging> inet6 fe80::202:----:f---:---%vge1 prefixlen 64 scopeid 0x1 inet 192.168.11.1 netmask 0xffffff00 broadcast 192.168.11.255 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></rxcsum,txcsum,vlan_mtu,vlan_hwtagging></up,broadcast,running,simplex,multicast>
※20x.112.8.66を実IP、6x.11.12.114をaliasとして割り当てます。 デフォルトゲートウェイは、RT1の20x.112.64.65に向けますが、設定に関わらずRT2(6x.11.12.112/29)からのパケットも返事できます。
本来であれば「NICをグローバルIP毎に分けたほうがいいのではないか?」等ありますが、それだとルーティングについてそれぞれのNIC毎に設定が必要なことと、フィルタ等の設定が必要になります。ですので、グローバルIP2つを敢えて1つのNICにぶら下げます。
また、この方法は私自身が過去に経験した手法の中で、プロバイダ切り替えの際などには重宝しました。
実際には、このサーバでサービスを提供するのではなく、あくまでこのサーバをクラスタサーバに見立てて、NATなどで下位サーバ(192.168.11.2)にwebなどのサービス処理をやらせるとセキュリティ上いいのかもしれません。(もちろん、このサーバ自身でサービスを運用しても十分に回線冗長化を考慮したサービスサーバになります。)
また、これはサーバでなくともルータで代用ができる…かもしれませんが、そんな感じです。