ベンチャーにありがちなネットワークトラブルあるあるとその対策
この記事は過去のQiitaの記事から移行したものです。
この記事は Akatsuki Advent Calendar 2016 の14日目です。
アカツキのソーシャルゲーム事業部でPM兼少しだけエンジニアやっている @tokuhy です。
密かに社内情報システム担当エンジニアとしての裏の顔も持っており、今回はそちらのお話をしようと思います。
今回のお題は主に社内ネットワーク環境の設計と運用についてです。過去複数のベンチャーで社内のネットワーク運用を行ってきた経験を元にあるあるネタとその対策について書いてみようと思います。
TL;DR
そもそもゲーム事業部のエンジニアである自分がなぜ情シス業務をやっているかという部分に少し。
前職でもインフラエンジニア兼情シスをやっていたんですが、アカツキにジョインしたときはゲーム事業部のエンジニアとしてでした。
ジョインした当時、社内のネットワーク環境はかなり不安定な状態でした。
出社のタイミングで毎朝ネットが数十分ダウンするという状態が発生していて、日中も数十分〜数時間ダウンするというのが頻発していました(誇張ではなく本当に >< )。
ネットワークの専任担当がいないのは成長途上のベンチャーではよくある話で、分かる人がなんとなく必要に応じてその場その場で対応するというのがよくあるケースだと思います。
自分がジョインした当時のアカツキも急成長のフェーズで飛躍的に従業員の人数が増えていっている段階でした(今もですが)。
急成長中のベンチャーで50〜100名を超えるあたりから顕在化してくるネットワークの運用トラブルに頭を悩ました事が有る方も多いのではないでしょうか(そんなにいない?)。
ネットワークに関するベンチャーあるある
IPアドレス枯渇問題
50名程度のオフィスのネットワーク設計でよくあるパターンとしては、クラスCのプライベートIPアドレス帯を利用した運用です。
192.168.100.0/24
など、小規模でスタートするベンチャーではこのようなネットワークアドレスの割り振りを行うことが多いと思います。
この例だと実際に使えるIPアドレスは 192.168.100.1〜254 の254個になりますが、ルーターや複合機、ファイルサーバなどに固定IPアドレスを割り当てていくとなんだかんだで240個位でしょうか。
一人1台のPCは当たり前で、持ち込みのデバイス、開発で使う端末を入れると一人あたり3~4のIPアドレスを使うこともあるので100人ぐらいになると割り当てるIPアドレスが足りなくなってあたふたすることになります。
※サブネットを部署ごとに切るというのは経験上中小ベンチャーでは経験したこと無いのでここではその想定は除外しています。
単一ネットワーク構成でサブネットがない
社内のサーバに外部からアクセスできるように、公開用のサーバを社内ネットワークに置くケースも出てきます。
アクセス元を制限されている開発サーバへ外部から接続するための踏み台サーバなどもそうですね。
社内ネットワークが単一ネットワークで構成されている場合、外部からアクセス可能なサーバが従業員のネットワークと同じところに設置されることになります。
公開サーバに何かしらセキュリティの問題があったときに外部から社内LANに簡単に侵入することが可能になり、セキュリティリスクとなります。
他拠点とのローカルネットワークアドレスの競合
LANを単一拠点前提で設計し、その延長でサテライトオフィス、分社、支社の別拠点が増えた時に環境のコピーよろしく同じプライベートIPアドレスを割り当てていった時に出てくるのが、拠点間接続(VPN)の際のトラブルです。
VPN接続では基本異なるネットワークアドレスの接続を前提とするので、同じネットワークアドレスを使用している環境では接続が困難になります。
例えば本社が 192.168.100.0/24
を使用していて別拠点でも 192.168.100.0/24
を使用するケースです。同一ネットワークを両拠点で使用しているとどちらかの構成を変更することになります(L2TPv3 による VPN 接続やIPアドレス変換のマッピングを行えばできなくはないがネットワークに明るいエンジニアがいないとさらにハードルが上がる)。
これはオフィスの拠点間接続にかぎらず、AWS の VPC のプライベートIPアドレス(IP CIDR ブロック)、データセンターのプライベートIPアドレスの割当も同様です。
同じネットワークアドレスを複数拠点で使用しているといざ VPN 接続が必要になったタイミングでネットワークアドレスの変更を行わないと接続が困難な状況が発生してしまいます。
そしてこの変更は運用に入っているサービスの基盤を変更することになるので大抵は不可能です。
メインのインターネット回線に個人用回線を使用する
グローバルなインターネット回線として最初は個人用の回線を使用するケースも多いと思います。
NTT のフレッツを使用した PPPoE 回線が一般的でしょうか。
この場合に問題となってくるのが、回線速度の不安定さです。
個人用の回線は基地局までのネットワークの帯域をその一体の地域でシェアするので、環境や時間帯で回線速度が大きく低下する場合があります。
特によくあるのが、夜間になると接続速度が大幅に落ちるケースです。
一般ユーザーは仕事が終わって帰ってきた夜に自宅でネットを使用するので夜になると回線が混みます。
日中快適なのに夜間になると激重になるのは大体このケースかと思います。
無線環境の劣化
ベンチャーだと小規模からスタートするので家庭用の無線ルーター(アクセスポイント)を使用するところから始まる場合もあるかと思います。
その後人数が増えてきてスペックが追いつかなくなり法人モデルのアクセスポイントを導入するというのがあるあるですね。
この時に選択肢として上がるのが個人用よりお高めの法人モデルのアクセスポイントです。選択肢として上がるのバッファローのアクセスポイントでしょうか(自分自身、過去複数経験しています)。
その後さらに人数が増えフロアが広くなると1台ではカバーできない範囲での Wi-Fi 運用が必要になります。
ローミングを可能にする必要があるため、同じ機種のアクセスポイントを増設して同一の SSID を割り当てていく運用になります。
これが2~3台であればよいのですが、4〜5台を超えた当たりから段々管理が辛くなってきます。
同じ設定を1台ずつ個別に設定する必要があるので、設定ミスや設定漏れも必然的に出てきます。
見えてる地雷を回避するために
ここからは先にあげたあるある地雷を踏み抜かないためのポイントを上げてみましょう。
LAN の設計
VLAN を用いてサブネットを追加可能な状態にしておく
サブネットを切っていく場合、VLAN で構成していくことになると思います。
単一ネットワークで運用を開始する場合でものちのち DMZ、社内サーバ用、一般従業員用などで切り分けていくことを想定して、ひとつめのネットワークを最初から VLAN で構成しておきます。
最初から VLAN の環境があればあとはサブネットを追加したくなったときに VLAN で追加していけるので楽ちんです。
サブネットは2進数を意識する
サブネットを作ったはいいが、切りの良い数字で分けていくとのちのち管理がめんどくさくなるので注意です。
例えば以下のような構成の場合を考えます。
用途 | サブネット |
---|---|
従業員ネットワーク1 | 192.168.10.0/24 |
従業員ネットワーク2 | 192.168.20.0/24 |
DMZ | 192.168.30.0/24 |
DMZ から従業員ネットワークにはアクセスさせないので、ファイアーウォールでは
-
192.168.30.0/24
からは192.168.10.0/24
と192.168.20.0/24
へのアクセスを禁止
という設定を行うことになります。
この場合、192.168.10.0/24
と 192.168.20.0/24
を個別に指定するのもよいのですが、 192.168.0.0/24
と 192.168.8.0/24
のようにサブネットを持っておくと 192.168.0.0/20
の範囲の中(192.168.0.0~192.168.15.255)で収まるのでフィルタの設定をひとつにまとめることが可能になります(192.168.0.0/20
のみ指定すればよい)。
192.168.0.0/24
で切っておくと、アドレスが /24
で足りなくなったときに /23
などで容易に拡張できます(IPアドレス枯渇問題への対応)。
/23
にすれば 192.168.8.0~192.168.8.255 の範囲を 192.168.8.0~192.168.9.255 まで拡張することが可能です。
/22
にすれば 192.168.8.0~192.168.11.255 まで拡張可能です。
一見切りよく見える数字は管理コストが高くなる可能性があると認識しておくとよいでしょう。
エンジニアだと2進数に違和感は感じることは無いと思います。
メインのネットワーク(サブネット)は広めにとる
拡張可能な設計にしておくのも重要ですが、あらかじめ増えることが想定されているのであればメインのネットワークは人(接続端末)が増えることを想定して広めにとっておくと良いと思います。
クラスCのプライベートIPアドレスを使用する場合も、 192.168.0.0/24
(192.168.0.0~192.168.0.255) ではなく 192.168.0.0/22
(192.168.0.0~192.168.3.255) のように余裕をもっておくとよいでしょう。
先述の通り、さらなる拡張時も 192.168.0.0/21
とすれば 192.168.0.0~192.168.7.255 まで簡単に利用可能範囲が広がります。
他拠点のことを考えてネットワークアドレスを設定しておく
本社のネットワークは 192.168.0.0/19
内で運用し、追加拠点は 192.168.32.0/19
の範囲で運用するなどの想定をしておくとよいでしょう。
VPN で接続することになった場合も本社と追加拠点含めた全体のネットワークでのセグメント分けができているので接続も運用もスムーズになります。
ここでも2進数を意識しておくと、ファイアーウォールでアクセス制限を行うときに1行で設定することが可能になります。
メイン回線は法人用回線を契約する
あるあるで述べた通り、個人用の回線は通信速度が周りの環境や時間帯にに左右されることがあります。
人が増えてくると社内からのトラフィック増による帯域圧迫も発生します。組織の拡大速度がある程度見えた時点で早めに法人用の回線に切り替えることをおすすめします。
USEN の BROAD-GATE2 や So-net の NURO Biz などは独自のネットワーク網をもっていたり、他社の帯域圧迫の影響を受けにくい仕組みをもっているので昼夜問わず通信速度が安定します。
無線環境は早めに WLC で構築
WLC(Wireless LAN Controller)
WLC は中規模以上の組織では導入されているところも多いかと思います(アカツキでは Cisco で 無線環境を構築しています)。
アクセスポイントの管理に WLC を導入することで以下のメリットがあります。
- アクセスポイントの設定をコントローラで一元管理可能
- 無線LANカバレッジの自立式管理。自動で電波の強弱をコントロールする。
- 高速ローミングで接続断なく社内のどこに移動しても接続状態が維持される。
- アクセスの負荷分散。設定により負荷が高いアクセスポイントから近くの別のアクセスポイントへ振り分ける。
- チャネルの自動制御。使用チャネルがかぶらないように、自動で調整を行う。
アクセスポイントが5台を超えてさらに増加する見込みがあるのであれば、早い段階で WLC による無線LAN環境を構築することをおすすめします。
最後に
成長途上のベンチャーのあるあるは他にも有るかと思いますが、ネットワークに関してざっくり上げてみました。
社内ネットワークは社内インフラ基盤であり、組織が拡大すると設計の修正はなかなか大変なことになります。
このエントリを読んで思い当たる部分があれば、早めに手をうっておくと後々の苦労を回避できるかもしれません。
Discussion