Автор Тема: помогите с DNS  (Прочитано 5820 раз)

Оффлайн valobasoff

  • Участник
  • *
  • Сообщений: 413
помогите с DNS
« : 04.02.2013 13:50:17 »
Есть школьный сервер 5.0.2(обновлен до P6) на котором 3 сетевых интерфейса, два наружу один внутренний. Внутри есть сервер win на ктором стоит "ПО аля электронный дневник" доступ к нему есть и снаружи и изнутри но естественно по разным адресам. Недавно появился домен, привязан к нашему внешнему ip, снаружи всё работает(пробрасывается порт), но хочется чтобы адрес работал и изнутри. Т.е. по идее нужно попросить днс сервер возвращать клиентам внутренний ip сервера с ПО миновав запрос к вышестоящему серверу dns. И вот вопрос как это сделать ? Через альтератор добавлять можно только записи без "." Пробовал прописать в /etc/hosts на сервере, не работает, даже с сервера, bind перезагружал,кеш очищал # rnds flush.

Оффлайн Salomatin

  • Модератор раздела
  • ****
  • Сообщений: 984
    • Пошаговые инструкции
Re: помогите с DNS
« Ответ #1 : 04.02.2013 20:17:57 »
Пробовал прописать в /etc/hosts на сервере, не работает, даже с сервера,

а пробовали, после того как внесли изменения, перезапустить скрипт
/etc/chroot.d/resolv.all
одного внесения изменений в файл /etc/hosts , без перезагрузки сервера в целом или одного этого скрипта ничего не произойдет.
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"

Онлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Re: помогите с DNS
« Ответ #2 : 05.02.2013 00:24:19 »
Т.е. по идее нужно попросить днс сервер возвращать клиентам внутренний ip сервера с ПО миновав запрос к вышестоящему серверу dns. И вот вопрос как это сделать ?
То есть, надо, чтобы при запросе с разных IP сервер по-разному отдавал зону ? Или в самой зоне описать надо ресурсы внешние и внутренние ?

Оффлайн flint1975

  • Участник
  • *
  • Сообщений: 1 443
Re: помогите с DNS
« Ответ #3 : 05.02.2013 11:10:21 »
Попробую протелепатировать :)
Скорее всего у вас "внешний" домен обслуживается dns хостера, поэтому в вашем случае нужно создать на "внутреннем" вашем - dns дубликат зоны, а затем его подкорректировать в соответствии с сетью.
Соответственно будет косяк : при изменении ресурсов домена на dns хостера, эти изменения не будут доступны у внутренних пользователей, придется вручную обновлять зону на внутреннем dns.
Теоретически можно этот процесс автоматизировать, но будет довольно громоздкий скрипт, который будет синхронизировать запись зоны и для выборочных ресурсов корректировать IP адреса.

Возможно я ошибся, и у вас один dns - ваш внутренний, тогда там еще проще, только не помню как. Вроде можно заставить bind отвечать разными ресурсными записями в зависимости откуда пришел запрос.

Оффлайн valobasoff

  • Участник
  • *
  • Сообщений: 413
Re: помогите с DNS
« Ответ #4 : 05.02.2013 13:19:16 »
а пробовали, после того как внесли изменения, перезапустить скрипт
/etc/chroot.d/resolv.all
одного внесения изменений в файл /etc/hosts , без перезагрузки сервера в целом или одного этого скрипта ничего не произойдет.
сделал помогло, с сервера теперь пинг идёт на нужный мне ip, но клиенты из сети по прежнему пытаются обратится в инет.
asy,flint1975
попробую объяснить, на сервере внешний интерфейс имеет адресс 13.13.13.13, внутренний 192.168.0.1. win-сервер имеет адрес 192.168.0.2, при обращении на внешний адрес 13.13.13.13 порт 80 пробрасывается на 192.168.0.2. Есть домен школа.ру, в записях регистратора сказано что располагается по адресу 13.13.13.13. И снаружи клиенты без проблем обращаются к сайту по адресу школа.ру, хочется чтобы и из локалки набрав школа.ру клиенты ломились не на 13.13.13.13, а на 192.168.0.2

Оффлайн rabbit75

  • Участник
  • *
  • Сообщений: 20
Re: помогите с DNS
« Ответ #5 : 05.02.2013 14:36:39 »
чтобы и из локалки набрав школа.ру клиенты ломились не на 13.13.13.13, а на 192.168.0.2
Ваш DNS слушает внутренний интерфейс. Создайте файлы зоны школа.ру (пропишите в нем 192.168.0.2) и файл обратной зоны для этого IP.
У меня по этому-же принципу резольвится внейшнее имя сервера вида srv.no-ip.org для moodle (в котором требуется в настройках указывать адрес сайта)

