Eu tenho dois ISPs (o principal é o cabo 100Mi em 24.xxx [rápido, mas não confiável] e meu backup é 1,5Mi DSL em 70.xxx) para redundância e confiabilidade. Eu tenho firewalls de roteador Linux dedicados da Red Hat conectados a cada serviço, e eles são alimentados via UPS. O lado LAN de cada firewall/roteador se conecta a um switch de 24 portas com o restante dos dispositivos da minha rede doméstica, incluindo dois pontos de acesso Wi-Fi com o mesmo SSID em canais diferentes em cada extremidade da casa.
Minha pergunta tem duas partes;
1) Como configuro os clientes Windows/iOS/Android/linux/solaris para fazer failover no segundo roteador se o serviço falhar no primário (o que parece acontecer várias vezes por mês, quase sempre nas manhãs de sábado)?
2) Como sinalizo aos clientes para voltarem a usar o roteador primário quando o serviço for restaurado?
É possível listar apenas os dois roteadores quando o DHCP é servido e depois deixar o cliente resolver o que precisa? Parece que pode funcionar para a parte 1), mas não faz nada para a parte 2), a menos que eu falhe manualmente/falsamente na conexão de backup quando o primário voltar a ficar online.
Em última análise, meu objetivo é manter o serviço de Internet para todos os meus dispositivos com no máximo dois minutos de interrupção por qualquer interrupção de serviço, e fazer isso sem tocar ou reconfigurar nenhum dos clientes ou roteadores (manualmente) sempre que isso acontecer.
Eu ficaria feliz em usar a RTFM se soubesse o nome desse manual. Agradecemos antecipadamente por qualquer conselho.
Responder1
Há muitas maneiras de esfolar esse gato, mas keepalived
pode ser umaopção.
keepalived é umVRRPimplementação, o que significa que você pode definir um ip "virtual" que pertence a um ou outro de seus roteadores. Normalmente, você designa um como mestre e outro como secundário. Se o mestre ficar indisponível, o secundário assume a propriedade do endereço IP.
No seu cenário, esse seria o IP do gateway do seu cliente. Dessa forma, eles estão sempre conversando com o mesmo endereço IP, e este vai para o primeiro ou segundo roteador dependendo de qual for o mestre.
Se o roteador mestre estiver inativo, isso automaticamente fará com que o secundário assuma o controle - o mestre e o secundário trocam pacotes de "olá" e, assim que o secundário não receber mais notícias do mestre, ele assumirá o controle do IP.
No entanto, você precisaria de mais para monitorar o link e deixar o mestre colocar-se no modo indisponível - você pode fazer isso usando "track scripts".
Por exemplo, aqui está a configuração do mestre:
vrrp_instance RouterVRRP {
state MASTER
interface eth0
virtual_router_id 50
priority 200
advert_int 1
virtual_ipaddress {
10.10.10.100/32 dev eth0
}
track_script {
check_google
}
}
Em seguida, a definição do script de trilha:
vrrp_script check_google {
script "/scripts/pinggoogle.sh"
interval 3 # check every 3 seconds
fall 3 # require 3 fails for down
rise 2 # require 2 successes back up
}
O script faria ping no Google e retornaria 0 para tudo bem e 1 para falha.