<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
   <channel>
      <title>あんじーのテクニカルブログ</title>
      <link>http://blog.development-network.net/ung/</link>
      <description>技術評価やIT系の情報などについて個人的な意見をつらつらと・・・
　携帯でもご覧いただけます。モバイルサイトのURLを携帯に送る</description>
      <language>ja</language>
      <copyright>Copyright 2010</copyright>
      <lastBuildDate>Sat, 13 Feb 2010 22:41:10 +0900</lastBuildDate>
      <generator>http://www.sixapart.com/movabletype/?v=4.2-ja</generator>
      <docs>http://blogs.law.harvard.edu/tech/rss</docs> 

      
      <item>
         <title>LPIC2(202)試験受験</title>
         <description><![CDATA[試験を受けてきました。正直受験中は勉強していた分野ながら深く突っ込まれる質問が多く愕然としていましたが、冷静になって解いていった結果10問程度が自信がない状態でした。

やはり問題集にも<a href="http://price.zaiteku.jp/products/detail/479811930X">Linux教科書 LPICレベル2</a>にも類似問題がないものもあって、正直LPIC1よりもかなり手ごわい感覚があった。

受験結果は、今回も580点で無事合格。
Web Serices････････････････83%
File Sharing････････････････87%
Network Client Management･･42%
E-Mail Services･････････････28%
System Security･････････････69%
Troubleshooting････････････68%

E-Mail ServicesではPostfixに関連する部分を深く突っ込まれ28%という恐ろしい正答率だったが、ウエイトが大きかったApacheとSamba、NFSで助けられたような気がする。

201試験を合格できれば、LPICレベル2認定になる。]]></description>
         <link>http://blog.development-network.net/ung/2010/02/lpic2202.html</link>
         <guid>http://blog.development-network.net/ung/2010/02/lpic2202.html</guid>
         <category>LPIC2(202)</category>
         <pubDate>Sat, 13 Feb 2010 22:41:10 +0900</pubDate>
      </item>
      
      <item>
         <title>LPI問題集</title>
         <description><![CDATA[LPIC Level2が2009年4月より改訂されてRelease2となったものに対応した<a href="http://price.zaiteku.jp/products/detail/4844327321">問題集</a>。
電車で持ち運べる薄さなので、まとまった試験勉強の時間が取れない場合でも利用できる本。
また、問題のページと答えのページがまとまって別々の場所にあるので、答えを隠さないでもよい点が工夫されていると思う。]]></description>
         <link>http://blog.development-network.net/ung/2010/02/lpi.html</link>
         <guid>http://blog.development-network.net/ung/2010/02/lpi.html</guid>
         <category>LPIC2(201)</category>
         <pubDate>Mon, 08 Feb 2010 01:00:52 +0900</pubDate>
      </item>
      
      <item>
         <title>OpenSSH</title>
         <description>サーバーの設定ファイル　/etc/ssh/sshd_config
#SSH Version2のみ
Protocol 2
#接続を許可するユーザー
AllowUsers hogehoge
#接続を許可するグループ
AllowGroups member
#空パスワードを禁止
PermitEmptyPasswords no
#Rootログインを禁止
PermitRootLogin no

ユーザーの鍵情報（秘密鍵／公開鍵）
SSH Version1(RSA1)　identity／identity.pub
SSH Version2(DSA)　id_dsa／id_dsa.pub
SSH Version2(RSA)　id_rsa／id_rsa.pub
→~/.ssh/ 配下に保存される
公開鍵をSSH接続先サーバーのアカウント ~/.ssh/authorized_keys に追記するとパスワード認証が不要となる

サーバーのカギ情報（秘密鍵／公開鍵）
SSH Version1(RSA1)　ssh_host_key／ssh_host_key.pub
SSH Version2(DSA)　ssh_host_dsa_key／ssh_host_dsa_key.pub
SSH Version2(RSA)　ssh_host_rsa_key／ssh_host_rsa_key.pub
→/etc/ssh/ 配下に保存される</description>
         <link>http://blog.development-network.net/ung/2010/02/openssh_1.html</link>
         <guid>http://blog.development-network.net/ung/2010/02/openssh_1.html</guid>
         <category>LPIC2(202)</category>
         <pubDate>Sun, 07 Feb 2010 13:00:51 +0900</pubDate>
      </item>
      
      <item>
         <title>sysctlコマンド</title>
         <description>/proc/sys/ 配下のパラメータを表示したり、変更したりすることができるコマンド

