l.を不要にするサービス

Waffle Cellと同じLAN内からアクセスする際のl.を不要にするサービスです。

l.を不要にするサービス

投稿記事by mozart » 2014年10月17日(金) 12:10

以下は最新ニュースに書いた内容と同じです
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

WCの設置場所ではURLに「l.」を付けなくてはなりません。
これはWaffle Cellの問題ではなく、ネットワークの構造上通常避けられない問題です。

そこで非常に特殊な処理でl.を回避するサービスを作りました。便利な反面、使い方を
間違えるとルーターの設定をもとに戻さないとネットに接続できなくなります。十分に
注意しご利用下さい。

◆ 何故問題が起こるか
ネットでは名前(例:blade.wafflecell.com)をIP(例:23.66.121.10)に変換し、
サーバーの位置を特定します。この機能をDNSと呼びます。ところがサーバーへ
アクセスする場合、サーバー設置場所ではローカルIPという、身内でしか使えないIP
を利用し、外からはルーターに割り当てられたグローバルIPを使います。外からと中から
では違うIPが使われるのです!しかし名前をIPに変換するDNSはいつも同じ値を返し
ます。

そこでこの2つを分けるために l. ありとなしをWaffle Cellでは用意しています。

◆ 問題解決の方法
普通名前をIPに変える機能はルーターで指定したDNSで行い、通常はプロバイダが
提供するサーバーがその役割をにないます。今回提供するサービスはこのDNSを
一度Waffle Cellが中継することで解決します。

Waffle CellのDNSは状況を判断して、必要に応じて l. なしでも内部IPを返します。

◆ インストール方法
いつものように管理画面の「サービス追加」「Update」「サービス一覧のアップデート」
を実行して下さい。「社内システム」内に「l.を不要にする(アルファ版)」というサービス
が現れるので、内容を十分に理解してからインストールし、ルーターの設定を変えて
下さい。

◆ 重要
もし正常に動作しない場合は、ルーターの設定をもとに戻します。もとに戻す方法を忘
れると「とても困ります」ので注意指定下さい。

◆ お願い
アルファ版ですので、正常動作した、しないの情報をいただければ助かります。よろしく
お願いします!
アバター
mozart
 
記事: 707
登録日時: 2013年5月24日(金) 13:56
お住まい: 東京の中心、板橋区

Re: l.を不要にするサービス

投稿記事by hokumura » 2015年8月20日(木) 22:59

基本的に正常動作していると思うのですが、自分の所有するドメインで alias (CNAME) をつけてアクセスした場合、名前解決が正しく行われません。ちょっと不思議なのですが…

自分の Wafflecell が DNS サーバーである状態で

nslookup okumura.wafflecell.com

とすると、ちゃんと Wafflecell のローカルの IP が帰ってきます。

自分のドメインで wafflecell.okumura.com に CNAME okumura.wafflecell.com としてあるのですが、同じく自分の Wafflecell が DNS サーバーである状態で

nslookup wafflecell.okumura.com

とすると、10.0.20.1 という IP が帰ってきます。実際に帰ってくる表示は以下です。

権限のない回答:
名前: okumura.wafflecell.com
Address: 10.0.20.1
Aliases: wafflecell.okumura.com

私の Wafflecell のコンピューターには NIC が 2 枚あり、実際に接続して使っているのはその一方だけです。10.0.20.1 は、もう一方の、実際には LAN ケーブルがつながっていない NIC 側に振られた IP です。

Alias は理解して、okumura.wafflecell.com の名前と変換した上で解決をしようとしているはずなのに、okumura.wafflecell.com で domain 問合せを行うと、正しいローカル IP が帰ってくるのに、別ドメインの CNAME である wafflecell.okumura.com で問合せを行うと、ローカル IP ではあるのですが、正しくない方のアドレスが帰ってきます。

何か追加で設定を行うべきでしょうか?
hokumura
 
記事: 11
登録日時: 2015年4月08日(水) 04:10
お住まい: 神奈川県相模原市

Re: l.を不要にするサービス

投稿記事by mozart » 2015年8月21日(金) 09:34

