26 posts categorized "ネットワーク 【人気】"

November 05, 2010

L1スイッチの使い道

L2~L4スイッチあたりは馴染みがある人が多いと思いますが、L1スイッチについては聞いたことすらない人も多いのではないでしょうか。L1スイッチは大規模サイトでは必須と言っても過言ではないくらい重要となります。というわけで今回はL1スイッチについて記してみます。


【L1スイッチとは?】
L1スイッチとは、物理層で切り替え(スイッチ)することのできるネットワーク機器となります。ある意味パッチパネルでの切り替えを電気的に行える機械とも言えます。かつ市販されているL1スイッチではメーカー毎に様々な機能が付加されている場合が多いです。

※余談ですが、レピータHUBもレイヤー1に該当しますが、レピータHUB自体にスイッチ機能はないのでレピータHUBがL1スイッチかと問われると微妙な気がします。


【L1スイッチのよくある使い道: ログ分析&IDS】
大規模サイトでよく使われる用途としてはログ分析&IDS監視です。大量の通信をログ分析サーバもしくはIDSサーバに流し込むために、本番系ネットワークとバックエンドネットワークの間にL1スイッチを挟みこみます。

L1

本番系ネットワークのL2スイッチにポートミラーリング設定をほどこし、L2スイッチ上を流れる全てのフレーム(※念のため注:L2なのでパケットではなくてフレーム)をL1スイッチ側に流れるようにすれば、結果的に本番系ネットワークの全てのフレームがL1スイッチを経由してバックエンドネットワークに流れ込むことになります。

そして、その流れ込まれたフレーム(というかL1なので信号かな?)をログ分析サーバもしくはIDSサーバが拾い、分析を行います。

ところでL1スイッチによっては、流れ込まれた信号をロードバランサーのように各サーバに割り振る機能を持つ場合があります。この場合負荷が増えてきた場合に分析サーバのスケールアウトが可能になります。


【L1スイッチを製造しているメーカー】
L1スイッチを製造しているメーカーはそんなに多くありません。例えば著者が調べた限り、以下の4社がありました。

・APCON社(INTELLAPATCH Family)
・Gigamon社(GigaVUE)
・日本ダイレックス株式会社(eL1 SWS)
・Glimmerglass社


【おまけ(宣伝)】
私が監修させていただいた「これだけは知っておきたい ネットワークの常識」技術評論社(共著。監修担当)にも用語集にL1のことをばっちり(?!)載せています。

| | Comments (0) | TrackBack (2)

March 25, 2010

無線LANとWi-Fiの違い

無線LANとWi-Fiを混同して使ってましたが、別物だということを今日知りました。orz

Wikipediaなどから抜粋してみます。

【無線LAN】
無線通信を利用してデータの送受信を行うLANシステムのこと。

【Wi-Fi】
IEEE 802.11機器に関する業界団体である Wi-Fi Alliance による相互接続性の認定の名称のこと。

http://www.wi-fi.org/


要は、無線を使ったLANであれば何でも無線LANと呼ぶのに対して、業界団体の規格にpassしたものをWi-Fiと呼ぶという違いなんですね。

| | Comments (1) | TrackBack (0)

November 19, 2009

これだけは知っておきたい ネットワークの常識

サーバの本に続き、「これだけは知っておきたい ネットワークの常識」という本を技術評論社から出版させていただきました。著者は坪井 義浩さん、工藤 修一さん、そして私(監修)です。

この本には以下の特徴があります。

・(なぜか世の中であまり見かけない)中級~上級を目指す方向けの入門本です。
・多くの初心者向けの本みたいに重要なことを端折って書いたりしていません。ただし正確性を重視したため、文章はやや硬派と言えます。
・ネットワークエンジニアと呼ばれる人が知っていないといけない事項をもれなく詰め込んでいます。プロトコルやフレーム、パケットというレベルはもちろんのこと、IPv6、BGP、トランジット、およびピアリングなども本書でカバーしています。

書店でよく見かけるネットワークの本は、中小企業の社内システム程度を想定したやさしい内容のものばかりです。しかしそういった本しか読んでいない人は多分知識不足で実際の現場では使い物になりません。

