Създаване на нов tld домейн
Disclaimer: Описаните техники в този документ могат да ви помогнат но не е задължително да са напълно вярни и изчерпателни. Не поемам отговорност за каквито и да било реални или нереални, вреди, ползи, пропуски, паднали къщи или каквото и да е произтичащи от ползването или неползването на този документ.
История
- 18.03.2007 - дребни промени
- 11.12.2006 - подменена е схемата за осветяване на кода
- 03.11.2006 - начална версия
- 17.01.2007 - добавяне на връзки и модификация на локалната зонова конфигурация.
Top Level Domain - базов суфикс на име от типа com, net, org. Използва се за да се обединят в една логична зона няколко имена. А защо може да искаме да си създадем подобно животно. Елементарно - за да не замърсяваме света с нашите тестове. Мотивацията зад това е че ако нещо развалим или умишлено направим погрешно ще сме поне частично изолирани и теоретично няма да навредим на почти никой. Представете си ситуацията при която решавате да хостнете популярен домейн само за някакви тестове. И това преминава в целият интернет. Ударът от трафик изобщо няма да ви хареса, уверявам ви.
Пример: Имаме малка локална мрежа и искаме да и присвоим домейн (нерегистриран) който освен това е невалиден за да предпазим останалата част от света от грешките или експериментите които ще направим.
Целта е на нашият рутер, ДНС да присвоим невалиден домейн от типа internal.tld
За целта ще използваме комбинация от bind, dhcpd и малко мислене :))
Следват конфигурации с малко обяснения в самите конфигурации
Конфигурация за DHCPD
# # Sample configuration file for ISC dhcpd for Debian # # $Id: dhcpd.conf,v 1.4.2.2 2002/07/10 03:50:33 peloy Exp $ # authoritative; default-lease-time 14400; max-lease-time 86400; # описваме мрежата от която ще раздаваме адреси subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.10 192.168.0.200; # нашият собствен DNS може да се добавят и други option domain-name-servers 192.168.0.1; # Нашият домейн (фалшив в случая) option domain-name "internal.tld"; # Рутера (gateway) option routers 192.168.0.1; # маска и разни други дреболии за да ни е малко по спокоен живота option subnet-mask 255.255.255.0; option broadcast-address 192.168.0.1; option default-ip-ttl 64; option default-tcp-ttl 64; option time-offset 7200; option netbios-name-servers 192.168.0.1; option netbios-node-type 8; }
Като цяло тази конфигурация дефинира обхват от адреси които ще се раздават от нашият dhcp сървър като той подава и допълнителна информация. За справка какво точно значат/правят опциите
man dhcp
man dhcpd
man dhcpd.conf
http://www.isc.com/dhcp
Следват конфигурациите на bind. Както ще забележите използвал съм една от възможностите на bind и по точно така наречените изгледи. Това спомага за хостването на различни домейни в зависимост от къде идва заявката.
/etc/bind/named.conf
// This is the primary configuration file for the BIND DNS server named. // If you are just adding zones, please do that in /etc/bind/named.conf.local include "/etc/bind/named.conf.options"; include "/etc/bind/named.conf.local";
/etc/bind/named.conf.options
options { directory "/var/cache/bind"; // If there is a firewall between you and nameservers you want // to talk to, you might need to uncomment the query-source // directive below. Previous versions of BIND always asked // questions using port 53, but BIND 8.1 and later use an unprivileged // port by default. query-source address * port 53; // If your ISP provided one or more IP addresses for stable // nameservers, you probably want to use them as forwarders. // Uncomment the following block, and insert the addresses replacing // the all-0's placeholder. // forwarders { // 0.0.0.0; // }; auth-nxdomain no; # conform to RFC1035 listen-on-v6 { none; }; recursion no; };
/etc/bind/named.conf.local - реално тук са нашите конфигурации
// // Do any local configuration here // // Consider adding the 1918 zones here, if they are not used in your // organization //include "/etc/bind/zones.rfc1918"; // ограничения кой може да задава въпроси acl internal { 192.168.0.0/24; 127.0.0.0/8; }; view "internal" { match-clients { 192.168.0.0/24; }; // позволяваме рекурсия за да обслужваме заявки за домейни които не хостваме recursion yes; zone "internal.tld" { // реалната зона която ние си създаваме (с фалшив TLD) type master; file "/etc/bind/internal.tld-forward"; // описанието на самата зона (правата) allow-transfer { internal; }; allow-update { internal; }; }; zone "0.168.192.in-addr.arpa" { type master; file "/etc/bind/internal.tld-reverse"; // обратната зона allow-transfer { internal; }; allow-update { internal; }; }; // prime the server with knowledge of the root servers zone "." { type hint; file "/etc/bind/db.root"; }; // be authoritative for the localhost forward and reverse zones, and for // broadcast zones as per RFC 1912 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"; }; };
В случая нямаме публичен изглед но след време и това ще стане. Ще забележите че във изгледа са добавени няколко специфични локални зони (те са налични в оригиналната конфигурация). Сложени са там за да се покрие изискването, когато се ползват изгледи всички зони да са в определен изглед. Не би било проблем да се създаде изглед само за тях но това не е необходимо. Като допълнителен бонус или мотиватор може да се отбележи че така изчезва едно предупреждение в журналният файл.
Следват самите зони:
/etc/bind/internal.tld-forward
; BIND db file for internal.tld $TTL 86400 @ IN SOA vratar.internal.tld. root. ( 2006091701 ; serial number YYMMDDNN 28800 ; Refresh 7200 ; Retry 864000 ; Expire 86400 ; Min TTL ) NS vratar.internal.tld. $ORIGIN internal.tld. vratar IN A 192.168.0.1 spitfire IN A 192.168.0.2
/etc/bind/internal.tld-reverse
; BIND reverse data file for internal.tld $TTL 86400 @ IN SOA vratar.internal.tld. root. ( 2006091701 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 86400 ) ; Negative Cache TTL @ IN NS vratar.internal.tld. 1 IN PTR vratar. 2 IN PTR spitfire.
Зоните са малко постни но поне дават добра идея какво и защо се прави. Надявам се да ви е полезно :))
Разни полезни връзки (без особенна подредба):










Браво браво, много ценна статия!
19. June 2007 at 16:18