この機能は以下のように処理しています。

1)DNSの名前の解決をルーターに問い合わせる
2)ルーターはWaffle Cellにその解答を求める
3)Waffle Cellは xxxxx.wafflecell.com (xxxxxはWaffle Cellに割り当てられている標準のホスト名)
 の時にだけ自分のローカルIPを返す
4)それ以外は通常のDNSとして動作する

ここでポイントは3)です。3)でおこなう例外処理は「okumura.wafflecell.com」に対してのみとなります。
結果として「wafflecell.okumura.com」は通常のDNSが返す値を使います。これがうまくいかない理由です。


ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
以下、技術情報ですがサポート外ですのでヒントのみ書きます。

Waffle Cell内(仮想デスクトップ内)の場合はルーターに問い合わせずに直接hostsを参照します。

/etc/hosts

仮想PC以外は以下のスクリプトで例外処理をしています。

/etc/powerdns/pdns.lua

lunaというスクリプトで書かれていて、ここに例外処理を加えれば、処理ができるかもしれません。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
アバター
mozart
 
記事: 707
登録日時: 2013年5月24日(金) 13:56
お住まい: 東京の中心、板橋区

Re: l.を不要にするサービス

投稿記事by hokumura » 2015年8月22日(土) 17:21

ヒントありがとうございます。

pdns.lua の domain == の条件に、独自ドメインの条件を追加した後、"rec_control reload-lua-script" してみました。

たぶん上手くいっていると思いますが、TTL で古いデータを参照したままなのか、実際の PC 側での nslookup でのクエリーにはまだ 10.0.20.1 が帰ってきます。PC で "ipconfig /flushdns" としても同じでした。(nslookup が "権限のない回答" として結果を返すので、キャッシュを返しているのだと思います)

ちょっと時間をおいてどうなるか見てみようと思います。
hokumura
 
記事: 11
登録日時: 2015年4月08日(水) 04:10
お住まい: 神奈川県相模原市

Re: l.を不要にするサービス

投稿記事by mozart » 2015年8月23日(日) 13:54

少しわからないのですが、

  10.0.20.1

はローカルIPです。ブラウザでこのIPに接続すると、Waffle Cellの
Topページが見えないでしょうか?
アバター
mozart
 
記事: 707
登録日時: 2013年5月24日(金) 13:56
お住まい: 東京の中心、板橋区

Re: l.を不要にするサービス

投稿記事by hokumura » 2015年8月24日(月) 01:33

ローカルルーターのサブネットは 192.168.62.0 です。マスクが異なるので 10.0.20.1 へはルートの設定が必要ですが、PC に 10.0.20.1 へのルート設定はありません。(Wafflecell の仮想デスクトップ上のブラウザからであれば問題なく 10.0.20.1 でアクセスできます)

あと、今日確認すると nslookup での名前解決は正しくできるようになりました。

nslookup wafflecell.okumura.com

とすると、wafflecell のローカル IP が帰ってくるので、正しいです。
ところが

ping wafflecell.okumura.com

とすると、グローバルの IP が帰ってきてしまいます。ping は名前解決の方法が特殊なんでしょうか? PC 上の Firefox も、グローバルの IP に解決しているような感じで、アクセスしているにはしていますが、l.okumura.wafflecell.com でアクセスした時に比べて、ものすごく遅いです。
hokumura
 
記事: 11
登録日時: 2015年4月08日(水) 04:10
お住まい: 神奈川県相模原市

Re: l.を不要にするサービス

投稿記事by mozart » 2015年8月24日(月) 11:08

ping でも他のサービスでも名前の解決を独自に持つことはないと思うので、
「何かが」おかしいと思います。

もしそれがキャッシュであれば、一つずつシステムを再起動すればうまくいく
のですが。

例えば今まで使っていなかったブラウザ(例:IEやChrome)でも接続は遅いで
しょうか。
アバター
mozart
 
記事: 707
登録日時: 2013年5月24日(金) 13:56
お住まい: 東京の中心、板橋区



Return to l.を不要にする

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[0人]

cron