기본 링크가 중단될 경우 장애 조치 기본 경로

기본 링크가 중단될 경우 장애 조치 기본 경로

저는 2개의 ISP와 다음과 같은 2개의 IP 주소를 가진 서버를 가지고 있습니다.

eth0: 161.0.0.2
eth1: 171.0.0.2

www.example.comDNS LB를 갖도록 두 개의 A 레코드를 설정했습니다.

애플리케이션은 이런 방식으로 잘 작동하며 Linux 상자에는 연결의 비대칭 라우팅을 방지하기 위해 정책 기반 라우팅이 설정되어 있습니다. 나가는 패킷은 들어오는 연결이 설정된 동일한 인터페이스를 통해 나갑니다.

이제 남은 유일한 문제는 기본 게이트웨이가 설정되어 있다는 것입니다. 161.0.0.1또한 LB를 구현하거나 적어도 나가는 연결에 대한 장애 조치를 구현하고 싶습니다.

내가 할 수 있는 한 가지 방법은 cronjob을 사용하여 특정 호스트를 ping하고 ping이 실패할 경우 기본 경로를 변경하는 것이지만 171.0.0.1이 방법은 너무 불안정해 보입니다.

기본 경로를 장애 조치하는 방법에 대한 제안 사항이 있습니까?

답변1

실제 라우팅 프로토콜을 알고 싶지 않은 경우 가장 좋은 조언은 프로그램을 지속적으로 실행하고 주기적으로 처음 두 홉(구성한 주소 사용, 즉 161.0.0.1 및 171.0.0.1)을 ping하고 그 중 하나를 설치하는 것입니다. 기본 경로 응답으로. 여러분은 아마도 여러분이 선택한 스크립팅 언어를 사용하여 이 작업을 수행할 수 있을 것입니다. 물론 저는 C로 직접 수행할 수도 있습니다. 실제로는 있습니다(그러나 더 이상 코드를 찾을 수 없습니다). 매우 간단하고 정확하며 C로 구현하면 서버에 미치는 영향이 크게 줄어듭니다.

답변2

당신이 좋아하지 않을지라도 나는 답을 가지고 있습니다. DNS의 여러 RR A는 고가용성을 제공하지 않습니다. 대답은 주로 클라이언트/해당 DNS 서버에 따라 다릅니다.

클라이언트가 다운된 ISP의 IP 주소를 확인하면 이를 캐시에 보관하고 다른 클라이언트를 시도하지 않으므로 다른 클라이언트가 사이트 폐쇄에 대해 불평하는 동안 사이트에 액세스할 수 있는 한 세트의 클라이언트를 갖게 됩니다.

낮은 TTL도 도움이 되지 않습니다. 일부 DNS 클라이언트/대형 ISP는 낮은 TTL을 무시하는 것으로 알려져 있으므로 DNS의 TTL이 낮더라도 연결할 수 없는 클라이언트 집합이 있게 됩니다.

가능한 해결책 중 하나는 CND 서비스를 사용하는 것입니다.윤야오을 클릭하고 거기에 두 개의 IP 주소를 구성합니다.

외부 경로 중복성을 확보하는 또 다른 보다 정교한 방법은 AS 번호를 요청하고 두 네트워크 모두에 대해 공급자 독립적 IP 주소 공간을 사용하고 공급자와 BGP 피어링을 수행하는 것입니다.

나가는 라우팅에 대해서는 두 ISP의 트래픽을 활용하기 위해 해당 게이트웨이, 소스 기반 라우팅을 사용하는 전략을 개발하는 것이 좋습니다.http://www.novell.com/support/kb/doc.php?id=7008874

관련 정보