Когда сервер обслуживает локальную сеть офиса/предприятия, то сотрудникам в первую очередь нужен интернет и во вторую очередь удобство использования локальных ресурсов. Согласитесь, не очень удобно набирать в своем браузере http://192.168.1.1 для того, чтобы зайти на сервер, намного удобнее будет, если пользователь будет набирать http://server.lan или что-то подобное. При этом, он не привязан к ip адресу сервера и локальные ресурсы можно переносить с одного сервера на другой, не объясняя сотрудникам, что какой-то внутренний сайт был перенесен и им теперь нужно вводить в браузер другой ip адрес сервера. Да и пинговать сервер от клиентов куда удобнее как ping server.lan.
Итак имеем:
Сервер с адресом 192.168.1.1
Необходимо:
1. Поднять DNS, чтоб пользователи могли пользоваться нашим DNS сервером и не были привязана к DNS провайдера
2. Создать домен первого уровня *.lan, где хосты будут иметь адреса mysite.lan, mysite2.lan и т.д.
Для начала, устанавливаем сам сервер DNS
sudo apt-get install bind9
Затем, скопируем файл настроек по умолчанию для создания его резервной копии и отредактируем рабочий файл
sudo cp /etc/bind/named.conf.options /etc/bind/named.conf.original
sudo nano /etc/bind/named.conf.options
Внесем необходимые изменения (синим выделены основные изменения)
#Создадим сеть, которой будет разрешено посылать запросы через наш DNS сервер
acl "mynetwork" {192.168.1.0/24; 127.0.0.1;};
options {
#рабочая директория
directory "/var/cache/bind";
// If there is a firewall between you and nameservers you want
// to talk to, you may need to fix the firewall to allow multiple
// ports to talk. See http://www.kb.cert.org/vuls/id/800113
// 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.
#можно указать ip адреса DNS провайдера
#forward first;
#forwarders {
# 1.1.1.1;
# 2.2.2.2;
#};
#можно явно указать на каком интерфейсе обслуживать DNS запросы
listen-on port 53 {
127.0.0.0;
192.168.1.1;
};
auth-nxdomain no; # conform to RFC1035
#отключаем использование ipv6 за ненадобностью
listen-on-v6 { none; };
#разрешаем отправлять запросы только с сети mynetwork
allow-query {"mynetwork";};
#разрешаем отправлять рекурсивные запросы с сети mynetwork я отключаю
#recursion yes;
#allow-recursion { mynetwork; };
#можно задать максимальное число соединений с сервером
#tcp-clients 32;
#};
#можно указать название версии DNS сервера, чтоб ввести в заблуждение
#любого, кто попытается узнать на каком пакете основан наш DNS сервер
#version "DNS serer v.1.0";
];
С настройками сервера закончили. DNS сервер можно уже смело запускать т.к. он полностью рабочий, но если хочется создать локальную зону, то для этого отредактируем следующий файл, предварительно сохранив его копию (синим выделены изменения)
sudo cp /etc/bind/named.conf.default-zones /etc/bind/named.conf.default-zones.original
sudo nano /etc/bind/named.conf.default-zones
// 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";
};
zone "lan" {
type master;
file "/etc/bind/db.lan";
};
zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.lan.rev";
};
После создаем файлы db.lan и db.lan.rev, которые мы указали для создания нашей зоны
sudo touch /etc/bind/db.lan
sudo touch /etc/bind/db.lan.rev
Отредактируем файл db.lan
sudo nano /etc/bind/db.lan
;
; BIND data file for broadcast zone
;
$TTL 604800
@ IN SOA lan. root.lan. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns.lan.
ns A 127.0.0.1
server A 192.168.1.1
Теперь отредактируем файл db.lan.rev
sudo nano /etc/bind/db.lan.rev
;
; BIND reverse data file for broadcast zone
;
$TTL 604800
@ IN SOA lan. root.lan. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS localhost.
1 PTR server.lan
Последний штрих
sudo nano /etc/resolv.conf
search lan
nameserver 127.0.0.1
#если не указывали в поле forward в файле #/etc/bind/named.conf.options
#если не указывали в поле forward в файле #/etc/bind/named.conf.options
#DNS адреса своего провайдера, то тогда необходимо указать его #здесь
nameserver 1.1.1.1
Теперь можно перезапустить службу DNS
sudo service bind9 restart
Проверяем
host server
Видим
server.lan has address 192.168.1.1
И последняя проверка
host 192.168.1.1
Видим
1.1.168.192.in-addr.arpa domain name pointer server.lan.1.1.168.192.in-addr.arpa.
Если вы увидели эти же сообщения, то все прошло успешно.
option domain-name-servers 192.168.1.1;
Если у вас уже установлен сервер DHCP, то тогда в его файле настроек /etc/dhcp3/dhcpd.conf необходимо добавить следующую строку
option domain-name-servers 192.168.1.1;
Если нет, то пропишем у каждого клиента наш DNS сервер 192.168.1.1.
Я, все-таки, порекомендовал бы вам поставить DHCP сервер, чтоб не делать изменения по всем вашим пользователям.
И не забываем включить форвардинг между сетевыми картам в файле /etc/sysctl.conf. А именно net.ipv4.ip_forward=1
И не забываем включить форвардинг между сетевыми картам в файле /etc/sysctl.conf. А именно net.ipv4.ip_forward=1
Теперь мы можем создавать виртуальные хосты для наших серверов. Но об этом позднее
1 комментарий:
Спасибо большое за гайды Про ДашСиПи и ДНС ОднаКо Нашел Ошибку которая корала мой не выспанный мозг
sudo gedit /etc/bind/named.conf.options
В последней строке Скобка квадратная, а не фигурная Файлило
а вот тут Хотелось бы поподробнее
#можно указать ip адреса DNS провайдера
#forward first;
#forwarders {
# 1.1.1.1;
# 2.2.2.2;
#};
Типо того ?
forward first;
forwarders {
82.117.XXX.XXX;
82.117.XXX.XXX;
};
Отправить комментарий