2

У меня есть веб-сервер (со статическим IP-адресом 192.168.1.5), и я хочу, чтобы мои машины в локальной сети могли иметь к нему доступ без изменения /etc/hosts (или аналога для Windows/OSX). Мой роутер имеет

Primary DNS server 192.168.1.5
Secondary DNS server 8.8.8.8 (Google's public DNS).

Nginx настроен на внешние серверы как

*.example.com

Внутренне я хочу

*.example.local

указать на сервер.

На моем веб-сервере установлен BIND9, но я не уверен в настройках. Я прошел через различные противоречивые уроки, и поэтому большинство моих настроек были забиты. Я вычеркнул строки, в которых я запутался.

Учебники, на которые я смотрел:http://tech.surveypoint.com/blog/install-a-local-dns-server-behind-a-hardware-router/ и http://ubuntuforums.org/showthread.php?t = 236093 В основном они отличаются тем, что следует поместить в /etc/bind/zones/db.example.local и /etc/bind/zones/db.192 , поэтому я оставил конфликтующие строки ниже. Может ли кто-нибудь подсказать, какие правильные строки используются для приведенного выше поведения (а именно *.example.local указывающего на 192.168.1.5)?

/etc/network/interfaces

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 192.168.1.5
    netmask 255.255.255.0
    broadcast 192.168.1.255
    gateway 192.168.1.254

/etc/hostname

avalon

/etc/resolv.conf

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

/etc/bind/named.conf.options

options {
    directory "/var/cache/bind";

    forwarders {
        8.8.8.8;
        8.8.4.4;
    };

    dnssec-validation auto;

    auth-nxdomain no;    # conform to RFC1035
    listen-on-v6 { any; };
};

/etc/bind/named.conf.local

zone "example.local" {
    type master;
    file "/etc/bind/zones/db.example.local";
};

zone "1.168.192.in-addr.arpa" {
    type master;
    file "/etc/bind/zones/db.192";
};

/etc/bind/zones/db.example.local

$TTL    604800
@   IN  SOA avalon.example.local.   webadmin.example.local. (
                  5     ; Serial, increment each edit
             604800     ; Refresh
              86400     ; Retry
            2419200     ; Expire
             604800 )   ; Negative Cache TTL

/etc/bind/zones/db.192

$TTL    604800
@   IN  SOA avalon.example.local.   webadmin.example.local. (
                  4     ; Serial, increment each edit
             604800     ; Refresh
              86400     ; Retry
            2419200     ; Expire
             604800 )   ; Negative Cache TTL
;

Что мне нужно добавить к вышеуказанным файлам, чтобы на ноутбуке во внутренней сети я мог набрать webapp.example.local и обслуживаться моим веб- сервером ?

РЕДАКТИРОВАТЬ

Я внес несколько изменений в вышеуказанные файлы на веб-сервере.

/etc/network/interfaces (конец файла)

    dns-nameservers 127.0.0.1
    dns-search example.local

/etc/bind/zones/db.example.local (конец файла)

@   IN  NS  avalon.example.local.
@   IN  A   192.168.1.5
avalon  IN  A   192.168.1.5
webapp  IN  A   192.168.1.5
www IN  CNAME   192.168.1.5

/etc/bind/zones/db.192 (конец файла)

    IN  NS  avalon.example.local.
73  IN  PTR avalon.example.local.

В качестве примечания, моя запасная машина Win7 смогла подключиться напрямую к webapp.example.local , но для машины с Ubuntu 13.10 мне также пришлось внести следующие изменения (не на веб-сервере, а на отдельной машине):

/etc/nsswitch.conf

до

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4

после

hosts:          files dns

/etc/NetworkManager/NetworkManager.conf

до

dns=dnsmasq

после

#dns=dnsmasq

Проблема остается в том, что это не подстановочный DNS, и поэтому я должен добавить записи в /etc/bind/zones/db.example.local для webapp1 , webapp2 , ...

0