読者です 読者をやめる 読者になる 読者になる

Carpe Diem

備忘録。https://github.com/jun06t

DHCPサーバ及びホスト名のみでのアクセス

自宅サーバ
今回はDHCPサーバについてです。これはルータ側で設定できるものですが、タイトルにある「ホスト名のみでアクセス」をしたくなって設定しました。 前回のDNSサーバをたてると、FQDNでならゾーン設定で指定したIP先にアクセスできます。しかしできるならドメイン部分(定義的な意味でなく一般的な語句使用の意。今回ならexample.com)を省略してアクセスできたらいいなと。 具体的に現状を説明します。 前回のDNSサーバのゾーン設定で、router IN A 192.168.11.1 と設定したとします。 この場合 $ ping router.example.com は通りますが、 $ ping router は通りません。当然ながらブラウザでも、前者はちゃんとルータにアクセスでき、後者はできません。この状態を解決したいわけです。 その方法としては ①クライアントのリゾルバ(resolv.conf)にsearchでドメイン名を指定する(DNSサフィックスという)。 ②DHCPサーバでIP配布時に、ドメイン名を指定する。 の2通りがあります。LAN内でも固定プライベートIPだと①で設定するしかありませんが、そうでなければ②の方が自動でやってくれるので便利かと思います。※最後に補足がありますが、DHCPサーバを構築しなくてもバッファロールータの場合、ルータの設定で同じことができます。 設定は今までに比べて非常に簡単です。 ◆インストールと設定。 $ sudo aptitude -y install dhcp3-server $ sudo emacs -nw /etc/dhcp/dhcpd.conf # 16行目:ドメイン名指定 option domain-name "example.com"; # 17行目:ネームサーバーのホスト名、またはIPアドレス指定 option domain-name-servers ns.example.com; # 21行目:リース期間修正。好きな期間でどうぞ #default-lease-time 600; #max-lease-time 7200; default-lease-time 64800; max-lease-time 64800; # 24行目:コメント解除 authoritative; # 最終行に以下追記 # ネットワークアドレスとサブネットマスク指定 subnet 192.168.11.0 netmask 255.255.255.0 {        # デフォルトゲートウェイ指定。ルータのIPです。        option routers 192.168.11.1;        # サブネットマスク指定        option subnet-mask 255.255.255.0;        # ブロードキャスト        option broadcast-address 192.168.11.255;        # 貸し出すIPアドレスの範囲指定。今回は101~200にします。        range dynamic-bootp 192.168.11.101 192.168.11.200; } ドメイン名やネームサーバがグローバルスコープにありますが、追加した部分のローカルスコープにも書けます。 設定が完了したら起動します。 $ sudo /etc/init.d/isc-dhcp-server start ◆固定IPを割り当てる場合 先ほどの設定で subnet 192.168.11.0 netmask 255.255.255.0 {        option routers 192.168.11.1;        option subnet-mask 255.255.255.0;        option broadcast-address 192.168.11.255;        range dynamic-bootp 192.168.11.101 192.168.11.200;        host testclient{                 hardware ethernet 00:90:FE:2F:A6:11;                 fixed-address 192.168.11.101;        } } のように、hostブロックを追加し、ホスト名(任意)・クライアントのMACアドレス・割り当てるIPを書きます。 ◆ルータの設定 ルータの中のDHCPサーバー機能を停止してください。バッファロールータなら Internet/LAN→LAN にあります。 これだけでOKです。試しにiPhone等でアクセスしてみると、アドレスにrouterと入力するだけでちゃんとルータにアクセスできました。VMplayerでの仮想環境でpingを打ってもきちんと名前解決され、FQDNでなくてホスト名でアクセスできます。 ◆補足 実はルータのDHCPサーバ機能にもドメインの指定項目がありました。バッファロールータの場合 Internet/LAN→LAN→拡張設定→ドメイン名の通知 で、DHCPでIPを配る際にドメインも通知してくれて、目的の「ホスト名だけでアクセス」することができます。 ソース: DHCPサーバー構築 Ubuntu で DHCP サーバ UbuntuでDHCPサーバを稼働させてみる