Может, так понятно будет.
Нет, непонятно. Во-первых, почему у одного интерфейса есть адрес шлюза, а у другого нет? Во-вторых, непонятно, как должна выглядеть таблица маршрутизации (вывод netstat -r). И таки действительно, непонятен ответ на вопрос krigstask: "Надо обратиться к foo.bar, какой сервер запрашивать?"
Отредактировано X Strange (02-10-2013 18:59:25)
# rm -rf /
Отсутствует
В Linux адрес DNS сервера хранится в файле /etc/resolv.conf. Он один на всю систему.
Совсем не обязательно 1. Их там куча может быть.
Так ли это и что означает отдельная настройка DNS сервера для интерфейса?
Я подозерваю, что при поднятии интерфейса адрес добавляется в системный аналог resolv.conf. При опускании - удаляется.
Кстати, в debian я точно также могу прописать dns-nameservers на каждый интерфейс, и если есть пакет resolvconf, они должны сами добавляться и удаляться при поднятии и падении интерфейса (честно - не проверял, так ли это)
Аналогичный вопрос про адрес шлюза (gateway).
А тут нужно разбираться. Я думаю, будет round-robin.
Но вообще, тут решит только эксперимент. Или, возможно, долгое копание на сайте майкрософта.
Кстати, в Linux я точно также на каждый интерфейс могу повесить шлюз. И тогда будет два дефолт раута. Вот только норм это работать не будет. Ни разу не разбирался, почему. Но подозреваю, опять же из-за RR.
Подозреваю, как и на винде.
жЫзнь рандомна... и ничего с этим не поделаешь ;)
Отсутствует
Совсем не обязательно 1. Их там куча может быть.
Кстати, в debian я точно также могу прописать dns-nameservers на каждый интерфейс, и если есть пакет resolvconf, они должны сами добавляться и удаляться при поднятии и падении интерфейса
Возможно это и можно настроить и в linux, я просто не понимаю, как это должно работать. На этапе выбора DNS сервера мы же ещё не знаем, через какой сетевой интерфейс нужно отправлять запрос, разве нет? Это ведь таблица маршрутизации определяет по ip адресу и маске подсети.
Добавлено 02-10-2013 19:58:23
Но вообще, тут решит только эксперимент.
Какой конкретно эксперимент Вы предлагаете? VirtualBox есть, могу попробовать.
Или, возможно, долгое копание на сайте майкрософта.
Вряд ли микрософта, ответ на этот вопрос, скорее всего,не зависит от ОС. Хотя, не исключено, что в MSDN можно что-нибудь найти и на эту тему.
Отредактировано X Strange (02-10-2013 19:58:54)
# rm -rf /
Отсутствует
Возможно это и можно настроить и в linux, я просто не понимаю, как это должно работать. На этапе выбора DNS сервера мы же ещё не знаем, через какой сетевой интерфейс нужно отправлять запрос, разве нет? Это ведь таблица маршрутизации определяет по ip адресу и маске подсети.
Да, все верно
В Linux нет никакого выбора DNS. Дергается первый DNS в resolv.conf. Если он не ответил - по второму, он не ответил - по третьему и тд. Системе пофиг, она не знает привязки к интерфейсам. Берем адрес DNS - кидаем его в соответсвии с таблицей раутинга.
Resolvconf-демон, про который я говорил, несколько помогает системе с той точки зрения, что если какой-то интерфейс отвалился, то привязанные к нему DNS уйдут из resolv.conf. ТАким образом затыка на этих недоступных интерфейсах не будет.
Я тоже не думаю, что в Windows все по-другому. Просто в MSDN этот процесс может быть описан.
Кстати, кто-нибудь пробовал?
man resolv.conf
options
Options allows certain internal resolver variables to be modified. The syntax is
rotate sets RES_ROTATE in _res.options, which causes round-robin selection of nameservers from among those listed. This
has the effect of spreading the query load among all listed servers, rather than having all clients try the first
listed server first every time.
Добавлено 02-10-2013 20:32:59
Какой конкретно эксперимент Вы предлагаете? VirtualBox есть, могу попробовать.
1. Делаем два интерфейса, на каждом шлюз.
1.1. Делаем пинг одного адреса несколько раз. Смотрим, через какой интерфейс ходит
1.2. Делаем пинг нескольких разных адресов. Смотрим, как ходит
Я ставлю на то, что опрос хотя бы в 1.2 будет идти по RR.
2. Вешаем на каждый интерфейс DNS
2.1. Резолвим несколько разных имен. Смотрим, какие DNS дергаются
2.2. Кладем один интерфейс, делаем несколько резолвов - смотрим, какой DNS дергается. Вертаем обратно
2.3. Кладем второй интерфейс, повторяем 2.2.
Я думаю, что в 2.1 будет дергаться один DNS-сервер. А в процессе 2.2 и 2.3 привязанные к интерфейсам DNS будут исчезать из системы.
Отредактировано Merlyel (02-10-2013 20:32:59)
жЫзнь рандомна... и ничего с этим не поделаешь ;)
Отсутствует
Да, все верноВ Linux нет никакого выбора DNS. Дергается первый DNS в resolv.conf. Если он не ответил - по второму, он не ответил - по третьему и тд. Системе пофиг, она не знает привязки к интерфейсам. Берем адрес DNS - кидаем его в соответсвии с таблицей раутинга.Resolvconf-демон, про который я говорил, несколько помогает системе с той точки зрения, что если какой-то интерфейс отвалился, то привязанные к нему DNS уйдут из resolv.conf. ТАким образом затыка на этих недоступных интерфейсах не будет.
То есть получается, что реальный список адресов DNS-серверов --- это совокупность этих адресов по всем подключённым интерфейсам? То есть если к какому-то интерфейсу подключён локальный DNS, то использовать его. А если интерфейс отвалился, то удалить этот DNS из списка, так как добраться до него всё равно можно было через этот интерфейс. Примерно так?
Добавлено 02-10-2013 20:38:15
1. Делаем два интерфейса, на каждом шлюз.
1.1. Делаем пинг одного адреса несколько раз. Смотрим, через какой интерфейс ходит
1.2. Делаем пинг нескольких разных адресов. Смотрим, как ходитЯ ставлю на то, что опрос хотя бы в 1.2 будет идти по RR.
А какой программой в linux посмотреть, через какой интерфейс идёт трафик?
Добавлено 02-10-2013 20:40:52
2. Вешаем на каждый интерфейс DNS
2.1. Резолвим несколько разных имен. Смотрим, какие DNS дергаются
2.2. Кладем один интерфейс, делаем несколько резолвов - смотрим, какой DNS дергается. Вертаем обратно
2.3. Кладем второй интерфейс, повторяем 2.2. Я думаю, что в 2.1 будет дергаться один DNS-сервер. А в процессе 2.2 и 2.3 привязанные к интерфейсам DNS будут исчезать из системы.
Здесь, насколько я понимаю, придётся настроить локальный DNS сервер на двух виртуальных машинах.
Отредактировано X Strange (02-10-2013 20:40:52)
# rm -rf /
Отсутствует
$cat /etc/network/interfaces
auto eth0
iface eth0 inet static
address 10.100.100.100
netmask 255.255.255.00
gateway 10.100.100.1
dns-nameservers 10.100.104.5auto eth1
iface eth1 inet static
address 10.100.101.100
netmask 255.255.255.0
dns-nameservers 10.100.104.6$ cat /etc/resolv.conf
nameserver 10.100.104.5
nameserver 10.100.104.6
Пока оба интерфейса в апе все запросы идут на 10.100.104.5.
Отваливается eth0 - из resolv.conf 10.100.104.5 исчезает, все запросы идут на .6.
Возвращается eth0 - возвращаем строчку с .5. Возможно, уже не в начало, а в конец списка.
То есть если к какому-то интерфейсу подключён локальный DNS, то использовать его.
Если он будет на первой строчке - то да.
А какой программой в linux посмотреть, через какой интерфейс идёт трафик?
tcpdump/wireshark
Здесь, насколько я понимаю, придётся настроить локальный DNS сервер на двух виртуальных машинах.
Зачем? Берем гуглоднсы. Один вешаем на один интерфейс, другой на другой. Теоретически до ДНС вообще не обязательно достукиваться - и так будет видно, куда идут запросы.
жЫзнь рандомна... и ничего с этим не поделаешь ;)
Отсутствует
Merlyel
Спасибо, вроде понял. Эксперимент, вероятно, тоже проведу, но позже, так как возникла ещё и чисто линуксовая проблема настройки ip адреса в используемом дистрибутиве. То есть из консоли я могу настроить, и всё работает до перезагрузки, а прописать в системных настройках пока не удалось.
tcpdump/wireshark
Спасибо, посмотрю.
# rm -rf /
Отсутствует
То есть из консоли я могу настроить, и всё работает до перезагрузки, а прописать в системных настройках пока не удалось.
Так сказал бы дистр, тебе бы подсказали
Знаменитые прекрасные шрифты Маков:
У меня в копыте тоже также сжирались символы в строчках с цифрами. После какого-то обновления перестали.
жЫзнь рандомна... и ничего с этим не поделаешь ;)
Отсутствует
Так сказал бы дистр, тебе бы подсказали
Дистры --- Fedora и ArchLinux, вроде я разобрался с помощью их wiki+немного google. Но эксперимент пока не проводил.
Добавлено 04-10-2013 00:48:55
Знаменитые прекрасные шрифты Маков:
А зачем Вам Мак? В чём преимущество перед gentoo?
Отредактировано X Strange (04-10-2013 00:48:55)
# rm -rf /
Отсутствует
Angel Hipster
Ну в винде и линуксах такого нет и не было никогда.
Ну дык в винде и линукс и шрифты иначе рисуются. В данном случае Опера не договорилась с макосью о том, как это всё рисовать. Нарисовалось как-то.
Отсутствует
Angel Hipster
Ну в винде и линуксах такого нет и не было никогда.
Внимательнее нада быть Цитирую себя:
У меня в копыте тоже также сжирались символы в строчках с цифрами.
Добавлено 04-10-2013 07:18:50
А зачем Вам Мак? В чём преимущество перед gentoo?
Не дави на его мозоль. У него горе
Отредактировано Merlyel (04-10-2013 07:18:50)
жЫзнь рандомна... и ничего с этим не поделаешь ;)
Отсутствует
Относительно настроек DNS и шлюза в Win/Lin, тут все одинаково.
DNS сервер просто добавляется в список при поднятии интерфейса и в дальнейшем используется в зависимости от очереди и потребности (например по умолчанию локальный DNS, второй в списке внешний, транслирующий внешние имена).
Шлюз так же просто добавляется в таблицу маршрутизации и затем уже система использует первый доступный шлюз с наименьшей метрикой.
Зачем это нужно? Пример. У вас есть интерфейс (не важно в винде или в линуксе), который поднимается не всегда. Например это PPPoE/PPTP соединение с Интернет, при поднятии этого соединения (интерфейса) можно настроить назначение шлюза по умолчанию и DNS сервера находящихся за данным интерфейсом (пока соединение не поднято, то и шлюз за соединением не указать, система просто не будет знать где он, да и DNS лучше не указывать, т.к. это приведет к не самым лучшим последствиям).
Обычно если есть локальный DNS сервер, то ему просто позволяют делать запросы к корневым DNS серверам (внешним) и используют только его. Так же если сеть многосекторная (есть локальные подсети) то потребуется прописать маршруты до тех локальных сетей, доступ к которым понадобится при изменении шлюза по умолчанию (шлюз вашего провайдера не знает о ваших сетях).
Есть момент когда нужен внешний DNS, а шлюз должен остаться локальным - это подключение к локальным сетям через VPN, например я сидя дома подключаюсь к сети на работе используя PPTP/OpenVPN соединение, в таком случае мне нужен DNS, находящийся в локальной сети моего предприятия, а вот смена шлюза мне ни к чему, иначе весь трафик будет пытаться ломиться не через мо домашний маршрутизатор, а через шлюз той сети к которой я подключился (для этого например в той же винде в настройках протокола TCP/IP есть галочка использовать основной шлюз удаленной сети, и есть возможность настройки DNS серверов).
В gentoo и debian есть возможность указывать маршруты и настройки DNS применяющиеся при поднятии интерфейса. Но если у вас все интерфейсы подняты всегда (т.е. они статичны) то нет смысла указывать DNS где либо еще кроме как в файле resolv.conf,
Этот мир, не совершенный, состоит из всех из нас. Он прямое отражение наших чувств и наших глаз.
Этот мир не станет лучше и не станет он добрее, если сами мы добрее не станем.
(@ Игорь Тальков, Этот мир).
Отсутствует
Но если у вас все интерфейсы подняты всегда (т.е. они статичны) то нет смысла указывать DNS где либо еще кроме как в файле resolv.conf,
Аварийные ситуации никто не отменял
жЫзнь рандомна... и ничего с этим не поделаешь ;)
Отсутствует
ladserg пишетНо если у вас все интерфейсы подняты всегда (т.е. они статичны) то нет смысла указывать DNS где либо еще кроме как в файле resolv.conf,
Аварийные ситуации никто не отменял
Ммм, если у вас в resolv.conf прописано несколько DNS серверов, то о какой аварийной ситуации речь?
Этот мир, не совершенный, состоит из всех из нас. Он прямое отражение наших чувств и наших глаз.
Этот мир не станет лучше и не станет он добрее, если сами мы добрее не станем.
(@ Игорь Тальков, Этот мир).
Отсутствует
Ммм, если у вас в resolv.conf прописано несколько DNS серверов, то о какой аварийной ситуации речь?
Интерфейс отвалился, днс остались. Запрос идет к первому днс, тупит, переключается на второй. Идет второй запрос - куда он пойдет? На живой - второй - или опять на первый? Я не знаю. Если все время будет использоваться сначала первый, то резолвинг будет тупить
Добавлено 04-10-2013 09:37:29
Проверил. С неотвечающим днс-сервером пинг тупит. Firefox тоже. Что логично, т.к. он систему спрашивает, к кому обращаться
Отредактировано Merlyel (04-10-2013 09:37:29)
жЫзнь рандомна... и ничего с этим не поделаешь ;)
Отсутствует
Интерфейс отвалился, днс остались. Запрос идет к первому днс, тупит, переключается на второй. Идет второй запрос - куда он пойдет? На живой - второй - или опять на первый? Я не знаю. Если все время будет использоваться сначала первый, то резолвинг будет тупить
Если у вас на предприятии на сервере отвалится сетевая карта (статический интерфейс), то поверьте в первую очередь вы начнете устранять именно эту проблему, а тупой резольвинг вас будет волновать меньше всего. Исключения когда у вас настроена балансировка маршрутов, но там опять же совершенно иные механизмы, кои нужны для применения в редких случаях.
Этот мир, не совершенный, состоит из всех из нас. Он прямое отражение наших чувств и наших глаз.
Этот мир не станет лучше и не станет он добрее, если сами мы добрее не станем.
(@ Игорь Тальков, Этот мир).
Отсутствует
Если у вас на предприятии на сервере отвалится сетевая карта
А почему обязательно говорить про предприятие? У меня Linux на десктопе крутится
жЫзнь рандомна... и ничего с этим не поделаешь ;)
Отсутствует
ladserg пишетЕсли у вас на предприятии на сервере отвалится сетевая карта
А почему обязательно говорить про предприятие? У меня Linux на десктопе крутится
Ну хорошо, если у вас на десктопе отвалится сетевая карта...
Этот мир, не совершенный, состоит из всех из нас. Он прямое отражение наших чувств и наших глаз.
Этот мир не станет лучше и не станет он добрее, если сами мы добрее не станем.
(@ Игорь Тальков, Этот мир).
Отсутствует
Ладно, придумаем другую ситуацию
Вот упал интерфейс на каком-нибудь важном серваке. На нем было их две штуки - один смотрит внутрь, для корпоративных сервисов, другой наружу. Прерывать работу предприятия нельзя, пускаем временно наружку через другой сервер, а с этим ждем ночи, пока нагрузки на сервере не будет, и только тогда переключаем.
И что, весь день будет тупить резолвинг?
жЫзнь рандомна... и ничего с этим не поделаешь ;)
Отсутствует
Ладно, придумаем другую ситуацию
Вот упал интерфейс на каком-нибудь важном серваке. На нем было их две штуки - один смотрит внутрь, для корпоративных сервисов, другой наружу. Прерывать работу предприятия нельзя, пускаем временно наружку через другой сервер, а с этим ждем ночи, пока нагрузки на сервере не будет, и только тогда переключаем.
И что, весь день будет тупить резолвинг?
Тут не совсем понятно описано о том где будет тупить резольв.
Допустим на самом важном серваке. В принципе если на самом серваке и он является шлюзом в инет, то обычно на таких серверах просто ставят либо DNS сервер, коий по необходимости подключает внутренние зоны. При таком подходе файл resolv.conf указывает на локальный сервер.
Так же хочу обратить внимание, если у вас есть механизм подключения второго маршрута, то этот механизм либо изменит настройки DNS сервера, либо просто обеспечит маршрут до внешнего DNS.
А тупить резолв будет только в одном случае, если DNS сервер недоступен вообще, т.е. либо маршрут до него прервался и не восстановлен (в вашем случае временная наружка всё же должна обеспечить маршрут до внешнего DNS сервиса), либо сам DNS сервер упал.
В общем в большинстве случаев для избежения таких проблем просто либо используют локальный DNS либо сервис кеширования имён.
Этот мир, не совершенный, состоит из всех из нас. Он прямое отражение наших чувств и наших глаз.
Этот мир не станет лучше и не станет он добрее, если сами мы добрее не станем.
(@ Игорь Тальков, Этот мир).
Отсутствует
В принципе если на самом серваке и он является шлюзом в инет, то обычно на таких серверах просто ставят либо DNS сервер, коий по необходимости подключает внутренние зоны
Совсем не обязательно ставить на том же серваке. И не обязательно под "внешкой" понимать именно шлюз. Там может висеть какой-нибудь доп.сервис, связанный с внешним сервисом. Например, пересылка почты наружу.
то этот механизм либо изменит настройки DNS сервера
С помощью убирания записи из resolv.conf?
В общем в большинстве случаев для избежения таких проблем просто либо используют локальный DNS либо сервис кеширования имён.
Локальный DNS при отсутствии связи с внешкой тоже будет тупить. А в кэширующем может кончиться время жизни записей в кэше.
В общем, я это к тому, что ситуация, когда и на сервере желательно биндить dns на интерфейсы, вполне возможна, реализуема и может понадобиться. А уж будет кто-то эту возможность использовать или нет - это зависит от человека
жЫзнь рандомна... и ничего с этим не поделаешь ;)
Отсутствует