今日もまた踏みました

非定期更新:主に何とも言えない事態にあった際に更新しています

Google には繋がるが Yahoo には繋がらない

前に Google には繋がるが Yahoo には繋がらないという現象に対応した時の記録
時期は 2014 年の 8 月頃

 

お客様よりインターネットが見れなくなったという電話が入った
連絡を受けた内容を整理すると
・メールは受信できている
・インターネットは繋がらない
との事だった

不自然に思い、事前に用意しておいた TermViewer の QuickSupport を実行してもらった所、接続に成功した
※TeamViewer (http://www.teamviewer.com/) は遠隔操作のアプリケーション

とりあえず「インターネットは繋がらない」は正確な情報ではなかったらしい

Internet Explorer を開いてみると、デフォルトが Yahoo Japan になっているのだが「503」で落ちていた
ちなみに自分の PC で Yahoo Japan は開けたので Yahoo は落ちていない

この時点で、下記の状況となる
DNS は使えている(メール OK 及び TeamViewer OK )
・インターネットそのものには繋がっている
・そもそも Yahoo そのものが 503 になる事は考えにくい

その後、何気なく Google を開いたら、Google は見れた。Yahoo は見れないのに…
とはいえ、おかげで原因の見当がついてきた

Google と Yahoo の違い、一番大きいのは Googlehttps, Yahoo は http だという事
SSL で暗号化されたされた通信は通さざるを得ないと考えるのであれば、通信途中にあるフィルタリング系(ウィルスチェックやマルウェアチェックなど)が怪しい
ブラウザのプラグインやアドインの場合だと SSL 通信でも動作する可能性が高いが、中継する機器などの場合は、SSL 通信はスルーしてるはず
何とかできるのであれば、そもそも SSL 通信の覗き見が可能という事になるので

そう言えば FortiGate のライセンス更新した方が良いですか? を聞かれていたのを思い出したで、更新したかを確認した所、更新しなかったとの事
なので FortiGate の設定から HTTP のフィルタを外した所、Yahoo も正常に開くようになった

とりあえずライセンス更新してないからって、503 で落とすのはあんまりな気がします
FortiGate を使うのやめる時は、物理的に外す事が推奨の様だ

それにしても、Google さんの目指す全てのサイトは https にすべしが実装されると、FortiGate とか入れても全然対策にならないのでは…と思う今日この頃です

このご時世にInternet Explorer 11のみ派手にデザインが崩れる事案が発生

新しく作成しているサイトをテストしようと思ったら派手に壊れていた

今どき、どんな HTML + CSS になってるんだよと思われるかも知れない
関係者の名誉のために一言添えるのであれば、本来は Internet Explorer 11 でも問題なく表示されている。それがテストを実施しようと思った途端に壊れていたという状況となった

という事で追跡調査を行った

見た感じの壊れ方は、まるで CSS がまともにあたっていない感じだった、それもあり下記の内容を順次確認した

1. 他のブラウザでの確認 ( Firefox, Chrome ) ⇒ 正常に表示されていた
2. キャッシュの確認。キャッシュを全てクリア後に再表示。 Fiddler を使い、全てのファイルがダウンロードされているのも確認。 ⇒ 全て正常にダウンロードされていた
3. デザインのHTML ( こちらは正しく表示されている )と、読み込まれている CSS を比較 ⇒ 全く同じ
4. CSS の読み込み順序を同じに変更 ⇒ 変化なし
5. 読み込まれている JavaScript を全て停止 ⇒ 変化なし
6. HTML のタグを確認 ⇒ 全く同じ構成
7. 実は見てるファイルが違うのかと思い HTML を修正 ⇒ 変更される

いよいよ意味が分からなくなって来た所で、元のデザインにあり、作成後に入れ忘れている一文を入れてみた

<!--[if lt IE 9]>
<script src="http://html5shiv-printshiv.googlecode.com/svn/trunk/html5shiv-printshiv.js"></script>
<![endif]-->

ここで初めてデザインに変化が訪れた
入れてみたと言っておいてなんだが、変化がないはずだった… はずなのに、あれ? 変わってる? となった
Internet Explorere 11 では条件付きコメントは使えないはず…
それ以前に lt なのだから IE 9 以下のブラウザとなるけど 11 だし…
なのになぜ適用された? と思いつつようやく犯人の姿が見えてきた

思いもよらない伏兵は、こんな所に配置されていた

F12 を押して Developer Tools を表示したままにしていたのに、全く気が付かなかった
なぜ header タグが正しく認識されていないんだろう… 程度だった
よくよくブラウザの部分をみたら、「7」になっている。つまり Internet Explorer 7 での表示になっている

f:id:itrident_kumakawa:20150210195957p:plain
試しに edge に変更したところ、正常に表示された…とても悲しい

そしてどうしてこうなった

F12 を押して Developer Tools を終了した所、デザインが崩れる。結局の所 Internet Explorer 7 での表示に戻ったらしい
結論から言えば、デフォルト表示で互換表示になる理由があるようだ

何の気なしに Internet Explorer の互換表示設定を確認してみた

f:id:itrident_kumakawa:20150211035409p:plain

凄く気になる一文、「表示イントラネットサイトを互換表示でする
まさかと思いチェックを外してみた所、表示は正常に戻った

今回の現象は、Internet Explorer がアクセスした先はイントラネットだと解釈した事により、互換表示に切り替わってしまったという事になる

そして Internet Explorer のいうイントラネットサイトとは

見つかりました
http://support.microsoft.com/kb/884430/ja

: プロキシ構成が使用されない場合、Internet Explorer では、ホスト名にドット (.) が含まれない URL はローカル イントラネット ゾーンに割り当てられます。ドット (.) が含まれないホスト名は、ドットなし (ドットレス) ホスト名と呼ばれます。FQDN はインターネット ゾーンに割り当てられます。

だそうです
今回、名前ベースのバーチャルホストを使ってサイトを分けており、hostsに書いた名前にドット(.)は含まれていなかった。それが原因だったようだ
本番は IP Address で動かしていたので大丈夫だったらしい…

今日からhostsにサーバー名書く時は servername.vsie と名付ける事に決めた

OpenVPNで作成したVPNで大きなファイルのやり取りに失敗した

OpenVPNを使ってVPNを構築している場合に通信トラブルが発生した時の記録

 

OpenVPNを使って拠点間のVPNを下記の様な形で構築した

f:id:itrident_kumakawa:20150205031051p:plain

しばらく運用を実施していると、下記の様なトラブルが発生する様になった
pingは通る
vimを使うと止まる
・小さいサイズのファイルはcatできる
・大きいサイズのファイルはcatできない

原因はOpenVPNで扱う標準設定のパケットサイズが大きく、結果的にブラックホール現象の様な症状となっていた

色々と試してみたが、上記の構成の場合のパケットサイズは1280くらいが一番安定する

具体的には、confファイルに下記を追記する
tun-mtu 1280
fragment 1280
mssfix 1280

 

CentOSへのSSH接続が非常に遅い

CentOSSSHで接続しようとした時に非常に遅い
正しくは、前は早かったのにある日を境に遅くなった

原因はDNSサーバーのIPアドレスを変更したのを忘れていて、CentOS側の設定を変更するのを忘れていた

SSHでログインする際にDNSを参照するらしく、DNSにつながらない場合にタイムアウトするまで時間がかかるようだ

ちなみにresolv.confのみを修正し、if-eth0を修正しわすれていたため、再起動時にDNSの設定が戻りまたタイムアウト待ちとなった

正規表現で思いっきり勘違いした

HTMLからTABLEの中を正規表現で抜き出そうとしたが中々うまくいかなかった

古くからあるWEBサイトから情報をピックアップするのが目的なのだが、idもなければnameも無い、構成がTABLEばかりと何とも抜出しにくい

<TABLE>
<TR><TD>項目1</TD><TD>値1</TD></TR>
<TR><TD>項目2</TD><TD>値2</TD></TR>
</TABLE>

これに対して、"(<TR>.+?項目2.+?</TR>)"の様に作成した所、項目1も取れてしまう

完全に勘違いしていて、特に何もしていない場合は前から一致させる
その為、"(<TR>.+?項目2)"とすると

<TABLE>
<TR><TD>項目1</TD><TD>値1</TD></TR>

<TR><TD>項目2</TD><TD>値2</TD></TR>
</TABLE>

が一致してしまう
その為「<TR>」が一致してから「項目2」まで一致するという事らしい
いつもすんなりいっていたのは、idでTABLEを絞り込めていたかららしい

諦めて「<TR> ~ </TR>」を切り出してから、TDで分割する事にした

BoxCryptor でファイル名に特定文字を含んでいると表示されない現象が発生

【追記】

下記の現象を回避する方法がわかりました
ファイル名を暗号化すると、日本語ファイル名を利用しても大丈夫なようです
ですので、日本語で利用したい方は、お金を払ってファイル名の暗号化を利用可能にするのが良いかと思います

 

【初期投稿】

DropBox とか OneDrive とか GoogleDrive とかのオンラインストレージを利用する場合、やっぱりアカウントが漏れたりして、中を見られるのはちょっと怖い
そんな時に役に立つのが暗号化のアプリケーションだ

先日までは、nCryptedCroud ( https://www.encryptedcloud.com/ ) を利用していたのだが、最近になって BoxCryptor ( https://www.boxcryptor.com/ ) に変更していた

変更した理由なのだが、nCryptedCroud はエクスプローラから操作できても、コマンドプロンプトなどから操作ができない。全部暗号化してくれるのは非常に助かるのだが、逆にバックアップを残そうと思った時に、ちょっと使いにくい

その点、BoxCryptor の場合は、ドライブレターの割り当てが行われるのでコマンドプロンプトなどが利用できて、何かと都合がよい感じだ

 

実運用を開始してみて、BoxCryptorに問題が発生した
ファイル名に「合同」の文字があると、ファイルが表示されない
へんなコピーミスが連発した理由も同じかもしれないな

とりあえずフォーラムで聞いてみよう

 

という事なので、日本人の方は現時点で使うのをお勧めできないです

 

下記はBoxCryptorのサポートへ送信したメールに添付した内容
どんな感じになるのかわかってもらえると思う

f:id:itrident_kumakawa:20150224095204p:plain

f:id:itrident_kumakawa:20150224095311p:plain

f:id:itrident_kumakawa:20150224095322p:plain

f:id:itrident_kumakawa:20150224095330p:plain

f:id:itrident_kumakawa:20150224095344p:plain

f:id:itrident_kumakawa:20150224095400p:plain

f:id:itrident_kumakawa:20150224095411p:plain

f:id:itrident_kumakawa:20150224095419p:plain

Fuel + Redis で Session に入れた値が壊れた

(この事件は2013年10月後半に起きました)

Fuel の Controller から、View へ値を渡す時にオブジェクトを利用して渡していた

同じオブジェクトを Session に入れて、後から再利用しようとしていたのだが、そちらで取得すると「α」とかの文字が「&alpha;」とかに変わってしまっている

Redis に送る所が悪いのかとか色々調べてみたのだが、Fuel で Redis を使っている場合は下記の様に処理が行われるらしい

1. Controller でオブジェクトに値を設定 (この時点でSessionにも設定)
2. View でオブジェクトを処理
3. Redis へ送信

実に問題だったのが、2 の View の部分
View に出力するため、\View::forge を実行している訳なのだが、この処理ではオブジェクトのプロパティに対して処理を行い値を書き戻している

その為、3 の Redis への送信時点では、既にエスケープ処理されていて、次の所で Session から取得した時にはエスケープ処理済みが取得されていたようだ

色々と物騒なので、View に渡すオブジェクトは全て Clone する事にした