Оффлайн Salomatin

  • Модератор раздела
  • ****
  • Сообщений: 984
    • Пошаговые инструкции
Re: помогите с DNS
« Ответ #6 : 05.02.2013 16:46:42 »
Недавно появился домен, привязан к нашему внешнему ip, снаружи всё работает(пробрасывается порт),
Мне не нравится такое решение проблемы. Лучше не порт пробрасывать, а выставлять прокси (nginx), а он уже получив запрос по имени или адресу будет перенаправлять. Решение готовое есть и могу привести пример. Тогда может быть вообще без DNS можно будет обойтись.
Когда вы из внутренней сети обращаетесь по адресу школа.ру, куда попадаете? На сервер? по какому адресу?
Может быть   nginx поручить отправить запрос на 192.168.0.2
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"

Оффлайн valobasoff

  • Участник
  • *
  • Сообщений: 413
Re: помогите с DNS
« Ответ #7 : 05.02.2013 17:40:40 »
Лучше не порт пробрасывать, а выставлять прокси (nginx), а он уже получив запрос по имени или адресу будет перенаправлять. Решение готовое есть и могу привести пример.
буду признателен за пример.
Когда вы из внутренней сети обращаетесь по адресу школа.ру, куда попадаете? На сервер? по какому адресу?
никуда не попадаю, пинг школа.ру возвращает 13.13.13.13 но обмена пакетами нет, почему не знаю, но это сейчас не главное.

Оффлайн flint1975

  • Участник
  • *
  • Сообщений: 1 443
Re: помогите с DNS
« Ответ #8 : 06.02.2013 00:54:40 »
никуда не попадаю, пинг школа.ру возвращает 13.13.13.13 но обмена пакетами нет, почему не знаю, но это сейчас не главное.
А что главное?
В общем, когда телепатировал - угадал правильно и соответственно, там уже есть рецепт.
Просто на внутреннем DNS сервере настройте зону школа.ру так чтобы хосту школа.ру соответствовал адрес 192.168.0.1, на внутрисетевых компьютерах настройте сетевое соединение с использованием dns "ваш dns сервер". И все будет работать.
Единственное ограничение, я уже говорил, если провайдер (хостер) сменит ip узла школа.ру, в этом случае внутренние компьютеры все равно будут обращаться на 192.168.0.1
Но в вашем случае, я бы вообще, сразу настраивал на ваш 192.168.0.2


Оффлайн rabbit75

  • Участник
  • *
  • Сообщений: 20
Re: помогите с DNS
« Ответ #9 : 06.02.2013 01:29:53 »
Единственное ограничение, я уже говорил, если провайдер (хостер) сменит ip узла школа.ру
И флаг ему в руки. Человека интересует запрос изнутри локалки, а там сервер не переезжает...
Но в вашем случае, я бы вообще, сразу настраивал на ваш 192.168.0.2
И я о том-же чуть ранее говорил...

Оффлайн Salomatin

  • Модератор раздела
  • ****
  • Сообщений: 984
    • Пошаговые инструкции
Re: помогите с DNS
« Ответ #10 : 06.02.2013 21:03:12 »
буду признателен за пример.

Шаг №1:Ставим Nginx

[root@server ~]#apt-get install nginx
Шаг №2: Переключаем Apache2 вашего самого первого сервера  для получения запросов от Nginx и из локальной сети

В file /etc/httpd2/conf/ports-available/http.conf находим и запрещаем Apache2 слушать 80 порт с адреса 13.13.13.13, разрешая локальный 80  и локальную сеть 192.168.0.1

#Listen 12.34.56.78:80
###Listen 80
Listen 127.0.0.1:80
Listen 192.168.0.1:80

перегружаем Apache2

[root@server ~]#service httpd2 restart
Шаг №3: Запускаем Nginx

Редактируем file /etc/nginx/nginx.conf находим

