2008 - Debian 4 - Xen domU - DNS system - djbdns
Anglická verzia tohto dokumentu: 2008 - Debian 4 - Xen domU - DNS system - djbdns.
|=---------------------------------=[ XEN ]=------------------------------=| +---------------------------------------------------------------------------+ | | XEN-server domU (REAL SERVER HW) | Debian 4.0 Etch | DNS SYSTEM | +---------------------------------------------------------------------------+ |=-------------------------------=[ BH 2008 ]=----------------------------=| Budeme pouzivat BASE system na vytvorenie dalsich virtualnych strojov.
1. Vytvorenie noveho virtualneho stroja
Vytvorenie logickych particii pre novy system
=============================================
# lvcreate -L 1.5G -n dns-disk system_vhosts
# lvcreate -L 1G -n dns-var system_vhosts
# lvcreate -L 1G -n dns-varlog system_vhosts
# lvcreate -L 0.5G -n dns-tmp system_vhosts
# lvcreate -L 2G -n dns-usr system_vhosts
# lvcreate -L 0.5G -n www-swap system_vhosts
# mkswap /dev/system_vhosts/www-swap
Vytvorenie VM z base LVM particii (snapshots)
=============================================
# lvcreate -s -L 1.5G -n snap-base-disk /dev/system_vhosts/base-disk
# lvcreate -s -L 1G -n snap-base-var /dev/system_vhosts/base-var
# lvcreate -s -L 1G -n snap-base-varlog /dev/system_vhosts/base-varlog
# lvcreate -s -L 0.5G -n snap-base-tmp /dev/system_vhosts/base-tmp
# lvcreate -s -L 2G -n snap-base-usr /dev/system_vhosts/base-usr
# lvcreate -s -L 0.5G -n snap-base-swap /dev/system_vhosts/base-swap
# dd if=/dev/system_backup/snap-base-disk of=/dev/system_vhosts/dns-disk bs=1024k // (1610612736 bytes (1.6 GB) copied, 50.4256 seconds, 31.9 MB/s)
# dd if=/dev/system_backup/snap-base-var of=/dev/system_vhosts/dns-var bs=1024k // (1073741824 bytes (1.1 GB) copied, 33.2976 seconds, 32.2 MB/s)
# dd if=/dev/system_backup/snap-base-varlog of=/dev/system_vhosts/dns-varlog bs=1024k // (1073741824 bytes (1.1 GB) copied, 33.5406 seconds, 32.0 MB/s)
# dd if=/dev/system_backup/snap-base-tmp of=/dev/system_vhosts/dns-tmp bs=1024k // (536870912 bytes (537 MB) copied, 16.2542 seconds, 33.0 MB/s)
# dd if=/dev/system_backup/snap-base-usr of=/dev/system_vhosts/dns-usr bs=1024k // (2147483648 bytes (2.1 GB) copied, 66.4581 seconds, 32.3 MB/s)
Config novovytvoreneho systemu - dom0
==============================
# cp /etc/xen/base.cfg /etc/xen/dns.cfg
# nano /etc/xen/dns.cfg
-----------------------
# DNS SYSTEM
# Obraz jadra, initrd a pamat pre tento Virtualny Stroj
kernel = '/boot/vmlinuz-2.6.18-6-xen-amd64'
ramdisk = '/boot/initrd.img-2.6.18-6-xen-amd64'
memory = '256'
extra = 'selinux=0'
vcpus = '1'
# Diskove zariadenia
root = '/dev/sda1 ro'
disk = [ 'phy:system_vhosts/dns-disk,sda1,w', 'phy:system_vhosts/dns-swap,sda2,w', 'phy:system_vhosts/dns-var,sda3,w', 'phy:system_vhosts/dns-varlog,sda4,w', 'phy:system_vhosts/dns-tmp,sda5,w', 'phy:system_vhosts/dns-usr,sda6,w' ]
# Hostname
name = 'dns'
# Siet
vif = [ 'ip=10.0.0.6', 'ip=192.168.0.6' ]
# Spravanie
on_poweroff = 'destroy'
on_reboot = 'restart'
on_crash = 'restart'
-----------------------END-»/etc/xen/dns.cfg
Spustenie noveho systemu
========================
# xm create -c dns.cfg
Konfiguracia domU - dns
========================
# nano /etc/hostname
--------------------
dns
--------------------END-»/etc/interfaces
# nano /etc/network/interfaces
------------------------------
auto eth0
iface eth0 inet static
address 10.0.0.6
gateway 10.0.0.254
netmask 255.0.0.0
auto eth1
iface eth1 inet static
address 192.168.0.6
netmask 255.255.255.0
-------------------------------END-»/etc/network/interfaces
# nano /etc/issue
-----------------
Virtual.DNS
-----------------END-»/etc/issue
# nano /etc/issue.net
---------------------
Virtual.DNS
---------------------END-»/etc/issue.net
# nano /etc/motd
-----------------
Virtual.DNS
---------------------END-»/etc/motd2. Nastavenie siete (nated network)
----
dom0
----
# nano /etc/xen/xend-config.sxp
-------------------------------
(network-script network-nat)
(vif-script vif-nat)
Zapneme SNAT pre siet 10.0.0.0/255.0.0.0
----------------------------------------
# iptables -t nat -A POSTROUTING -s 10.0.0.0/255.0.0.0 -j SNAT --to-source 192.168.254.254
Presmenurejeme poziadavky na 192.168.254.254:22226 na 10.0.0.6:22
----------------------------------------------------------------------
# iptables -t nat -A PREROUTING -p tcp -s xx.xx.xx.xx -d 192.168.254.254 --dport 22222 -j DNAT --to-destination 10.0.0.6:223. Instalacia DNS servera (DJBDNS)
DJBDNS nie je v Debiane Etch v podobe binarnych balickov. Existuju len balicky so zdrojovymi kodmi a to tiez v repozitaroch 'contrib' a 'non-free'. Poziadavky: - daemontools - ucspi-tcp-src Poznamky: - IP adresa autoritativneho DNS servera bude 10.0.0.6 - IP adresa cache DNS servera pre virtualne stroje bude 192.168.0.6 (resolver)
3.1 Install - daemontools
# apt-get install daemontools-installer
# mkdir /install
# build-daemontools
-------------------
Enter a directory where you would like to do this [/tmp/daemontools] -» [/install/daemontools] ENTER
Which format would you like to use? [fD] «- ENTER
Do you want to remove all files in /install/daemontools,
except daemontools_0.76-9_i386.deb now? [Yn] «- ENTER
Do you want to install daemontools_0.76-9_i386.deb now? [Yn] «- ENTER
Do you want to purge daemontools-installer now? [yN] «- ENTER
-------------------3.2 Install - ucspi-tcp-src
# apt-get install ucspi-tcp-src
# build-ucspi-tcp
-----------------
Enter a directory where you would like to do this [/install/ucspi-tcp] -» [/install/ucspi-tcp] ENTER
Do you want to remove all files in /install/ucspi-tcp,
except ucspi-tcp_0.88-10_i386.deb now? [Yn] «- ENTER
Do you want to install ucspi-tcp_0.88-10_i386.deb now? [Yn] «- ENTER
Do you want to purge ucspi-tcp-src now? [yN] «- ENTER
-------------------3.3 Install - djbdns
# apt-get install djbdns-installer
# build-djbdns
--------------
Enter a directory where you would like to do this [/install/djbdns] -» [/install/djbdns] ENTER
Do you want to remove all files in /tmp/djbdns,
except djbdns_1.05-11_i386.deb now? [Yn] «- ENTER
Do you want to install djbdns_1.05-11_i386.deb now? [Yn] «- ENTER
Do you want to purge djbdns-installer now? [yN] «- ENTER3.4 Install - Config - djbdns
# mkdir /var/lib/svscan
3.5 DNS cache server private - dnscache (pre virtualne stroje)
Vytvorime DNS cache server cakajuci na spojenia na adrese 192.168.0.6
---------------------------------------------------------------------
# dnscache-conf dnscache dnslog /var/lib/svscan/dnscache 192.168.0.6
Stiahneme aktualny zoznam DNS root serverov
---------------------------------------------
ftp://ftp.internic.net/domain/named.root
Nastavime momentalne platne root servery
-----------------------------------------
# nano /var/lib/svscan/dnscache/root/servers
--------------------------------------------
198.41.0.4
192.228.79.201
192.33.4.12
128.8.10.90
192.203.230.10
192.5.5.141
192.112.36.4
128.63.2.53
192.36.148.17
192.58.128.30
193.0.14.129
199.7.83.42
202.12.27.33
Nastavime pre ktore ip adresy robime DNS cache server (192.168.0.*)
---------------------------------------------------------------
# touch /var/lib/svscan/dnscache/root/ip/192.168.0
Aktivujeme sluzbu vytvorenim odkazu
-----------------------------------
# ln -s /var/lib/svscan/dnscache /service
Restartneme sluzbu takto
------------------------
# svc -d /service/dnscache
# svc -u /service/dnscache
alebo takto
-----------
# svc -t /service/dnscache3.6 DNS cache server local - dnscache
Vytvorime DNS cache server cakajuci na spojenia na adrese 127.0.0.1
---------------------------------------------------------------------
# dnscache-conf dnscache dnslog /var/lib/svscan/dnscache-local 127.0.0.1
Aktivujeme sluzbu vytvorenim odkazu
-----------------------------------
# ln -s /var/lib/svscan/dnscache-local /service3.6 Autoritativny verejny DNS server- tinydns-public
Vytvorime verejny DNS autoritativny server cakajuci na spojenia na adrese 10.0.0.6
--------------------------------------------------------------------------------
# tinydns-conf tinydns dnslog /var/lib/svscan/tinydns-public 10.0.0.6
Aktivujeme sluzbu vytvorenim odkazu
-----------------------------------
# ln -s /var/lib/svscan/tinydns-public /service3.7 Autoritativny privatny DNS server- tinydns-private
Vytvorime privatny DNS autoritativny server cakajuci na spojenia na adrese 127.0.0.1 (localhost preto lebo uz sme obsadili obe interfaci)
----------------------------------------------------------------------------------------------------------------------------------
# tinydns-conf tinydns dnslog /var/lib/svscan/tinydns-private 127.0.0.1
dnscache serveru povieme aby pouzival privatny autoritativny server na adrese 127.0.0.1 pre rozlisovanie vnutornej domeny client43.example
------------------------------------------------------------------------------------------------------------------------------
# echo 127.0.0.1 » /var/lib/svscan/dnscache/root/servers/client43.example
dnscache serveru povieme aby pouzival privatny autoritativny server na adrese 127.0.0.1 pre rozlisovanie reverznych zazmaov vnutornej domeny client43.example
-------------------------------------------------------------------------------------------------------------------------------------------
# echo 127.0.0.1 » /var/lib/svscan/dnscache/root/servers/192.in-addr.arpa
Nastavime privatne zaznamy pre domenu client43.example
---------------------------------------------------------------
cd /var/lib/svscan/tinydns-private/root
Pridame zaznam pre domenovy server
-------------------------------------------------
./add-ns client43.example 192.168.0.6
Aktivujeme sluzbu vytvorenim odkazu
-----------------------------------
# ln -s /var/lib/svscan/tinydns-private /service3.8 Autoritativny verejny DNS server- tinydns-public - POVOLENIE TRANSFERU ZONY
Zapneme demon axfrdns pre umoznenie transferu zon z naseho verejneho autoritativneho DNS
----------------------------------------------------------------------------------------
# axfrdns-conf axfrdns dnslog /var/lib/svscan/axfrdns /var/lib/svscan/tinydns-public 10.0.0.6
Ako root spustime prikaz pre zapnutie ZONE TRANSFERU (AXFR)
-------------------------------------------------------------
# echo ':allow,AXFR=""' » /var/lib/svscan/axfrdns/tcp
Pre domenu client43.example povolime transfer zony z vybranych IP adries
---------------------------------------------------------------
# echo '192.0.2.32:allow,AXFR="client43.example"' »» /service/axfrdns/tcp
# echo '192.0.2.33:allow,AXFR="client43.example"' »» /service/axfrdns/tcp
Z datoveho suboru vykompilijeme hash databazu
----------------------------------------------
# cd /var/lib/svscan/axfrdns
# make
Aktivujeme sluzbu vytvorenim odkazu
-----------------------------------
# ln -s /var/lib/svscan/axfrdns /serviceLINKZ
Intro to djbdns
--------------
http://www.mn-linux.org/meetings/pastnotes/djbdns.pdf
FAQ
----
http://www.fefe.de/djbdns/
DNS split horizon
----------------
http://www.fefe.de/djbdns/split-horizon
Zone transfer
-------------
http://cr.yp.to/djbdns/tcp.html
How the AXFR protocol works
----------------------------
http://cr.yp.to/djbdns/axfr-notes.html
The BIND company's ``AXFR clarifications''
-----------------------------------------
http://cr.yp.to/djbdns/axfr-clarify.html