유동 IP 및 BGP를 사용하는 Vultr의 고 가용성

Vultr을 사용하면 고 가용성을 달성하기 위해 두 가지 기능 (부동 IP 및 BGP)을 결합 할 수 있습니다.

설정

동일한 위치에 두 개의 인스턴스와 유동 IP가 필요합니다. 유동 IP를 위해 개인 ASN에서 BGP를 설정하도록 요청하는 티켓을 열어야합니다. (공개 ASN에서 BGP를 사용하는 경우에도이 기능을 사용할 수 있습니다)

BGP 데몬도 필요합니다. BIRD를 권장합니다. BIRD는 일반적으로 운영 체제의 패키지 관리자를 통해 사용할 수 있습니다.

우리는 사용할 것이다 192.0.2.10/32IP 부동의 예로서 그리고 198.51.100.99우리의 인스턴스 중 하나의 IP 주소로.

참고 : 제어판을 통해 유동 인스턴스를 특정 인스턴스에 연결 해서는 안됩니다 . 제어판을 통해 IP를 연결하면 고 가용성이 제대로 작동하지 않습니다.

IP 구성

우리는 IP 주소를 바인딩하기 위해 리눅스 "더미"인터페이스를 사용할 것입니다. 다음 명령을 사용하여이를 만들 수 있습니다.

ip link add dev dummy1 type dummy
ip link set dummy1 up
ip addr add dev dummy1 192.0.2.10/32

이것이 올바르게 구성되었는지 확인하십시오.

# ip addr show dev dummy1
5: dummy1: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
    link/ether ba:23:57:2c:ad:bc brd ff:ff:ff:ff:ff:ff
    inet 192.0.2.10/32 scope global dummy1

BIRD 구성

다음으로 BIRD를 구성하겠습니다. 이 지침은 호스트 운영 체제마다 약간 씩 다릅니다.이 섹션 하단의 각주를 참조하십시오.

/etc/bird.conf파일을 작성 하십시오.

log "/var/log/bird" all;

router id 198.51.100.99;

protocol device
{
    scan time 60;
}

protocol direct
{
    interface "dummy1";
}

protocol bgp vultr
{
    local as <<YOURAS>>;
    source address 198.51.100.99;
    import none;
    export all;
    graceful restart on;
    next hop self;
    multihop 2;
    neighbor 169.254.169.254 as 64515;
    password "<<YOURPASSWORD>>";
}

업데이트해야 YOURAS하고 YOURPASSWORD귀하의 계정에 할당 된 AS 번호와 BGP 암호로. 이 정보는 Vultr 제어판 에있는 인스턴스 페이지의 BGP 탭에서 찾을 수 있습니다 .

이 구성 파일은 BIRD에 dummy1 인터페이스를 찾고 BGP를 통해 인프라에 찾은 모든 IP를 알리도록 지시합니다. 즉, 인스턴스가 실행 되 자마자 트래픽 수신이 시작되고 충돌이 발생하면 트래픽이 중지됩니다.

FreeBSD 설정

Linux 대신 FreeBSD를 호스트로 사용하는 경우 몇 가지 차이점이 있습니다.

  1. TCP MD5 서명 지원을 위해 커널을 다시 컴파일해야합니다. 이 지침은이 기사의 범위를 벗어납니다. BSD 커널이 TCP MD5 서명을 지원하지 않으면 BIRD 로그에 다음 출력이 표시됩니다.

    $ cat /var/log/bird
    2017-12-15 01:35:00 <INFO> Started
    2017-12-15 01:35:00 <ERR> vultr: Socket error: Kernel does not support TCP MD5 signatures
    
  2. BIRD 구성 파일은 /usr/local/etc/bird.confBSD에 있습니다.

BGP 연결 확인

BIRD 서비스를 시작하고 service bird start몇 초 동안 기다리십시오. BGP 세션이 설정되었는지 확인하십시오.

# birdc show proto all vultr
BIRD 1.5.0 ready.
name     proto    table    state  since       info
vultr    BGP      master   up     2016-01-15  Established
  Preference:     100
  Input filter:   REJECT
  Output filter:  ACCEPT
  Routes:         0 imported, 1 exported, 0 preferred
  Route change stats:     received   rejected   filtered    ignored   accepted
    Import updates:      255919581          0  255919581          0          0
    Import withdraws:      1905513          0        ---  257825094          0
    Export updates:              1          0          0        ---          1
    Export withdraws:            0        ---        ---        ---          0
  BGP state:          Established
    Neighbor address: 169.254.169.254
    Neighbor AS:      YOURAS
    Neighbor ID:      x.x.x.x (Host IP)
    Neighbor caps:    refresh enhanced-refresh restart-able AS4
    Session:          external multihop AS4
    Source address:   198.51.100.99
    Hold timer:       184/240
    Keepalive timer:  30/80

모든 것이 제대로 작동하면 BGP 상태 옆에 "설정 됨"이 표시됩니다. 여기서 일반적인 문제는 방화벽이 BGP 포트 (TCP 179)를 차단하는 것입니다. 또한 Vultr에서 BGP 세션을 설정하기 전에이 인스턴스를 배포 한 경우 BGP를 사용하려면 제어판을 통해 인스턴스를 다시 시작해야합니다. 여전히 문제가 발생하면 /var/log/bird자세한 내용을 확인하십시오.

