ひかりoneギガ得プランの性能とかメールサーバ

前回の記事で無事?に接続出来たわけなので、さっそく回線速度を測ってみました。画像は・・・キャプするの忘れました;;

上りが300Mbps
下りが500Mbps

計測したサイトの限界が500Mbpsと書いてあったので、500Mbps以上出るのかもしれません。予想以上の速度におどろきを隠せません!かなり地域差がでるのでしょうか?
付属のCat5eUTPケーブルを使うと速度が出ないと書いてありましたが、僕の場合は関係なかったみたいです。粗悪品が多いのかな?
そういえば100円ショップでもUTPケーブル売ってました。1m〜3mくらいがあったかな・・・。

実質固定IPアドレスなのでサーバを立てようと思う人もいると思いますが、ちょっと注意が必要かもしれません。
最近は当たり前かもしれないですが、メールを送信する際にSMTPサーバにつながりません。OP25Bというやつです。

そこでプロバイダのメールサーバにリレーしようかと思いました。僕はauone-netなので、まずサイトに接続してメールアドレスを発行しました。
それでSMTPサーバのアドレスを確認したわけですが、こいつを指定してもつながらないわけです・・・。SMTPAuthというやつか?!とか色々考えたのですが、そもそもtelnetで叩いてみても反応がないです。(もちろん、KDDIの回線から)

こんなの
SMTP: msa.ac.auone-net.jp

調べたら中継用のサーバがちゃんと用意されているらしい。サポート対象外らしいです。下のページの一番下のところにありました。
Outbound Port25 Blocking: 迷惑メール対策 | au one net 会員向けサービス | au one net

Sendmailのリレーサーバの指定方法です。

