自宅でWebサーバを構築すると、ある疑問が湧いていきます。
それは!
- 自宅LANの外からアクセスすると見れる
- 自宅からドメインでアクセスすると見れない→hostsの設定必要、wifiオンにすると見れない
- ローカルIPで接続するとなんか見れる
これ解決するには。。
LANの中でローカルIPとサーバのドメイン名の関係を結びつける
DNS(Domain Name System)サーバを作る必要がある。
やってみようじゃないか!
大学時代にやったがチャレンジ!
■自宅環境
1 2 3 4 5 |
ドメイン:blog.adachin.me グローバルIP:126.6.74.6 ローカルIP:192.168.3.55 ルータ:192.168.3.1 無線LAN:192.168.0.1 |
■bind9のインストール
OSはUbuntu
1 |
$ sudo aptitude install bind9 |
■resolv.conf の設定
bindに名前解決の問い合わせをするDNSサーバのIPやデフォルトのドメインを設定するプログラム。
1 2 3 4 |
$ sudo vim /etc/resolv.conf nameserver 127.0.0.1 #DNSサーバのIPアドレス domain blog.adachin.me #ローカルドメイン名 search blog.adachin.me #ホスト検索時のドメインリスト |
■named.conf.options の設定
基本設定ファイルを編集。
Debianは全てに共通の設定とゾーン別の設定項目が明確になるよう
設定ファイルを2つに分けた構成にしているみたい。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
$ sudo vim /etc/named.conf.options // LAN内のIPアドレスグループをlocalnetと定義 acl localnet { 192.168.3.0/24; 127.0.0.1; }; // ネームサーバ全体で共通の設定 options { directory "/var/cache/bind"; // LAN内部からの問い合わせのみ許可する allow-query { localnet; }; // ゾーン転送はしない(セカンダリDNSサーバはないため) allow-transfer { none; }; // 自宅ドメイン以外の閲覧はルータ(192.168.3.1)へ回送 forwarders { 192.168.3.1; }; forward only; auth-nxdomain no; # conform to RFC1035 listen-on-v6 { any; }; //IPv6も有効にする }; |
■named.confの設定
LAN内部のIPアドレスとドメインを結びつける範囲「ゾーン」の設定を記述。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
$ sudo vim /etc/named.conf include "/etc/bind/named.conf.options"; #include "/etc/bind/named.conf.local"; #include "/etc/bind/named.conf.default-zones"; // VIEW を定義し,LAN内部からの問い合わせに対する処理をまとめる view "local" { //LAN内からの問い合わせにはview"local"に定義した回答をする match-clients { localnet; }; //正引き用ゾーン設定 zone "blog.adachin.me" { type master; file "/etc/bind/blog.adachin.me.zone"; }; //逆引き用のゾーン設定 zone "55.3.168.192.in-addr.arpa" { type master; file "/etc/bind/blog.adachin.me.rev"; }; //以下はBIND9のデフォルト設定 zone "." in { //ルートゾーン type hint; file "/etc/bind/db.root"; }; zone "localhost" { //ループバック正引き(自分自身) type master; file "/etc/bind/db.local"; }; zone "127.in-addr.arpa" { //ループバック逆引き(自分自信) type master; file "/etc/bind/db.127"; }; zone "0.in-addr.arpa" { type master; file "/etc/bind/db.0"; }; zone "255.in-addr.arpa" { type master; file "/etc/bind/db.255"; }; }; //VIEWの定義はここまで include "/etc/bind/named.conf.local"; |
■正引きゾーン
指定されたホスト ( ****.blog.adachin.me ) をIPアドレス ( 192.168.3.*** ) に変換するのが正引き。
1 2 3 4 5 6 7 8 9 10 11 12 |
$ sudo vim /etc/bind/blog.adachin.me.zone $TTL 86400 @ IN SOA ns.blog.adachin.me. root.blog.adachin.me. ( 2014080801 ; Serial シリアル番号(YYYYMMDDNN) 3600 ; Refresh リフレッシュ間隔 (s) 900 ; Retry リトライ間隔 (s) 604800 ; Expire ゾーンデータの有効時間 (s) 86400 ; Minimum ネガティブキャッシュの有効時間 (s) ) IN NS ns.blog.adachin.me. ; ネームサーバ IN A 192.168.3.55 ; webサーバ ns IN A 192.168.3.55 ; ネームサーバ |
■逆引きゾーン
指定されたホスト ( ****.blog.adachin.me ) をIPアドレス (*** .3.168.192 ) に変換するのが逆引き。
1 2 3 4 5 6 7 8 9 10 11 |
$ sudo vim /etc/bind/blog.adachin.me.rev $TTL 86400 @ IN SOA ns.blog.adachin.me. root.blog.adachin.me. ( 2014080801 ; Serial 3600 ; Refresh 900 ; Retry 604800 ; Expire 3600 ; Minimum TTL 1 hour ) IN NS ns.blog.adachin.me. 55 IN PTR blog.adachin.me. |
■再起動/エラーログ確認
1 2 |
$ sudo /etc/init.d/bind9 restart $ tail /var/log/syslog |
■確認
できているぽい
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
rvirus@adachin-server > dig blog.adachin.me ; <<>> DiG 9.9.5-3ubuntu0.9-Ubuntu <<>> blog.adachin.me ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11112 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;blog.adachin.me. IN A ;; ANSWER SECTION: blog.adachin.me. 86400 IN A 192.168.3.55 ;; AUTHORITY SECTION: blog.adachin.me. 86400 IN NS ns.blog.adachin.me. ;; ADDITIONAL SECTION: ns.blog.adachin.me. 86400 IN A 192.168.3.55 ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Sat Mar 18 15:53:31 JST 2017 ;; MSG SIZE rcvd: 99 |
※2014/10/21[追記]
DNSの設定はできている
家のルータでDNSを自鯖にすればいいのだが、
ネット自体繋がらなくなる?
Macのresolv.confを自鯖IPにしたらでけた。
■参考
http://www.tatsuyababa.com/NW-DNS/
0件のコメント