Доброго времени суток, уважаемые!Разрабатываю сайты. На локальной машине (WinXP с выходом в интернет) стоит апач с настроенными виртуальными хостами. До сих пор вполне хватало. Если требовалось новый сайт разрабатывать, то в C:\WINDOWS\system32\drivers\etc\hosts прописывал строку "127.0.0.1 newdomain" и в апаче соответствующий виртуальный host.
Всё бы ничего, но сейчас потребовалось разработать серию сайтов, на которых должна быть реализована возможность динамического создания поддоменов. Как обрабатывать поддомены в апаче разобрался легко. Но столкнулся с тем, что довольно муторно при тестировании каждый раз прописывать в hosts все поддомены. Да и решили создать единый веб-сервер в нашей "сетке"(3 виндовых машины на одном хабе, сервера нет, в инет все выходят через мою машину, фаерволом стоит каспер) чтобы легче было поддерживать и разрабатывать. Погуглив из бесплатных решений нашёл порт BIND9 для Винды. Уже два дня убил на то, чтобы настроить. Но что то не выходит каменный цветок :(Сейчас конфиги имеют следующее содержание:
---[D:\InetSoft\bind\etc\named.conf ]---
options {
listen-on {
127.0.0.1;
192.168.0.1;
};
query-source address * port 53;
allow-transfer { any; };
directory "d:/InetSoft/bind/namedb";
pid-file "d:/InetSoft/bind/named.pid";
forwarders { 10.155.66.65; 91.194.194.12; };
notify yes;
};key "rndc-key" {
algorithm hmac-md5;
secret "miscletters==";
};controls {
inet 127.0.0.1
allow { 127.0.0.1; } keys { "rndc-key"; };
};zone "." {
type hint;
file "d:/InetSoft/bind/etc/named.root";
};zone "localhost" IN {
type master;
file "d:/InetSoft/bind/namedb/zone.localhost";
allow-update { none; };
};zone "0.0.127.in-addr.arpa" {
type master;
file "d:/InetSoft/bind/namedb/localhost.rev";
};zone "mydomain" {
type master;
file "d:/InetSoft/bind/namedb/mydomain.dns";
allow-update { none;};
allow-query { any; } ;
allow-transfer { 192.168.0.1; } ;
notify yes;
};
---[D:\InetSoft\bind\etc\named.conf ]------[D:\InetSoft\bind\etc\mydomain.dns]---
$TTL 14440
@ IN SOA mydomain. admin.mydomain. (
2005012410;
3600;
3600;
604800;
86400);@ IN NS ns.mydomain
@ IN A 192.168.0.1
@ IN A 127.0.0.1
www IN CNAME @
ns.mydomain A 192.168.0.1
---[D:\InetSoft\bind\etc\mydomain.dns]------[D:\InetSoft\bind\namedb\localhost.rev]---
$TTL 1D
$ORIGIN 0.0.127.in-addr.arpa.
@ IN SOA localhost. root.localhost. (
1 ; serial
8H ; refresh
15M ; retry
1W ; expire
1D ) ; minimum
IN NS localhost.
1 IN PTR localhost.
---[D:\InetSoft\bind\namedb\localhost.rev]------[D:\InetSoft\bind\namedb\zone.localhost]---
$TTL 1D
$ORIGIN localhost.
@ IN SOA @ root (
1 ; Serial
8H ; Refresh
15M ; Retry
1W ; Expire
1D) ; Minimum TTL
IN NS @
IN A 127.0.0.1
---[D:\InetSoft\bind\namedb\zone.localhost]------[D:\InetSoft\bind\etc\named.root]---
; This file holds the information on root name servers needed to
; initialize cache of Internet domain name servers
; (e.g. reference this file in the "cache . <file>"
; configuration file of BIND domain name servers).
;
; This file is made available by InterNIC
; under anonymous FTP as
; file /domain/named.root
; on server FTP.INTERNIC.NET
; -OR- RS.INTERNIC.NET
;
; last update: Jan 29, 2004
; related version of root zone: 2004012900
;
;
; formerly NS.INTERNIC.NET
;
. 3600000 IN NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
;
; formerly NS1.ISI.EDU
;
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 192.228.79.201
;
; formerly C.PSI.NET
;
. 3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
;
; formerly TERP.UMD.EDU
;
. 3600000 NS D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
;
; formerly NS.NASA.GOV
;
. 3600000 NS E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
;
; formerly NS.ISC.ORG
;
. 3600000 NS F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
;
; formerly NS.NIC.DDN.MIL
;
. 3600000 NS G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
;
; formerly AOS.ARL.ARMY.MIL
;
. 3600000 NS H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53
;
; formerly NIC.NORDU.NET
;
. 3600000 NS I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
;
; operated by VeriSign, Inc.
;
. 3600000 NS J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET. 3600000 A 192.58.128.30
;
; operated by RIPE NCC
;
. 3600000 NS K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129
;
; operated by ICANN
;
. 3600000 NS L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12
;
; operated by WIDE
;
. 3600000 NS M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33
; End of File
---[D:\InetSoft\bind\etc\named.root]---named на это не ругается(логи в винде я так понял можно смотреть только через "Просмотр событий"), "работает" как сервис. Все ошибки которые появлялись при запуске исправил, осталась только это уведомление - "the 'files' limit (2048) is less than FD_SETSIZE (16384), increase 'files' in named.conf or recompile with a smaller FD_SETSIZE."
Но пока не понял как и это убрать.nslookup.exe (тот, что рядом с named.exe) работает без сообщения строк "Default Server:" и "Address:"
если набрать после после mydomain после > то вываливается с сообщением "D:\InetSoft\bind\bin\nslookup.exe: '' is not in legal name syntax (unexpected end of input)"Cамо собой mydomain в браузере не обнаруживается.
В общем, я в тупике.
Сам я программист и далёк от вопросов администрирования серверов(тем более не знаком с юниксами :( ) и сеток. Спросить не у кого. Поэтому прошу подсказки у вас.
Если подскажете как настроить bind - будет здорово. Но так же буду благодарен за подсказку где почитать про решение моей проблемы или как правильно составить запрос к гуглу.
Заранее спасибо!
>$TTL 14440
>@ IN SOA mydomain. admin.mydomain. (
> 2005012410;
> 3600;
> 3600;
> 604800;
> 86400);
>
>@ IN NS ns.mydomainтут точка нужна ns.mydomain.
>@ IN A 192.168.0.1
>@ IN A 127.0.0.1
>www IN CNAME @
>ns.mydomain A 192.168.0.1тут ".mydomain" не нужен.. только ns
>
>nslookup.exe (тот, что рядом с named.exe) работает без сообщения строк "Default Server:"
>и "Address:"удалите записи о этой зоне из виндового файла hosts
запустите виндовый nslookup и посмотрите что скажет он
обзовите таки домен с точкой... чтото вроде mydomain.iliya
http://sergeyka.h10.ru/bind.html
Спасибо огромное!сделал следующие изменения:
---[D:\InetSoft\bind\etc\named.conf ]---
...zone "mydomain.ilya" {
type master;
file "d:/InetSoft/bind/namedb/mydomain.dns";
allow-update { none;};
allow-query { any; } ;
allow-transfer { 192.168.0.1; } ;
notify yes;
};
---[D:\InetSoft\bind\etc\named.conf ]------[D:\InetSoft\bind\etc\mydomain.dns]---
$TTL 14440
@ IN SOA mydomain.ilya. admin.mydomain.ilya. (
2005012411;
3600;
3600;
604800;
86400);@ IN NS ns.mydomain.ilya.
@ IN A 192.168.0.1
@ IN A 127.0.0.1
www IN CNAME @
* IN CNAME @
ns A 127.0.0.1
---[D:\InetSoft\bind\etc\mydomain.dns]---Прописал в настройках сетевой карты dns-сервер 127.0.0.1
Перегрузил компьютер.Виндовый nslookup выдает следующее:
----------------------------------------------------------------------
C:\>nslookup
*** Can't find server name for address 127.0.0.1: Non-existent domain
*** Can't find server name for address 212.38.97.3: Non-existent domain
Default Server: ns.occ.ru
Address: 91.194.194.12> mydomain.ilya
Server: ns.occ.ru
Address: 91.194.194.12*** ns.occ.ru can't find mydomain.ilya: Non-existent domain
>----------------------------------------------------------------------
nslookup.exe БИНДа показывает следующее:
----------------------------------------------------------------------
D:\InetSoft\bind\bin>nslookup.exe
> mydomain.ilyaServer: 127.0.0.1
Address: 127.0.0.1#53Name: mydomain.ilya
Address: 127.0.0.1
Name: mydomain.ilya
Address: 192.168.0.2
>----------------------------------------------------------------------
в hosts само собой mydomain.ilya не прописывал
После соответствующей правки конфига апачи в браузере стал открываться mydomain.ilya и его поддомены. В принчипе, можно было бы на этом остановиться. Но вот гложет как то сообщение винодового nslookup, что "Can't find server name for address 127.0.0.1: Non-existent domain". В чём может быть проблема?
>http://sergeyka.h10.ru/bind.htmlСпасибо за ссылку! Было полезно прочитать!