私はルームメイトと私用にホームイントラネットの設定に取り組んでいます。キッチンの引き出しなどよりもアクセスしやすい場所に、過去の公共料金の請求書などを保管できるようにしようと考えています。とにかく、LAN 上の Raspberry Pi で Apache 2 を実行していて、その IP アドレスを使用すれば、Pi で提供されているページにアクセスできます。このプロジェクトは、アパートにサービスを提供するためというよりも、ネットワークについて学ぶために行っているため、ネットワークで LAN のホスト名解決ができれば便利だと思いました。そのため、ブラウザを 、つまり Pi の IP アドレスに向けるのではなく、 (ホスト名)192.168.1.151
に向けると、Pi で提供されている Web ページを表示できます。oberon
これをやりたいと思ったのは私が初めてではないことはわかっていたので、まずは Google で検索してみました。Unix と Linux に関するこの質問が、非常に役に立ちました。ホスト名を使用してLANからマシンにアクセスできるようにする方法この時点で、検証済みの回答にあるすべてのことを試しました。ファイルの使用も考えましたhosts
が、そうするとルームメイトにマシンの設定を指示しなければならなくなり、彼らにそれをさせたくありません。ルーター(NETGEAR WNR1000v2(別名N150))でPiのDHCPリースを予約しようとしましたが、予約は機能しましたが、ホスト名の解決は機能しませんでした。ルーターにPiのIPアドレスを通知したので、これはちょっとイライラします。そしてホスト名はありますが、この情報は LAN 上のクライアントに提供されません。
これら 2 つの方法が機能しなかったため、dnsmasq
Pi にインストールすることにしました。設定は簡単そうでしたし、新しいツールを学べるのはうれしいです。インストールして、問題なく動作しています (そう思えます)。Piのニックネーム (およびで設定) をdig
または と入力して、正しい結果を得ることができます。 や などのインターネット名でも同じ操作を行うと、正しい回答が得られます。Google のと を でバックアップ サーバーとして設定しているためです。次の点を確認してください。nslookup
/etc/hosts
oberon
homenet
yahoo.com
8.8.8.8
8.8.4.4
/etc/dnsmasq.conf
me@oberon~$ dig oberon
; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> oberon
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10787
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;oberon. IN A
;; ANSWER SECTION:
oberon. 0 IN A 192.168.1.151
;; Query time: 10 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Oct 6 18:59:18 2013
;; MSG SIZE rcvd: 40
SERVER
は127.0.0.1
、oberon
自分自身のIPアドレスを検索していることに注意してください。これは私が期待していたものです。 を実行しても出力は同じですdig oberon @localhost
。この出力から、 は正常に動作していると思いますdnsmasq
。次のレベルに進むには、全てoberon
私の LAN 上のクライアントがブラウザに入力して のインデックス ページに移動できるようにしますoberon
。そのためには、ルーターを構成する必要があることはわかっています (厳密に Unix および Linux の領域から外れている場合は申し訳ありません)。
私は Netgear WNR1000v2 を所有しており、これについてはかなり使い慣れています。Pi に SSH で接続できるようにポート転送を設定しており、他の設定もいろいろと試しました。このプロジェクトを開始する前は、DNS サーバーを ISP から取得していましたが、現在は主にそれらの DNS サーバーを使用し、192.168.1.151
最後のチェックとしても使用したいと考えています。そこで、ルーターの DNS 構成を次のように変更しました。
nslookup oberon
したがって、この構成では、 (Windows) デスクトップで を実行して、 という結果を得られると予想していました192.168.1.151
。しかし、これは起こりません。次のことが起こります:
C:\Users\me>nslookup oberon
Server: UnKnown
Address: fe80::226:f2ff:fefa:bea
*** UnKnown can't find oberon: Non-existent domain
dnsflushing
Windows マシンのネットワーク アダプターをリセットしても何も変わりません。
さて、私がここでちょっと頭を抱えている理由は次の通りです。
C:\Users\me>nslookup oberon 192.168.1.151
Server: oberon.lan
Address: 192.168.1.151
Name: oberon
Address: 192.168.1.151
明らかに、dnsmasq
は正常に動作しています。 Windows ボックスに の192.168.1.151
名前を解決するためにを使用するように指示するとoberon
、すべて正常に動作します (.lan
ドメインは の構成の一部であるdnsmasq
ため、そこに表示されることを期待していました)。 DNS クエリを作成するときに、ルーターに を使用するように Windows マシンに指示できれば192.168.1.151
、問題はないはずです。
問題はルーターにあるように思われますが、DNS サーバーを既存のように変更する以外に何をすればよいのかわかりません192.168.1.151
。どなたか助けていただけませんか? 必要な追加情報があれば提供するよう努めます。
答え1
あなたの問題は、これらの DNS サーバーの使用方法を誤解していることにあります。Windows がどの DNS サーバーを照会するかを選択するために使用する方法の正確な詳細はわかりませんが、プライマリ > セカンダリ > 三次 (常に) であると私は確信しています。また、そうでなくラウンドロビンであったとしても、3 回のうち 2 回は役に立たないサーバーに照会することになります。
プライマリ サーバーが照会されます。これがタイムアウトすると (1 秒か 2 秒かかる場合があります)、次のサーバーが照会されます。DNS は「コンセンサス」システムではないため、リモート サーバーの 1 つが照会されると、インターネット DNS サーバーの観点から、ホスト名が正式に存在しないという結果が最終的に検出されます。
プライマリ DNS サーバーとして、独自の LAN DNS が必要です。他の DNS は適切なバックアップ サーバーになりますが、完全に削除することを検討します。
また、リバース DNS (IP から名前へのルックアップ) は "hostname.lan" に解決されますが、フォワード解決テストはホスト名のみで行われます。また、どこかに hostname.lan のフォワード解決を設定する必要があります。ホストに対して "名前からアドレス" へのフォワード ルックアップが多数ある場合、IP から名前へのリバース ルックアップがあり、その結果、その IP レコードに一致する名前があることが期待されます。これは常に重要というわけではなく、ログ ファイルが時々うるさくなるだけですが、他のものよりもこれに敏感なものがあります。
また、すべてが機能するようになったら、配置したホスト ファイルの不完全な部分をすべて削除することを忘れないでください (これが dnsmasq に関係するかどうかはわかりません。使用したことはありません。私は ISC-BIND ネーム サーバーを使用して、同様ですがより複雑な構成を実施しています。このサーバーでは、使用しているサーバーと同様に他のサーバーに転送するように構成することも、単に転送しない DNS サーバーとして使用して完全な名前解決を独自に行うこともできます。これは私が設定した方法です)。
言うまでもなく、最初に推測したように、このような設定を行っているのはあなただけではありません。適度に開発された企業 LAN のほとんどすべてと、過度に開発された家庭内 LAN の多くでは、このような設定が実施されています。
答え2
少し遅いかもしれませんが、ワイヤレス アダプターで IPv6 を無効にすると問題が解決しました。