そこで本書では、ネットワークの入門書で勉強した人が次に読む本として構成しました。また現役のネットワークエンジニアの方も、自身が足りない知識を補うために一通り目を通してみるというのも良い使い方です。

また、個人的なおすすめは用語集です。本書での用語集では、私が主要ネットワーク機器メーカーのパンフレットの中から意味不明だと思った用語をピックアップして、それに対して解説をしています。ネットワーク機器のパンフレットって何故か「このスイッチはASICを用いたノンブロッキングL2スイッチです」のような意味不明な書き方をされていることが多いですが、こういったものをきちんと読み進められるように用語集を作りました。この用語集は自分で言うのも何ですが結構役に立つと思っています。

是非店頭でご覧いただけたらと思います。よろしくお願い致します。

※追記
技術評論社金田さん、著者の坪井さん、工藤さん。この半年本当にお疲れ様でした!

| | Comments (2) | TrackBack (2)

April 23, 2009

LVS+ldirectorを使ってMySQLをロードバランスをしてみる

今回はLVSを使ってMySQLのslaveサーバをロードバランシングする方法を記してみます。LVSは単に振り分けしかやってくれませんので、リアルサーバの生存確認やLVSの作動管理のためにldirectorも導入しています。

LVSだけだとLVSの設定を入れ込まなければなりませんが、ldirectorを使うとldirectorの設定ファイルに書いておくことでLVSの設定をldirectorが自動生成して反映してくれるので楽ちんです。

※世の中にはLVS+keepalivedの組み合わせが多いようですが、検証してみたところldirectorのほうが導入も運用も簡単なのでこちらを採用しました。

前提条件

VIP: 10.0.2.10
DB1: 10.0.0.101
DB2: 10.0.0.102

ロードバランサーとなるサーバへのインストール方法

【インストール】

# yum install ipvsadm
# yum install heartbeat
# yum install heartbeat-ldirectord


【ldirectorの設定】

$ sudo vi /etc/ha.d/ldirectord.cf

  checktimeout=5
  checkinterval=10
  autoreload=no
  logfile="/var/log/ldirectord.log"
  virtual=10.0.2.10:3306
        real=10.0.0.101:3306 gate
        real=10.0.0.102:3306 gate
        checktype=negotiate
        protocol=tcp
        checktype=connect
        scheduler=lc
        netmask=255.255.255.255


【VirtualIPアドレスの設定】
※本当はheartbeatサービスの設定で行いますが、今回LVSを冗長化せずheatbeatサービスを使わないのでこの方法でお茶を濁します。

% sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0:0

  DEVICE=eth0:0
  IPADDR=10.0.2.10
  NETMASK=255.255.255.255
  NETWORK=10.0.2.10
  BROADCAST=10.0.2.10
  ONBOOT=yes


リアルサーバ側の設定方法

【ループバックIPアドレスの設定】

% sudo vi /etc/sysconfig/network-scripts/ifcfg-lo:0

  DEVICE=lo:0
  IPADDR=10.0.2.10
  NETMASK=255.255.255.255
  NETWORK=10.0.2.10
  BROADCAST=10.0.2.10
  ONBOOT=yes
  NAME=loopback:0

【ループバックデバイスに割り当てられたip addressに対するarpに反応しないように設定(重要!)

% sudo vi /etc/sysctl.conf

  # Resolving the arp problem for LVS and ldirector.
  net.ipv4.conf.eth0.arp_ignore = 1
  net.ipv4.conf.eth0.arp_announce = 2

$ sudo sysctl -p

$ sudo sysctl -a | grep net.ipv4.conf.eth0.arp

メンテナンスの方法

【ldirectorの起動(=LVSの起動)】

% sudo service ldirectord start

【リアルサーバの追加】

% sudo vi /etc/ha.d/ldirectord.cf

    real=10.0.0.101:3306 gate
    real=10.0.0.102:3306 gate

の要領で追加し、

% sudo service ldirectord reload

【接続状況の確認】

