エクイニクスメタル上のBGP
Equinix Metal™は、お客様のEquinix Metalサーバーへの経路を広告するためのBGP(Border Gateway Protocol)をサポートしています。IPv4アドレスとIPv6アドレスの両方を広告するルーティングをサポートしています。このドキュメントでは、Equinix MetalでのBGPの使用方法について説明します。
ステップ1.プロジェクトでBGPを有効にする
最初のステップは、プロジェクトでBGPを有効にすることで、BGPセッションとBGPセッショントラッキングを有効にします。プロジェクトでBGPを有効にする場合、ローカルBGPとグローバルBGPのどちらかを選択します。
ローカルBGPとグローバルBGP
ローカルBGPを使用する最大のユースケースは、サーバーの集合間でフェイルオーバーまたはIPアドレスモビリティを実行することです。エクイニクスメタルプロジェクトで利用可能なIPアドレスの中から1つを選択し、BGPを使用してお客様のサーバーの1つからアナウンスします。ローカルBGPの設定方法については、「ローカルBGPの使用」(local-bgp.mdx)のページを参照してください。
グローバルBGPは、お客様が所有するサブネットから独自のIPアドレスをEquinix Metalに広告するためのものです。このためには、登録済みのASNとIPアドレススペースが必要です。グローバルBGPの設定と構成方法の詳細については、BYOIP Using Global BGPページを参照してください。
注意: BYOIPでローカルBGPも使いたい場合は、グローバルBGPを有効にします。グローバルBGPを選択し、パブリックASを使用する場合、ローカルBGPで内部クラスタリング用のプライベートIPをアナウンスするためにBGPセッションを使用することもできます。
ステップ2.BGPセッションを開始する
ホストとアップストリームルーターのBGPセッションを作成します。
ルーティングの概要
エクイニクスのメタルルーターは、お客様が広告しているルートを学習し、お客様のサーバーに適切にトラフィックを送信します。
エクイニクスメタルは、BGPテーブルをすべてお客様に広告することをサポートしていないため、ルーターがお客様にルートをエクスポートすることはありません。お客様がアナウンスした経路のみを学習し、上流にプッシュします。
BGPセッションはプライベートIPv4 10.x.x.x管理ネットワークを通じて管理されます。ネットワークと割り当てられたIPアドレスがサーバー上に存在することがBGPの要件です。
ピアリングは2台のトップ・オブ・ラック・ルーターで設定します。IPv4ピアリングの場合、ルーターIDはローカル169.254.255.1/32と169.254.255.2/32アドレスになります。IPv6ピアリングの場合、ルーターIDはfc00::e/128とfc00::f/128アドレスになります。これらはホストに直接接続されていないので、セッションのプライベートIPv4ゲートウェイアドレスに戻るBGPマルチホップを設定する必要があるかもしれません。
最も重要なことは、BGPを有効にした後、サーバーのメタデータ・エンドポイントからサーバー固有の必要なルーティング情報をすべて利用できることです。
ステップ3.ホスト上でBGPを設定する
ホスト上でBGPを設定すると、IPアドレスがアナウンスされ、BGPルートが確立されます。
BGPの設定を完了するには、まずサーバーのネットワークインターフェースにIPアドレスを追加し、BIRD、FRR、ExaBGPなどのBGPを使用するルーティングクライアントをサーバーに設定する必要があります。ルーティングクライアントは、エクイニクスのアップストリームルーターへのBGPセッションでIPアドレスのアナウンスを制御します。
ホスト・ネットワーク・インターフェースの更新
/etc/network/interfacesのループバックインターフェースにアナウンスするIPアドレスを追加します。アドレスの例は198.51.100.2です。
cat >>/etc/network/interfaces <<EOF
auto lo:0
iface lo:0 inet static
address 198.51.100.2
netmask 255.255.255.255
EOF
そして、ループバックインターフェースを立ち上げる。
ifup lo:0
BGPメタデータ
BGPの設定に必要な情報は、プロジェクトの両方でBGPを有効にし、BGPセッションを開始すると、Equinix Metalのmetadata serviceから入手できます。
サーバーに SSH 接続し、curl メタデータエンドポイントに接続します。
- IPv4 Sessions
- IPv6 Sessions
curl https://metadata.platformequinix.com/metadata | jq '.bgp_neighbors[0] | { customer_ip: .customer_ip, customer_as: .customer_as, multihop: .multihop, peer_ips: .peer_ips, peer_as: .peer_as }'
応答として、IPv4アドレスをアナウンスするセッションのために、そのサーバー固有のBGP情報を持つオブジェクトを取得します。
{
"customer_ip": "10.67.50.3",
"customer_as": 65000,
"multihop": true,
"peer_ips": [
"169.254.255.1",
"169.254.255.2"
],
"peer_as": 65530
}
また、スタティックルートのネクストホップまたはマルチホップ設定用にゲートウェイIPアドレスが必要な場合もあります。
curl https://metadata.platformequinix.com/metadata | jq -r '.network.addresses[] | select(.public == false and .address_family == 4) | { gateway: .gateway }'
これに対して、サーバーのプライベートIPv4ゲートウェイアドレスを取得する。
{
"gateway": "10.67.50.2"
}
curl https://metadata.platformequinix.com/metadata | jq '.bgp_neighbors[1] | { customer_ip: .customer_ip, customer_as: .customer_as, multihop: .multihop, peer_ips: .peer_ips, peer_as: .peer_as }'
応答として、IPv6アドレスをアナウンスするセッションのために、そのサーバー固有のBGP情報を持つオブジェクトを取得します。
{
"customer_ip": "2001:DB8:1001:100::5",
"customer_as": 65000,
"multihop": true,
"peer_ips": [
"fc00:0000:0000:0000:0000:0000:0000:000e",
"fc00:0000:0000:0000:0000:0000:0000:000f"
],
"peer_as": 65530
}
また、スタティックルートのネクストホップまたはマルチホップ設定用にゲートウェイIPアドレスが必要な場合もあります。
curl https://metadata.platformequinix.com/metadata | jq -r '.network.addresses[] | select(.public == false and .address_family == 4) | { gateway: .gateway }'
これに対して、サーバーのプライベートIPv4ゲートウェイアドレスを取得する。
{
"gateway": "10.67.50.2"
}
"customer_ip"- The management private IPv4 address of the server."customer_as"- The ASN of the session. If you are using Local BGP, the ASN will be the local-to-Equinix-Metal65000. If you are using Global BGP, the ASN will be your ASN."multihop"- If true, then you will need to include a multihop parameter along with static routing information in your BGP configuration."peer_ips"- An array that contains the peering IP addresses of Equinix Metal's upstream routers, these are the neighbors."peer_as"- The local ASN of the neighbor(s). On Equinix Metal, this will always be65530. This AS is stripped on export to our global peering/transit providers."gateway"- Optional information if you need to set up a static route to the upstream routers.
このメタデータがどのように使用されるかについては、Route BGP with BIRD および Route BGP with FRR を参照してください。
構成例
- IPv4 Sessions
- IPv6 Sessions
router bgp 65000
bgp router-id 10.66.7.1
neighbor 169.254.255.1 remote-as 65530
neighbor 169.254.255.1 description "Equinix Metal IPv4 BGP Peering"
neighbor 169.254.255.1 timers 5 15
neighbor 169.254.255.1 soft-reconfiguration inbound
neighbor 169.254.255.2 remote-as 65530
neighbor 169.254.255.2 description "Equinix Metal IPv4 BGP Peering"
neighbor 169.254.255.2 timers 5 15
neighbor 169.254.255.2 soft-reconfiguration inbound
!
address-family ipv4
network 147.75.69.232/31
neighbor 169.254.255.1 activate
neighbor 169.254.255.2 activate
exit-address-family
router bgp 65000
bgp router-id 10.66.7.1
neighbor 2604:1380:4091:4f00::1 remote-as 65530
neighbor 2604:1380:4091:4f00::1 description "Equinix Metal IPv6 BGP Peering"
neighbor 2604:1380:4091:4f00::1 timers 5 15
neighbor 2604:1380:4091:4f00::1 soft-reconfiguration inbound
neighbor 2604:1380:4091:4f00::2 remote-as 65530
neighbor 2604:1380:4091:4f00::2 description "Equinix Metal IPv6 BGP Peering"
neighbor 2604:1380:4091:4f00::2 timers 5 15
neighbor 2604:1380:4091:4f00::2 soft-reconfiguration inbound
!
address-family ipv6
network 2604:1380:4091:4f01::/64
neighbor 2604:1380:4091:4f00::1 activate
neighbor 2604:1380:4091:4f00::2 activate
exit-address-family
BGPプレフィックス制限
エクイニクスメタルは、1ネイバーあたり10プレフィックスというプレフィックス制限を実施しています。
制限を超えた場合は、サポートチケット (または電子メール support@equinixmetal.com) を開き、BGP セッションをリセットする必要があります。この制限を増やす必要がある場合は、サポートに連絡することもできます。