sysctl -w net.ipv4.ip_forward = 1
→ echo 1 &gt; /proc/sys/net/ipv4/ip_forward と同じ
IPパケット転送を有効にする

sysctl -w net.ipv4.icmp_echo_ignore_all = 1
→echo 1 &gt; /proc/sys/net/ipv4/icmp_echo_ignore_all と同じ
ICMP Echo Replyを応答しない

sysctl -w net.ipv4.icmp_echo_ignore_broadcasts = 1
ブロードキャスト宛ICMP Echo Requestに応答しない(Smurf攻撃を回避)

sysctl -w net.ipv4.tcp_syncookies = 1
SYN flood攻撃を回避

いずれも再起動すると無効となるため、継続的に利用する場合には、 /etc/sysctl.conf に記述が必要。</description>
         <link>http://blog.development-network.net/ung/2010/02/sysctl.html</link>
         <guid>http://blog.development-network.net/ung/2010/02/sysctl.html</guid>
         <category>LPIC2(202)</category>
         <pubDate>Sun, 07 Feb 2010 12:43:40 +0900</pubDate>
      </item>
      
      <item>
         <title>named.confのオプション</title>
         <description><![CDATA[よく使われるオプションについて

allow-query { <em>問い合わせを受け付けるIPアドレス</em>; };
allow-transfer { <em>ゾーン転送を受け付けるIPアドレス</em>; };

forwarders { <em>問い合わせ転送をするIPアドレス</em>; };
forward onlyもしくはforward firstを指定している場合において、自分で解決できない際に問い合わせを行うIPアドレス

問い合わせを行ったDNSサーバーが自分自身でゾーン情報を持っているか、もっておらず別のDNSサーバーへ問い合わせを受けて得られた回答なのかはdigオプションのflagsでわかる。

自分のDNSサーバーでYahooドメインについてDNS問い合わせを行った場合
dig @localhost yahoo.co.jp ns
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11508
;; <u>flags: qr rd ra</u>; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 2

YahooドメインのNSレコードでDNS問い合わせを行った場合
dig @dnsg01.yahoo.co.jp yahoo.co.jp ns
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6686
;; <u>flags: qr <strong>aa</strong> rd</u>; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 2

前者はflagsにaaはないが、後者には存在する。詳しいオプションの内容は<a href="http://www.syon.co.jp/syontech/tech002.html">digを使い倒そう</a>が詳しい。]]></description>
         <link>http://blog.development-network.net/ung/2010/01/namedconf.html</link>
         <guid>http://blog.development-network.net/ung/2010/01/namedconf.html</guid>
         <category>LPIC2(202)</category>
         <pubDate>Sun, 24 Jan 2010 10:19:39 +0900</pubDate>
      </item>
      
      <item>
         <title>/etc/aliases</title>
         <description>メールエイリアスの方法について

アカウント: 転送先ユーザー1, 転送先ユーザー2 ...
転送元アカウントはメールを受け取れない
転送先ユーザーはメールアドレスにすることで別ドメインにも転送ができる

アカウント: /path　指定したファイルにメッセージを追加
アカウント: |command　コマンドの標準入力にメッセージを転送
アカウント: :include:/path　指定したファイルにあるユーザーに転送する

