オルタナティブ・ブログ > プログラマー社長のブログ >

プログラミングでメシが食えるか!?

インターネット回線の移行とDNSの移行

»

昨年から会社のインターネット回線の移行を進めていて、今どき中小企業でインターネットサーバを自社内に置いている会社は少なく、あまり参考にならないかもしれないとも思いますが、技術的にはインターネットの勉強に良い教材でもありますので、簡単にポイントを紹介しておくことにしました。

多くの一般家庭でのインターネットの使い方と同じように、社内からインターネットにアクセスできるだけであれば、回線移行は簡単です。単純に、新しいプロバイダーと契約し、古いプロバイダーに解約手続きを行い、適当なタイミングで接続を変更すれば良いだけです。しいて言えば、多少の重複期間を設けておき、使えない期間がないようにすることと、万が一何か問題が出た場合に戻して調査検討する時間を確保できるようにしておくことくらいでしょう。

ところが、社内にインターネットサーバを置いている場合、社外から社内のサーバに対する接続があります。社外からメールを送信してきたり、自社のWEBサイトにアクセスしてきたりということが考えられます。インターネット回線を移行する場合、同じプロバイダでもサービスが異なると、大抵の場合でグローバルIPアドレスが変わってしまいます。インターネットはIP(Internet Protocol)で成り立っていますので、通信の対象はIPアドレスを使うため、IPアドレスが変わることは大きな問題なのです。

グローバルIPアドレスとドメイン名を関連づけしているのがDNS(Domain Name Service)です。通常の使い方では、グローバルIPアドレスを直接指定してインターネットを使うことは少なく、ドメイン名を指定して使いますので、グローバルIPアドレスが変わる場合は、DNSでグローバルIPアドレスとドメイン名の関連づけを変更すれば良いわけです。

ここで注意が必要な点が、DNSは必ずしも直接自社DNSサーバが検索に答えているわけではない、という点です。DNSの応答が必ず情報提供元のサーバが行わなければならない仕組みですと、例えば海外のドメインを調べようと思うといちいち海外のサーバまで問い合わせなければならず、往復遅延時間分待たされますし、世界中でそのような問い合せが飛び交うのは無駄です。そこで、DNSキャッシュサーバが世界中に存在し、それらが自分でキャッシュしながら覚えているものは自ら答えているのです。DNSの情報を更新してもすぐには世界中のキャッシュサーバが更新してくれるわけではありません。そのため、「新旧両方のグローバルIPアドレスで平行運用をする期間を設けること」が重要なのです。

TTL(Time To Live)という、情報の生存期間がDNS情報に指定できますので、移行前にTTLを短めにしておくと平行運用期間を短縮できそうですが、実際はTTLを無視するシステムも存在しますので、ある程度の期間は余裕を見て平行運用する方が良いでしょう。

JPRSが分かりやすい資料を公開してくれています:https://jprs.jp/related-info/guide/019.pdf

さて、理屈は理解できても、実際に平行運用するのはそう簡単でないかもしれません。インターネットへの口が2つある状態で1つのサーバを使うのは、ルーティングの問題で意外と難しいからです。インターネットへのゲートウェイを、受信した回線と応答する回線で同じものに振り分けるのがなかなか難しいのです。本来は受信した回線と応答する回線が異なっていても、IPの仕組みとしては問題ないのですが、大抵の回線ではサービス範囲外のグローバルIPアドレスからの通信はフィルターで止められている気がします。

私の会社の場合、インターネットからのアクセスは全てプロキシが仲介するようにしていましたので、以下のようにプロキシを2つ稼働させることで解決できました。プロキシは仮想マシンで動かしていましたので、簡単にクローンしてネットワークの設定だけ変更して2台構成にできました。ちなみにプロキシは全て私や社員の自作です。

simple-sample.jpg

こうすることで、どちらの回線からアクセスが来てもやりとりはそれぞれのプロキシが相手をし、サーバに中継するのは別セッションで行うので、サーバ側は全く変更せずに平行運用ができました。

この状態にしてから、まずはDNSのTTLを1時間に短縮し、あるタイミングでDNSの内容を新しく使う方のグローバルIPアドレスに変更しました。そのタイミングから新しい回線用のプロキシ側にアクセスが流れ始めますが、従来の回線の方もそう簡単になくなりません。TTLの1時間を過ぎてもまだまだ流れます。

大体1日経つと古い方へのアクセスがほぼなくなる感じですね。

スクリーンショット 2017-02-15 14.18.30のコピー.jpg

メールに関しては、DNSを変更してからしつこく古い方に来るのはスパムや広告メールという感じでした。

スクリーンショット 2017-02-15 14.18.42のコピー.jpg

タイトルはHTTPアクセスとしてしまいましたが、HTTPSも含んでいます。

古い回線の解約まではまだ半月くらいありますので、このまま平行運用を続けますが、TTLを短めにしてから切り替えれば、大体1日あれば大丈夫そうな感じですね。

従来の回線は2002年から使っていました。当時はSDSLからフレッツ光に切り替えました。が、当時はまだまだインターネットは業務に欠かせないインフラというほどではなく、平行運用などしませんでした。SDSLの前はISDNで、その前はダイヤルアップの個人契約でしたが、昔は「インターネットは信用できないもの」というイメージでした。実際にネットワーク関連の仕事をしている自分としては、いまだに信用できない点も多いと思っているのですが(回線側というより、多くはアプリケーション側ですが)、うちの会社でもEメールが失われたとなると大騒ぎになるほどの時代になりました。回線やプロキシ・サーバが悪くて届かないことはまずなく、大抵は「携帯のメールに転送してフィルターではじかれた」「スマホのアプリの不調」「操作ミス」なのですが、いずれにしても使えないと仕事に大きな影響がでる時代になったものです。そんなインターネットのシステムを運用管理していくのは、当然社内でもやりたがる人は少なく(技術的にではなく精神的に)、結局今回の回線移行も私が自分でやったのでした(すこしメンバーに手伝ってもらいましたが)・・・。

スクリーンショット 2017-02-15 14.53.24のコピー.jpg

実際はVPNやVLANなど、もっと考えることは多くて、滅多にドキュメントを作らない私でも、さすがにこのくらいは図を書かないと頭が混乱したくらいですが、一番重要だったのは紹介したDNS移行のための平行運用でした。

ということで、インターネットサーバを社内においている人で回線移行をする方の参考になれば幸いです。

なお、、回線は、申し込む方は簡単ですが、解約は意外と面倒というのはいつも感じることなのでした・・・。

Comment(0)