ブックマーク / hirose31.hatenablog.jp (17)

  • 内部NLBによるパケットの書き換えのまとめ - (ひ)メモ

    そういえば、内部 NLB 構成ってどうやって同一セグメントのクライアントにパケットが返ってきてるんだろ? リアルサーバーからみたときに、パケットの送信元がクライアントのになる DSR だとすると返せるのはわかるんだけど、VIP (NLBのIPアドレス) 宛のパケットを受ける設定してなくても動いてるし、NAT (DNAT) 型だとすると(クライアントが同一セグメントにいるので)戻りのパケットが NAT した NLB を経由しないんでクライアントに破棄されるだろうし??? とふと疑問を持ったので調べてみた結果です。 調べたところ、リアルサーバーに届くパケットはこんな感じでした: ターゲットをインスタンスIDで指定した場合 src MAC = NLBのMAC src IP = クライアントのIP dst MAC = リアルサーバーのMAC dst IP = リアルサーバーのIP ターゲットをIP

    内部NLBによるパケットの書き換えのまとめ - (ひ)メモ
    tmatsuu
    tmatsuu 2021/01/10
    ターゲットをインスタンスIDで指定した場合、いわゆるヘアピン問題が発生する、なるほどー。
  • あるファイルがn日以上更新されてないか調べる方法 - (ひ)メモ

    find -mtime を使う # 最終更新から 24 時間以上経過しているか if [[ "$(find /path/to/file -mtime +0)" != "" ]]; then echo 'OLD!' else echo 'NEW!' fi -mtime +0 がなぜ「24時間以上前」になるのか?について: http://linuxjm.osdn.jp/html/GNU_findutils/man1/find.1.html より -mtime n ファイルの最終内容更新日時が、基点となる時刻から計算して n 日前に当たれば、真を返す (訳注: 基点となる時刻は、デフォルトでは find を実行している今現在である)。 (snip) なお、デフォルトの動作のように、現在時刻から数えて 24 時間前から 48 時間前までを 1 日前とする つまり、 1日前 = 24時間前から48時

    あるファイルがn日以上更新されてないか調べる方法 - (ひ)メモ
    tmatsuu
    tmatsuu 2020/12/19
    -mtime +0よく使う。わいわい。数字が直感的にわかりにくいコマンド第1位なので毎回テスト実行して確認してる。
  • これだけ覚えればOK、rsyncのディレクトリ、ファイルパスの指定方法 - (ひ)メモ

    ディレクトリどうしをまるごとコピーしたい場合 コピー元・先両方に末尾に / をつけて、コピー先のディレクトリまで指定する。 rsync -av /path/to/dir/ remote:/path/to/dir/ rsync -av /path/to/dir remote:/path/to とか別の書き方もあるけどパット見わかりづらいので ダメ 。 ディレクトリの末尾に / をつけるのが肝要。 ファイルをコピーしたい場合 コピー元・先両方をファイルのパスで指定する、 もしくは、 コピー元をファイルのパスで、コピー先を末尾に / をつけたディレクトリのパスで指定する。 rsync -av /path/to/file remote:/path/to/file もしくは rsync -av /path/to/file remote:/path/to/ おまけ コピー元・先でパスが同じ場合 コピー

    これだけ覚えればOK、rsyncのディレクトリ、ファイルパスの指定方法 - (ひ)メモ
    tmatsuu
    tmatsuu 2020/12/19
    ディレクトリの末尾に/をつけるのが肝要、わかる。引数は最低限-a、-v、-n、--deleteぐらいを覚えておけばok。
  • Ubuntu 18.04 LTSからAMIを作る前にやらなければならないこと - (ひ)メモ

    AWS Marketplace の Ubuntu 18.04 LTS 20190514 からインスタンスを立てて、そのインスタンスからAMIを作る前には次のことをやらなければなりません。 ifupdownを削除する sudo apt purge ifupdown ifupdownパッケージがインストールされている状態で作ったAMIで起動すると、起動はするもののNICが見つけられずに一切のネットワークアクセスができないインスタンスになってしまいます。 /etc/netplan/50-cloud-init.yaml は削除する必要はなく、ifupdown がインストールされていなければ、新規インスタンスの MAC アドレスにあわせて適切な設定ファイルが生成されました。 深追いしてませんが、ifupdown がインストールされていると、ifupdownに代わる新しいネットワーク管理システムの n

    Ubuntu 18.04 LTSからAMIを作る前にやらなければならないこと - (ひ)メモ
    tmatsuu
    tmatsuu 2019/06/29
    :を使う発想はなかったなるほど。自分ならcat /dev/nullとかecho -nとか
  • bashでもpercolをイイ感じに使う方法 - (ひ)メモ

    [twitter:@stillpedant](mooz)さん作のpercolはシェルとは独立しているのですが、ググるとzshと共に使っている人が多いようです。これはzshの強力な行編集機能を提供するzleに因るところが大きいためだと思います。 bashでもpercolを使っている人もいるのですが、 percolが便利だけど、入れるにはpython2系のほうが良さそう - About Digital Big Sky :: Windows のコマンドプロンプトを10倍便利にするコマンド「peco」 「絞り込んだパスへのcdを実行する」ことはできても、「絞り込んだパスを現在のコマンドライン行に挿入する」ことは実現できていない、つまりコマンド実行はできるけど行編集はできていないようでした。 そこで今回ちょっと調べてみたところ、bashでも(zleには及ばないにしても)変数READLINE_LINE

    bashでもpercolをイイ感じに使う方法 - (ひ)メモ
    tmatsuu
    tmatsuu 2014/06/13
    peco良さそう。あとでpeco
  • Apacheのmod_statusの各状態はどういう意味か? - (ひ)メモ

    Apacheのmod_statusを使えば各プロセスの状態を知ることができます。CloudForecastやCacti等でそれを元に視覚化している人も多いと思います。 mod_statusで確認できる状態には以下の11種類があるのですが、 状態名 値 mod_stautsでの記号 説明 SERVER_DEAD 0 . Open slot with no current process SERVER_STARTING 1 S Server Starting up SERVER_READY 2 _ Waiting for connection (or accept() lock) SERVER_BUSY_READ 3 R Reading a client request SERVER_BUSY_WRITE 4 W Processing a client request SERVER_BUSY_

    Apacheのmod_statusの各状態はどういう意味か? - (ひ)メモ
    tmatsuu
    tmatsuu 2014/05/22
    素晴らしい。.、_、W、K、C、Gはよく見る。Lは見かけたことがあまりない。Cactiで記録してても殆どみない。別の色と似てて良く見間違えるけども。ちょうど今Kについて色々調べてる。
  • InfluxDB をちょっとさわってみた - (ひ)メモ

    InfluxDBとは http://influxdb.org メトリクスやイベントといった時系列データを格納するのに適したデータストアです。 ちなみに go で書かれています。 ちなみに 2013のOpen Source Rookiesに選ばれました。 InfluxDBの特徴 RRDやMySQLに時系列データを格納する場合と比較して、InfluxDBの特徴を紹介します。 バックエンドは LevelDB LevelDBとは、キーでソートされた状態で可能されたKVSです(Google製)。詳しくはこのへん参照のこと。 http://en.wikipedia.org/wiki/LevelDB https://code.google.com/p/leveldb/ https://speakerdeck.com/smly/influxdb-and-leveldb-inside-out 将来的にLev

    InfluxDB をちょっとさわってみた - (ひ)メモ
    tmatsuu
    tmatsuu 2014/04/13
    ほほほう
  • Imoutable Infrastructure - (ひ)メモ

    早速作りました。 Ubuntu 12.04 LTS で動作確認しました。Ubuntu じゃないと動かないと思います。 # aptitude install update-motd # rm -f /etc/update-motd.d/* # vi /etc/update-motd.d/99-imoutable (後述) # grep UsePAM /etc/ssh/sshd_config UsePAM yes (UsePAM yesじゃなかったらyesにして service ssh restart) # grep motd /etc/pam.d/sshd session optional pam_motd.so # [1] (pam_motdがコメントアウトされていたらコメントを外す) 動作例 /etc/update-motd.d/99-imoutable #!/bin/bash imou

    Imoutable Infrastructure - (ひ)メモ
    tmatsuu
    tmatsuu 2014/03/28
    他のディストリビューションなら、例えばcronで/etc/motdを更新すればいいんじゃね
  • 快適mysqlコマンド★カスタマイズの決定版 - (ひ)メモ

    この記事は MySQL Casual Advent Calendar 2013 の25日目の記事です。 自分の過去のブログも含めて、mysqlコマンドのカスタマイズについていろいろな情報がありますが、わたしがオススメの秘伝のタレをまとめたいと思います。是非、ご参考に。 定型文(SQL)のショートカット入力 「show create table TABLENAME\G」とか「select user,host,password from mysql.user order by user,host;」とか、よく実行するけど長くて入力するのがめんどうなのがありますよね。それをショートカットで入力できるようにする方法です。 mysqlコマンドで行編集ができるのは、readlineやlibeditをリンクしているおかげです。 従来の公式バイナリ配布物に含まれるmysqlコマンドはreadlineでした

    快適mysqlコマンド★カスタマイズの決定版 - (ひ)メモ
    tmatsuu
    tmatsuu 2013/12/29
    自分が全権を握ってるとは限らないので、歯を食いしばってデフォルト設定に体を合わせるマゾ系インフラエンジニアはこちらになります。
  • Nginxでproxy_passにホスト名を書いた時の名前解決のタイミング - (ひ)メモ

    Nginx 1.4.2で試しました。 ネームサーバーは、ローカルのunboundをlocal-zone, local-dataを使って簡易コンテンツサーバーにして試しました。 local-zone: "oreno." static local-data: "api.oreno. 30 IN A 192.0.2.11" # local-data: "api.oreno. 30 IN A 192.0.2.12" proxy_passにホスト名を書くと→名前解決は一度だけ このように Nginx の設定を書いた場合、 location /api { proxy_pass http://api.oreno:9999; } 「api.oreno」の名前解決は、nginxの起動時に行われます 名前解決できない場合は、nginxは起動しません 名前解決できた場合は、ずっとそのIPアドレスにreverse

    Nginxでproxy_passにホスト名を書いた時の名前解決のタイミング - (ひ)メモ
    tmatsuu
    tmatsuu 2013/11/15
    なんてこった。まじか。ELBの前にnginx置いたらアレやないか。置くことないけど。
  • NATインスタンス冗長化の深淵な話 - (ひ)メモ

    AWS Casual Talks#1を開催しました - まめ畑 http://d.conma.me/entry/2013/11/02/140136 に参加して『NATインスタンス冗長化の深淵な話』というLTをしてきました。 Redunduncy of NAT instance on AWS/VPC from Masaaki HIROSE これまで何度か発表をしてきましたが、私の人生で一番気が重いプレゼンとなりました。 ニッチな話題の会でオオトリを努めるとネタが被って社会は厳しいという見のようなLTでしたね。今後ともご指導ご鞭撻の程、よろしくお願いいたします。 あと、何人かの方にきかれたフォントですが、ここの怨霊フォントと吐き溜フォントです。 暗黒工房 ホラーフォント :怨霊、オバケ、吐き溜

    NATインスタンス冗長化の深淵な話 - (ひ)メモ
    tmatsuu
    tmatsuu 2013/11/06
    さて、自分の胸に手を当てて…うっ
  • ファイル指定で、ページキャッシュにのっているか確認したり追い出したり - (ひ)メモ

    ファイル指定で、ページキャッシュにのっているか確認したり追い出したりするPerlモジュールを書きました。 https://metacpan.org/release/Sys-PageCache https://github.com/hirose31/Sys-PageCache Linux なら動くはずですが、動かなかったら教えてください。あと一応、FreeBSD 8.3以上でも動くと思います。 既存の実装にGooglelinux-ftoolsやエヌハヤシ氏のpagecache-toolがありますが、これのPerlモジュール実装(XS)になります。 https://code.google.com/p/linux-ftools/ https://github.com/nhayashi/pagecache-tool たまにfreeコマンドでみるとbuffers/cacheがっててswapしてる

    ファイル指定で、ページキャッシュにのっているか確認したり追い出したり - (ひ)メモ
    tmatsuu
    tmatsuu 2013/09/16
    おお。あとで試す
  • How to defend SSL/TLS servers against BEAST, CRIME and BREACH attack for Nginx - (ひ)メモ

    The information presented herein is without any guarantees and I’ll take no responsibility if any harm happens to you or your users. If you find any factual problems, please reach out to me([twitter:@hirose31]) immediately and I will fix it ASAP. http { server { listen 80; listen 443 ssl; server_name example.com; # BEAST: dont's use CBC ssl_protocols SSLv3 TLSv1; ssl_ciphers ECDHE-RSA-AES256-GCM-S

    How to defend SSL/TLS servers against BEAST, CRIME and BREACH attack for Nginx - (ひ)メモ
    tmatsuu
    tmatsuu 2013/08/10
    BREACHでgzip offにする必要があるのはtext/htmlの場合だけだと思うので、SSLならgzip_typesにtext/htmlを含めないって方が効率いいんじゃないかと思いました。あとIfIsEvilなので削る方法を模索したい
  • RedisのLuaで時間のかかる処理をするとどうなるか? - (ひ)メモ

    Redis は基的にシングルスレッド、イベントドリブンモデルなので、時間のかかるLua スクリプトを実行したらどうなるかというのは想像に難くないのですが確認してみました。 Redis は 2.6.14 です。 redis-cli eval 'while true do print("hello") end' 0な感じのを実行します。 実行中に、別クライアントから GET, INFO, PING すると全てブロックされて結果が返ってきません。 redis.conf で lua-time-limit 5000 と設定している場合は、5秒後に redis-server のログに [18068] 22 Jul 13:51:23.798 # Lua slow script detected: still in execution after 5000 milliseconds. You can t

    RedisのLuaで時間のかかる処理をするとどうなるか? - (ひ)メモ
    tmatsuu
    tmatsuu 2013/07/23
    こえええええ
  • Apacheでreverse proxyするときに、受けのパスに応じて異なるタイムアウト値を設定する方法 - (ひ)メモ

    Apacheでreverse proxyするときに、バックエンドは同じなんだけど受けるパスに応じて別なタイムアウト値を設定しようとしてハマったのでそのメモです。 以下、Apache 2.2.22 でのお話です。2.4でどうなってるか、どなたかご存知でしたら教えてください>< まず思いつくのはこんな設定だと思います。 ProxyTimeout 7 ProxyPass /3sec/ http://127.0.0.1:9999/ timeout=3 ProxyPass /5sec/ http://127.0.0.1:9999/ timeout=5バックエンド (127.0.0.1:9999) は、こんなのを動かしておけば十分です。 $ while true; do echo listen...; nc -l 9999; doneこれでクライアントでアクセスしてみると… $ time curl h

    Apacheでreverse proxyするときに、受けのパスに応じて異なるタイムアウト値を設定する方法 - (ひ)メモ
    tmatsuu
    tmatsuu 2013/06/16
    Apache2.4.4で同じ条件で試してみたら、最初のやつは両方5秒ではなく3秒になった。2番目は同じ。3番目もマッチしないのは同じ。デフォルトのProxyを定義してなかったので即404だったけど。
  • 感情に訴えかけるログ、 Log::Minimal::Emotional !!!! - (ひ)メモ

    某所で 人間の脳には人の顔を識別するための特別な神経回路が最初から組み込まれていて、人の顔の違いを見分けたりというのが、他の図形よりも格段に高速に行えるようになっています。ということで、ログメッセージに顔文字を入れてみたら、なにこれすごいヽ(=´▽`=)ノ ってなったところ。 という発言をみかけたので、つくりました。 Log::Minimal::Emotional - https://gist.github.com/hirose31/4958764 「エモーショナル」はお好みなものに容易に再定義可能です。 #!/usr/bin/env perl use strict; use warnings; use utf8; use Log::Minimal::Emotional; $Log::Minimal::Emotional::EMOTION->{CRITICAL} = '⊂二二二( ^ω^)

    感情に訴えかけるログ、 Log::Minimal::Emotional !!!! - (ひ)メモ
    tmatsuu
    tmatsuu 2013/02/16
    顔文字ログ、ヤバイ
  • Apache 2.4.1 で気になった新機能などのメモ - (ひ)メモ

    Overview of new features in Apache HTTP Server 2.4 - Apache HTTP Server Expressions http://httpd.apache.org/docs/2.4/en/expr.html やSetEnvIfExpr, RewriteCond, Headerで使える評価式 の追加 http://httpd.apache.org/docs/2.4/en/mod/core.html#if ヘッダや環境変数を参照して細かい制御ができるようになったことに加え、else的なブロックを書くのに苦労したことがあるんで朗報です ErrorLogFormat http://httpd.apache.org/docs/2.4/en/mod/core.html#errorlogformat ErrorLogも書式設定できるように。 %L (L

    Apache 2.4.1 で気になった新機能などのメモ - (ひ)メモ
    tmatsuu
    tmatsuu 2012/02/23
    ほう。あとで。
  • 1