Окружающая среда:
Centos 7
Keepalived
Машина I
enp0s3 -> 192.168.1.38 (подключается к внешнему миру) en0s8 -> 192.168.100.101 (подключается к внутренней сети)
Машина II
enp0s3 -> 192.168.100.102 gw по умолчанию -> 192.168.100.101
Машина II
enp0s3 -> 192.168.100.103 gw по умолчанию -> 192.168.100.101
Я следил за учебником Вот шаг за шагом. И хотя все в комментариях говорят, что у них это прекрасно работает, я не могу понять оставайся живым демон, чтобы прослушать его файл конфигурации. Это действительно простая установка. Все, что я хочу сделать, это:
Пункт 2) должен быть выполнен с помощью Keepalived, но он просто не работает. Вот конфигурационный файл из /etc/keepalived/keepalived.conf
global_defs{
notification_email{
fake@yahoo.es
}
notification_email_from keepalived@domain.com
smtp_server 193.145.147.51
smtp_connect_timeout 30
lvs_id LVS_MAIN
}
vrrp_instance VI_1 {
interface enp0s3
state MASTER
virtual_router_id 51
priority 150
advert_int 1
virtual_ipaddress {
192.168.100.105/24 dev enp0s8
}
}
virtual_server 192.168.100.105 80 { !This would hosted in Machine I enp0s8
delay_loop 3
lb_algo wrr
lb_kind NAT
nat_mask 255.255.255.0
protocol TCP
real_server 192.168.100.102 8000 { !Machine II
weight 1
TCP_CHECK {
connect_timeout 3
connect_port 8000
}
}
real_server 192.168.100.103 8000 { !Machine III
weight 1
TCP_CHECK {
connect_timeout 3
connect_port 8000
}
}
}
Когда я запускаю keepalived и делаю sudo ip addr show enp0s8
Я вижу, что keepalived предоставил интерфейсу виртуальный IP-адрес 192.168.100.105 но когда я перехожу в браузер машины, я ввожу в качестве URL-адреса ip-адрес 192.168.100.105 ничего не возвращается, только тайм-аут соединения. Но если я вставлю 192.168.100.102:8000 или 192.168.100.103:8000 Меня приветствует мой веб-сервис.
Что я мог сделать не так с keepalived?
Я ценю любую помощь.
в моем случае я использую LVS-DR. Если вы используете LVS-DR
На основе http://www.austintek.com/LVS/LVS-HOWTO/HOWTO/LVS-HOWTO.ipvsadm.html
LVS-DR, LVS-Tun: the default gw cannot be the director - use some local router.
Измените виртуальный адрес на
virtual_ipaddress {
192.168.100.105 dev enp0s8
}
Измените шлюз по умолчанию на ваших реальных серверах на маршрутизатор НЕ Директор.
+ Изменить
lb_kind NAT
к
lb_kind DR
Также вам необходимо добавить правила iptables на реальном сервере.
http://www.centos.org/docs/5/html/Virtual_Server_Administration/s2-lvs-direct-iptables-VSA.html
На реальном сервере 192.168.100.102 и 192.168.100.103
iptables -t nat -A PREROUTING -p <tcp|udp> -d <vip> --dport <port> -j REDIRECT
В этом случае становятся:
iptables -t nat -A PREROUTING -p tcp -d 192.168.100.105 --dport 8000 -j REDIRECT