
웹 서버 1개와 WAN 연결 2개(케이블 1개, DSL 1개)가 있습니다. DNS는 오프사이트에서 실행되며 ISP 중 하나가 할당한 IP 주소를 가리킵니다. 기본 연결이 실패할 때 두 번째 연결을 대신하도록 하려면 어떻게 해야 합니까?
나는 각각 다른 IP를 가리키는 두 개의 A 레코드를 갖는 것이 가능하다는 것을 확인했지만 여기에는 몇 가지 문제가 있습니다. 이에 대한 실제 해결책은 무엇입니까? 나는 이것이 매우 일반적인 문제라고 생각합니다.
추가 정보:
서버는 사실상 전자의무기록 서버로 사무실 현장에 있어야 한다. 해당 웹사이트와 DNS는 대규모 관리형 호스팅 시설에서 호스팅됩니다.
사무실측 계획은 앞서 언급한 Peplink Balance와 비슷하거나크래들포인트 MBR-1200.
DNS 전환 기능이 있는 Peplink가 해결책처럼 들리지만 데이터 센터 대신 사무실에서 DNS를 사용하는 것이 얼마나 편한지 잘 모르겠습니다. 나는 이것에 대해 더 자세히 살펴볼 것입니다.
우리 호스팅 시설과 대화한 후 그들은 Dynamic DNS와 같은 제3자 서비스를 고려해 볼 것을 권했습니다. 기본적으로 하나의 IP가 다운되면 전환되는 모니터링 서비스라고 생각합니다.
속도는 실제로 문제가 되지 않습니다. 그들은 고가용성에 더 관심이 있습니다.
답변1
나는 이것이 매우 일반적인 문제라고 생각합니다.
실제로는 그렇지 않습니다. 대부분의 소규모 웹사이트는 이를 처리하는 호스터와 함께 운영됩니다. 호스팅 업체는 여러 개의 업링크와 자신의 주소 공간을 갖고 있으며 BGP를 통해 자신의 라우팅을 피어에게 알립니다.
이것은 또한 기본적으로 훨씬 더 대역폭 효율적입니다. 일반적인 최종 사용자 연결의 업링크 속도는 끔찍합니다.
나는 대부분의 사람들이 케이블/DSL 링크 뒤에서 웹사이트를 운영하려고 할 정도로 "비전문적"이라고 말하고 싶습니다. 또한 두 개의 연결이 없습니다.
답변2
내 생각에 가장 '진짜' 방법은 IP 블록을 얻은 다음 BGP를 사용하여 두 ISP 모두에 직접 인터넷에 알리는 것입니다. 이는 케이블과 DSL보다 '실제' 연결에 더 가깝습니다. 이러한 연결 수준에서는 DNS 장애 조치를 사용하는 것이 아마도 설정과 동등하다고 생각합니다.
일반적인 다음 단계는 코로케이션으로 이동하고 코로케이션 시설이나 데이터 센터 자체에서 제공되는 ISP로부터 안정적인 연결을 얻는 것입니다. 아마도 HSRP를 사용하는 두 방울을 제공할 수 있으며 스위치에 바로 들어갈 수 있습니다. 이는 완벽한 완전 이중화는 아니지만 큰 진전이 될 것입니다.
답변3
여기서는 DNS 업데이트가 핵심입니다. 라운드 로빈 DNS(다중 A 레코드)는 자체적으로 상태 확인을 수행하지 않습니다. 어떤 유형의 다중 완 라우터를 사용하고 있습니까? 나는 알고있다PepLink 잔액시리즈에는 링크가 다운될 때 기록을 변경하는 라우터의 DNS 서버가 포함되어 있습니다. 라우터가 이 작업을 자체적으로 수행할 수 없는 경우 스크립트를 작성하거나 두 연결 모두의 상태를 외부적으로 확인/폴링하고 정기적으로 DNS 서버를 업데이트하는 서비스를 찾아야 할 것입니다.
또한 coloc을 제안하는 사람들의 경우 이는 프로덕션 서버에 대한 이상적인 답변이지만 LAN의 액세스 속도가 더 중요한 사무실 파일 서버로 마운트되거나 작동할 수 있는 스테이징/개발 서버일 가능성이 있습니다. 업링크 속도와 안정성보다.
답변4
두 개의 A 레코드가 있으면~ 아니다장애 조치 제공 - 기본적으로 사용자의 절반은 해당 IP의 사용 가능 여부에 관계없이 하나의 IP에 연결을 시도하고 나머지 절반은 다른 IP에 연결합니다.
이러한 장애 조치에는 동적 DNS를 사용할 수 있습니다. 동적 DNS 서비스에 가입하고 서버 시스템에 동적 DNS 클라이언트를 설정하세요. (액세스 가능한) 외부 IP를 주기적으로 확인하고 변경될 때마다 A 레코드를 업데이트합니다.
DNS 공급자가 동적 DNS를 지원하지 않는 경우 DNS를 다른 공급자로 옮기거나 3차 도메인으로 동적 DNS를 구독하고 기본 도메인에 동적 호스트 이름을 가리키는 CNAME 레코드를 생성할 수 있습니다. . (후자는 www.에서는 작동하지만 zone apex에서는 작동하지 않습니다.)