検索

34.6. MetalLB BGP ピアの設定

download PDF

クラスター管理者は、ボーダーゲートウェイプロトコル (BGP) ピアを追加、変更、および削除できます。MetalLB Operator は、BGP ピアカスタムリソースを使用して、MetalLB speaker Pod が BGP セッションを開始するために接続するピアを識別します。ピアは、MetalLB がサービスに割り当てるロードバランサー IP アドレスのルートアドバタイズメントを受信します。

34.6.1. BGP ピアカスタムリソースについて

次の表で、BGP ピアカスタムリソースのフィールドを説明します。

表34.5 MetalLB BGP ピアカスタムリソース
フィールド説明

metadata.name

string

BGP ピアカスタムリソースの名前を指定します。

metadata.namespace

string

BGP ピアカスタムリソースの namespace を指定します。

spec.myASN

integer

BGP セッションのローカルエンドの Autonomous System 番号を指定します。追加するすべての BGP ピアカスタムリソースに同じ値を指定します。範囲は 0 から 4294967295 です。

spec.peerASN

integer

BGP セッションのリモートエンドの Autonomous System 番号を指定します。範囲は 0 から 4294967295 です。

spec.peerAddress

string

BGP セッションを確立するために接続するピアの IP アドレスを指定します。

spec.sourceAddress

string

オプション: BGP セッションの確立時に使用する IP アドレスを指定します。値は IPv4 アドレスである必要があります。

spec.peerPort

integer

オプション: BGP セッションを確立するために接続するピアのネットワークポートを指定します。範囲は 0 から 16384 です。

spec.holdTime

string

オプション: BGP ピアに提案するホールドタイムの期間を指定します。最小値は 3 秒 (3s) です。一般的には、3s1m および 5m30s など、秒および分単位で指定します。パス障害をより迅速に検出するには、BFD も設定します。

spec.keepaliveTime

string

オプション: キープアライブメッセージを BGP ピアに送信する間の最大間隔を指定します。このフィールドを指定する場合は、holdTime フィールドの値も指定する必要があります。指定する値は、holdTime フィールドの値よりも小さくする必要があります。

spec.routerID

string

オプション: BGP ピアにアドバタイズするルーター ID を指定します。このフィールドを指定する場合は、追加するすべての BGP ピアカスタムリソースに同じ値を指定する必要があります。

spec.password

string

オプション: TCP MD5 認証が済んだ BGP セッションを実施するルーターのピアに送信する MD5 パスワードを指定します。

spec.passwordSecret

string

オプション: BGP ピアの認証シークレットの名前を指定します。シークレットは metallb namespace に存在し、basic-auth タイプである必要があります。

spec.bfdProfile

string

オプション: BFD プロファイルの名前を指定します。

spec.nodeSelectors

object[]

オプション: 一致式と一致ラベルを使用してセレクターを指定し、BGP ピアに接続できるノードを制御します。

spec.ebgpMultiHop

boolean

オプション: BGP ピアがネットワークホップ数回分を離れるように指定します。BGP ピアが同じネットワークに直接接続されていない場合には、このフィールドがtrueに設定されていないと、speaker は BGP セッションを確立できません。このフィールドは外部 BGPに適用されます。外部 BGP は、BGP ピアが別の Autonomous System に属する場合に使用される用語です。

注記

passwordSecret フィールドは、password フィールドと相互に排他的であり、使用するパスワードを含むシークレットへの参照が含まれています。両方のフィールドを設定すると、解析が失敗します。

34.6.2. BGP ピアの設定

クラスター管理者は、BGP ピアカスタムリソースを追加して、ネットワークルーターとルーティング情報を交換し、サービスの IP アドレスをアドバタイズできます。

前提条件

  • OpenShift CLI (oc) がインストールされている。
  • cluster-admin 権限を持つユーザーとしてログインしている。
  • BGP アドバタイズメントを使用して MetalLB を設定します。

手順

  1. 以下の例のような内容で、bgppeer.yaml などのファイルを作成します。

    apiVersion: metallb.io/v1beta2
    kind: BGPPeer
    metadata:
      namespace: metallb-system
      name: doc-example-peer
    spec:
      peerAddress: 10.0.0.1
      peerASN: 64501
      myASN: 64500
      routerID: 10.10.10.10
  2. BGP ピアの設定を適用します。

    $ oc apply -f bgppeer.yaml

34.6.3. 指定されたアドレスプールに対して特定の BGP ピアセットを設定

これは、以下を実行するための手順です。

  • アドレスプールのセット (pool1 および pool2) を設定します。
  • BGP ピアセット (peer1 および peer2) を設定します。
  • pool1peer1 に、pool2peer2 に割り当てるように BGP アドバタイズメントを設定します。

前提条件

  • OpenShift CLI (oc) がインストールされている。
  • cluster-admin 権限を持つユーザーとしてログインしている。

