flatlineの日記

カレンダー
2010 | 02 | 03 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 | 11 | 12 |
2013 | 01 | 02 | 03 | 04 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2014 | 01 | 02 | 04 | 06 | 08 | 09 | 10 | 12 |
2015 | 05 | 06 |
2016 | 07 |

2011-05-27

dnsmasq(8) 便利かも 07:18

dnsmasq(8) というのを知って,便利そうだったので入れてみた.まだ使い始めなので思わぬ失敗をしてるかもだが... 様子見中.

いわゆるヘアピンNAT機能のない箱物ルータ使ってると,同じLAN内のサーバがThe Internetに公開されていても,普通にはアクセスできない.代わりにLAN内に自前DNSサーバ立てる必要が出てくるが... 貴重な人生をBINDやらdjbdnsの設定なんぞに費やしたくないのですお.てな訳で「しゃあねぇ,とりあえずこのマシンの /etc/hosts に直書き... いずれあのマシンと,あとあっちもね... はぁ面倒」とか思ってたら,同じ思いを抱え,さらにそれを解決する意欲と技術力に溢れた人がいたらしく,dnsmasq という便利なツールが作られていた.これはキャッシングDNSサーバなんだが,設定を自ホストの /etc/hosts から取ってくるお手軽な奴.これをLAN内のサーバのどれかで上げて(そもそもThe Internetにwebサーバか何かを公開してる前提だから,同じサーバで上げちゃっていいだろ),あとは箱物ルータDHCP設定でネームサーバ (primary*1 ) をそこに指定するだけ.そうすると普通の名前解決は

という委譲委譲で無事成功する.ついでに dnsmasqデフォルトキャッシュするらしい*2dnsmasq から箱物ルータへの委譲は,/etc/dnsmasq.conf で細かく制御できるようだが,基本的には他のリゾルバ同様に /etc/host.conf/etc/resolv.conf で制御されるみたい.

次に実体がLAN内にあるサーバの名前は

となって,万事OK.

*1:Secondaryは箱物ルータにするのがいいと思う.箱物ルータDNSサーバは通常通り動かしっぱなしにしてる前提でね.

*2:複数回 dig(1) すると2回目からレスポンスが 1 ms に短縮されるとの同時に,帰ってくる内容が短い(QUESTIONとANSWER SECTIONしか無くてAUTHORITYとADDITIONAL SECTIONが欠けてる)が,大丈夫か?

odawaraodawara 2011/05/27 09:04 このやり方、俺もずいぶん長く使ってるんですけど、
ノートPCのDNSをローカルDNSに書き換えたまま外に出ちゃって、公衆無線LANにつないだときなんかに、なぜか接続できなくて小一時間悩む、ということをたまにやっちゃうんですよね。
お気をつけくださいませ。

flalinflalin 2011/05/27 11:34 あくまでDHCPでIPアドレス貰うときに自動でローカルDNSサーバを教わるだけ(それが箱物ルータ内蔵か今回のdnsmasqかだけの違い)なので,その心配はないと思います.ちょうど「自宅DHCP環境のIPアドレスそのまま外に出ちゃったぜ」と言う人がいないのと同様に.
つか公衆無線LANって使ったことないです...

odawaraodawara 2011/05/27 12:23 あ、なるほど。
うちのルータがお馬鹿さんで(NECのやつ)DHCPで配るDNSサーバを指定できないからこんなことになってるんだった…。

flalinflalin 2011/05/27 13:32 それはそれは.うちのはNTTのADSLモデム兼ルータNV-IIIです.
最近のAirStationとかは,NAPT設定変えても再起動要らずで10秒待てばよいだけだったり,順当に進化してるみたいです.

flalinflalin 2011/05/27 13:34 てか resolv.conf に 8.8.8.8 を混ぜておけばよいのでは? ローカルDNSサーバにはタイムアウト 100 ms とかを設けて.
なんか dhclient.conf がんばればできるようなできないような...
WindowsとかMacだと知りませんが,なんかツールがありそう.

odawaraodawara 2011/05/28 11:01 講習無線LANてLAN内に認証サーバがあって、そいつのアドレスが解決できなくて詰まるんですよ。8.8.8.8も念のため入れてるんですけどね。
WinMacでも環境切り替えツールはあるんですけどね、滅多に使わないから忘れることが多くて…。
iOSはその点良くできていて、WiFiのアクセスポイント名にDNSの設定がつながってるんですよね。DNSとかプロキシの設定を書き換えてても、別の無線LANにつなぐと関係なくなるのは設計として正しい気がする。

flalinflalin 2011/05/28 21:44 ふむむ.結論としては,DNSの指定ができないルータの駄目さが際立ってるので,窓から(ry

トラックバック - http://d.hatena.ne.jp/flalin/20110527/1306451905