# Sendmail.mc
# 編集後にsendmailをリスタートするだけでOK
define(`SMART_HOST',`smtp:ここに中継用サーバのアドレスを入れる')
# 送信テスト
echo hogehoge | mail -s test [email protected]

参考猫ぐらし: sendmailのデフォルトリレー先の設定

ひかりoneギガ得プランでRTX1200

ひかりoneギガ得プランというのが登場していました。
すごいです・・・家庭でギガですよ!

ということで、さっそく契約してみました。
ひかりoneホームで、プロバイダはauoneというのにしました。旧dionらしい。
それで色々調べてみたわけですが、ルータを指定のものから替えたいという方がけっこう多いらしくて、ちょっと試してみます。
ついでに気になっていたYamaha RTX1200も購入してみました。

f:id:happytar0:20090726120400j:image
これが指定ルータの「NEC Aterm BL190HW」通称HGW
f:id:happytar0:20090726134201p:image
ギガ対応ルータの「Yamaha RTX1200」

調べてみるとMACアドレスを見ているらしい。まず最初にONUからHGWに繋いでみました。何も設定せずに繋がりました。ブラウザからルータの設定画面を見てみると確かにDHCPになってます。

次にDHCPでRTX1200に繋いでみました。やっぱり無理でした・・・。show status dhcpcとかで見てみると取得中みたいな感じで止まっていました。DHCP以外にも見ているという書き込みがあったので、パケットキャプチャで見てみる事にしました。

最初どうやればいいのかな?と思ったのですが、ONUとHGWの間にハブをはさめればいいだけみたい。Wiresharkで見てみると、確かにDHCPで通信してました。パッとみた感じ他に気になる所はなかったような気がしました。

RTシリーズで使える「dhcp client client-identifier」これを使えばごまかせるかもしれないという書き込みがあったのでやってみました。結果はだめでした・・・。本当のMACアドレス?を見ているらしい。

参考FAQ for YAMAHA RT Series / ADSL Internet

あとは、マニュアルを見ていたら「dhcp client option」というのがありました。これはDHCPサーバに送るメッセージを指定することができるらしい。パケットキャプチャした内容を参考に、色々いじってみたのですがこれもだめでした。

RTシリーズはMACアドレスは変更できないらしいので打つ手なし?とりあえず、HGWにあったDMZを使い、ブリッジのようにして使う事にしました。

さて、終わりにするかと思ったのですが、よく考えてみるとMACアドレスを書き換えれば本当に繋がるのか試していませんでした・・・。それで今調べてみたのですが・・・衝撃の事実が!!

ちょうどMacBookを使っていたのでこんな感じにHGWのMACアドレスに書き換えてみました。

ifconfig en0 lladdr ff:ff:ff:ff:ff:ff

ちゃんとDHCPで取ってきました・・・でも前のIPアドレスと違う?!どういうこと?MACアドレスは間違ってないはず・・・。

f:id:happytar0:20090726133652p:image
こんなのに変わってた。
f:id:happytar0:20090726133637p:image
急いで前のIPアドレスを直接入れてみた。ちゃんと繋がった。

どっちも使えました・・・。実質固定IPアドレスと聞いていたのですが、実はIPアドレスを自分で選択できちゃうような太っ腹な感じなのでしょうか?!
ちなみにHGWに繋ぎ替えたら前のIPアドレスとってきましたw

それとDHCPのリース時間で繋がらなくなるらしいのですが、それは分からないです・・・めんどうで調べていませんが、一日一回ひかりone側からHGWの更新チェックが入るようなので、そこで引っかかるのかな?ちなみに更新チェックの時間はKDDIのサポートページから変更できるみたいです。
初期設定では10時〜11時になっていましたが、チェック無効はなかったようです。

はじめてのSQLite

はじめてSQLiteさわってみました。

さくらのワンコイン共有サーバ使っているのですがMySQLのDBは一つしか作れないのですね・・・。
不安定で遅い!というイメージだったので敬遠していたところがあったのですがMySQLより速い?らしい。よく考えたら軽い実装なのだから当たり前なのかな?

サーバの設定ではデフォで使えるようになっていた(PHP)ので、さっそくDBを作ってみよう!と思ったのだけど、よく考えたら安いプランでシェルが使えなかった。WebベースのSQLiteManagerというのを入れてみました。phpmyadminみたいなものみたいです。

無事にDBを作ってテーブルを流し込みました。型とか大丈夫なのかな?と心配でしたが、すんなりいって一安心。SQLiteは型の概念がほとんどないらしい。

ここまではよかったのですが、ここからちょっと引っかかりました。
PHPで昔作ったものでADODBというライブラリを使っていたのですが、DSNをSQLiteに書き換えても上手く動きません。

sqlite:///home/hogehoge/sqlite/hoge.db
SQL logic error or missing database

こんなエラーが出ました。パーミッション?SQL?と色々いじってみたのですが解決せず・・・。でもよく考えるとSQLiteManagerでは動いていた気がしました。ADODBのソースを見てみる事に・・・。

どうも独自に内部でDSNを処理しているらしく、parse_url関数の部分でエラーになってるっぽいです。ホスト名の指定がないせいで、正しいURLと解釈されないのが原因でした。絶対パスで指定するのが間違ってるのかな・・・?

sqlite://localhost/home/hogehoge/sqlite/hoge.db

こんな感じに直してみたらまだエラー。さらにソースを覗いてみると

if (empty($argHostname) && $argDatabasename) $argHostname = $argDatabasename;

どうもホスト名が空じゃないとだめらしい・・・。これは無理かなと思い、別の方法を考えることに。

$con =& NewADOConnection('sqlite');
$con->Connect('/home/hogehoge/sqlite/hoge.db');

これで動きました!これが一番簡単みたい。でもどうしてもDSNで指定したいと思い、ソースを眺めてたらこんな記述がありました。

if (($at2 = strpos($origdsn,'@/')) !== FALSE) {
// special handling of oracle, which might not have host
$fakedsn = str_replace('@/','@adodb-fakehost/',$fakedsn);
}

どうやら@を使えばホスト名を指定しなくてもOKらしいです。結局これで解決しました。

# ちなみに@の後に/を二つ書かないと一つ目は消されるみたい
sqlite://@//home/hogehoge/sqlite/hoge.db

そんなこんなで小一時間かかりました。
そういえば、NOW()なんてのも動かないんですね・・・。