u.s.s.r Posted January 24, 2014 Posted January 24, 2014 Доброго дня! Есть несколько серверов pptp c адресами 192.168.0.2 192.168.0.3 192.168.0.4 На данный момент, задействован только 192.168.0.2, но хотелось бы распределить нагрузку pptp сервера, и как решения, я думаю, что можно как-то реализовать динамическую смену записи был vpn.net [192.168.0.2] на vpn.net [192.168.0.3] в DNS-сервере, чтобы ппри следующем обращении, клиент подключился уже к другому серверу. У клиентов IP прописан статический 192.168.16.0/16, в том числе и DNS 192.168.0.254 Вставить ник Quote
gibbon Posted January 24, 2014 Posted January 24, 2014 Просто прописать у vpn.net несколько ИП адресов и получите балансировку. Вставить ник Quote
srg555 Posted January 24, 2014 Posted January 24, 2014 только смотрите чтоб ответ не превысил 512 байт, а то некоторые роутеры тупят. сколько это записей не помню, но не очень много Вставить ник Quote
u.s.s.r Posted January 25, 2014 Author Posted January 25, 2014 А как то можно сделать, чтобы по какому то условию исключать включать в днс ip-сервера? Например если не доступен первый сервер, то днс-сервер не должен его выдавать Вставить ник Quote
boco Posted January 25, 2014 Posted January 25, 2014 только смотрите чтоб ответ не превысил 512 байт, а то некоторые роутеры тупят. сколько это записей не помню, но не очень много 512 это для некоторых длинков перебор. =) грязный хак, с которым и овцы ("умные" роутеры, которые знают про флаг tc, но не могут 53/tcp) целы, и волки (длинки) сыты: %cat 9.4-ESV-R5-P1-named-client.c.diff --- contrib/bind9/bin/named/client.c 2012-04-08 07:43:41.000000000 +0600 +++ contrib/bind9/bin/named/client.c 2012-12-27 15:29:01.000000000 +0600 @@ -634,7 +634,7 @@ } client->signer = NULL; - client->udpsize = 512; + client->udpsize = 368; client->extflags = 0; client->ednsversion = -1; dns_message_reset(client->message, DNS_MESSAGE_INTENTPARSE); @@ -988,7 +988,7 @@ result = dns_message_rendersection(client->message, DNS_SECTION_QUESTION, 0); if (result == ISC_R_NOSPACE) { - client->message->flags |= DNS_MESSAGEFLAG_TC; + //client->message->flags |= DNS_MESSAGEFLAG_TC; goto renderend; } if (result != ISC_R_SUCCESS) @@ -998,7 +998,7 @@ DNS_MESSAGERENDER_PARTIAL | render_opts); if (result == ISC_R_NOSPACE) { - client->message->flags |= DNS_MESSAGEFLAG_TC; + //client->message->flags |= DNS_MESSAGEFLAG_TC; goto renderend; } if (result != ISC_R_SUCCESS) @@ -1008,7 +1008,7 @@ DNS_MESSAGERENDER_PARTIAL | render_opts); if (result == ISC_R_NOSPACE) { - client->message->flags |= DNS_MESSAGEFLAG_TC; + //client->message->flags |= DNS_MESSAGEFLAG_TC; goto renderend; } if (result != ISC_R_SUCCESS) @@ -2103,7 +2103,7 @@ client->tcpmsg_valid = ISC_FALSE; client->tcpbuf = NULL; client->opt = NULL; - client->udpsize = 512; + client->udpsize = 368; client->extflags = 0; client->ednsversion = -1; client->next = NULL; Вставить ник Quote
srg555 Posted January 25, 2014 Posted January 25, 2014 А как то можно сделать, чтобы по какому то условию исключать включать в днс ip-сервера? Например если не доступен первый сервер, то днс-сервер не должен его выдавать скриптами правит файл зоны или удалять запись в базе Вставить ник Quote
roysbike Posted January 26, 2014 Posted January 26, 2014 А как то можно сделать, чтобы по какому то условию исключать включать в днс ip-сервера? Например если не доступен первый сервер, то днс-сервер не должен его выдавать в вашу зону vpn.net добавляете $INCLUDE c файлом ip ваших серверов. Скрипт опрашивает 3 сервера, если один сдох , вносит только два ip. Затем делаете rpcbind reload и у вас зона уже с двумя IP. Но я делал иначе, в скрипте указывал "вес" каждого VPN-сервера(разные по мощности), опрашивал и генерил зону с наиболее не загруженным. Скрипт работал каждую 1 мин. В зону попадал не нагруженный VPN сервер. Вставить ник Quote
nwton Posted January 27, 2014 Posted January 27, 2014 реализовать динамическую смену записи был vpn.net [192.168.0.2] на vpn.net [192.168.0.3] в DNS-сервере, чтобы ппри следующем обращении, клиент подключился уже к другому серверу. Только не забудьте уменьшить TTL для A записи, иначе получится "при следующем обращении через неделю клиент наконец-то решит обратиться к новому серверу". Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.