% sudo ipvsadm -Ln

  IP Virtual Server version 1.2.1 (size=4096)
  Prot LocalAddress:Port Scheduler Flags
    -> RemoteAddress:Port         Forward Weight ActiveConn InActConn
  TCP 10.0.2.10:3306 lc
    -> 10.0.0.101:3306                Route 1 0         0
    -> 10.0.0.102:3306                Route 1 0         0


(付録) もしldirectorを使わずに手作業でLVSの設定をするとしたら

●VIP追加 (lcオプションは最小コネクション(lc) でリアルサーバにバランスする)

% sudo ipvsadm -A -t 10.0.2.10:3306 -s lc


●削除したい時は以下

% sudo ipvsadm -D -t 10.0.2.10:3306


●VIPにひも付くリアルサーバのIPアドレス(RIP)を追加 (-gはDSR、-mはNAT)

% sudo ipvsadm -a -t 10.0.2.10:3306 -r 10.0.0.101 -g
% sudo ipvsadm -a -t 10.0.2.10:3306 -r 10.0.0.102 -g


●削除したい時は以下

% sudo ipvsadm -d -t 10.0.2.10:3306 -r 10.0.0.101
% sudo ipvsadm -d -t 10.0.2.10:3306 -r 10.0.0.102


●設定確認

% sudo ipvsadm -Ln

| | Comments (0) | TrackBack (0)

October 30, 2008

LANケーブルの色分けについて

LANケーブルにはいろいろな色があるのでうまく色分けして使いこなしている方も多いと思います。この件技術者仲間と話すと実にいろいろな工夫を聞くことができたので今回はそれをまとめてみました。

【1. ハードウェア用途別】
基幹ネットワークなら黒、WEBサーバなら白、DBサーバなら赤といった感じです。色によってつながっている機器の重要度がわかるのでメンテナンスするときに気をつけやすいです。

【2. サービス別】
メール系なら緑、社内グループウェアなら黒、ユーザ向けサービスなら黄色といった感じです。サービスの種類が多すぎてわけがわからない環境下ではおすすめです。

【3. セグメント別】
セグメント毎に色分けに色分けします。192.168.1.0/24なら白、192.168.5.0/24なら赤、といった具合に。(yoshiさんコメントThanks)

【4. 全サーバ別の色】
サーバ台数が少ないのであれば、全サーバ別の色のLANケーブルを使うといった感じです。例えば紫だからWEB5だな、といった感じで一目でわかります。

【5. LANケーブルの品質別】
カテゴリ5なら白、カテゴリ5eならグレー、カテゴリ6なら黒、カテゴリ7なら黄金といった感じです。1のハードウェア用途別と組み合わせれば非常に有効かもしれません。

【6. LANケーブルの長さ別】
長さ別に違う色にします。社内サーバルームのように頻繁にケーブルつなぎかえが起こる環境だと意外と実用的でいいかもしれません。

【7. あえて色分けしない】
両端にペンで情報を書いておけば十分ということでしょうか。一回稼動したら物理的なメンテナンスがほぼ発生しない環境ならいいのかも。(いや、でも逆にほぼ発生しないからこそ緊急事態時にすぐに環境を把握できるよう色分けしておいたほうが良い気もしてきました)


他にも何か工夫がありましたら是非コメントください。

| | Comments (6) | TrackBack (2)

January 28, 2008

Cookieを利用したセッション維持(Sticky)の問題点

ロードバランサーの機能のうち、セッション維持は重要な役割な一つです。セッション維持を実現するための方法としては主に4つあります。


  • ソースIPアドレス利用
  • Cookie利用
  • SSL Session ID利用
  • URL利用

一番手軽なのはソースIPアドレスを利用する方法なのですが、NAT環境では全てのマシンが同じIPに見えてしまうのでこの方法が使えない場合も多いと思います。そんなわけで私はこれまでCookieを利用する方法をよく使っていました。しかし最近になってCookieを利用したセッション維持が失敗するケースが増えてきました。それはなぜか?

【Cookieを利用する方法の問題点】
Cookieを利用したロードバランスでは、セッション情報をCookieに書き込みます。ところでCookieの仕様をRFC2965で確認してみると


  • at least 300 cookies(少なくとも300個のCookieをサポートすること)
  • at least 4096 bytes per cookie(少なくとも4096バイトのCookieをサポートすること)
  • at least 20 cookies per unique host or domain name(少なくともユニークホストかドメインで20個のCookieをサポートすること)

