本日よりCaseStudyシリーズを開始します。 「このような状況下の中でどのようにして解決するか」を中心に解説します。

経験者にとってはあたり前のことを共有し、初学者の理解を助け、 また、経験者にとっては他手法を学ぶことでより効率よく作業することも学べるようなコンテンツにしてゆきたいと思います。 特にインフラまで含めた知識は暗黙知となりやすいと思いますので、実例をきっかけに、インフラ知識の理解も 深まると幸いです。

問題: 構成した別ネットワークマシンを検証したい

データセンタに設置予定のマシンを社内で構築した。 ネットワーク設定を含めて構築しており、サーバをデータセンタに持って行ってLANケーブルを差し込むと動く所まで構築したい。 なお、データセンタのセグメントは192.168.40.0/24、社内環境のセグメントは192.168.100.0/24となっている。 データセンタの設置作業の時間は限られており、予めこのネットワークが接続出来るか確認したい。インストールOSはRHELを利用する。

解決

今回のケースのポイントをシンプルに考えると、「リモートから該当サーバになんとか接続出来ること」がメインとして上がる。 一旦リモートから接続さえ出来てしまえば、あとはどうにでもなる。(もちろんネットワークの設定すら変更可能) さてそのなんとか接続出来ることを確認すればどうすればよいか?

一番のポイントは「同一サブネットの通信は直接やり取りしあう」という原則を思い出すことです。

ルーティングというものは意外と厄介で、気をつけないポイントは多いです。 自分でVPNを構築したとして、双方に正しいルーティングがないと正常に通信がやりとり出来ません。 今回のケースであれば、データセンタ側のルータが192.168.100.0/24のルーティング設定されていないと、当然全く通信することが出来ません。 とりあえず疎通出来ればOKという原則に立ち返れば、ある程度適当でも色々可能です。

社内環境でのテスト

社内で予め/etc/sysconfig/network-scripts/ifcfg-em2を編集し、192.168.40.100としてセットアップします。 その後このIPアドレス自体がとりあえず外からpingが通るか検証したいとします。 ただし社内のセグメントは192.168.100.0で、勝手に192.168.40.0/24へのルーティングはルータにかかれています。どうすれば良いでしょうか?

答えは簡単で、以下のようにするだけでOKです。

  1. 設置対象のIPアドレスを設定して、社内のスイッチに接続する
  2. 自分のPCのIPアドレスを適当に192.168.40.bbb/24と設定する。

こうすることで、社内の192.168.100.0/24のHubを利用しながら、擬似的に接続することを検証可能です。

まずルーティングをする際に、対象のIPアドレスが自分のサブネットに所属しているか調査します。 自分のARPテーブル(IP/Macアドレスの対照表)に存在しない場合、ブロードキャストしどこにマシンがあるかレスポンスしてもらいます。

  1. 同一サブネットと判断した場合、ブロードキャストパケットを流す
  2. ブロードキャストパケットが届く範囲は同一サブネット(ルータを超えない)

という原則のもと、通信を試みます。ブロードキャストし、スイッチに挿され適当に名乗っている40セグメント同士がやりとりするという仕組みです。 社内に接続していた新規設置のサーバがブロードキャストパケットを受信し、「これは自分のIPアドレスです。macアドレスです。」とレスポンスします。 その後めでたく、双方のARPテーブルにMacアドレスが記録され、イーサネットを通じ直接通信をし合います。

スイッチ自体はL2と呼ばれる通り、IPアドレスなどは処理しません。Macアドレスのみを利用し、データのやりとりを行います。 なので、接続対象のPCのMacアドレスさえ分ければ通信が可能になります。

データセンタでの設置

ここまで疎通が確認出来れば、あとは簡単です。持って行って接続だけすればOKです。

VPN越しに直接通信出来ないケースがあっても問題ありません。セグメントとサブネットさえ一致していれば、 データセンタの別マシンにログインしたのちに、そこから横から入ることが出来る可能性が非常に高いです。 その後、ゆっくり設定を見直し、通信できるようにFIXすれば良いです。

設置したあとに、「同一セグメントの他のマシンに接続出来るかだけを最低限確認する」というタスクであれば、 直接通信が社内に向かって届かないなどのケースがあっても、あたふたすることはなくなります。

最後に

もちろん準備して一発で接続できることにこしたことはありません。ただ、色々なテクニックを利用して、 時間が無い時に代替テクニックを知っていることは大きなアドバンテージです。

「30秒だけデータセンタに入り込める。その間にリモートから接続出来る環境を用意してほしい」など、 会社からミッション・インポッシブル並みの要求が無いとも言えません。是非エンジニアとして準備をしておきましょう。