DNS + keepalive
Задача: сделать на двух физических серверах отказоустойчивость и балансировку DNS трафика (сервера рекурсивные).
Вешаем VIP на loopback.
Красим входящий трафик:
iptables -t mangle -I PREROUTING -d 10.10.10.10 -p udp --dport 53 -m mac ! --mac-source ec:b1:d7:09:ea:c4 -j MARK --set-mark 2253
iptables -t mangle -I PREROUTING -d 10.10.10.10 -p tcp --dport 53 -m mac ! --mac-source ec:b1:d7:09:ea:c4 -j MARK --set-mark 2353
Конфиг keepalive в котором пишем адреса, интерфейсы нод и балансируем крашеный трафик.
/etc/keepalived/keepalived.conf
vrrp_instance dns_rec {
interface bond0.3
state MASTER
virtual_router_id 3
priority 100
authentication {
auth_type PASS
auth_pass p4ssw0rd
}
virtual_ipaddress {
10.10.10.10/32 dev bond0.3
}
}
# Check for UDP
virtual_server fwmark 2253 {
delay_loop 6
lb_algo rr
lb_kind DR
protocol UDP
real_server 10.10.10.1 53 {
weight 100
MISC_CHECK {
connect_timeout 6
misc_path "/etc/keepalived/dnscheck.sh -h 10.10.10.1"
}
}
real_server 10.10.10.2 53 {
weight 100
MISC_CHECK {
connect_timeout 6
misc_path "/etc/keepalived/dnscheck.sh -h 10.10.10.2"
}
}
}
# Check for TCP
virtual_server fwmark 2353 {
delay_loop 6
lb_algo wlc
lb_kind DR
protocol TCP
real_server 10.10.10.1 53 {
weight 100
TCP_CHECK {
connect_timeout 6
}
}
real_server 10.10.10.2 53 {
weight 100
TCP_CHECK {
connect_timeout 6
}
}
}
исключаем бесконечную пересылку пакетов между хостами
/etc/sysctl.d/arp.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
исключаем бесконечную пересылку пакетов между хостами
/etc/sysctl.d/arp.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
Комментариев нет:
Отправить комментарий