테스팅

BIRD가 다음을 사용하여 유동 IP 로의 경로를 알리고 있는지 확인할 수 있습니다.

# birdc show route
BIRD 1.5.0 ready.
192.0.2.10/32    dev dummy1 [direct1 2015-12-29] * (240)

이것이 올바르게 작동하는지 확인하기 위해 dummy1 인터페이스를 비활성화하고 ( ip link set dummy1 down) show route명령 을 반복하십시오 . BIRD는 인터페이스가 사라 졌음을 알리고 경로를 철회합니다.

생산 사용법

사이트를 계속 유지하려면 동일한 BGP 구성을 실행하는 둘 이상의 서버가 필요합니다. 인스턴스 중 하나가 다운되면 트래픽이 다른 인스턴스 중 하나로 동적으로 리디렉션됩니다. 특정 위치에서이 구성으로 실행할 수있는 인스턴스 수에는 제한이 없지만 주어진 시간에 하나만 활성화됩니다.

일부 위치에서는 이러한 방식으로 구성한 모든 인스턴스간에 트래픽이 무작위로 분배됩니다. 결국 모든 위치가이 방식으로 구성됩니다. 오프라인이 아닌 한 인스턴스 하나에서 모든 트래픽을 가져 오려면 프리픽스를 사용하여 트래픽을 조정해야합니다.

예를 들어 두 개의 인스턴스가있는 경우 :

  • 인스턴스 A-기본 인스턴스는 모든 트래픽을 정상적으로 수신해야합니다.
  • 인스턴스 B-백업 인스턴스는 인스턴스 A가 다운 된 경우에만 트래픽을 수신해야합니다.

이를 수행하려면 다음과 같이 인스턴스 B의 BIRD 구성에 다음 섹션을 추가하십시오.

export filter {
    bgp_path.prepend(YOURAS);
    accept;
};

이렇게하면 다운되지 않는 한 트래픽이 항상 인스턴스 A로 이동합니다.

인스턴스 C가 있고 A와 B가 다운되었을 때만 트래픽을 수신해야하는 경우 다른 'bgp_path.prepend'행을 추가하면됩니다.

IPv6 설정

이 프로세스는 IPv6 예약 서브넷에서도 작동하지만 "birdc"대신 "bird"대신 "birdc6"을 사용하지만 "birdc"대신 "birdc6"을 사용합니다.

댓글 남기기

NTLite를 사용하여 업데이트로 Windows 사용자 지정 ISO를 만드는 방법

NTLite를 사용하여 업데이트로 Windows 사용자 지정 ISO를 만드는 방법

NTLite를 사용하여 Vultr 시스템과 호환되는 Windows 사용자 지정 ISO를 만드는 방법을 단계별로 설명합니다. 최신 드라이버와 업데이트 통합을 포함한 완벽 가이드.

Vultr에서 BGP 구성

Vultr에서 BGP 구성

Vultr BGP 설정을 위한 단계별 튜토리얼. ASN 할당부터 IP 라우팅 구성, BIRD 데몬 설정, FreeBSD 특이사항 및 실전 문제 해결 팁 7가지 포함한 최종 가이드

WsgiDAV를 사용하여 Debian 10에 WebDAV 배포

WsgiDAV를 사용하여 Debian 10에 WebDAV 배포

WebDAV (Web Distributed Authoring and Versioning)를 이용한 원격 파일 작성을 위한 프레임워크로, WsgiDAV 설치 및 구성 방법을 안내합니다.

데비안 7에 Mailcow 설치

데비안 7에 Mailcow 설치

Mailcow는 DoveCot, Postfix 및 기타 여러 오픈 소스 패키지를 기반으로 하는 경량 메일 서버입니다. 데비안에서 Mailcow 설치 방법을 안내합니다.

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

랜섬웨어 공격이 증가하고 있지만 AI가 최신 컴퓨터 바이러스를 처리하는 데 도움이 될 수 있습니까? AI가 답인가? AI boone 또는 bane인지 여기에서 읽으십시오.

ReactOS: 이것이 Windows의 미래입니까?

ReactOS: 이것이 Windows의 미래입니까?

오픈 소스이자 무료 운영 체제인 ReactOS가 최신 버전과 함께 제공됩니다. 현대 Windows 사용자의 요구 사항을 충족하고 Microsoft를 무너뜨릴 수 있습니까? 이 구식이지만 더 새로운 OS 환경에 대해 자세히 알아보겠습니다.

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

Whatsapp은 마침내 Mac 및 Windows 사용자용 데스크톱 앱을 출시했습니다. 이제 Windows 또는 Mac에서 Whatsapp에 쉽게 액세스할 수 있습니다. Windows 8 이상 및 Mac OS 10.9 이상에서 사용 가능

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

인공 지능이 소규모 회사에서 어떻게 인기를 얻고 있으며 어떻게 인공 지능이 성장할 가능성을 높이고 경쟁자가 우위를 점할 수 있는지 알아보려면 이 기사를 읽으십시오.

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

최근 Apple은 문제를 해결하기 위해 macOS Catalina 10.15.4 추가 업데이트를 출시했지만 이 업데이트로 인해 Mac 컴퓨터의 브릭킹으로 이어지는 더 많은 문제가 발생하는 것 같습니다. 자세히 알아보려면 이 기사를 읽어보세요.

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구