петък, декември 17, 2010

DNS balance for service

Имаме PPTP сървър който разни хора го ползват за разни неща. Проблема е когато рупа потребители се опитат да направят повече от една сесия към този сървър със един и същи source (примерно когато са зад НАТ)- първият е ОК, а всеки следващ получава error 619
Един вариантите е да инициират сесия към различно IP като най-лесният начин (с gambling елементи) е round-robin/cycling DNS balancer
Като цяло идеята, е че ще се опитват да правят сесия на FQDN не на IP и тогава ДНС-а ще им отговаря с различно IP като се разчита, че DNS да върне IP което вече се използва е малка, а дори и да се случи един re-dial ще оправи нещата
named -v
BIND 9.4.2-P2
cat /proc/version
Linux version 2.6.24-23-server (buildd@crested) (gcc version 4.2.4 (Ubuntu 4.2.4-1ubuntu3)) #1 SMP Wed Apr 1 22:14:30 UTC 2009

В /etc/bind/named.conf.option
; Искам да ми се връща различно IP за А запис като принципа е цикличен
; т.е. при първо запитва Bind-a дава първото IP, при втори - 2рото и т.н
; като изчерпи броя на заделените IP започва пак от първото
rrset-order {type A name "pptp.domain.com" order cyclic;}; 

в /etc/bind/pri/domain.com zone file :
; format is
;name  ttl      class    rr                 ip
;joe               IN      A      192.168.254.3

pptp    1s      IN      A       192.168.1.50
pptp    1s      IN      A       192.168.1.51
pptp    1s      IN      A       192.168.1.52
pptp    1s      IN      A       192.168.1.53
pptp    1s      IN      A       192.168.1.54
pptp    1s      IN      A       192.168.1.55
pptp    1s      IN      A       192.168.1.56
pptp    1s      IN      A       192.168.1.57
pptp    1s      IN      A       192.168.1.58
pptp    1s      IN      A       192.168.1.59


Няма коментари: