Contact Form 7 でメール送信できない

サーバ移転してできなくなっていたので、色々と可能性を考えたが、原因は SMTP を叩く sendmail 相当の機能がサーバにないからだった。
何のコマンドが必要かは分からんが heirloom-mailx を入れても解決しなかったので、mail コマンドではないっぽい。
とりあえず、SMTP 叩けるプラグインを入れてしのぐことにした。

前のサーバでも、SMTP 送信できるようにした記憶はないのだが…うーむ?
ローカル配送だったからかな…
(未解決)

VPSを使う

転勤が決まったらしいので,引越しに備えてVPSを整えてみた.
お名前.com の VPS が,初期費用がかからず,安価に短期間利用できるので良さげ.
ubuntu 12.04 LTS が選択できるので,小躍りして申し込んだら,ubuntu server ではなく ubuntu desktop であることが分かってゲンナリ.
とりあえず,コンソールエキスパートモードからインストールすることにしたので,手順を軽くメモる.

VPS のインストールディスクを仮想ホストに仕込むところは,公式のヘルプを参照のこと.
起動したら ubuntu desktop のインストーラが起動するところまでは,進んでいることを想定.

  1. 起動してインストール開始.
    • Advanced options
    • Command-line expert install
  2. Ubuntu のインストーラは,上から順に設定していけばいいので簡単.
    • Choose Language
    • English
    • United States
    • en_US.UTF-8
    • ja_JP.UTF-8[space][tab][Enter]
    • en_US.UTF-8
    • Configure the keyboard
    • No
    • English (US)
    • English (US)
  3. ここからは,KVM初体験なので,よく知らない.勘で進める.
    • Detect Network Hardware
    • usb-storage (USB storage)に[*]が入った状態で,[tab][Enter]
    • Configure the network
    • NW設定がどうなっているかなど知らんので,自動でまずはやってみる
      Yes
    • 設定したいホスト名を入力し,[tab][Enter]
    • とりあえず空欄でもいいし,先々つけたいドメインを入れてもいい
    • Choose mirror of the Ubuntu archive
    • ftp
    • http://www.ubuntulinux.jp/ubuntu/mirrors から,ミラーを選択し,まずはFQDNを入力
    • 次に,HTTPで言うところのGETとかPOSTの後ろにつけるパスを絶対パスで指定
    • Proxy設定は知らんので,とりあえずなしで進めてみる
    • Download installer components (これはちょー時間かかる)
    • load-cdrom
    • Detect and mount CD-ROM
    • なんかエラーがでて,以降はだいたい ubuntu server のインストールと同じ.

インストールコンポーネントのとこは,なんか省略できる気がする.
これ終わった後,isoイメージを抜いて再起動かけても,なかなかコンソールに画面が表示されなくて焦るが,起動が遅いだけなので我慢すること.
とりあえずコンソールからssh-serverを入れて,鍵とか一通り共有したら,あとはssh経由で頑張ること.

SquirrelMail で web メール導入

IMAP サーバを Web メールの SquirrelMail から叩く設定.
ubuntu の場合,apt-get から入れることができる.
しかしその場合,いらんパッケージもセットでついてきて鬱陶しいので,SquirrelMail の tarball を拾ってきて,導入することにした.
この場合,root 権限の必要な場所に設置する必要すらないので,ユーザーディレクトリに設置することも可能である.

他のモバイル向けテーマも実装した Web メールを導入したかったが,何やら色々とパッケージが必要そうなのでやめた.
モバイルからは K-9 メールで直接 IMAP を叩くことにした.

事前準備

  • 必須の準備
    • web サーバを準備する
    • PHP を導入する
    • IMAP サーバを導入する.
  • ついでの準備
    • web サーバを SSL 対応させる.

SquirrelMail の展開

SquirrelMail - Webmail for Nuts! から,tarball を落とす.
展開してでてくるディレクトリ内の doc ディレクトリの INSTALL を読めば,基本的には OK のはず.
/var/local に置けとかゴチャゴチャ書いてあるが,さっくり無視して /home 配下に置く.

SquirrelMail の設定

カレントディレクトリを配置した squirrelmail のフォルダとする.
./config/conf.pl をコマンドラインから実行する.

  • D からサーバのソフトウェアを選択すると,簡単に設定をインポートしてくれるらしい.
    対した設定を読み込んでくれないので,手で設定してもいいと思う.
  1. Organization Preferences は,個人用途では設定しなくても問題なし.
  2. Server Settings は,設定する.
    1. Domain は,自ドメインを持ってたら設定する.でもどこでこれが使われるかは不明.
    2. Invert Time は,メール送信の時に時刻がズレたら(18時間ズレる),設定すると良いらしい.私のサーバでは,設定不要だった.
    1. Update IMAP Settings で,IMAP サーバの設定を変更する.
      7 の TLS は,SSL のこと(本来,TLS が標準).
      8 の Server software は,上記の D と違って,ここで選んでも設定をインポートしてくれない.でも気持ち悪いのでちゃんと選んでおく.
    2. Update SMTP Settings で,SMTP サーバの設定を変更する.
      7 で SMTP 認証の方法を自動検知する選択肢があるが,私の場合はうまく動作せず,応答が返ってこなくなってしまった.メッセージにもあるように,使わない方がいいかも.
  3. Folder Defaults は,D オプションで設定されていれば,ほとんど変更不要のはず.
    Bcc で運用する私みたいな人は,7 とか 8 あたりは不要.
    17 は,フォルダ削除時に Trash を迂回するか否かの設定.false で Trash に格納.
  4. General Options は,1 や 2 のディレクトリ設定を相対パスにするくらい.
  5. Language preferences は,文字コードを iso-2022-jp にしただけでは文字化けが完全に回避されない.言語を ja_JP とすること.

SSL の設定

SNI でホスト名を分ける場合は,/etc/apache2/sites-enabled の VirtualHost に設定を追記する.
これは詳しくは過去の記事(apache2 の設定メモ)を参照のこと.
SSL なしでのアクセスを拒否する場合,squirrelmail を設置したディレクトリに .htaccess を追加して,SSLRequireSSL と記載する.

apache2 の設定メモ

毎回,OS を入れ直す度に忘れるので,今回こそはきちんとメモるぞー.
記事の趣旨が趣旨なので,この記事は随時アップデートされると思う.

前提

LAMP サーバが入った状態で Ubuntu server をインストールしたことが前提.
自分しか使わないサーバなので,mod_php5 で勘弁する.
(この後の予定) SSL 対応と,vhost 対応.←済

