インフィニットループ 技術ブログ

2011年10月21日 (金)

著者 : shiroma

100人繋いでも大丈夫!3000円で出来るサクサク社内ネットワーク構築法

こんにちは。弊社ネットワーク担当のshiromaです。
以前当ブログでも取り上げました通り、弊社は六月に新社屋へと引っ越しを行い、社屋の拡張と併せて人員の拡充を行ってきました。しかし、その人員の拡充に伴って内外の通信の量は肥大し続け、20人を過ぎた頃からNTT貸出のルータでは遅延がひどくなり、40人近くなった現在、社内基幹ルータの入れ換えが切実に必要という状況となりました。
かつてRTX1000を利用していた経験を活かせると考え、数万円の費用を払ってRTX1100を購入し、配備してみたのですが、一向に遅延は改善されません。更に調査を進めていくと、この遅延は弊社で標準利用していたSkypeが原因だという事が判明しました!

大人数でのSkype利用の問題

Skypeは非常に便利なコミュニケーションソフトであり、弊社でも内外での連絡の為にSkypeのチャットサービスを標準採用しています。しかし、人数が増えるに従って、Skypeの以下の点が問題となってきます。

  • Skypeは大量のショートパケットを吐き出す
  • Skypeは多くのホストと通信を行う

SkypeはP2Pでの通信を行い、他のホストを介して通信するので、他のノードと常に接続をすると同時に、他のノード同士の通信を仲介する役割を課せられる場合もあります。一つ一つの通信は大した事がなくても、ネットワーク内のマシン台数が増えていくに従って次第にルータの処理が追いつかなくなり、通信が遅延するという結果になっていたのです。
RTX1100での運用が間に合わないという悲しい結論になって、次の候補を選別中に先のSkypeの問題に気が付き、ショートパケットに強いルータを探す必要が出てきました。しかし、同じYAMAHAのルータを選ぶ場合は更に上位のRTX1500を購入する必要があり、その上でもちゃんと処理が出来るのかは実際に試してみないとわからないという不安な状況でした。その時、NECのIXシリーズのルータがショートパケットの処理に強い(=Skypeに強い)という評判を聞きつけ、Yahoo!オークションでIX2015を落札し、実際に試してみる運びとなりました。
以下で、実際にルータを設置してネットワークを安定させるまでの顛末を記しますので、Skypeやその他のメッセンジャーソフトの吐き出す大量のパケット負荷に喘いでいるのに、高い機器代を出して貰えなくて困っているネットワーク管理者の皆様は、どうぞご一読ください。

IXシリーズとは

IXシリーズとは、NECの業務用ルータのシリーズです。CiscoのIOSに近い設定方法で、柔軟で多機能を実現出来て、多くの拠点へVPN接続ルータとしての導入実績もあるシリーズですが、今回紹介するIX2015は2005年リリースの機種であり、定価は10万円近くした機種ではありますが、今ではオークション等で3000円程度で出回っています
結論としましては、2005年頃の機種と言っても、一般家庭やSOHOでの処理を捌くのに十分な性能を持っています。ただ一つ注意しないといけない点としては、本体のファームウェアを更新する為にはNECとの保守契約を結ぶ必要があるので、落札する際にファームウェアのメジャーバージョンが8になっている事(例:8.3.48)を確認してください。

実際の設定

前提となる社内のネットワークは以下になります。

  • /29レンジのグローバルIPをプロバイダから提供されている(例:xxx.yyy.zzz.104/29)
  • IP Unnumberedを利用して、グローバルIPアドレスを有効活用する
  • 社内には50台ほどのコンピュータがあり、連絡用ソフトとしてSkypeを利用している

※クリックで大きい画像を表示します。
network
IX2015/ファームウェア8系に準拠した設定方法を以下に紹介します

ip cache-size 20480
ip ufs-cache enable
ip ufs-cache max-entries 20480
ip route default FastEthernet0/0.1
ip name-server 8.8.8.8
dns cache enable
proxy-dns ip enable
proxy-dns interface FastEthernet0/0.1 priority 200
proxy-dns server 8.8.8.8
proxy-dns server 8.8.4.4
ppp profile example
  authentication myname user@example.net
  authentication password user@example.net sineup-password
interface FastEthernet1/0.0
  ip address xxx.yyy.zzz.105/29
  ip address 192.168.0.1/24 secondary
  ip mtu 1454
  ip tcp adjust-mss 1414
  no shutdown
interface FastEthernet0/0.1
  encapsulation pppoe
  auto-connect
  ppp binding example
  ip unnumbered FastEthernet1/0.0
  ip tcp adjust-mss auto
  ip napt enable
  ip napt translation max-entries 20480
  ip napt inside list napt_host
  no shutdown

大まかに言えば、左端のFE0/0のポートでインターネットへの接続を受け付け、右側のFE1/0の部分で内部LANを展開する方法になっています。この際、FE0/0.1の設定で、それ自体はグローバルなIPアドレスを持たず、FE1/0.0の持っているプライマリIPアドレスを名乗る様に設定しています。
そして、FE1/0のポートにxxx.yyy.zzz.105と192.168.0.1の二つを設定する事で、FastEthernet0/0.1はxxx.yyy.zzz.105を名乗り、192.168.0.0/24のマシンは192.168.0.1を、xxx.yyy.zzz.106~xxx.yyy.zzz.110のグローバルIPアドレスを持つマシンはxxx.yyy.zzz.105をゲートウェイとして、外部へ接続する事が出来ます。
SOHO向けの話として各種キャッシュ設定に関して触れますと、一番気を使ったのはnapt(アドレス変換)のエントリ数です。前述の通り、弊社ではコミュニケーションツールとしてSkyepを利用していますが、Skypeは非常に多くのホストに対して接続を仕掛けるので、平常時でも5000セッション、多い時には同時に10000セッション以上も張られている場合があるため、デフォルトの4096ではとても捌ききれないので増やす必要があります。
同様に、IPのルートキャッシュも増やしていますが、ある程度はNEC独自の高速化機能であるufs-cacheが吸収してくれるので、ここまで増やす必要があるのかは微妙ですが、ルートキャッシュは他の設定と違って設定の反映に再起動が必要という点を鑑みて、多めに設定しています。
以下の画像は、実際に置き換えて運用しているルータをモニタしたものです。
※クリックで大きい画像を表示
munin graph
始業時間周辺や突発的な大量通信の場合は多少CPU負荷が掛かるものの、基本的には40%前後を維持、メモリも50%前後といった所で安定しています。ネットワークへの接続は以前より格段に安定し、Skypeへのログインへ掛かる時間も短縮されました。監視している負荷状況から考えるに、この設定であれば、使い方にもよりますが一般的な事務所で100人規模の処理も捌ききってくれると考えられます。
基本的な設定は以上です。あとは各々の環境にあわせてDHCPを使う、NTPで時刻同期を取る、アクセスフィルタを設定する、IPSecを使う等々、IXシリーズのルータはパワフルで、設定もわかりやすく、多くの機能を提供出来ます。事業所のルータ選定に迷っている方は、選択肢として検討してみてはいかがでしょうか。

ブログ記事検索

このブログについて

このブログは、札幌市・仙台市の「株式会社インフィニットループ」が運営する技術ブログです。 お仕事で使えるITネタを社員たちが発信します!