現在うちのインターネット接続は端末型ADSL契約ですので、IPアドレスは一つしか割り当てられていません。そんなわけでローカルルータ(というのかどうか知りませんが、とにかくPPPoE+NAT+DHCP S/C箱)を使って回線を共有しています。下のような感じですね。
で、中のサーバが外から見えるようにポート80を10.0.0.10に向け、ローカルルータのWAN側アドレスは動くのでtoriyu.dyn.toで参照できるようにしている…といった構成です。
これではじめのうちは特に問題なかったような気がしていたのですが、しばらく使ってるとサーバで動かしているApache+PHPで文字化けや文字落ちが発生している事に気づきました。当初はサーバサイドの問題だろうとPHPやらApacheやらSQLサーバやら、はたまたOSのFreeBSDやらを疑っていたので原因究明にかなり時間がかかったのですが、どうやら文字落ち等の原因はローカルルータにあるようです。WWWブラウザで試した組み合わせではこんな感じです。
方法 | ルート | 状態 |
---|---|---|
http://toriyu.dyn.to/~
|
DHCP-10.0.0.1-10.0.0.10
|
NG
|
http://10.0.0.10/~
|
DHCP-10.0.0.10
|
Good
|
(外部proxy設定して)
http://toriyu.dyn.to/~ |
DHCP--proxy--toriyu.dyn.to-10.0.0.10
|
Good
|
(WANから)
http://toriyu.dyn.to/~ |
WAN-toriyu.dyn.to-10.0.0.10
|
Good
|
まぁ外からアクセスした時は文字落ちとかは発生していなかったというのがせめてもの救いなのですが、LAN内のサーバのアクセスに外のproxyをつかわにゃならんというのはちょっと不便な話です。で、上の表からすると素直にサーバに向いてる場合は問題なく、何故かローカルルータを経由している場合はNGです。「名前の解決がちゃんとできてないんでないの?」という気がしますが、こういうのはどこで指定するもんなのでしょうね。サーバでnmbdを動かしてればWindowsからは/etc/hostsが反映される…ような気がしていたのですが、そうはなっていないようで。全然わかりません(笑)
てなわけで、軟弱物の私はWindowsの\WINDOWS\HOSTSにエントリを追加して直接サーバに向くようにしてみました。このファイルに頼ったのは久しぶりだな~。
ルーティングに問題はあったというものの、文字落ちの直接の原因がローカルルータの仕様というのはいただけません。それぞれ10/100EthernetSwitchにぶらさげるという規格どおりの使い方をしているわけで、「アクセスが集中する」のではなく単に「想定している速度より速い」だけで文字落ちを起こすというのはどうなんでしょね。DHCPサーバにした場合デフォルトルートはローカルルータに向くわけだから、すくなくとも自分の持ってる10Base-T程度では取りこぼししないでほしいものです。
だいぶ前にケーブルテレビ・インターネットにした時にはNIC2枚差しでサーバでNATd動かしていましたが、適価にてローカルルータが出てきたので途中で置換えました。メンテナンス性は格段によくなったのですが、残念ながらパフォーマンスの点においては数段劣るようです。