設定

  • dir.conf を編集して,いらん index ファイル指定を消す.
  • userdir を使うので,有効化する.
    # a2enmod userdir
    良く考えたら,VirtualHost を使うので,なくて良い気がする.
  • php5 自体は有効化されているが,userdir では無効になってるので,有効化する.
    php5.conf を開いて,userdir のディレクティブに記述されている,php_admin_value engine Offをコメントアウト.
  • directory 内のファイルリストが見えるのは困ることがあるので,デフォルトオフにしておく.
    userdir.conf の Indexes を削除.
  • 多言語対応は,userdir.conf の MultiViews を有効にしておいて,hoge.html.ja hoge.html.en とかを用意する.
    ユーザーが hoge.html にアクセスした時,その人の言語優先度に従って表示するファイルが選択される.
    更新し忘れが多発しそうなので,管理はそれなりに考えないといかんかも.
  • favicon の設定に,rewrite モジュールを使う.
    # a2enmod rewrite
    ただし,RewriteEngine を使う場合,AllowOverride FileInfoと,Options SymLinksIfOwnerMatch辺りを
    許可しておかなければならないので,要注意.
  • DocumentRoot が /var/www とかになっているため,絶対パスで / から指定しているリンクが悉く死ぬ.
    DocumentRoot を変更しても良いけど,最終的に userdir でアクセスさせないので, sites-available に VirtualHost の設定を書いた方が良い.
  • VirtualHost ディレクティブの ErrorLog は,ログ出力先.
    LogLevel は,ログ出力レベル.指定するレベルはググること.
    CustomLog は,アクセスログの出力先.
  • VirtualHost ディレクティブでは,ServerName を指定しないと apache2 が warn を吐くが,
    設定していたとしても,サーバの hostname.domainname と一致していないと同様に warn を吐く.
    設定は,/etc/hostname を FQDN で書いてしまい,networking の restart でとりあえず動く.(←動かない時は,再起動したら動いたりする)
  • ServerTokens ディレクティブや ServerSignature ディレクティブは,conf.d/security に書かれているので,この後に読まれるよう記載する.
    ServerTokens では HTTP のヘッダの出力のサーバ情報の出力を制御でき (ErrorDocument も,この制御された token を出力する),
    ServerSignature ディレクティブでは ErrorDocument 下部のサーバ情報の出力を制御できる.
  • php のヘッダー出力の抑制は,php.ini で行なう.
    /etc/php5/apache2/php.ini の expose_php を Off とする.
  • digest 認証はモジュールをロードさせないといけない.
    # a2enmod auth_digest
  • deflate モジュールでファイルを gzip 圧縮して転送できるが,転送サイズがファイルサイズより大きいことがある.
    その時は,SSI とか PHP とかで include していないか思い返してみること…
    これでハマった.
  • SSL対応。
    署名要求ファイルを当該サーバ上で生成して、証明機関に送信して証明書が作成される。
    まずは、署名要求ファイルの作成から。

    1. 秘密鍵を作成する。
      openssl genrsa -aes256 2048 > server.key

      秘密鍵は、パスフレーズで保護する。
      server.key が秘密鍵。

    2. 秘密鍵を使って、署名要求ファイルを作成する。
      openssl req -new -key server.key > server.csr
      openssl req -new -sha256 -key server.key -out server.csr # sha-2署名を要求する
      秘密鍵のパスフレーズを求められるので、入力する。
      証明書へ埋め込みたい情報の入力が求められるので、入力する。
      とりわけ、Common Name は使いたい web site のホスト・ドメイン名と一致させておくこと。
      server.csrが署名要求ファイル。
  • 続いて、StartSSL を例にドメイン名の検証 (validation) を行なう。
    詳しくは、[無料 SSL 証明書 StartSSL を使う](http://futuremix.org/2009/02/startssl)などを参照。

    1. サインアップから名前とか住所とかを登録。
    2. クライアント証明書をインストール。(次回からのログインにはクライアント認証が必須)
    3. ドメイン名検証を通過させる。独自ドメインのメールか、ドメイン登録に使っているメールの受け取り環境が必要。
  • web サーバの検証を行なう。
    1. 登録済みサブドメインの失効は有料といわれたので、ここで手順は中止。HW 交換したら、全てのキーを保存しておかんといかんなぁ。。。
    2. 別ドメインを建ててみる.
      CSR ファイルを作る画面が出てくるが,ローカルで作成しているので skip する.
    3. トップレベルドメインは,検証済のドメインを選択する.
      次にサブドメインを入力させられるので,検証させたいサブドメインを入力する.
    4. Save Certificate という画面で,crt ファイルの中身が出てくるので,
      コピーして server.crt とかのファイル名でテキストファイルにペースト.
      改行コードは LF.
    5. 同じ画面からリンクされている「intermediate」と「root」の CA certificates をダウンロードする.
  • web サーバの設定
    1. /etc/apache2/ports.conf を編集し,mod_ssl.c のモジュール設定の部分に,
      NameVirtualHost *:443
      とか書いておく.Listen が書かれてなければ,Listen 443 も書いておく.
    2. これまで準備したファイルのうち,必要なものを配置.
      /path に放り込んだとすると,次のファイルが必要.
      /path/server.key
      /path/server.crt
      /path/sub.class1.server.ca.pem (← intermediate CA Certifications)
      /path/ca.pem (← root CA Certifications)
    3. SNI を定義しているファイル (site-enabled にあると思われる) の中で,
      ssl 用の設定を書く.
      その中で,配置したファイルを指定する.ついでに簡単な雛形も載せておく.

      
              ServerAdmin     MAIL_ADDR
      
              DocumentRoot    ROOT_DIR
              ServerName      DOMAIN_NAME
              SSLEngine       on
              SSLCertificateFile      /path/server.crt
              SSLCertificateKeyFile   /path/server.key
              SSLCertificateChainFile /path/sub.class1.server.ca.pem
              SSLCACertificateFile    /path/sslfiles/ca.pem
              
                      ...
              
              
                      ...
              
      
              ...
      
      
  • 上述のままだと,apache 起動時に server.key のパスフレーズを求められる.
    自動リブートとかさせていると問題があるので,解除する.

    # openssl rsa -in  server.key.org > server.key

-- 追記
いつからか,apache2 の再起動時に,以下のエラーを吐くようになった.
いろいろと対処しているうちに名前解決が怪しいと気付き,syslog を見て原因が分かった.
ホスト名を変更した時に,旧ホスト名を現ホスト名の CNAME にしたにも関わらず,ローカルに立てている DNS の SOA レコードとか NS レコードとかもろもろを書き換え忘れていたことが原因.

httpd: apr_sockaddr_info_get() failed for hoge.hadacchi.com
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

どうやらこれは,二つのエラーを意味しているようだ.
多分
1行目:ServerName の設定がないから自分で取ろうとしたけど,うまくいかないぜ!
2行目:なんか,ちゃんとした答えが得られないから,これこれを ServerName に使うぜ!
とうことなんだろうと思う.対応とその結果を書いておく.

  • 対処1:自分の使用しているホスト名 (# hostname -f で表示されるものの FQDN) を /etc/hosts の 127.0.0.1 の別名として併記する.
    ただし,今回のように bind の設定ミスがある場合は,hostname -f でエラーが返る.

    • 結果1:1行目のエラーのみ消え,2行目の 127.0.0.1 の部分が,/etc/hosts に設定したホスト名となる
  • 対処2:(VirtualHost を使っているとしても) httpd.conf あたりに,ServerName 定義行を追記する.値は,デフォルトで使いたいサーバ名.
    通常は,最初に apache に読み込まれる VirtualHost 名.

    • 結果2:対処1をしなくても,エラーが両方消える.
      ServerName の設定が静的に記述されているので,この一連の動作自体が発生しないのだと思う.
  • 対処3:localhost に DNS サーバを立てる.
    • 対処1,2をしなくても,エラーが両方消える.

ドメインメールのサーバ移転

ドメイン管理に value-domain を使っており,メールのためだけにレンタルサーバーの契約を継続するのもバカバカしいので,今回移転することとした.
とはいっても,メールサーバーを自分で運用するのは面倒くさい.
そこで,value-domain でドメイン管理をしていると勝手についてくる xrea のフリースペースで運用を行なうことにした.
自分でベタに設定するのと,web UI で設定するのとではちょっと勝手が違うので,メモとして書いておく.

DNS レコード更新

value-domain の DNS レコードの更新ページで,「当サービス内サーバーの自動DNS設定」を使って基本のレコード設定を見る.
今回は,メールサーバーのみを使いたいので,1行目に入る
a * xxx.xxx.xxx.xxx
の行を,
a @ xxx.xxx.xxx.xxx
とした上で,メールサーバーの定義を
mx @ 10
とし、 必要なホスティングサーバーへのサブドメインを定義する.
未定義のサブドメインへのアクセスは,全部レンタルサーバーに流したいので,こうした.別に,a * のままでも良いのであれば,変更する必要はない.

ドメインメール設定

(DNS が反映されないと,次の工程は進まないので注意)
value domain のメニューの「サーバーアカウントの登録・管理・購入」から,設定したいドメインのメールの設定に飛ぶ.
このサービスでは,POP や web メールを使う場合,メールアドレス毎に異なるユーザーアカウントが割り当てされるので,面倒を避けるのであれば,マスターアドレスを1つ決めて,サブアドレスは全てマスターアドレスへ転送するのが良い.
マスターアドレスは「POP/WEB受信のみ」を選択しサーバー容量(フリーの場合は50MB)を選択する.
サブアドレスは「転送のみ」を選択した上で,マスターアドレスを転送アドレスとする.(私は,対外アドレスを変更する度に MUA の設定を変更したくないので,外に出すのはサブアドレスのみにしている)

MUA 設定

平文通信で良ければ,ドメインメール設定画面のパスワード欄の右に出る「確認」リンクから表示されるサーバーに対しPOPを飛ばす.
SSL 通信にしたければ,サーバーの FQDN のうち,ピリオドをハイフネーションに変換したアドレスの後ろに,「.value-domain.com」をつける.
ポートはいずれも標準のはず.

Word Press の設定

導入時の注意点

インストールは解凍するだけなので簡単.
mysql を展開しておわりかと思いきや,落とし穴があった.

  • mod_php を使う場合,フォルダ配下のオーナーを www-data とかにしておく.
  • 真っ新な wordpress を入れることにする場合,テーマとかプラグインとかが入ってなくて動かないので,バックアップの DB をインポートする前にとりあえず新規インストールを完了させてしまって,テーマとプラグインは入れておく.
  • プラグインやテーマのインストール時に FTP 接続情報を求められる場合,define('FS_METHOD','direct');を wp-config.php に入れる.
    多分,現象から推測するに,サーバーにプラグインを pull しにいくよう動作を変更させるのだと思われる...多分...

DB 構成について

  • wp_users,wp_usermeta はユーザー情報.とりわけ wp_users にはパスなんかも hash をかけて保存されている.
  • wp_terms,wp_term_* は,タグとかカテゴリとかリンクグループなどの名前・slug・分類・記事との関係を保存したもの.
  • wp_options は,プラグインとかの設定を保存したもの.消したプラグインの設定も残っているので,ゴミが多い.新規に入れ直して綺麗にしたい時にはバックアップ不要.
  • wp_posts は記事,wp_postmeta は記事内からのメディアファイルの参照や更新ロックの情報など.
    更新ロックの情報は削除しても問題なさげ.詳しくは,[WordPress] postmetaテーブルの_edit_lastと_edit_lock | きほんのき
    要は,meta_key="_edit_lock" に格納される UNIX タイムスタンプと,meta_key="_edit_last" に格納される最終更新ユーザーのユーザー ID は消しても構わんということ.
  • wp_comments はレス,wp_commentmeta はコメント削除などの情報.
  • 他は,そのまんまなので省略.

プラグインとか

  • WPTouch は, ver 1.9.5 以降は投稿できないバグがあるので,1.9.42 以前とすること. (1.9.4.2 の間違いではない.各人で readme.txt を読むこと)

また追記します…

最近の当サイトへのアクセス

最近,あまりメンテしてないこのサイトで,どの記事やどんな目的の人がきてるのかなーとか調べてみた.
といっても,前から入れてた W3Counter (昔の記事へのリンク) の統計見るだけ.

以前は,本weblogで最大のREQUEST数を誇るページ でも書いている通り,圧倒的に win7 における proxy の設定についての検索が多かった.
サブドメインを切った後にリセットされたアクセス統計を見ると,こんな感じであった.

1 [windows7 で proxy の設定](http://www.hadacchi.com/wp_blog/?p=118) 21%
2 [Outlook 2007 で重複メールを削除する](http://www.hadacchi.com/wp_blog/?p=639) 19%
3 [regsvr32.exe in Win7 x64](http://www.hadacchi.com/wp_blog/?p=428) 6%
4 [Windows7 で ffdshow で H.264 コーデックでデスクトップキャプチャ](http://www.hadacchi.com/wp_blog/?p=353) 6%
5 [NOOK Color に CM9.0.0-RC0 を入れたよ](http://www.hadacchi.com/wp_blog/?p=1160) 3%
6 [Android 携帯で Gmail が何日も送信されない件](http://www.hadacchi.com/wp_blog/?p=465) 3%
7 [Excel のエラー「office ファイル検証機能によって問題が検出されました 云々」](http://www.hadacchi.com/wp_blog/?p=1074) 3%
8 [hadacchi blog (トップページ)](http://www.hadacchi.com/wp_blog/) 3%
9 [自作PC 2号](http://www.hadacchi.com/wp_blog/?p=1238) 3%
10 [Windows 7 (x64) で Ragnaro"k Online](http://www.hadacchi.com/wp_blog/?p=324) 2%

MS 製品は,利用者が多いんだなぁと実感する結果になった.

なお,このサイトの閲覧数の規模感としては,簡単なスパム除去を行なった上で,およそ 120 pageview/day 程度である.
1 年前が 70 程度だったので,少しだけ増えている.

WebDAV + SSL + SNI + SVN

WebDAV+SSL+SNIを進行中。
SSL+SNIの設定は、通常通り。
WebDAVは、

a2enmod dav
a2enmod dav_fs

とした上で、site-enabled にある記述に、SSLを行なうSNIの設定を記載。
dav_fs.conf で設定している事例を良く見るが、SNI で動かすためには VirtualHost ディレクティブで記載しないといけないので、site-enabled からリンクしているサイト設定に記載した。
なので dav_fs.conf はこんな感じで小さい。

DAVLockDB ${APACHE_LOCK_DIR}/DAVLock
DAVMinTimeout 600

で、サイト設定はこんな感じ。


        ServerName host.domain
        ServerAdmin user@domain
        DocumentRoot /webdav
        SSLEngine on
        # 他、SSLの設定とか

        
                DAV On
                Options Indexes
                SSLRequireSSL
                # 他にdigest認証とかここに書いてもいいし、.htaccessを置いてもいい
        

現在、WebDAVクライアントで動作確認済。Windowsファイルシステムから直接アクセスするのは諦めた。

今後の計画

  • DAV+SVN で、SVN over SSL を通す
  • WPのspam投稿の分析プラグインの作成
  • 最初は、WPのダッシュボードから、手動でのアク禁適用
    • 投稿をフックしてスパムフラグのあるものは別DBにも格納
    • DBには、IPを8bitずつのアドレスに分割して、格納?
    • ネットマスクの短さとspamアクセスの多さの閾値から、自動的にアクセス拒否をさせる
    • 拒否後も403のアウトプットでphpを呼び出して、投稿されたのと同じ扱いでアクセス数をカウント
    • アクセス数の増により、長いネットマスクでアク禁した複数のアドレスを統合するなど

速度測定

追記 (5/23)
下記にて、NAPTや無線を介した時にスループットが落ちる減少について、解説されていた。
スループットが落ちる、と一言でまとめてしまったが、RTT が延びる→パケット送出回数が減る→スループットが落ちる、だった。
綺麗に解説されていたのを初めて見たので、メモメモー。
教科書には載っていない ネットワークエンジニアの実践技術:第1回 FTPでスループット計測するときの注意事項|gihyo.jp … 技術評論社


自宅のフレッツ・光プレミアム+ISPの速度測定をしてみた。
NATがかなりボトルネックであることが分かった。

測定環境

測定に用いた計算機 (HW)
CPU: AMD Athlon II X2 245 (2.9GHz)
I/F (LAN): On board (M4A78T-E) LAN (Atheros AR8121/AR8113/AR8114 PCI-E Ethernet Controller)
LAN Cable: ELECOM Laneed CAT 5e Ethernet cable (3m)
I/F (WLAN): Baffalo WLI-UC-AG
WLAN ch: 48ch (IEEE 802.11a)
測定に用いた計算機 (SW)
OS: Windows 7 Pro
Browser: Firefox 12.0 (通信高速化のためのカスタマイズなし)
running processes:
dropbox, gladinet, MSE, daemon tools, VirtuaWin, 付箋帳, nrLaunch, Q-button など…
測定日時
5/11(Fri) 0:20 am ~ 0:40 am
測定方法
試験1&2
・アクセスライン速度測定: フレッツ・光プレミアム 速度測定サイト を利用 (シングルセッション、マルチセッション)
試験3
インターネット接続速度測定: BNR スピードテスト(回線速度/通信速度 測定ページ) を利用
NW構成
構成1 (有線・1NAPT)
+----+               +-----+
| PC +---[ Ether ]---+ CTU +---[ VDSL ]---[フレッツ・光プレミアム]---[ ISP ]
+----+               +-----+

構成2 (有線・2NAPT)

+----+               +------------------+
| PC +---[ Ether ]---+ Baffalo WHR-AMPG |
+----+               +--+---------------+
                        |
                     +--+--+
                     | CTU +---[ VDSL ]---[フレッツ・光プレミアム]---[ ISP ]
                     +-----+

構成3 (無線・2NAPT)

+----+                      +------------------+
| PC + > > > [ WLAN ] > > > + Baffalo WHR-AMPG |
+----+                      +--+---------------+
                               |
                            +--+--+
                            | CTU +---[ VDSL ]---[フレッツ・光プレミアム]---[ ISP ]
                            +-----+
論理構成
構成1: CTU にて NAPT
構成2、構成3: CTU、WHR-AMPG それぞれにて NAPT

測定結果 (平均)

Wired 1NAT Wired 2NAT Wireless 2NAT
試験1 73.41Mbps 43.36Mbps 22.84Mbps
試験2 87.87Mbps 40.96Mbps 22.82Mbps
試験3 63.22Mbps 47.82Mbps 23.55Mbps

まとめ

  • NAPT (WHR-AMPG) を 1 段追加することで、通信速度は半減する
  • 無線区間 (IEEE 802.11a) を通ると、通信速度は更に半減する
  • 有線で NAT を 1 段(フレッツ・光プレミアム標準)とすると、平日深夜の社会人向け
    集合住宅では、アクセスサービスの理論値 100Mbps に近い結果を叩き出せる場合がある

CAT 5e のケーブルは、多分 100Mbps 以上出そうに見える。ここがボトルネックとなっている印象はない。
WHR-AMPG をかますことでスループットが落ちるのが、WHR-AMPG 内蔵のスイッチングの問題か、NAPT の処理による問題かは不明。
NAPTを切って試験するのは面倒で眠いのでまた今度としたい…
インターネット接続上での速度測定の方が好成績を示す構成2&3については、不明。
無線経由での成績の悪さについて、BNR の試験中に表示される進捗バーの表記から、パケットロスが生じているわけでは
なさそうであり、無線への/からの信号変換のロスである可能性が高い。

Android 4.0 で Apache SNI 対応

追記
びっくりしたので思わず記事にしてしまったが、ApacheのSNIはAndroidブラウザで使えない - isherの日記 のコメントにもあるように、Honeycomb から対応していたらしい。
今頃気付いたよ…


対応っつーか、普通に接続できた。
hadacchi が使っている CM9 on NOOK Color (CM9 は、当時より新しい版) で試してみたところ、SNI を使っているサイトを普通に表示できた。

先日書いた、SSL 対応の設定 を当サイトでは施しており(word press は SSL 対応に手間がかかるので放置中)、www.hadacchi.com (SSL) へアクセスしてもらえば、Windows Vista 以降、または Firefox や Opera 利用の場合には問題なく表示されるはず。
SNI 非対応の Win XP IE8 とかでアクセスすると、証明書エラーが表示された挙句に、Forbidden が返るはず。

さて、Android は、2.3 までは SNI 対応しておらず、Win XP と同様に Forbidden が返っていた。
しかし、ICS が対応しているのか、CM9 が対応しているのか、少なくとも私のタブレットでは上記 URL へアクセスして、正しくページが表示される。

というお話。