手順

  1. アドレスプール pool1 を作成します。

    1. 以下の例のような内容で、ipaddresspool1.yaml などのファイルを作成します。

      apiVersion: metallb.io/v1beta1
      kind: IPAddressPool
      metadata:
        namespace: metallb-system
        name: pool1
      spec:
        addresses:
          - 4.4.4.100-4.4.4.200
          - 2001:100:4::200-2001:100:4::400
    2. IP アドレスプール pool1 の設定を適用します。

      $ oc apply -f ipaddresspool1.yaml
  2. アドレスプール pool2 を作成します。

    1. 以下の例のような内容で、ipaddresspool2.yaml などのファイルを作成します。

      apiVersion: metallb.io/v1beta1
      kind: IPAddressPool
      metadata:
        namespace: metallb-system
        name: pool2
      spec:
        addresses:
          - 5.5.5.100-5.5.5.200
          - 2001:100:5::200-2001:100:5::400
    2. IP アドレスプール pool2 の設定を適用します。

      $ oc apply -f ipaddresspool2.yaml
  3. BGP peer1 を作成します。

    1. 以下の例のような内容で、bgppeer1.yaml などのファイルを作成します。

      apiVersion: metallb.io/v1beta2
      kind: BGPPeer
      metadata:
        namespace: metallb-system
        name: peer1
      spec:
        peerAddress: 10.0.0.1
        peerASN: 64501
        myASN: 64500
        routerID: 10.10.10.10
    2. BGP ピアの設定を適用します。

      $ oc apply -f bgppeer1.yaml
  4. BGP peer2 を作成します。

    1. 以下の例のような内容で、bgppeer2.yaml などのファイルを作成します。

      apiVersion: metallb.io/v1beta2
      kind: BGPPeer
      metadata:
        namespace: metallb-system
        name: peer2
      spec:
        peerAddress: 10.0.0.2
        peerASN: 64501
        myASN: 64500
        routerID: 10.10.10.10
    2. BGP peer2 の設定を適用します。

      $ oc apply -f bgppeer2.yaml
  5. BGP advertisement 1 を作成します。

    1. 以下の例のような内容で、bgpadvertisement1.yaml などのファイルを作成します。

      apiVersion: metallb.io/v1beta1
      kind: BGPAdvertisement
      metadata:
        name: bgpadvertisement-1
        namespace: metallb-system
      spec:
        ipAddressPools:
          - pool1
        peers:
          - peer1
        communities:
          - 65535:65282
        aggregationLength: 32
        aggregationLengthV6: 128
        localPref: 100
    2. 設定を適用します。

      $ oc apply -f bgpadvertisement1.yaml
  6. BGP advertisement 2 を作成します。

    1. 以下の例のような内容で、bgpadvertisement2.yaml などのファイルを作成します。

      apiVersion: metallb.io/v1beta1
      kind: BGPAdvertisement
      metadata:
        name: bgpadvertisement-2
        namespace: metallb-system
      spec:
        ipAddressPools:
          - pool2
        peers:
          - peer2
        communities:
          - 65535:65282
        aggregationLength: 32
        aggregationLengthV6: 128
        localPref: 100
    2. 設定を適用します。

      $ oc apply -f bgpadvertisement2.yaml

34.6.4. BGP ピア設定の例

34.6.4.1. 例: BGP ピアに接続するノードの制限

ノードセレクターフィールドを指定して、BGP ピアに接続できるノードを制御できます。

apiVersion: metallb.io/v1beta2
kind: BGPPeer
metadata:
  name: doc-example-nodesel
  namespace: metallb-system
spec:
  peerAddress: 10.0.20.1
  peerASN: 64501
  myASN: 64500
  nodeSelectors:
  - matchExpressions:
    - key: kubernetes.io/hostname
      operator: In
      values: [compute-1.example.com, compute-2.example.com]

34.6.4.2. 例: BGP ピアの BFD プロファイル指定

BGP ピアに関連付ける BFD プロファイルを指定できます。BFD は、BGP のみの場合よりも、ピア間の通信障害をより迅速に検出して、BGP を補完します。

apiVersion: metallb.io/v1beta2
kind: BGPPeer
metadata:
  name: doc-example-peer-bfd
  namespace: metallb-system
spec:
  peerAddress: 10.0.20.1
  peerASN: 64501
  myASN: 64500
  holdTime: "10s"
  bfdProfile: doc-example-bfd-profile-full
注記

双方向転送検出 (BFD) プロファイルを削除し、ボーダーゲートウェイプロトコル (BGP) ピアリソースに追加された bfdProfile を削除しても、BFD は無効になりません。代わりに、BGP ピアはデフォルトの BFD プロファイルの使用を開始します。BGP ピアリソースから BFD をディセーブルにするには、BGP ピア設定を削除し、BFD プロファイルなしで再作成します。詳細は、BZ#2050824 を参照してください。

34.6.4.3. 例: デュアルスタックネットワーク用の BGP ピア指定

デュアルスタックネットワーキングをサポートするには、IPv4 用に BGP ピアカスタムリソース 1 つと IPv6 用に BGP ピアカスタムリソースを 1 つ追加します。

apiVersion: metallb.io/v1beta2
kind: BGPPeer
metadata:
  name: doc-example-dual-stack-ipv4
  namespace: metallb-system
spec:
  peerAddress: 10.0.20.1
  peerASN: 64500
  myASN: 64500
---
apiVersion: metallb.io/v1beta2
kind: BGPPeer
metadata:
  name: doc-example-dual-stack-ipv6
  namespace: metallb-system
spec:
  peerAddress: 2620:52:0:88::104
  peerASN: 64500
  myASN: 64500

34.6.5. 次のステップ

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.