フィリピンの新拠点(POP201)へメンテナンスに行きました

正会員の吉川と伍藤です。 2024年11月16日から19日にかけて今年7月に新設したフィリピンの拠点であるPOP201へメンテナンスに行きました。 メンテナンスに行くことになった経緯と新たに追加した設定について紹介します。

フィリピンへ行くことになった経緯

以前のブログ 「POP201(フィリピン・マニラ)のコンソールサーバを構築しました」 でも紹介した通り、POP201ではDIA (Direct Internet Access) にてインターネットに接続しています。DIAとは専用回線を使ってインターネットに直接接続するサービスのことです。通常のインターネット接続(家庭用の光回線など)とは異なり、専用の帯域が保証され、アップロードとダウンロードの速度が対称的で、高い信頼性が求められる環境で使われます。 このDIAの障害に備え、データセンタのWiFiを利用したコンソールサーバを設置し、データセンター側ネットワークに障害が発生した場合でもコンソール接続が可能となるような設計をしています。

しかし、WiFiのメンテナンス期間中に管理ネットワークのルータにおいて以下のような誤った経路設定を行ったことでPOP201の機材へログインできなくなり、コンソール接続もできなくなる事態が発生しました。

[edit groups MRT routing-options rib inet.0]
+     static {
+         route 0.0.0.0/0 next-hop X.X.X.X;
+     }

現地での対応

POP201現地では、誤った設定をロールバックし、新たに複数の設定を追加しました。 特に、人が気をつけなければならない運用にならないよう複数の冗長性を確保し、再び同じ事態を起こさないように、以下のような設定を追加しました。

  • コンソールサーバにUSB LTEモデムを追加し、コンソールサーバへ接続できる新たな通信路を用意しました。
  • バックボーンルータの設定を変更し、管理ネットワークの障害時にはバックボーンルータ経由でコンソールサーバにログインできるようにしました。我々の利用する特定のIPアドレスからはSSHの踏み台として利用できるようにしています。
  • 障害発生時にWireguardの接続先を切り替える従来の仕組みではなく、常時全ての通信路でそれぞれWireguardで接続する仕組みに変更しました。
POP201コンソールサーバのWireguard

従来は、定期的に大阪側のサーバに対してpingを送信して障害の起きていない回線を選択するスクリプトを作成し、DIAの障害時はWiFiへ、WiFiの障害時はDIAへとコンソールサーバの利用する回線は自動で切り替わるように設定していました。 今回の変更により、上図のようにWiFiとLTEの2つの通信路をアンダーレイとして、管理ネットワークに接続するためにWireGuradのピアを張っています。 このようにすることで、どちらか片方の通信路に障害が発生しても、もう片方の通信路からPOP201に接続できるようになっています。 従来は、利用されていない回線についてはping監視を行えませんでしたが、この変更により、常時両方の回線に対してping監視を行うことができるようになりました。

以下はnetplanの設定の抜粋です。

network:
    version: 2
    wifis:
        wlp2s0:  # ワイヤレスインターフェースの設定
            access-points:
                "---":
                    password: "---"
            routes:
            -   to: 203.0.113.1 # 大阪側サーバへの経路は、通常はWiFiを利用するようにします。
                via: ---

    ethernets:
        usb0:  # 新たに追加したUSB LTEモデムの設定
            match:
              driver: rndis_host # USB LTEモデムのMACアドレスが頻繁に変わり、インターフェース名も変わるため、ドライバー名でインターフェース名を固定します。
            set-name: usb0 # usb0というインターフェース名で認識されるようにします。
            routes:
            -   to: 203.0.113.1 # 大阪側サーバへの経路を、別のテーブルに設定します。
                via: 198.51.100.1
                table: 300  # ルートをtable 300に設定
  tunnels:
    wg0:
      mode: wireguard
      key: ---
      addresses: [ --- ]  # wg0につけるIPアドレス
      peers:
        - allowed-ips: [---]
          endpoint: 203.0.113.1:10000
          keys:
            public: ---
    wg1:
      mode: wireguard
      key: ---
      addresses: [ --- ]  # wg1につけるIPアドレス
      peers:
        - allowed-ips: [---]
          endpoint: 203.0.113.1:10001
          keys:
            public: ---
    ethernets:
        enp1s0:
        enp3s0:
    vlans:
        vlan.900:
            id: 900
            link: enp3s0
        vlan.100:
            id: 100
            link: enp3s0
    bridges:
        br-mgmt:
            interfaces:
            -   enp1s0
            addresses:
            - ---
            routes:
            -   to: 0.0.0.0/0
                via: ---
        br-servers:
            interfaces:
            -   vlan.100
            addresses:
            -   ---
            routing-policy:
            -   from: ---
                table: 600
            routes:
            -   to: 0.0.0.0/0
                via: ---
                table: 600
        br-dia:
            interfaces:
            -   vlan.900

なお、この設定とは別に、以下のようにしてLinuxのPolicy Based Routingを設定して、宛先ポートを元にusb0インターフェースへと経路を振り分ける設定を行います。 300番テーブルを利用するルールを作成すれば、usb0インターフェースを利用して大阪側サーバへ接続することになります。

ip rule add to 203.0.113.1 dport 10001 table 300

以上の変更により、管理ネットワークの障害・WiFiの障害・LTEの障害・バックボーンネットワークの障害について、任意の二つの障害が同時に発生してもコンソールサーバへのアクセスを保てるようになりました。

POP201への訪問

POP201はDigital Edge NARRA1に構築しています。データセンターへは車を出していただきました。メンテナンスにご協力いただいた皆様へこの場を借りて御礼申し上げます。今回会員2人だけでの訪問になったため、移動から入館まですべて英語でコミュニケーションを取る必要がありました。英語が公用語の国であるためイントネーションを掴むのに若干苦労しましたが、問題なくオペレーションを進めることができました。POP201は新設以降徐々にピアリング先を増やし、現在9ASとバイラテラルピアリングをさせていただいています。先日参加したAsia Peering Forum 2024でピアリングさせていただいたASもあり、今後もピアリングの機会をいただけるよう活動を続けていきます。

POP201への訪問の様子

最後に

今回はPOP201新設以降初めて現地へメンテナンスに行きました。現地では滞在中に台風が直撃したり、訪問後二人とも体調を崩したりといったトラブルもありながら、ミッションを達成することができました。吉川はマニラ初訪問でしたが、現地を楽しむことができました。 今後も注意しつつ海外拠点の運用を続けていこうと思います。