web-dev-qa-db-ja.com

ホームLANネットワーク内のIPのエイリアス

192.168.1.1のようなIPアドレスに読み取り可能な文字列エイリアスを割り当てることは可能ですか?多分このようなもの:

192.168.1.1 -> router.home

または

192.168.1.22 -> printer.home

Router.homeが外部Webから到達可能である必要はありませんが、LAN内でのみ可能です。実際、それは外部のWebから到達可能であるべきではありません。

目的は、router.homeアドレスに応答するローカルDNSサーバーを用意することです。そのようなエイリアスを作成する方法はありますか。

編集:Yamakajaの答えは素晴らしい作品だが、それはLAN内のすべてのコンピュータ上のhostsファイルを変更する必要があります。ローカルDNSルックアップは、代わりにホームルータで実行できますか?それは多くの手作業を省くでしょう。

23
sanjihan

Yamakaja's answer に加えて、これがローカルDNSサーバーの設定方法です。

まず、DNSサーバーを実行したいコンピューターが必要です。これはあなたの通常のコンピュータの1つ(Linuxを実行していて、ほとんどの時間稼働している場合)、または例えば Raspberry Pi になります。そのような装置の利点は、それが安価であり、多くの電力を必要とせず、そしてそれが小さいことである。

DNSサーバーを設定する

私は dnsmasq を使ってRaspberry Pi上にDNSサーバーをセットアップすることにしました。これは小さなネットワークでの使用に理想的です。事実上の標準DNSツールである bind を使用することもできますが、これは小規模のホームネットワークにはおそらく多すぎるかもしれません。

Debianベースのシステム(例えばRaspbian)で、パッケージマネージャを使用してdnsmasqをインストールします。コマンドは次のようになります。

Sudo apt-get install dnsmasq

私は今、あなたがすでに静的IPアドレス割り当てを設定していると仮定します(すなわち、あなたがあなたの質問で言及するIPアドレスは変更されません)。そうでなければ、dnsmasqをDHCPサーバーとして使うこともできますが、私はまだ行っていません。

dnsmasq/etc/hostsからホスト名を取得します。このファイルを次のように編集します。

# IP address    Host name
192.168.1.1     router
192.168.1.22    printer

ホスト名router192.168.1.1に、printerから192.168.1.22に割り当てられました。

今、あなたはあなた自身のDNSサーバをセットアップしました、しかしあなたのネットワーク内のコンピュータはまだそれを使用していません。このサーバーを使用するようにするには、準備の1つのステップを実行する必要があります。

ip addressを使ってdnsmasqデバイスのIPアドレスを探します(192.168.1.42と仮定しましょう)。 /etc/dnsmasq.confを開き、以下の行を追加します。

listen-address=127.0.0.1
listen-address=192.168.1.42

これはdnsmasqに対し、それらが127.0.0.1(すなわち、それ自身がそのDNSサーバーを使用したい時)または192.168.1.42(すなわち、他のコンピューターがそのDNSサーバーを使用したい時)のどちらかに向けられるときそれに要求をリッスンするべきであることを伝えます。

DNSサーバーを使用する

ネットワーク内の各コンピュータにDNSサーバーとして192.168.1.42を使用するように指示する必要があります。これを行う方法は、オペレーティングシステムによって異なります。あなたは簡単にインターネット上であなたの指定されたオペレーションシステムのためにこれを調べることができます(単に「<OS>のDNSサーバーを変える」か、またはそのような何かを検索してください)。

Windows 7の場合は、このチュートリアルに従うことができます: https://www.opennicproject.org/configure-your-dns/how-to-change-dns-servers-in-windows-7 / .

私のシステム(Arch Linux)では、/etc/resolvconf.confに次の行を追加しなければなりませんでした

name_servers=192.168.1.42

使用する必要があるファイルは、ネットワークマネージャの設定によって異なります。 DNSを使用する各コンピュータにDNSサーバーのIPを追加します。

すぐにうまくいかない場合は、おそらくデバイスを再起動する必要があります。

それで、終わりです。指定したホスト名を使用するだけで、dnsmasqサーバーの/etc/hostsに入力したすべてのデバイスにアクセスできるようになりました。

(オプション)機能の確認

DNS解決が正しく機能するかどうかを確認したい場合は、サーバーを使用するシステムにdnsutils(Linux)をインストールしてください。それから実行

$ Dig router

これはこのようなものを返すはずです

; <<>> Dig 9.10.4-P1 <<>> router
;; global options: +cmd
;; Got answer:
...

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;router.                        IN      A

;; ANSWER SECTION:
router.                 0       IN      A       192.168.1.1

;; Query time: 14 msec
;; SERVER: 192.168.1.42#53(192.168.1.42)
;; WHEN: So Jun 26 10:43:18 CEST 2016
;; MSG SIZE  rcvd: 50

解決したいホスト名、解決したIPアドレス、使用したDNSサーバーが表示されます。ご覧のとおり、すべて問題ありません。

(任意)TLDの指定

routerまたはprinterだけでなくrouter.homeおよびprinter.homeを使用してデバイスにアクセスする場合は、次の行を/etc/dnsmasq.confに追加します。

expand-hosts # Tells dnsmasq to add a TLD to each Host name
domain=home # The TLD

もう一度再起動する必要があります。

情報源/さらに読む

dnsmasqについて:

bindについて(興味があれば):

18
TuringTux

はい、そうです、そして2つ(またはそれ以上)のオプションがあります。


Hostsファイルを編集する(怠惰な方法)

オペレーティングシステムによっては、 "hosts"ファイルにエントリを追加する必要があります。ほとんどのUnixoidでは/etc/hosts、WindowsではC:\Windows\system32\drivers\etc\hostsにあります。

エントリを追加するには、ファイルの末尾に移動して次の形式で行を追加します。

<IP>       <the hostname to assign>

例えば。

192.168.1.1      router

(注:ipとhostnameの間のスペースは関係ありません。ただし、他のエントリーと一致させると見栄えがよくなります。タブまたはスペースを使用できます)

それから、ブラウザにアクセスするだけでルーターにアクセスできます。

http://router/

または

router/

ローカルDNSサーバー

詳しくは TuringTuxの答え をご覧ください。

9
Yamakaja

私は上記の素晴らしい答えを更新したいです。

ルーターを調べて、手動でDNSエントリがサポートされているかどうかを確認することをお勧めします。

もしそうなら、あなたはそれにあなたのローカルな192.168.1.22アドレスをprinter.homeとして単に加えることができます。それ以外の場合は、ローカルのhostsファイルの編集または自分のDNSサーバーの設定が怖いので制限があります。

2
Valentin