と記されています。ということは、WEBブラウザーを使っているうちに一つのユニークホストもしくはドメインで20個以上のCookieが使われるか4KBの容量を超えてCookieが使われるとCookieを利用したロードバランスが失敗するようになります。


【解決方法はあるか?】
Cookieを利用したセッション維持を行うのにWEBブラウザーのCookie領域が使えないのであればそもそもCookieを利用したセッション維持が成り立ちません。もしそれが致命的なのであれば、URLを利用したセッション維持方法に変える等根本的な解決方法を模索する必要がありそうです。


※追記(2008.1.29)
どうやらCookieの最大サイズ制限容量はWEBブラウザによって異なるようです。
参考文献: http://www.teria.com/~koseki/memo/cookie/cookie_4k.html

※追記(2008.8.5)
Cookieを利用したセッション維持に失敗する理由として当初はタブブラウザーの問題と記しましたが、著者の誤解であることが判明しましたので、訂正させていただきます。申し訳ありませんでした。

| | Comments (3) | TrackBack (0)

March 06, 2006

Windows serverでDSRを行う方法

※まずDSRとは何ぞや?という方はこちらを見てください。

さて、以前書いた記事にはWindowsサーバでDSRを行う方法が含まれていないことに気づきました。そこで今回はその方法を記します。

(前提を記しましょう。このネットワークのネットワークアドレスが172.16.0.0、ネットマスクが255.255.0.0だっとします。そこにVIP172.16.115.10、ノードとなるWEBサーバが172.16.115.1と172.16.115.2の2台構成だったとした場合を考えてみます。)

【loopback adapterをインストールする】
DSRを行う場合各サーバにループバック設定を行わなければなりませんが、Windowsの場合デフォルトでloopbackアダプターがインストールされていませんのでまずはloopback adapterをインストールする必要があります。手順は以下の通り。


  • [スタート] ボタンをクリックし、[設定] をポイントします。次に [コントロール パネル] をクリックし、[ハードウェアの追加と削除] をダブルクリックします。
  • [デバイスの追加/トラブルシューティング] をクリックし、[次へ] をクリックします。
  • [新しいデバイスの追加] をクリックし、[次へ] をクリックします。
  • [いいえ、一覧からハードウェアを選択します] をクリックし、[次へ] をクリックします。
  • [ネットワーク アダプタ] をクリックし、[次へ] をクリックします。
  • [製造元] ボックスの一覧で、[Microsoft] をクリックします。
  • [ネットワーク アダプタ] ボックスの一覧で、[Microsoft Loopback Adapter] をクリックし、[次へ] をクリックします。
  • [完了] をクリックします。


【loopback設定を行う】
次にloopback adapterのTCP/IP設定を開いてください。ここでIPアドレスにはVIP、サブネットマスクにはそのネットワークのサブネットを入れ、その他は空欄にしてください。設定例は以下の通り。


【テスト】
WEBブラウザーから「http://172.16.115.10/」と入力してみてください。無事動けば設定完了です。


※追記(2009/11/16)
どうやら上記設定はWindows2003のみ有効とのことです。下記を参照しました。
http://d.hatena.ne.jp/yoshifumi1975/20090316/p2

※おまけ
Fondry ServerIron系でのDSR設定例を記します。慣れてしまえば非常に簡単です。

server real node1 172.16.115.1
  port http

server real node2 172.16.115.2
  port http
!
!
server virtual SERVICE_IP 172.16.115.10
  predictor least-conn
  port http dsr
  bind http node1 http node2 http

| | Comments (15) | TrackBack (2)

July 20, 2005

MTRGの代わりにcactiを使おう

ネットワーク監視をする際MTRGをよく使いますが、MRTGはとても扱いにくいです。そこでいろいろ探したところ、cacti(カクチと読むらしい。サボテンという意味らしい)というツールを発見しました。cactiの何がよいか。

 ・機器やインタフェースの追加・変更がWEBインタフェースから行える (←これものすごく嬉しい!)
 ・過去のグラフを参照できる
 ・ベンダ特有のMIBも簡単に使える
 ・ユーザ管理ができる
 ・グラフを分類して管理できる

