ayf Опубликовано 21 марта, 2017 Добрый день. Коллеги, поделитесь знаниями, как сделать баласировку нагрузки между серверами ДНС, чтобы не получалось, что при подключении клиентов по DHCP все будут ломиться на примари DNS. Проблема в том, что нужна одна большая сеть типа 10.0.0.0/8. То есть на подсети с разными ДНС я ее разбить не могу. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
sol Опубликовано 21 марта, 2017 >> все будут ломиться на примари DNS. Разок не получат ответ и перейдут на второй сервер. К стати, в DHCP нет примари/не примари. ДНС отдаются списком без выделения какой либо роли. По RFC, после получения адреса, ДНС, к которому пойдёт первый запрос, должен выбираться случайно, если ДНС серверов пришло более одного. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Tau Опубликовано 21 марта, 2017 Добрый день. Коллеги, поделитесь знаниями, как сделать баласировку нагрузки между серверами ДНС, чтобы не получалось, что при подключении клиентов по DHCP все будут ломиться на примари DNS. Проблема в том, что нужна одна большая сеть типа 10.0.0.0/8. То есть на подсети с разными ДНС я ее разбить не могу. Какой DHCP? Почему сегментировать не можете? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ayf Опубликовано 21 марта, 2017 Добрый день. Коллеги, поделитесь знаниями, как сделать баласировку нагрузки между серверами ДНС, чтобы не получалось, что при подключении клиентов по DHCP все будут ломиться на примари DNS. Проблема в том, что нужна одна большая сеть типа 10.0.0.0/8. То есть на подсети с разными ДНС я ее разбить не могу. Какой DHCP? Почему сегментировать не можете? DHCP на рутере Cisco. Клиент поставил задачу, что все абоненты (несколько тысяч человек) должны быть в одной сети. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Saab95 Опубликовано 21 марта, 2017 Поставьте несколько DNS серверов с одинаковыми IP адресами в разных участках сети - если терминация всей подсети будет происходить не в одном месте. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
myth Опубликовано 21 марта, 2017 Клиент поставил задачу, что все абоненты (несколько тысяч человек) должны быть в одной сети. ссзб Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ayf Опубликовано 21 марта, 2017 Клиент поставил задачу, что все абоненты (несколько тысяч человек) должны быть в одной сети. ссзб Это понятно, но головняк-то мой получится... Поставьте несколько DNS серверов с одинаковыми IP адресами в разных участках сети - если терминация всей подсети будет происходить не в одном месте. В одном. Грубо говоря, громадная площадка с толпой людей:) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
v_r Опубликовано 21 марта, 2017 В одном. Грубо говоря, громадная площадка с толпой людей:) Как вариант можно настроить средствами anycast-маршрутизации. Настройте на лупбеках серверов одинаковые адреса, добавьте эти интерфейсы в DNS-сервер (в смысле разрешите отвечать на запросы с адреса лупбека), на маршрутизаторе прописывайте маршруты на адрес лупбека на два эти сервера, и выдаете клиентам адреса лупбеков в качестве DNS сервера. Можно вместо статики настроить динамическую маршрутизацию, принцип не меняется. Маршрутизатор должен уметь ECMP load-balancing и балансировку на /32 сети (последний пункт поддерживают не все L3-свитчи). Из недостатков - нет связи между маршрутом на сервере и статусом DNS сервера: при остановке DNS на одном из серверов трафик все равно будет направляться к нему. Разок не получат ответ и перейдут на второй сервер. В разных ОС по-разному, Windows вроде бы посылает запросы на оба сервера одновременно. А FreeBSD для определения недоступности DNS-сервера требуется несколько минут, правда в некоторых приложениях своя реализация резолвинга, более шустрая. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
sol Опубликовано 21 марта, 2017 Windows вроде бы посылает запросы на оба сервера одновременно. Это не так. WireShark в руки. А FreeBSD для определения недоступности DNS-сервера Это не в ОС. Это в glibc. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
edo Опубликовано 21 марта, 2017 Ну будут ломиться на один, и что? Как бы нагрузка по сегодняшним меркам смешная. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
myth Опубликовано 21 марта, 2017 днс сервера в этой сети будут не самым слабым местом. Где-то на последнем месте Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Antares Опубликовано 21 марта, 2017 Проблема в том, что нужна одна большая сеть типа 10.0.0.0/8. в одном бродкасте? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pppoetest Опубликовано 21 марта, 2017 Добрый день. Коллеги, поделитесь знаниями, как сделать баласировку нагрузки между серверами ДНС, чтобы не получалось, что при подключении клиентов по DHCP все будут ломиться на примари DNS. Проблема в том, что нужна одна большая сеть типа 10.0.0.0/8. То есть на подсети с разными ДНС я ее разбить не могу. Я в дхцп делаю роундробин выдачу двух днс по dhcprequest. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
dignity Опубликовано 21 марта, 2017 Проще взять сервер потолще и поднять нормальный рекурсор на pdns и будет счастье. Это вообще, иллюзия что нагрузка будет большая. Если уж сильно хочется - haproxy в помощь. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vurd Опубликовано 21 марта, 2017 Я в дхцп делаю роундробин выдачу двух днс по dhcprequest. Как? По теме, поднимите unbound, кеш побольше, чем по-умолчанию и, собственно, всё. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pppoetest Опубликовано 21 марта, 2017 Как? Меняю местами первичный и вторичный сервера в строке опции днс. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ShyLion Опубликовано 22 марта, 2017 Поставьте несколько DNS серверов с одинаковыми IP адресами в разных участках сети - если терминация всей подсети будет происходить не в одном месте. Совет курильщика. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ShyLion Опубликовано 22 марта, 2017 Добрый день. Коллеги, поделитесь знаниями, как сделать баласировку нагрузки между серверами ДНС, чтобы не получалось, что при подключении клиентов по DHCP все будут ломиться на примари DNS. Проблема в том, что нужна одна большая сеть типа 10.0.0.0/8. То есть на подсети с разными ДНС я ее разбить не могу. top - 11:00:18 up 8 days, 20:48, 1 user, load average: 0.18, 0.16, 0.14 Tasks: 101 total, 1 running, 100 sleeping, 0 stopped, 0 zombie %Cpu(s): 5.1 us, 2.7 sy, 0.0 ni, 91.2 id, 0.0 wa, 0.0 hi, 1.0 si, 0.0 st KiB Mem: 1018248 total, 646148 used, 372100 free, 138300 buffers KiB Swap: 8188 total, 140 used, 8048 free. 83220 cached Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 10554 named 20 0 256244 121176 3036 S 7.6 11.9 3:11.12 named 11 root 20 0 0 0 0 S 0.7 0.0 39:43.11 rcuos/0 841 root 20 0 452744 9928 6900 S 0.7 1.0 76:29.90 NetworkManager 10 root 20 0 0 0 0 S 0.3 0.0 35:16.52 rcu_sched 822 root 20 0 186916 4576 3664 S 0.3 0.4 9:29.94 vmtoolsd 2462 mysql 20 0 907468 91436 7748 S 0.3 9.0 4:58.56 mysqld 10590 root 20 0 123676 1608 1112 R 0.3 0.2 0:00.09 top 1 root 20 0 129484 3928 2308 S 0.0 0.4 0:23.76 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.10 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 2:23.89 ksoftirqd/0 ... Полторы тысячи абонентов живут в интернете. Виртуалка под VMWare ESXi. RPZ с блеклистом на список роскомнадзора. Короче, проблема, судя по всему, вымышленная. Для отказоустойчивости можно держать два сервера. Балансировать есть смысл при десятках тысячах абонентов. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vurd Опубликовано 22 марта, 2017 2ShyLion реализацию rpz покажите? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ShyLion Опубликовано 22 марта, 2017 2ShyLion реализацию rpz покажите? Там все просто как 3 кпейки. У меня хост, запрашивающий данные из РКН и DNS сервер разные, поэтому на первом мастер зоны, а на DNS сервере-слейв. Скрипт после парсинга пинает мастера: rndc reload zapret, а дальше все само. Серийник только не забудь увеличивать ( уменя тупо time() ). Мастер: zone "zapret" IN { type master; file "zapret.zone"; allow-transfer { slave_ip; }; also-notify { slave_ip; }; //это важно, там есть имена с подчеркиванием check-names ignore; }; Файл зоны: # head /var/named/zapret.zone $ORIGIN zapret. $TTL 1H @ SOA localhost. root (1490176736 1h 15m 30d 2h) NS localhost. cannabay.org A 127.0.0.1 *.cannabay.org A 127.0.0.1 eoliaseeds.com A 127.0.0.1 *.eoliaseeds.com A 127.0.0.1 www.weedy.be A 127.0.0.1 *.www.weedy.be A 127.0.0.1 и т.д. Сам сервер DNS: options { вся обычная фигня... response-policy {zone "zapret"; }; }; zone "zapret" IN { type slave; masters { master_ip; }; check-names ignore; }; named ванильный из стандартного репозитория CentOS 7 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vurd Опубликовано 22 марта, 2017 Спасибо, а то у меня зонами обычными сделано, пухнет сильно. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ShyLion Опубликовано 22 марта, 2017 Логирование: logging { channel rpz { file "data/rpz.log" versions 7 size 1m; severity info; print-time yes; }; category rpz { rpz; }; } 22-Mar-2017 15:57:22.707 client x.x.x.72#39667 (f-slots.org): rpz QNAME Local-Data rewrite f-slots.org via f-slots.org.zapret 22-Mar-2017 15:57:22.708 client x.x.x.72#39667 (casino-automats.com): rpz QNAME Local-Data rewrite casino-automats.com via casino-automats.com.zapret 22-Mar-2017 15:57:22.711 client x.x.x.72#39667 (slotosfera.com): rpz QNAME Local-Data rewrite slotosfera.com via slotosfera.com.zapret Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...