중복성과 안정성을 위해 두 개의 ISP(기본은 24.xxx의 100Mi 케이블[빠르지만 신뢰할 수 없음]이고 백업은 70.xxx의 1.5Mi DSL)이 있습니다. 각 서비스에 전용 Red Hat Linux 라우터 방화벽이 연결되어 있으며 이는 UPS를 통해 전원이 공급됩니다. 각 방화벽/라우터의 LAN 쪽은 집 양쪽 끝에 있는 서로 다른 채널에 있는 동일한 SSID를 가진 두 개의 Wi-Fi 액세스 포인트를 포함하여 홈 네트워크의 나머지 장치와 함께 24포트 스위치에 연결됩니다.
내 질문은 두 부분으로 구성됩니다.
1) 기본 라우터에서 서비스가 실패하는 경우(한 달에 여러 번 발생하며 거의 항상 토요일 아침에 발생하는 것으로 보임) Windows/iOS/android/linux/solaris 클라이언트가 두 번째 라우터로 장애 조치되도록 어떻게 구성합니까?
2) 서비스가 복원되면 기본 라우터를 다시 사용하도록 클라이언트에 신호를 어떻게 보내나요?
DHCP가 제공될 때 두 라우터를 모두 나열한 다음 클라이언트가 필요한 것을 정렬하도록 할 수 있습니까? 이는 파트 1)에서는 작동할 수 있는 것처럼 보이지만 기본이 다시 온라인 상태가 될 때 백업 연결을 수동으로/가짜로 실패하지 않는 한 파트 2)에서는 아무 작업도 수행하지 않습니다.
궁극적으로 내 목표는 서비스 중단으로 인해 2분 이내에 중단 없이 모든 장치에 대한 인터넷 서비스를 유지하고, 문제가 발생할 때마다 클라이언트나 라우터를 수동으로 건드리거나 재구성하지 않고 이를 수행하는 것입니다.
해당 매뉴얼의 이름만 알면 RTFM에 기꺼이 참여하겠습니다. 어떤 조언이라도 미리 감사드립니다.
답변1
keepalived
이 고양이의 가죽을 벗기는 방법에는 여러 가지가 있지만옵션.
연결 유지는VRRP구현은 라우터 중 하나에 속하는 "가상" IP를 정의할 수 있음을 의미합니다. 일반적으로 하나는 마스터로 지정하고 다른 하나는 보조로 지정합니다. 마스터를 사용할 수 없게 되면 보조 마스터가 IP 주소의 소유권을 갖습니다.
귀하의 시나리오에서는 이것이 클라이언트 게이트웨이 IP가 됩니다. 그렇게 하면 그들은 항상 동일한 IP 주소와 통신하고 이는 어느 것이 마스터인지에 따라 첫 번째 또는 두 번째 라우터로 이동합니다.
마스터 라우터가 다운되면 자동으로 2차 라우터가 인계받게 됩니다. 마스터와 2차 라우터는 "hello" 패킷을 교환하고 2차 라우터가 더 이상 마스터로부터 소식을 듣지 못하는 즉시 IP를 인수하게 됩니다.
그러나 링크를 모니터링하고 마스터를 사용할 수 없는 모드로 설정하려면 더 많은 것이 필요합니다. "트랙 스크립트"를 사용하여 이 작업을 수행할 수 있습니다.
예를 들어 마스터 구성은 다음과 같습니다.
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
}
}
그런 다음 트랙 스크립트 정의는 다음과 같습니다.
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
}
스크립트는 Google에 핑을 보내고 모두 정상이면 0을 반환하고 실패하면 1을 반환합니다.