フローティングIPおよびBGPを備えたVultrでの高可用性

Vultrでは、高可用性を実現するために、2つの機能(フローティングIPとBGP)を組み合わせることができます。

セットアップ

同じ場所に2つのインスタンスとフローティングIPが必要です。また、フローティングIPのプライベートASNでBGPを設定するように要求するチケットを開く必要があります。(パブリックASNでBGPを実行している場合も、この機能を使用できます)

BGPデーモンも必要です。BIRDをお勧めします。BIRDは通常、オペレーティングシステムのパッケージマネージャーから利用できます。

192.0.2.10/32フローティングIPの例198.51.100.99として、またインスタンスの1つのIPアドレスとして使用します。

注:あなたがすべきではない、あなたのコントロールパネルから任意の特定のインスタンスに浮動IPを添付。コントロールパネルを介してIPが接続されている場合、高可用性は正しく機能しません。

IP構成

Linuxの「ダミー」インターフェースを使用して、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インターフェースを探すように指示し、見つかったすべてのIPをBGP経由でインフラストラクチャーにアドバタイズします。つまり、インスタンスが実行されるとすぐにトラフィックの受信が開始され、クラッシュした場合はトラフィックが停止します。

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構成を実行している複数のサーバーが必要です。インスタンスのいずれかがダウンすると、トラフィックは他のインスタンスのいずれかに動的にリダイレクトされます。この構成で特定の場所で実行できるインスタンスの数に制限はありませんが、一度にアクティブになるのはそのうちの1つだけです。

一部の場所では、この方法で構成したインスタンス間でトラフィックがランダムに分散されます。最終的に、すべての場所がこの方法で構成されます。オフラインでない限り、1つのインスタンスですべてのトラフィックを取得する場合は、プリペンドを使用してトラフィックを誘導します。

たとえば、2つのインスタンスがある場合:

  • インスタンスA-メインインスタンス、すべてのトラフィックを通常どおり受信する必要があります
  • インスタンスB-バックアップインスタンス。インスタンスAがダウンしている場合にのみトラフィックを受信する必要があります

これを行うには、次のようにインスタンスBのBIRD構成に次のセクションを追加します。

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

これにより、ダウンしていない限り、トラフィックは常にインスタンスAに送られます。

インスタンスCがあり、AとBがダウンしているときにのみトラフィックを受信する必要がある場合、別の「bgp_path.prepend」行を追加するだけでこれを実現できます。

IPv6設定

このプロセスはIPv6予約済みサブネットでも機能しますが、「bird」の代わりに「bird6」を使用し、「birdc」の代わりに「birdc6」を使用します。



Leave a Comment

Vultr VPSにアクセスする方法

Vultr VPSにアクセスする方法

Vultrは、VPSにアクセスして構成、インストール、および使用するためのいくつかの異なる方法を提供します。アクセス認証情報VPS arのデフォルトのアクセス認証情報

VirtIOドライバーを使用したWindowsカスタムISO

VirtIOドライバーを使用したWindowsカスタムISO

Windows ISOのビルド(サーバーバージョンのみ)ISOファイルとしてパッケージ化された、Windows用の最新のバイナリVirtIOドライバーを入手します。

ベアメタルのカスタムISO

ベアメタルのカスタムISO

はじめにVultrには現在、カスタムISOをアップロードしてベアメタルにマウントできるシステムがありません。しかし、これはあなたを止めません

OS ISOをVultrにアップロードするための要件

OS ISOをVultrにアップロードするための要件

Vultrは、幅広いオペレーティングシステムから選択できます。ただし、Kalなどの独自のカスタムオペレーティングシステムISOをアップロードすることもできます。

Windowsサーバーでの時刻の修正

Windowsサーバーでの時刻の修正

デフォルトでは、Windows Server 2012を搭載したVultr VPSのシステム時刻はUTCタイムゾーンに設定されています。タイムゾーンは好きなように変更できますが、変更することもできます。

VultrスタートアップスクリプトによるUbuntu 16の更新の自動化

VultrスタートアップスクリプトによるUbuntu 16の更新の自動化

Ubuntu 16以降では、systemdタイマーを使用して、aptに関連する定期的なタスク(パッケージリストの更新、無人アップグレードの適用など)を実行します。ティ

VPSの監視ソリューション

VPSの監視ソリューション

この記事では、Vultrサーバーで使用できる監視ソリューションの選択について学びます。オペレーティングシステムの選択に応じて、

BGPアナウンスの承認レターの例

BGPアナウンスの承認レターの例

BGPアナウンスの承認を要求する場合は、次のテンプレートを使用してください。承認書[日付]関係者、ティ

Vultrコントロールパネルで逆DNSまたはPTRレコードを作成する方法

Vultrコントロールパネルで逆DNSまたはPTRレコードを作成する方法

VultrリバースDNSの概要インスタンスIPアドレスのPTR、またはリバースDNSレコードを追加するには、以下の手順に従う必要があります。

Nginx + PHP FPM +キャッシング+ MySQLをUbuntu 12.04にインストールします

Nginx + PHP FPM +キャッシング+ MySQLをUbuntu 12.04にインストールします