include /etc/nginx/sites-enabled.d/*.conf;
заменяем

include /etc/nginx/sites-available.d/*.conf;
Редактируем file /etc/nginx/sites-available.d/default.conf ставим реальный IP-адрес

listen  13.13.13.13:80;

server_name школа.ру www.школа.ру;

в стровках

 proxy_redirect off;                            #убираем комментарий
 proxy_set_header Host $host;                   #убираем комментарий
 proxy_set_header X-Real-IP $remote_addr;       #убираем комментарий
 proxy_set_header X-Forwarded-For $remote_addr; #убираем комментарий
 proxy_pass http://192.168.0.2:80/;                #это изменили
Запускаем Nginx

[root@server ~]#service nginx restart
Nginx принимает соединение по внешней сетевой карте 13.13.13.13  и с именем школа.ру открывает соединение к Apache2, который у вас стоит по адресу 192.168.0.2
Таким образом можно наружу открыть много виртуальных  и реальных серверов. Для этого надо создать файл /etc/nginx/sites-available.d/школа№22.conf точно такой же как и /etc/nginx/sites-available.d/default.conf  но записать
server_name школа№22.ру www.школа№22.ру;и указать другой сервер
proxy_pass http://192.168.0.3:80/;                #это изменилиИли пользоваться виртуальным хостингом на первом сервере или сервере, спрятанным в локальной сети
 http://forum.altlinux.org/index.php/topic,6364.msg90515.html#msg90515

Шаг №4: Установим модуль:

Логи nginx записывает в файл /var/log/nginx/access.log , а в логи apache сервера 192.168.0.2 вместо реальных IP-адресов падает всегда один и тот же адрес - 192.168.0.1

Если мы все-таки хотим видеть там реальные адреса, то эта проблема решается установкой модуля rpaf, который будет складывать в лог IP-адреса, переданные через заголовки X-*.

[root@server ~]#apt-get install apache2-mod_rpaf
Включаем модуль:

[root@server ~]#a2enmod rpaf
И перезапускаем apache2:

[root@server ~]#service httpd2 restart
смотрим /var/log/httpd2/access_log

192.168.0.1 - - [24/Feb/2012:18:51:02 +0600] "GET /images/vkontakte.png HTTP/1.0" 304 -

78.29.9.99 - - [24/Feb/2012:18:53:58 +0600] "GET / HTTP/1.0" 304 -

78.29.9.99 - - [24/Feb/2012:18:53:58 +0600] "GET /index.css HTTP/1.0" 304 -
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"

Оффлайн flint1975

  • Участник
  • *
  • Сообщений: 1 443
Re: помогите с DNS
« Ответ #11 : 07.02.2013 10:57:16 »
Шаг №1:Ставим Nginx
Это "правильное" решение, но согласно теории Оккама (не плодите лишних сущностей сверх необходимого, а именно nginx) предлагаю свой первоначальный вариант:
1. заходим по веб интерфейсу на свой сервер где стоит DNS сервер, кажется у топиксартера это 192.168.0.1
и в разделе DNS-сервер создаем новый домен школа.ру
2. Выбираем этот домен
3. Внизу в поле "хост" пишем www
 в IP адрес пишем 192.168.0.2

После этого внутрисетвые клиенты обращаются к 192.168.0.2 по имени www.школа.ру при условии, что у них настроен DNS на 192.168.0.1

Оффлайн Salomatin

  • Модератор раздела
  • ****
  • Сообщений: 984
    • Пошаговые инструкции
Re: помогите с DNS
« Ответ #12 : 07.02.2013 15:37:23 »
Шаг №1:Ставим Nginx
Это "правильное" решение, но согласно теории Оккама (не плодите лишних сущностей сверх необходимого, а именно nginx) предлагаю свой первоначальный вариант:

Вы меня не правильно поняли. Я не претендую в этой части на записи DNS. 
Речь идет о том, что пробрасывать снаружи 80 порт средствами iptables не самое лучшее решение. Появятся новые сайты и все. Nginx для этого более удобен и просто хотел познакомить с альтернативой. На мой взгляд очень полезной. Будучи  не очень знакомым с учениями теоретиков, дотошно и подробно описал практическое готовое решение для ALT.   А выбор оставляю за желающими.
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"

Оффлайн valobasoff

  • Участник
  • *
  • Сообщений: 413
Re: помогите с DNS
« Ответ #13 : 08.02.2013 11:47:39 »
Salomatin
очень полезный инструмент, возьму на вооружение, спасибо!
flint1975
спасибо за подсказку, хост школа.ру по прежнему не пингуется(адрес не резольвится), но браузер автоматически подставляет www.школа.ру и всё работает.

Оффлайн flint1975

  • Участник
  • *
  • Сообщений: 1 443
Re: помогите с DNS
« Ответ #14 : 08.02.2013 11:58:08 »
спасибо за подсказку, хост школа.ру по прежнему не пингуется(адрес не резольвится), но браузер автоматически подставляет www.школа.ру и всё работает.
Ну так создайте еще один хост "." с тем же IP адресом 192.168.0.2