これを使ってしまうともうMRTGに戻れません。是非使ってみてください。また他によいツールがありましたらどなたか教えてください。

【参考文献】
http://cacti.loaded.jp/

| | Comments (4) | TrackBack (3)

May 17, 2005

XPで無線LANの接続がよく切れる場合

XPを使っていて無線LAN接続がぷちぷち切れる経験って多くないですか?独自調査の結果、「Windows Zero Configuration Services」がどうもよろしくないようです。・・・と思っていたらそれを裏付けるような記事を発見しましたのでご紹介。


http://hotwired.goo.ne.jp/news/news/technology/story/20040607301.html

| | Comments (3) | TrackBack (2)

April 29, 2005

ネットワークエンジニアに必須の資質

ネットワークエンジニアの採用面接は苦手な仕事の一つです。設計と構築にそれなりのセンスが要求されるネットワークエンジニアをどうやって見極めればいいのか百発百中の方法論が自分の中でまだ確立されていないことがその要員です。そこで今回はネットワークエンジニアに必須の資質を考えてみて、今後自身の採用面接に生かしてみたいと思います。

【大前提】
まずネットワーク構築というものはどういうものか。大前提としてカットオーバー時から完璧でないといけないという性質があります。他のシステムではバグが出れば直せばいいわけですが(もちろん限度はありますけどね)、ネットワークはある種全てのITインフラの根幹なので、曖昧性は許されずとにかく完璧でないといけません。

ただその要求度の高さから普通の会社ではある程度難易度の高いネットワーク構築プロジェクトにはなかなか携わらせてもらえないという現実があります。面接に来られる方で非常に多いのはこれまで所属していた会社ではL2スイッチまでは扱わせてもらえたけどL3以上は絶対に触らせてもらえなかったというようなパターンです。ましてや機器冗長化やBGP、大規模ルーティング等の難易度の高いネットワーク構築に携わったことがある人は本当に少ないのが現実です。


【ネットワークエンジニアに必須の資質】
それを踏まえてネットワークエンジニアに必須の資質を考えてみたいのですが、僕は次の要素を挙げます。

 ①マニュアルをきちんと熟読する習慣がついていること。
 ②ネットワークの動きを理解する際、パケットの立場になって考えることができること。
 ③曖昧な理解で行動することが嫌なこと。

①については過去ログでも触れましたがエンジニアとしては必須です。ろくにマニュアルも読まずにL2スイッチを家庭用HUBと同じ要領で適当にいじる人って意外と多そうですが個人的にはそんな人がエンジニアと名乗ることはとても許せません。

②については例えばNICが2枚刺さっているサーバにそれぞれDefault Gatewayを設定した場合どういう挙動が想定されるかだったり、HUBでコリジョンが起こったら内部の仕組みとしてどうなるかだったりそういったことまで考えが及ぶかということです。表面的な結果だけでなく原理についてまで理解しようとする人であればかなり応用力が高い人であると言えそうです。

③については日に日に高機能化するネットワーク機器で機能的によくわからない部分があることが気持ち悪いと思うか、まぁいいかと思うかの違いです。


【ネットワークエンジニアをどのように面接すればよいか】
ということで最後に面接についてです。「ネットワークエンジニアに必須の資質」を見ていただければわかる通り、僕自身は資格の有無や経験の有無はあまり気にしてません。過去ログネットワークのプロと呼ばれるためにはでは皆さんから「実機経験のないネットワークエンジニアをプロと呼ぶことは納得できない」という類のコメントを何件かいただきましたが、僕は実機経験の有無よりも原理原則をきちんと押さえているかいないかというところが物事の本質だと思っています(もちろん一部の天才を除けばその域に達するために実機経験は欠かせないものだとは思いますけど)。

というわけでネットワークエンジニアに必須の資質が応募者にあるかどうかを見極めるのは本当に難しいんですよねえ。皆さんだったらどうしますか?

| | Comments (2) | TrackBack (0)