おそらく多くの人がVultr VPSをWebサーバーとして使用するでしょう。WebサーバーとしてNginxを選択するのが良いでしょう。このトピックでは、私はoを説明します

VPSにセカンダリIPv4アドレスを追加する

VPSにセカンダリIPv4アドレスを追加する

このチュートリアルでは、Vultr VPSで追加のIPv4アドレスを設定する方法について説明します。以下を前提とします。VPSのメインIPアドレスは1.2.3.4です。

RPKI

RPKI

RPKI(Resource Public Key Infrastructure)は、BGPハイジャックの防止に役立つ方法です。暗号署名を使用して、ASNが許可されていることを検証します。

Windows ServerインスタンスでWindowsオーディオを有効にする

Windows ServerインスタンスでWindowsオーディオを有効にする

注:このガイドは、Windows 2012 R2およびWindows 2016インスタンスで機能します。Windowsサーバーでは、デフォルトでWindows Audioサービスが有効になっていません。

Vultr DNSの概要

Vultr DNSの概要

Vultrは、お客様のドメインに無料のDNSホスティングを提供しています。ネームサーバーはAnyCASTネットワーク上にあり、高速DNS解決を保証します。Vultrs DNSを使用するには、

Vultrを使用した仮想サーバーの複製

Vultrを使用した仮想サーバーの複製

場合によっては、たとえば、スケーリングの目的で、またはサーバーのリージョンを変更するために、仮想サーバーのクローンを作成する必要があります。Vultrでは、これは簡単です。

Vultr VPSでCoreOSを実行する

Vultr VPSでCoreOSを実行する

お読みください:Vultrの注文ページでCoreOSが提供されるようになりました-このガイドでは、CoreOSを手動で設定する方法について説明します。これらの手順では、実行を順を追って説明します

Vultrオブジェクトストレージ

Vultrオブジェクトストレージ

S3互換*オブジェクトストレージがVultrクラウドで利用できるようになりました。私たちのオブジェクトストレージテクノロジーは、手頃な価格でスケーラブルで、簡単に統合できます。

シングル・サインオン

シングル・サインオン

企業のログインシステムは、シングルサインオン(SSO)機能を使用してVultrsアカウントシステムと統合できます。SSOはパスワード管理を簡素化します

ドライバー更新のインストール後のWindows VPSの修復

ドライバー更新のインストール後のWindows VPSの修復

Microsoftは最近、Windowsを実行しているVultr VPSインスタンスが正しく起動しないようにするWindows Updateを介してドライバーをリリースしました。これらのドライバーは次のように呼ばれます:

Ubuntu 16.04画像がEC2メタデータサービスに関するエラーを報告する

Ubuntu 16.04画像がEC2メタデータサービスに関するエラーを報告する

起動時に、一部の古いUbuntu 16.04インスタンスで次の警告が表示される場合があります:************************************ **************************************

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

最近、Appleは問題を修正するための補足アップデートであるmacOS Catalina 10.15.4をリリースしましたが、このアップデートにより、Macマシンのブリックにつながる問題がさらに発生しているようです。詳細については、この記事をお読みください

原子力が必ずしも悪ではないことを証明する5つの例

原子力が必ずしも悪ではないことを証明する5つの例

原子力は、過去の出来事のために私たちが決して尊重しないことを常に軽蔑していますが、それは必ずしも悪ではありません。詳細については、投稿をお読みください。

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

これを読んで、人工知能が小規模企業の間でどのように人気を博しているか、そして人工知能がどのように成長し、競合他社に優位に立つ可能性を高めているかを理解してください。

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

私たちのコンピューターは、ジャーナリングファイルシステムと呼ばれる組織化された方法ですべてのデータを保存します。これは、検索を押すとすぐにコンピューターがファイルを検索して表示できるようにする効率的な方法です。https://wethegeek.com/?p = 94116&preview = true

ビッグデータは人工知能をどのように変えていますか?

ビッグデータは人工知能をどのように変えていますか?

ビッグデータと人工知能は流行語ですが、それらがどのように相互に関連しているか知っていますか?さて、この記事を最後まで読んで、同じことを知ってください。

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartは、PHP、jQuery、およびHTML 5で記述された無料のオープンソースのショッピングカートプラットフォームです。シンプルで軽量、使いやすいeコマースソフトウォー

DebianでNFS共有をセットアップする

DebianでNFS共有をセットアップする

NFSはネットワークベースのファイルシステムであり、コンピューターはコンピューターネットワークを介してファイルにアクセスできます。このガイドでは、NFを介してフォルダーを公開する方法について説明します

Fedora 28にMatomo Analyticsをインストールする方法

Fedora 28にMatomo Analyticsをインストールする方法

別のシステムを使用していますか?Matomo(旧Piwik)は、Google Analyticsのオープンな代替手段であるオープンソースの分析プラットフォームです。Matomoのソースはoでホストされています

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

HTTPライブストリーミング(HLS)は、Apple Inc.によって実装された非常に堅牢なストリーミングビデオプロトコルです。HLSは、ファイアウォール、プロキシ、