ファイル名を変更した場合には、newaliasコマンドを実行する。(sendmailの場合には、sendmail -bi でも更新できる)
</description>
         <link>http://blog.development-network.net/ung/2010/01/etcaliases.html</link>
         <guid>http://blog.development-network.net/ung/2010/01/etcaliases.html</guid>
         <category>LPIC2(202)</category>
         <pubDate>Sun, 24 Jan 2010 10:01:43 +0900</pubDate>
      </item>
      
      <item>
         <title>routeコマンド</title>
         <description><![CDATA[静的ルートの追加と削除
route add -net ネットワークアドレス netmask サブネットマスク gw ゲートウェイアドレス
route del -net ネットワークアドレス netmask サブネットマスク gw ゲートウェイアドレス

<blockquote>Windowsの場合には
route add ネットワークアドレス mask サブネットマスク ゲートウェイアドレス<br>
route delete ネットワークアドレス<br>
となる</blockquote>

route コマンド(netstat -rでも同等)
Flags　U:経路が有効　H:宛先がホスト(pppなど)　G:ゲートウェイを使用　!:経路は無効

Linuxをルータで使用する場合
一時利用：echo 1 > /proc/sys/net/ipv4/ip_forward
恒久利用：/etc/sysconfig/network に FORWARD_IPV4=yes
とする。
]]></description>
         <link>http://blog.development-network.net/ung/2010/01/route.html</link>
         <guid>http://blog.development-network.net/ung/2010/01/route.html</guid>
         <category>LPIC2(202)</category>
         <pubDate>Sun, 24 Jan 2010 09:47:22 +0900</pubDate>
      </item>
      
      <item>
         <title>今月のネットワークの本</title>
         <description><![CDATA[<a href="http://price.zaiteku.jp/products/detail/4774140716">これだけは知っておきたい ネットワークの常識</a>

<a href="http://nosa.cocolog-nifty.com/sanonosa/">sanonosa</a>さんが著者にかかわっています。表紙にある通り入門者から中級一歩手前の方向けのネットワーク概要を説明してある書籍です。ネットワークエンジニアを目指すならば必ず知っておかなければならない内容が具体的に前半に記載されており非常に評価できますが、後半はどんどん一般論になってきてしまっているところが少し残念です。

書籍のレベルのターゲットとするところとネットワークエンジニアとして知るべき範囲が微妙にずれてしまっているところがあるのですが、それだけネットワークの常識はますます広くなりつつあるのかなと見受けられます。

アプリケーションエンジニアもWebアプリケーションを開発しているならばその下位レイヤーとなるネットワーク部分について見識を深めることは決して悪い話ではないと思います。特にスリーウェイハンドシェイクについては基本中の基本かと思うので、その概要がうまく説明されている本書は読んでおくべき一冊かと思います。]]></description>
         <link>http://blog.development-network.net/ung/2010/01/post_252.html</link>
         <guid>http://blog.development-network.net/ung/2010/01/post_252.html</guid>
         <category>書籍紹介</category>
         <pubDate>Mon, 18 Jan 2010 21:26:32 +0900</pubDate>
      </item>
      
      <item>
         <title>暖房器具購入</title>
         <description><![CDATA[エアコンと昔買ったハロゲンヒーターを使ってあっためているんだけれど、どうしても寒い。当初は、<a href="http://price.zaiteku.jp/products/detail/B000JLSXLS">遠赤外線暖房機</a>を買おうと思っていた。

ところが年末年始に湿度が低いことが原因で子供がウィルス感染してしまったので、急きょ暖房器具＋加湿器を検討することになった。<a href="http://price.zaiteku.jp/products/detail/B002O17Q7I">加湿セラミックファンヒーター</a>の場合には、加湿器の機能に加え、空気清浄機の機能も兼ね合わせており非常に気に入ったが、かなりの品薄だった。

少し高くついたが、早くほしかったので在庫のあるお店に注文して購入することができた。電気代はやはり遠赤外線暖房器のほうが有利だが、結果的に加湿セラミックファンヒーターを購入できてよかった。]]></description>
         <link>http://blog.development-network.net/ung/2010/01/post_251.html</link>
         <guid>http://blog.development-network.net/ung/2010/01/post_251.html</guid>
         <category>子育て</category>
         <pubDate>Sat, 09 Jan 2010 22:22:34 +0900</pubDate>
      </item>
      
      <item>
         <title>年末の大掃除</title>
         <description><![CDATA[今年も残すところあと1時間になってしまいました。

今年は、子供が生まれた大きな年でしたが、技術面ではLPIC Level1の資格を取得するにとどまってしまいました。来年こそは資格取得のための勉強をしっかりとして、試験対策の知識だけでなく、今後も生かせる知識を身につけたいと思います。

ところで、今日ガラス掃除をしようとしていて、ネットで見つけた「<a href="http://price.zaiteku.jp/products/detail/B000FQNFQK">クルー 網戸とガラスワイパー</a>」という商品を早速買ってきました。

この商品は2004年に発売されているにもかかわらずロングセラーらしく、プロの人が持っているようなワイパーとまではいかないですが、それなりに本格的なワイパーに洗剤がしみこませてあるシートがガラス用と網戸用で2枚ずつ入っています。

早速使ってみると、シートが真っ黒になりました。この前雑巾で拭いていたのですが、しっかりととれていなかったみたいで、ビックリしました。あとは、ワイパーで拭くのでガラスがきれいになります。

取り換え用シートは別売りで売っていて、それぞれ<a href="http://price.zaiteku.jp/products/detail/B000FQNFR4">ガラス用</a>、<a href="http://price.zaiteku.jp/products/detail/B000FQNFQU">網戸用</a>で1枚当たり約30円です。1年に何回も掃除するわけではないと思うので、一つずつ持っておいても損はないと思いました。]]></description>
         <link>http://blog.development-network.net/ung/2009/12/post_250.html</link>
         <guid>http://blog.development-network.net/ung/2009/12/post_250.html</guid>
         <category>時事ネタ</category>
         <pubDate>Thu, 31 Dec 2009 23:00:03 +0900</pubDate>
      </item>
      
      <item>
         <title>logrotate</title>
         <description><![CDATA[ログを出力するプログラムはたくさんあるが、1ファイルに書き出し続けると不要な過去のログを保持し続けて容量不足になってしまったりすることがある。

logrotateを使えば、出力側のプログラムを変更することなく、きめられたタイミングで現在のファイルをリネームしたうえで、新しいログファイルを作成してくれる。

Fedora Coreであれば、
/etc/logrotate.d/ の下にファイルを作成して、
/var/www/<em>XXX</em>/logs/*log {
    daily
    missingok
}
とすれば、cakePHPで出力されるdebug_logとerror_logを1日単位でローテートしてくれる。
create (パーミッション) (ユーザー名) (グループ名)のオプションを付ければ、空のファイルを作成してくれるし、apacheプロセスのようにログ出力プログラムがログファイルが無くなってしまうとそれ以降ログを書き出さないような仕組みなのであれば、postrotateオプションをつかってプロセスを再起動させることもできる。

詳しいオプションは<a href="http://www.atmarkit.co.jp/flinux/rensai/linuxtips/747logrotatecmd.html">@IT</a>が参考になる。]]></description>
         <link>http://blog.development-network.net/ung/2009/12/logrotate.html</link>
         <guid>http://blog.development-network.net/ung/2009/12/logrotate.html</guid>
         <category>LPIC2(201)</category>
         <pubDate>Sat, 26 Dec 2009 11:49:39 +0900</pubDate>
      </item>
      
      <item>
         <title>ITサービスマネージャー試験結果</title>
         <description>受験番号 SM325-2744 の方は， 不合格 です 
午前Ⅰ得点 ***.**点 （免除） 
午前Ⅱ得点 72.00点 
午後Ⅰ得点 62点 
午後Ⅱ評価ランク B (合格水準まであと一歩である) 

60%がボーダーラインなので、午後Ⅰはすれすれで何とか通ったが、午後IIの論文でBがついてしまった。午後IIはまぁまぁ自信があったんだけれども... 

春も2連敗、秋も敗戦 
もうそろそろ本腰を入れて勉強をしないと通らない試験ばかりになったような気がする。。。 


合格率12.5%、合格者平均年齢36.6歳らしい。</description>
         <link>http://blog.development-network.net/ung/2009/12/it_1.html</link>
         <guid>http://blog.development-network.net/ung/2009/12/it_1.html</guid>
         <category>ITサービスマネージャー</category>
         <pubDate>Tue, 22 Dec 2009 01:08:04 +0900</pubDate>
      </item>
      
      <item>
         <title>Segmentation faultが発生するとHTTPレスポンスが返らない</title>
         <description><![CDATA[Linux+Apache2 + PHPの環境において、特定のページだけがブラウザでアクセスしても「ページが表示できません」となってしまう。

VirtualHostディレクティブで設定しているaccess_logをtail -f で監視していても対象のページだけリクエストがログに残らない。ページが表示されるときには正しくログに残っているので、書き出し先が間違っているわけでもない。

次にVirtualHostディレクティブで設定しているerror_logを見てみたが考えられるエラーは記録されていない。

その次にWiresharkでTCP通信を監視してみた。すると
（正常系）
クライアント --(SYN)--> サーバー
クライアント <--(SYN+ACK)-- サーバー
クライアント --(ACK)--> サーバー
クライアント --(ACK)--> サーバー  HTTPリクエスト
クライアント <--(ACK)--> サーバー  HTTPレスポンス
と続くはずが

（異常系）
クライアント --(SYN)--> サーバー
クライアント <--(SYN+ACK)-- サーバー
クライアント --(ACK)--> サーバー
クライアント --(ACK)--> サーバー  HTTPリクエスト
クライアント <--(ACK)-- サーバー
クライアント <--(ACK+FIN)-- サーバー
クライアント --(ACK)--> サーバー
クライアント --(ACK+FIN)--> サーバー
で通信が終了してしまっている。

つまりHTTPレスポンスが返っていないのだ。
（このときはなぜにFINを返してしまうのだーと正直思った）

Linuxでもtcpdumpを使って解析したが、同じパケットがやり取りされており、通信経路上の問題点ではないことがわかった。

そうなるとTCPレイヤーが上位アプリケーション層にパケットを渡さなかったか、アプリケーション層が受け取ったパケットに対する応答をTCPレイヤーに返せないかのどちらかである。

/var/log/messageにはなにも記録されていなかったので、前者は考えにくく、またこの現象はPHPプログラムを入れ替えた機能から発生していることをみると、プログラムが怪しそうだったので、前のプログラムに入れ替えるとやはり問題が改善していた。

プログラムで問題のあると思われるところを修正した結果、正しくページが表示できるようになった。

これでめでたしめでたしだったが、ステータスコードが返せない理由がよくわからなかったので、ログをいろいろ調べてみた。
すると、httpd.confで設定しているerror_logをみると
 [notice] child pid 21450 exit signal Segmentation fault (11)
という記録があった。

今回勉強になったのは次の3点
・Segmentation faultなどの致命的な問題が起動プログラム上で発生した場合、ApacheはログをVirtualHostディレクティブで指定したErrorLogのパスに書き出してくれない。(子プロセスが落っこちるから仕方ない？)
・また、Apacheの子プロセスが落っこちた場合にHTTPレスポンスを返せない。
・access_logを記録するのはHTTPレスポンスを返したあとなので、リクエストを受け取れたとしてもaccess_logには記録が残らない。

初めて遭遇した不可思議なこのトラブルには解決に2時間くらい要してしまった。。。]]></description>
         <link>http://blog.development-network.net/ung/2009/12/segmentation_faulthttp.html</link>
         <guid>http://blog.development-network.net/ung/2009/12/segmentation_faulthttp.html</guid>
         <category>Apache</category>
         <pubDate>Sun, 06 Dec 2009 01:15:09 +0900</pubDate>
      </item>
      
      <item>
         <title>Tracを0.11にバージョンアップしてみた</title>
         <description><![CDATA[Tracのバージョンを0.10から0.11.5へバージョンアップしてみました。
日本語化されたものは<a href="http://www.i-act.co.jp/project/products/products.html">インタアクト</a>さんからダウンロードできます。

バージョンアップする手順は、UPGRADEに書いてありましたが、少しハマリました。。。
setuptoolsがなかったために、python setup.py installとしても「ImportError: No module named setuptools」と怒られます。

wget http://peak.telecommunity.com/dist/ez_setup.py
sudo python ez_setup.py

で幸せになれます。

あとは次の手順の通り
sudo python setup.py install
sudo trac-admin (プロジェクトのパス) upgrade
sudo trac-admin (プロジェクトのパス) wiki upgrade

バージョンアップしたことにより、管理コンソールが追加され、今までマイルストーンの登録とか、優先度とか、チケット分類などの変更や権限設定を<a href="http://blog.development-network.net/ung/2008/02/trac_1.html">コマンドラインでしなければならなかった</a>部分が管理コンソールでできるようになりました。（これは大きい！）

ただ、TRAC_ADMIN権限を付与する部分は、今まで通りコマンドラインでやる必要があります。（anonymousでログインして設定してから、Basic認証を設定するならば不要かもしれませんが･･･）]]></description>
         <link>http://blog.development-network.net/ung/2009/12/trac011.html</link>
         <guid>http://blog.development-network.net/ung/2009/12/trac011.html</guid>
         <category>trac</category>
         <pubDate>Sat, 05 Dec 2009 01:28:09 +0900</pubDate>
      </item>
      
      <item>
         <title>インピーダンスミスマッチ</title>
         <description><![CDATA[「オブジェクト指向設計」と「リレーショナルデータベース設計」の設計思想の違いから発生するミスマッチ。そのためにO/Rマッピングが存在する。

<a href="http://www.atmarkit.co.jp/fjava/rensai3/ormap01/ormap01.html">連載：Hibernateで理解するO/Rマッピング（1）</a>]]></description>
         <link>http://blog.development-network.net/ung/2009/11/post_249.html</link>
         <guid>http://blog.development-network.net/ung/2009/11/post_249.html</guid>
         <category>データベース</category>
         <pubDate>Mon, 30 Nov 2009 12:41:41 +0900</pubDate>
      </item>
      
   </channel>
</rss>
