LINUX.ORG.RU
ФорумAdmin

Теоретический вопрос по ДНС


0

0

Пусть у меня есть 2 провайдера. Они мне дали ай-пи 1.2.3.4 и 5.6.7.8. Что будет если для www.domen.ru указать несколько ай-пи адресов, то есть

www.domen.ru. IN A 1.2.3.4

www.domen.ru. IN A 5.6.7.8

И теперь предположим, что в какой-то момент один канал в инет упал, то есть www.domen.ru доступен только по ай-пи 5.6.7.8. Будет ли доступен мой веб-сервер для интернета? По какому принципу браузер, фтп-клиент выбирает какой ай-пи использовать? И что будет с чужими кэширующими ДНС-серверами? Они запомнят оба моих ай-пи?

И вообще, интересно, как люди решают проблему, когда есть 2 и более ненадежных канала в инет, а снаружи ты должен быть доступен всегда?


Адреса будут выдаваться в произвольном порядке, два.

>И вообще, интересно, как люди решают проблему, когда есть 2 и более >ненадежных канала в инет, а снаружи ты должен быть доступен всегда?

Автономнаю систему нужно заводить в твоей ситуации - реальный выход.

LifeWins
()
Ответ на: комментарий от kain

Без Автономной системы в вашей ситуации нужно будет повозитья с настройкми ДНС у тебя и у обоих провайдеров. Можешь ещё попробовать договориться с провайдерми относительно маршрутизации их сеток дуг у друго, но IMHO это не реально.

LifeWins
()
Ответ на: комментарий от LifeWins

>Адреса будут выдаваться в произвольном порядке, два.

А если один из них недоступен, то клиентская прога поймет что надо на другой постучаться?

>Автономнаю систему нужно заводить в твоей ситуации - реальный выход. Что имеется ввиду под "автономной системой"? Можно поподробнее

>Без Автономной системы в вашей ситуации нужно будет повозитья с настройкми ДНС у тебя и у обоих провайдеров.

Повозиться с настройками ДНС - это не проблема. Оба ДНС-сервара принадлежат мне, которые отвечают за эту зону. Я на них повесил по 2 ай-пи,принадлежащим разным провайдерам, так что можно сказать они доступны всегда. Вопрос в том как с ними возиться? Может быть выход сделать так: если оба канала доступны то ресолвим в произвольный ай-пи, если какой-то канал упал, то ресолвим в другой(тот который жив). Не сойдут ли с ума кэширующие ДНС-сервера в инете? или поставить время жизни очень маленькое.

Login
() автор топика
Ответ на: комментарий от LifeWins

> Можешь ещё попробовать договориться с провайдерми относительно маршрутизации их сеток дуг у друго, но IMHO это не реально.

Ха. Есть даже документ RIPE о том, что это рекомендованная практика. ;)

2 автор: Если это - Web-сервер, то его надо поставить на хостинге и не мучаться.

ivlad ★★★★★
()

Как правило (зависит от настроек конкретного DNS-сервера) если есть несколько A-записей на одно DNS имя, то DNS-server выдает их по очереди. Получаем что-то вроде loadbalancing-га. Соответственно, если одна из Ваших внешних IP-шек "умирает", то часть клиентов не сможет к Вам законнектится. Навскидку могу привести 2 варианта решения проблемы. 1. Использоание сервисов вроде dyndns.org. Такой подход позволяет "обойти" проблему DNS кэширования (поскольку подобные сервисы устанавливают очень короткий TTL для зоны) ну и Вы (используя софт предоставляемый "DNS-провайдером") можете с альтернативного канала обновить зону. 2. В качестве "DNS-провайдера" выступаете Вы. В этом случае Вам нужно завести две (или больше - по количеству каналов) NS-записей для Вашей зоны. NS-ами будут Ваши IP-шки от разных провайдеров. Соответственно, Вам нужно каким-либо образом обеспечить отслеживание состояния каналов и своевременное изменения DNS для Вашей зоны в случае пропадания того или иного канала. Само собой разумеется, что TTL для зоны нужно ставить минимальный, для того чтобы в случае замены не возникало проблем из-за DNS-кэширования.

anonymous
()
Ответ на: комментарий от anonymous

это не load balance, это round robin.

т.е. теоретически могут быть две машины с одной A записью, но даже если одна из них HP/9000, а вторая 486, то вторая все равно будет получать половину запросов.

есть еще один выход - использовать множественные CNAME'ы, но это не рекомендуется (BIND 9 и 8 выдают warning'и, 4 пашет без них).

чтобы убрать их (warning'и) надо поставить

options {
multiple-cnames yes;
};

в /etc/named/conf

правда работает эта фишка только с BIND 8.

есть еще один выход - если ты не хочешь, чтобы обращения шли по всем каналам - можно сделать так, чтобы все шло по одному каналу, а только потом по другому (если первый не работает):

options (
rrset-order {
class IN type A name "www.yourhost.ru" order fixed;
};
};

З.Ы. источник - BIND и DNS (ISBN 5-93286-035-9). настоятельно рекомендую - отличная книга.

gr_buza ★★★★
()
Ответ на: комментарий от anonymous

Всем спасибо за предложения. Я конечно попробую договориться с провайдерами, но, мне кажется, это не очень реально.

Мне кажется самым простым след решение: Поставлю по днс серверу на каждый канал, и настрою их на отдачу разных ай-пи. Т.е. если пришел запрос на днс-сервер с провайдера 1, то и отдаем ай-пи от провайдера 1. Если от прова 2, то и ай-пи от прова 2. Тогда мне кажется даже можно не отслеживать состояние каналов. При падении одного канала, все запросы и так будут идти через другого провайдера.

Login
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.