Linux DNS

From Ilianko
Revision as of 07:05, 24 November 2014 by Anko (talk | contribs)

Теория

DNS теория

Създаване на опитна постановка

За реализацията на хардуерната постановка ще се използва VirtualBox. Ще се създадат две виртуална машина от образа на предварително подготвена инсталация на Linux и Windows XP.

Linux машината ще бъде конфигурирана като DNS сървър, а Windows XP като DNS клиент.

Импортиране и настройка на интерфейсите на виртуалната машина.

Мрежовите адаптери и на двете машини да са в режим мостов адаптер и с генерирани нови MAC адреси.

Мрежови настройки Linux

Автоматично конфигуриране на IP адрес

$dhclient eth1

Проверка на дадения ви адрес

$ifconfig 

задаване статичен адрес

$sudo nano /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth1
iface eth1 inet static
address if0.if0.if0.if0
netmask if0.if0.if0.if0
gateway 10.3.0.1

където if0.if0.if0.if0 се заместват с дадените ви стойност от dhcp сървъра


Прилагане на промените За да се заредят новите настройки, мрежовите интерфейси трябва да се рестартират.

:~$sudo /etc/init.d/networking restart


инсталиране на тестов web сървър

$sudo apt-get update 
$sudo apt-get install apache2

Инсталация на DNS сървър

$sudo apt-get install bind9

Конфигуриране на DNS клиент

  • Да се импортира Windows машина.
  • Да се смени MAC адресът
  • Мрежовият адаптер да е в режим Bridged Adapter

Да се настрои статичен DNS (адресът Линукс машината).

Тестване

На клиента (Windows машината)

  • ping към DNS сървъра - проверяваме дали има връзка с линукс машината
  • ping към ilianko.com - проверяваме дали DNS сървъра работи

На DNS сървъра

  • изпълнете
sudo /etc/init.d/bind9 stop

На Клиента

  • ping към ilianko.com - проверяваме дали IP адреса на ilianko.com се пази в кеша на windows
  • ipconfig /flushdns - изтриване на кеша
  • ping към ilianko.com - проверяваме дали ползваме нашия DNS сървър (трябва да няма отговор)

На сървъра

  • изпълнете
sudo /etc/init.d/bind9 stаrt

Конфигурация на bind v9

В конфигурационния файл се изброяват зоните, за които ще отговаря дадения DNS сървър. За всеки domain name съществува зонов файл и е препоръчително съществуването на обратен зонов файл. Обратният зонов файл прави следната връзка: "ако напишем ip-to, да ни върне domain name".


sudo nano /etc/bind/named.conf.local


В конфигурационния файл се дава името на домейна и къде се намира зоновия файл.

zone "tugab.bg"
{
  type master;
  file "/etc/bind/zones/tugab.bg.db";
};

Създаване на зонови файлове

sudo mkdir /etc/bind/zones
sudo nano  /etc/bind/zones/tugab.bg.db


В настройките 172.4.16.1 да се замени с IP адреса на сървъра

Зонов файл на домейн tugab.bg. (точката е много важна, защото означава root домейна)

$TTL	60
tugab.bg.	IN	SOA	n1.tugab.bg. admin.tugab.bg. (
			      1		
			      1 	
			      1					      
                              1		
			      1 )	
;
tugab.bg.  IN 	NS 	n1.tugab.bg.
@	  IN	A	172.16.4.1
n1	  IN	A	172.16.4.1
www	  IN	A	172.16.4.1

рестартиране

sudo /etc/init.d/bind9 restart

Linux смяна DNS

Информацията за DNS сървърите се съхранява в /etc/resolv.conf с формат: nameserver ip addrress

За да смените или добавите DNS редактирайте файла, като запишете информацията за новия DNS

:-$ nano /etc/resolv.conf

В някои конфигурации на Linux файлът DNS сървърите може да се управляват от пакета resolvconf

тестване

  • от браузъра на клиента отворете www.tugab.bg
dig tugab.bg
nslookup 172.16.4.1

допълнителни настройки

Обратен зонов файл Добавете в

sudo nano /etc/bind/named.conf.local


zone "4.16.172.in-addr.arpa"
{
 type master;
 file "/etc/bind/zones/rev.4.16.172.in-addr.arpa";
};

Обратен зонов файл

sudo nano /etc/bind/zones/rev.4.16.172.in-addr.arpa

$TTL	604800
@	IN	SOA	n1.tugab.bg. admin.tugab.bg. (
			      1		; Serial
			 604800		; Refresh
			  86400		; Retry
			2419200		; Expire
			 604800 )	; Negative Cache TTL
;
	IN	NS	tugab.bg.
1	IN	PTR	tugab.bg.



sudo nano /etc/bind/named.conf.options

С опцията fowarders заявките за неизвестните имена на домейни не се ресолват на текущия сървър, а се препращат към друг DNS сървър.

forwarders {
 194.141.15.1;
};