Сервер, субдомены, днс
Jan. 17th, 2014 01:31 am![[identity profile]](https://www.dreamwidth.org/img/silk/identity/openid.png)
![[community profile]](https://www.dreamwidth.org/img/silk/identity/community.png)
Всем привет!
Обстоятельства таковы:
У меня есть свой домен, скажем, mydomain.ru. Этот домен располагается на моём домашнем компьютере с белым IP, скажем, 222.222.222.222. На этом же IP, но на порту 27001, крутится и отлично работает игровой сервер.
Сайт работает под управлением свежего Denwer, субдомены, если их не забывать прописывать у DNS-хостера, тоже отлично работают. Игровой сервер нормально откликается как на 222.222.222.222:27001, так и на mydomain.ru:27001.
А вопросы такие:
Как сделать так, чтобы по адресу, скажем, server.mydomain.ru откликалось не 222.222.222.222:80, а 222.222.222.222:27001? Попытка реализовать с помощью директивы redirect в .htaccess с треском провалилась, игровые клиенты такой редирект не признают. Попытка задать домен server.mydomain.ru с помощью записи DNS SRV(мне показалось, судя по RFC2782, что это то, что мне нужно) к успеху тоже не привели, запись у меня вышла такая:
Может, я просто неправильно понял, что и куда писать в SRV? Или это вообще не то, куда надо смотреть? Но куда же тогда?
Обстоятельства таковы:
У меня есть свой домен, скажем, mydomain.ru. Этот домен располагается на моём домашнем компьютере с белым IP, скажем, 222.222.222.222. На этом же IP, но на порту 27001, крутится и отлично работает игровой сервер.
Сайт работает под управлением свежего Denwer, субдомены, если их не забывать прописывать у DNS-хостера, тоже отлично работают. Игровой сервер нормально откликается как на 222.222.222.222:27001, так и на mydomain.ru:27001.
А вопросы такие:
Как сделать так, чтобы по адресу, скажем, server.mydomain.ru откликалось не 222.222.222.222:80, а 222.222.222.222:27001? Попытка реализовать с помощью директивы redirect в .htaccess с треском провалилась, игровые клиенты такой редирект не признают. Попытка задать домен server.mydomain.ru с помощью записи DNS SRV(мне показалось, судя по RFC2782, что это то, что мне нужно) к успеху тоже не привели, запись у меня вышла такая:
*._TCP.mydomain.ru. 3600 IN SRV 0 0 server.mydomain.ru.
Может, я просто неправильно понял, что и куда писать в SRV? Или это вообще не то, куда надо смотреть? Но куда же тогда?
no subject
Date: 2014-01-16 09:34 pm (UTC)no subject
Date: 2014-01-16 09:41 pm (UTC)no subject
Date: 2014-01-16 10:20 pm (UTC)no subject
Date: 2014-01-16 10:33 pm (UTC)Порты на роутере проброшены, то, что обращается на порт 27001, отправляется на нужный локальный IP, игровые сервер и клиенты данными обмениваются без проблем.
Вопрос в том, можно ли как-то сделать так, чтобы запрос server.mydomain.ru преобразовывался в 222.222.222.222:27001, а не в 222.222.222.222.
no subject
Date: 2014-01-16 10:46 pm (UTC)no subject
Date: 2014-01-16 10:57 pm (UTC)no subject
Date: 2014-01-16 11:04 pm (UTC)no subject
Date: 2014-01-16 11:26 pm (UTC)То есть, мне надо гуглить "таблицы маршрутизации" и потом смотреть, где у меня в роутере это всё прописывается, верно я понял?
no subject
Date: 2014-01-16 11:39 pm (UTC)Соответственно в итоге пакеты идут на нужный сервис который запущен на целевом сервере.
Не знаю, что вы к нему привязали, но это не суть важно.
Да и чего там гуглить. Зайдите в настройки роутера и создайте правило роутинга. Добавочное правило.
Не потрите имеющиеся настройки.
no subject
Date: 2014-01-16 11:47 pm (UTC)Значит, судя по всему, нужна более функциональная модель.
no subject
Date: 2014-01-16 11:57 pm (UTC)no subject
Date: 2014-01-17 12:07 am (UTC)no subject
Date: 2014-01-17 12:20 am (UTC)Пробовали все пакеты для server.mydomain.com перекидывать на нужный сервер?
no subject
Date: 2014-01-17 05:46 am (UTC)no subject
Date: 2014-01-16 11:33 pm (UTC)Мне бы главное - понять, в каком направлении гуглить и к чему конкретно читать мануалы.
no subject
Date: 2014-01-16 11:43 pm (UTC)Там все просто, главное мысленно видеть всю схему.
no subject
Date: 2014-01-17 12:22 am (UTC)порты и ДНС - разные вещи ..
игровой клиент же знает по какому порту обращаться?
как понимать фразу
> чтобы по адресу, скажем, server.mydomain.ru откликалось не 222.222.222.222, а 222.222.222.222:27001 ?
имеется ввиду "чтобы по адресу, скажем, server.mydomain.ru откликалось не 222.222.222.222:80, а 222.222.222.222:27001" ???
no subject
Date: 2014-01-17 05:51 am (UTC)То есть, имеется в виду именно то, что Вы написали:
222.222.222.222:27001 вместо 222.222.222.222:80 при обращении к server.mydomain.ru.
no subject
Date: 2014-01-17 09:11 am (UTC)клиент обращается sub.domain.ru:XXX попадает на 222.222.222.222:ZZZ ?
no subject
Date: 2014-01-17 03:44 pm (UTC)ибо, скажем UDP запрос - не содержит данных о домене.
только если известен протокол более высокого уровня.
скажем на уровне веб-сервера это можно сделать.
no subject
Date: 2014-01-17 01:51 am (UTC)no subject
Date: 2014-01-17 05:53 am (UTC)no subject
Date: 2014-01-17 06:05 am (UTC)no subject
Date: 2014-01-17 06:17 am (UTC)no subject
Date: 2014-01-17 06:25 am (UTC)no subject
Date: 2014-01-17 09:41 am (UTC)no subject
Date: 2014-01-17 10:11 am (UTC)no subject
Date: 2014-01-17 02:48 am (UTC)no subject
Date: 2014-01-17 05:57 am (UTC)То есть, server.mydomain.ru вместо mydomain.ru:27001, например.
no subject
Date: 2014-01-17 06:30 am (UTC)no subject
Date: 2014-01-17 07:02 am (UTC)no subject
Date: 2014-01-17 07:18 am (UTC)no subject
Date: 2014-01-17 08:55 am (UTC)Клиент всегда обращается к комбинации "адрес:порт". Хост, к которому идёт обращение, полностью определяется IP-адресом. Порт - не часть адреса никоим образом, это информация для хоста. В конце концов, в TCP/IP стеке целый пучок протоколов, и только два из них вообще оперируют понятием порта.
DNS и всё, что вокруг него, про порты ничего не знает (SRV - это другое).
Коротко: никак. Если вы хотите, чтобы на разных именах хоста на одном порту откликались разные сервисы, у вас каждому имени хоста должен соответствовать отдельный IP-адрес. Точка. То есть или вы заводите икс (по числу желаемых сервисов) отдельных железок с отдельными сетевыми интерфейсами, открытыми в интернет, или одну умную железку, которая умеет на одном физическом интерфейсе иметь несколько IP-адресов и раскидывать обращения к ним на разные хосты во внутренней сети. Икс различных IP-адресов понадобятся в любом случае.
И да, в случае http можно сделать что-то похожее на то, что вы хотите. Это свойство именно http: при коннекте на 222.222.222.222:80 первое, что делает http-клиент - сообщает средствами протокола серверу "я хотел попасть на mydomain.ru, я угадал?", и сервер (софтина, которая сидит на интерфейсе 222.222.222.222 и слушает TCP-порт 80) имеет физическую возможность это как-то обработать, например, сказать клиенту "ах, вас обманули, mydomain.ru находится на 111.111.111.111:81/vzhopu, идите скорее туда" или просто молча отдать нужное содержимое, не то, которое он отдаёт для доменного имени private-pictures.mydomain.ru.
В других протоколах, чтобы что-то подобное работало, оно должно быть предусмотрено создателями протокола. В вашей игрушке такого, скорее всего, нет, но если вы очень большой оптимист, то можете поизучать документацию к серверу игрушки.
no subject
Date: 2014-01-17 09:39 am (UTC)