○○の部分は僕の本名で(笑)
ここ1週間ほど、Google ハングアウトを使おうとしてうまくいかない、ということで悩んでいました。
原因を究明したところ、最終的に、Fonera をやめるかハングアウトを諦めるか2択になったのですが、ハングアウトは仕事で必要なので Fonera をやめることにした次第。
誤解がないように先に書きますが、ハングアウトと Fonera の相性が悪いわけではありません。
ただ、僕の場合別の事情もあって、どちらか片方しか取れなかったというだけ。
そもそも Fonera なんて知らない人が多いでしょうね。
Fon という無線ネットワークサービスがあり、そこに参加する人を Fonera と呼びます。
Fonera には2つのタイプがありますが、基本的には「僕の家の無線 LAN を他の人も使っていいから、僕にもあなたの家の無線 LAN 使わせて」という構造です。
他の人が無線 LAN を使うとなるとセキュリティが気になる人もいると思いますが、Fon が販売している無線 LAN ルーターを使っていれば心配無用。
非常に巧妙な仕組みで、セキュリティを守りながら他の人に無線を解放してくれます。
#わかる人のために解説すれば、無線電波を時分割して、「プライベート」と「フリー」の2つのアクセスを可能にします。
このうち、フリーアクセスの電波は、LAN 側とは異なるアドレスを DHCP で発行し、ルーターの WAN 側にしかアクセスできません。つまり、自動で DMZ を作り出します。
プライベートの電波は、LAN 側のアドレスを DHCP で発行し(設定で無効にすることも可能)、LAN 側にも WAN 側にも自由にアクセスできます。
ところで、僕は自宅で仕事をしているので、仕事用の電話番号を持っています。
これに IP 電話を使用しています。PC を使用していなくても、普通に電話として受け取れる必要があります。
というわけで、ルーターには IP 電話(VoIP)を電話機に接続する機能が必要。
でも、Fon は VoIP には対応していません。
そこで、VoIP 対応のルーターと、Fon を同時に使うことになります。
VoIP はネットワークサービスプロバイダが提供しているため、VoIP ルーターがプロバイダへの接続をする…つまり、ルーターとして機能する必要があります。
Fon は、フリーアクセスから来たパケットを WAN 側に送るため、家庭内 LAN の中に置くのではなく、ルータとして機能する必要があります。
…あら、接続先は1つなのに、ルーターが2台になっちゃった。
大丈夫。 Fon には、WAN 側に接続する方法を選ぶ機能があります。
通常、プロバイダ接続には PPPoE を使いますが、固定 IP にすることも可能です。
そこで、
・VoIP ルーターは WAN 側としてPPPoE でプロバイダに接続し、LAN 側として内部ネット A に接続する。
・Fon ルーターは WAN 側として内部ネット A に接続し、LAN 側として内部ネット B に接続する。
という構成をとっていました。
内部ネット A は、フリーアクセスのパケットも通るため、危険なエリアです。
内部ネット B は、完全に家庭内の LAN です。
これで何の問題もなし。
実は、ルーターではアドレス変換処理(NAT)が行われています。
NAT というのは、ネットワークの住所である「IP アドレス」を、適切に変換する技術です。
現在、IP アドレスはネットワークの急激な膨張で足りなくなっており、すべてのパソコンに IP アドレスを付けることが出来ません。
そこで、家庭内に複数台のパソコンがある場合は、「家庭内だけの仮の」アドレスをつけておきます。
その状態でプロバイダなどから「一つだけ」本物の IP アドレスをもらい、通信を行う際に、通信データの「送信元」として、仮のアドレスから本物のアドレスに、NAT によって変換してもらうのです。
後で外部のコンピューターから「返信」が来た際も、NAT が適切に変換してくれるため、家庭内の正しいパソコンに届きます。
2個もはさむと無駄に処理を重ねることになりますが、特に問題はありません。
TCP パケットも問題なく通りますし、UDP を使った traceroute なども問題ありませんでした。
ところが、ハングアウトはダメだった。
TCP の場合、返信パケットには特別なビットが付与されるため、ファイアーウォールなどではこれを見て外部からのパケットを通すか通さないか判断します。
UDP にはこのビットはありませんが、内部からアクセスした先を覚えて置き、そこからすぐにパケットが来た場合は「返信だろう」と判断します。
ハングアウトなどのサービスでは、通話するユーザーが直接パケットを送り合うのが基本です。
しかし、そのためにはお互いが本物のアドレスを持っている必要があります。
しかし、現在のネットワーク上では、ほとんどの端末が NAT によって「隠されて」います。
そこで、ハングアウトでは巧妙な方法を使います。
・通信するさいは、まず Google のサーバーにアクセスを行います。
Google のサーバーは仲介を行い、相手に通信開始を伝えます。
(Google サーバーには本物のアドレスがあるため、両者がそれぞれアクセス可能です)
・通信を開始する際、お互いの端末は、自分の周囲の環境を調べます。
NAT には何種類もの実現方法があり、それぞれに「クセ」があります。
このクセを調べておくと、後で役立つのです。
・Google サーバーは、お互いの調べた「自分の環境のクセ」を相手に送信します。
このあと、「せーの」で両者が同時に通信を開始します。
・NAT は、基本的に「通信した相手からすぐにデータが届いたら、返信だと考える」ようになっています。
せーの、での同時通信が成功すれば、それぞれのデータが「相手からの返信」だとみられ、NAT に受け入れられます。
・以降はお互いにデータを送り続けますが、送っているデータが「返信である」とNAT をだまし続けるために、NAT のクセにあわせて適切な処理を行います。
以上は、わかりやすく書いたシナリオで、技術的な正当性は不明です。
Google はプログラムの詳細を明らかにしていませんし、断片的な情報を組み合わせると「多分こういうことだろう」と判ってくる、と言う程度のものです。
そしてどうやら、大事なのは「NAT のクセ」の部分。
NAT を2重に重ねていると、両方の NAT の特徴が混ざってしまって「どういう NAT かわからない」という判断になってしまうようなのです。
いろいろルータの設定を試して、ハングアウトでの通信が成功することもありました。
その場合でも安定性が悪く、同じ状況で再接続しても繋がらなかったりします。
つまりは2重 NAT ではハングアウトは使えないのです。
VoIP か Fon のどちらかを諦めれば、2重 NAT はなくせます。
VoIP は仕事で使用している電話なので、なくすわけにはいきません。
Fon は…以前、便利に「他人の無線電波」を使わせてもらっていたこともありました。
ただ、他人と言うより、 Livedoor の電波だったんですよね。
一時期 Livedoor と Fon が提携していて、Fon の ID で入れる時があったのです。
Fon は「民家」に設置されるため、住宅地の中に入らないと使えないことが多いです。
でも、Livedoor は繁華街にあることも多く、外出時に使うことが出来ました。
今は提携も解消し、ここ3年くらい、外出時に Fon で接続を試みたことはありません。
というわけで、Fon を諦めることにします。公開を続けたかったけど、苦渋の決断。
先に説明した通り、Fon ルーターには LAN と WAN への接続機能があります。
WAN への接続ポートにケーブルを接続しないと、自動的にフリーアクセス電波も出なくなります。
この状態でも、家庭内無線 LAN の基地としては使えるため、家庭内での使い勝手は変わりません。
後は家庭内の設定変更方法を熟考して…
ルーター以外の設定をいじらず、公開サーバーの停止時間も3分ほどで新たな設定になりました。
ハングアウトも問題なし。
Fon 自体の思想は好きなので、たとえ自分が外出時に使わなくても、フリースポットを公開しておきたかったのだけどね…
同じテーマの日記(最近の一覧)
関連ページ
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |