Mengonfigurasi interkoneksi multi-zona

Halaman ini menjelaskan konfigurasi yang diperlukan yang harus Anda lakukan di zona yang ada pada deployment multi-zona saat zona baru bergabung dengan deployment. Konfigurasi ini memungkinkan Anda membuat koneksi ke zona baru.

1. Sebelum memulai

Anda harus memiliki hal berikut untuk mengonfigurasi interkoneksi multi-zona di Google Distributed Cloud (GDC) air gap:

  • File kubeconfig yang dihasilkan dan variabel lingkungan. Untuk mengetahui detailnya, lihat buku pedoman IAM-R0004.
  • Operator Infrastruktur (IO) dengan akses sementara ke cluster admin root. Untuk mengetahui detailnya, lihat buku pedoman IAM-R0005.

2. Mengonfigurasi interkoneksi multi-zona

  1. Konfigurasi resource MultiZoneNetworkConfig di setiap zona deployment multi-zona:

    1. Temukan cluster yang benar untuk berinteraksi. Jika cluster admin root sedang berjalan, gunakan kubeconfig untuk cluster admin root. Jika tidak, gunakan kubeconfig untuk cluster bootstrap kind. Untuk mengetahui detailnya, lihat buku pedoman IAM-R0004. Isi jalur kubeconfig di sini:

      KUBECONFIG=KUBECONFIG_PATH
      
    2. Buat file YAML bernama multizone_network_config.yaml.

    3. Tambahkan teks berikut ke file:

      apiVersion: system.private.gdc.goog/v1alpha1
      kind: MultiZoneNetworkConfig
      metadata:
        name: multizone-network-config
        namespace: gpc-system
      spec:
        carrierType: CARRIER_TYPE
        zones:
          - zoneID: ZONE_1_ID
            asn: ZONE_1_ASN
            externalSubnets:
              - METERING_SUBNET_1
          - zoneID: ZONE_2_ID
            asn: ZONE_2_ASN
            externalSubnets:
              - METERING_SUBNET_2
        ports:
          - port: PORT_1
          - port: PORT_2
        portSetting:
          mtu: MTU
      

      Ganti kode berikut:

      • CARRIER_TYPE: Jenis operator backbone multi-zona. Harus berupa L2 atau L3.

      • ZONE_1_ID: ID zona pertama di region GDC.

      • ZONE_1_ASN: Nomor sistem otonom (ASN) BGP dari jaringan data zona pertama di region GDC.

      • METERING_SUBNET_1: Subnet yang diukur dari zona ini. Kolom ini harus diisi dengan subnet dari resource zone-infra-cidr CIDRClaim di cluster admin root zona terkait. Kolom ini hanya untuk tujuan pengukuran dan tidak memengaruhi pengendalian pengumuman subnet. Anda harus menyinkronkan kolom ini dengan subnet sebenarnya yang diiklankan. Jika kolom ini tidak ditentukan, tidak ada traffic yang diukur untuk zona ini.

      • ZONE_2_ID: ID zona kedua di region GDC.

      • ZONE_2_ASN: ASN BGP jaringan data zona kedua di region GDC.

      • METERING_SUBNET_2: Subnet yang diukur dari zona ini. Kolom ini harus diisi dengan subnet dari resource zone-infra-cidr CIDRClaim di cluster admin root zona terkait. Kolom ini hanya untuk tujuan pengukuran dan tidak memengaruhi pengendalian pengumuman subnet. Anda harus menyinkronkan kolom ini dengan subnet sebenarnya yang diiklankan. Jika kolom ini tidak ditentukan, tidak ada traffic yang diukur untuk zona ini.

      • PORT_1: Port pertama yang berpartisipasi dalam interkoneksi multi-zona. Lihat Mengonfigurasi Port untuk mengetahui informasi selengkapnya.

      • PORT_2: Port kedua yang berpartisipasi dalam interkoneksi multi-zona . Lihat Mengonfigurasi Port untuk mengetahui informasi selengkapnya.

      • MTU: Nilai MTU yang diterapkan ke semua port. Jika tidak ditentukan, nilai defaultnya adalah 9216.

      Lihat Contoh konfigurasi multi-zona untuk contoh deployment umum.

    4. Terapkan file multizone_network_config.yaml ke cluster:

      kubectl apply -f multizone_network_config.yaml --kubeconfig=KUBECONFIG_PATH
      
    5. Verifikasi bahwa pembuatan resource MultiZonetNetworkConfig berhasil:

      kubectl get multizonenetworkconfig -n gpc-system --kubeconfig=KUBECONFIG_PATH
      

      Contoh berikut menunjukkan output dengan link interkoneksi:

      NAME                       AGE   READY
      multizone-network-config   26h   True
      
    6. Opsional: Periksa resource MultiZoneNetworkPeeringConfig untuk mengetahui konfigurasi dan status BGP Interconnect.

      Konfigurasi BGP sebenarnya ditetapkan oleh rekonsiliator jaringan dan disimpan dalam resource MultiZoneNetworkPeeringConfig. Setiap resource MultiZoneNetworkPeeringConfig mewakili semua konfigurasi BGP dari satu zona ke zona lainnya. Contoh:

      • Resource MultiZoneNetworkPeeringConfig bernama zone-1-zone-2-peering-config mungkin terlihat seperti berikut:
      apiVersion: system.private.gdc.goog/v1alpha1
      kind: MultiZoneNetworkPeeringConfig
      metadata:
        name: zone-1-zone-2-peering-config
        namespace: gpc-system
      spec: ...
      status:
        borderLeafSwitches:
        - blswID: 1
          blswName: aa-aa-blsw01
          evpnBGPSessions:
          - bgpSessionConfig:
              addressFamily: EVPN
              bfdConfig:
                bfdMode: MultiHopBFD
              localASN: 65501
              localIP: 192.168.201.65/32
              md5SecretRef:
                name: zone-1-blsw-1-zone-2-blsw-1-evpn-bgp-password
                namespace: gpc-system
              peerASN: 65502
              peerIP: 192.168.202.65
              sourceInterface: loopback2
            bgpSessionStatus:
              prefixCounters:
                received: 4
                sent: 23
              sessionStatus: Up
              uptime: P6DT20H26M59S
          ipv4BGPSessions:
          - bgpSessionConfig:
              addressFamily: IPv4
              bfdConfig:
                bfdMode: PlainBFD
              localASN: 65501
              localIP: 192.168.208.0/31
              md5SecretRef:
                name: zone-1-blsw-1-zone-2-blsw-1-ipv4-bgp-password
                namespace: gpc-system
              peerASN: 65502
              peerIP: 192.168.208.1
            bgpSessionStatus:
              prefixCounters:
                received: 11
                sent: 11
              sessionStatus: Up
              uptime: P6DT20H27M1S
            port:
              port: 6
      

      Status contoh ini berisi semua konfigurasi sesi BGP dan status sesi BGP dari zona satu ke zona dua.

      • Untuk mode operator L3, resource MultiZoneNetworkPeeringConfig bernama zone-1-ipv4-peering-config yang merepresentasikan semua sesi BGP IPv4 dari satu zona ke operator L3 mungkin terlihat seperti berikut:
      apiVersion: system.private.gdc.goog/v1alpha1
      kind: MultiZoneNetworkPeeringConfig
      metadata:
        name: zone-1-ipv4-peering-config
        namespace: gpc-system
      spec: ...
      status:
        borderLeafSwitches:
        - blswID: 1
          blswName: aa-aa-blsw01
          ipv4BGPSessions:
          - bgpSessionConfig:
              addressFamily: IPv4
              bfdConfig:
                bfdMode: PlainBFD
              localASN: 65501
              localIP: 192.168.208.0/31
              md5SecretRef:
                name: zone-1-blsw-1-port-6-ipv4-bgp-password
                namespace: gpc-system
              peerASN: 65502
              peerIP: 192.168.208.1
            bgpSessionStatus:
              prefixCounters:
                received: 11
                sent: 11
              sessionStatus: Up
              uptime: P6DT20H27M1S
            port:
              port: 6
      

2.1. Mengonfigurasi port

Konfigurasi ports bergantung pada jenis operator. Ikuti aturan berikut saat menyetel ports:

  • Jika jenis operator adalah L2, Anda harus menentukan port n di Spec.Ports, dengan n sama dengan jumlah zona dikalikan dua. Port pertama harus terhubung ke switch leaf border pertama (diurutkan berdasarkan nama switch) dari zona tetangga pertama (diurutkan berdasarkan ID zona). Port kedua harus terhubung ke switch leaf border kedua dari zona tetangga pertama. Port ketiga terhubung ke switch leaf batas pertama zona tetangga kedua. Koneksi lebih lanjut mengikuti pola ini. Lihat deployment operator L2 untuk ilustrasi.

  • Jika jenis operatornya adalah L3, Anda harus menentukan dua port di Spec.Ports. Kedua switch leaf batas di zona saat ini harus menggunakan port pertama untuk terhubung secara terpisah ke perangkat edge penyedia pertama, dan harus menggunakan port kedua untuk terhubung secara terpisah ke perangkat edge penyedia kedua. Lihat deployment operator L3 untuk mengetahui detail selengkapnya.

2.2. Contoh konfigurasi multi-zona

Bagian ini berisi contoh deployment umum.

2.2.1. Deployment operator L2

Deployment ini memiliki konfigurasi berikut:

  • Tiga zona dengan ASN 65501, 65502, 65503
  • Operator L2
  • Koneksi logis untuk deployment ini ditampilkan dalam diagram ini:

    multizone-pnet-l2-carrier-topology

Berikut adalah contoh file YAML MultiZoneNetworkConfig:

apiVersion: system.private.gdc.goog/v1alpha1
kind: MultiZoneNetworkConfig
metadata:
  name: multizone-network-config
  namespace: gpc-system
spec:
  carrierType: L2
  zones:
    - zoneID: 1
      asn: 65501
    - zoneID: 2
      asn: 65502
    - zoneID: 3
      asn: 65503
  ports:
    - port: 10
    - port: 11
    - port: 12
    - port: 13

2.2.2. Deployment operator L3

Deployment ini memiliki konfigurasi berikut:

  • Tiga zona dengan ASN 65501, 65502, 65503
  • Operator L3
  • Koneksi logis untuk deployment ini ditampilkan dalam diagram ini:

    multizone-pnet-l3-carrier-topology

Berikut adalah contoh file YAML MultiZoneNetworkConfig:

  apiVersion: system.private.gdc.goog/v1alpha1
  kind: MultiZoneNetworkConfig
  metadata:
    name: multizone-network-config
    namespace: gpc-system
  spec:
    carrierType: L3
    zones:
      - zoneID: 1
        asn: 65501
        carrierASN: 60010
      - zoneID: 2
        asn: 65502
        carrierASN: 60010
      - zoneID: 3
        asn: 65503
        carrierASN: 60010
    ports:
      - port: 10
      - port: 11

2.3. Opsional: Mengonfigurasi autentikasi BFD multi-zona

Deteksi Penerusan Dua Arah (BFD) dikonfigurasi di semua sesi IPv4 dan EVPN multi-zona. Secara default, BFD biasa hop tunggal dikonfigurasi. Ikuti petunjuk di bagian ini untuk men-deploy BFD multi-hop dengan autentikasi:

  1. Aktifkan autentikasi Deteksi Penerusan Dua Arah (BFD) untuk sesi BGP EVPN multi-zona. Untuk membuat dan mengaktifkan sesi BFD, pastikan sesi BGP yang dipasangkan di kedua zona dikonfigurasi dengan ID kunci autentikasi BFD dan string kunci yang sama:

    1. Tentukan jenis kunci. Sebaiknya jalankan perintah ini di mesin bootstrapper. Gunakan minimal SHA-1 untuk kunci demi tujuan keamanan. Gunakan kunci yang lebih aman untuk konfigurasi Anda jika diperlukan:

      export KEY_TYPE=SHA1
      
    2. Tetapkan ID kunci dan string kunci. ID kunci harus unik di antara sesi interkoneksi yang dipasangkan di seluruh zona. Tentukan ID kunci yang tidak digunakan dan tetapkan ke variabel:

      export KEY_ID=1
      
    3. Buat kunci autentikasi SHA-1 menggunakan chronyc keygen:

      CHRONY_OUTPUT=$(chronyc keygen ${KEY_ID:?} ${KEY_TYPE:?})
      

      Contoh output:

      echo $CHRONY_OUTPUT
      1 SHA1 HEX:887F1B88085BD0BDE4458EA7C2C4393C50A498EF
      
    4. Ekstrak kunci autentikasi dan verifikasi:

      export KEY_STR=$(echo ${CHRONY_OUTPUT:?} | awk '{ split($3,key,":"); print key[2]}')
      
      echo $KEY_STR
      887F1B88085BD0BDE4458EA7C2C4393C50A498EF
      
    5. Terapkan informasi autentikasi BFD ke sesi interkoneksi yang dipilih:

      kubectl --kubeconfig=KUBECONFIG_PATH patch secret zone-LOCAL_ZONE_ID-blsw-LOCAL_BLSW_ID-zone-REMOTE_ZONE_ID-blsw-REMOTE_BLSWID-bfd-auth-key -n gpc-system -p='{
        "stringData": {
          "bfdKeyID": "'"${KEY_ID}"'",
          "bfdKeyValue": "'"${KEY_STR}"'"
        }
      }'
      
    6. Pastikan sesi BFD sedang berjalan:

      switch# show bfd neighbors vrf default
      
    7. Pastikan kolom State menampilkan nilai Up, dan kolom Type adalah SH atau MH:

      OurAddr         NeighAddr       LD/RD                 RH/RS           Holdown(mult)     State       Int                   Vrf                              Type     BSID
      192.168.208.31  192.168.208.30  1090519041/1090519042 Up              5237(3)           Up          Eth1/11               default                          SH       N/A
      192.168.208.91  192.168.208.90  1090519042/1090519042 Up              5624(3)           Up          Eth1/12               default                          SH       N/A
      192.168.202.66  192.168.201.65  1090519071/1090519060 Up              629(3)            Up          Lo2                   default                          MH       N/A
      192.168.202.66  192.168.201.66  1090519072/1090519061 Up              545(3)            Up          Lo2                   default                          MH       N/A
      

2.4. Opsional: Mengonfigurasi sandi BGP multi-zona

Ada dua jenis sandi Border Gateway Protocol (BGP), yaitu sandi sesi BGP IPv4 dan sandi sesi BGP EVPN.

Secara default, semua sandi BGP kosong. Ikuti petunjuk di bagian ini untuk memperbarui sandi.

2.4.1. Memperbarui sandi BGP IPv4

Jika operator L2 digunakan, perbarui sandi BGP IPv4 yang diterapkan ke sesi BGP IPv4 antara satu switch leaf border di zona saat ini dan switch leaf border lainnya di zona lain:

kubectl patch secret zone-LOCAL_ZONE_ID-blsw-LOCAL_BLSW_ID-zone-REMOTE_ZONE_ID-blsw-REMOTE_BLSWID-ipv4-bgp-password -p='{"stringData":{"password":"PASSWORD"}}'

Ganti kode berikut:

  • LOCAL_ZONE_ID: ID numerik zona saat ini.
  • LOCAL_BLSW_ID: ID numerik switch leaf border zona saat ini. Nilai ini harus berupa 1 atau 2
  • REMOTE_ZONE_ID: ID numerik zona jarak jauh.
  • REMOTE_BLSW_ID: ID numerik switch leaf batas zona jarak jauh. Nilai ini harus berupa 1 atau 2
  • PASSWORD: Sandi BGP yang diterapkan ke sesi BGP IPv4 antara switch leaf border lokal dan switch leaf border jarak jauh.

Jika operator L3 digunakan, perbarui sandi BGP IPv4 yang diterapkan ke sesi BGP IPv4 antara satu switch leaf border di zona saat ini dan perangkat edge penyedia di operator L3:

kubectl patch secret zone-LOCAL_ZONE_ID-blsw-LOCAL_BLSW_ID-port-PORT_ID-ipv4-bgp-password -p='{"stringData":{"password":"PASSWORD"}}' -n gpc-system --kubeconfig=KUBECONFIG_PATH

Ganti kode berikut:

  • LOCAL_ZONE_ID: ID numerik zona saat ini.
  • LOCAL_BLSW_ID: ID numerik switch leaf border zona saat ini. Nilai ini harus berupa 1 atau 2.
  • PORT_ID: Indeks port ethernet yang terhubung ke perangkat edge penyedia.
  • PASSWORD: Sandi BGP yang diterapkan ke sesi BGP IPv4 antara switch leaf border lokal dan perangkat edge penyedia.

2.4.2. Memperbarui sandi BGP EVPN

Untuk memperbarui sandi BGP EVPN yang diterapkan ke sesi BGP EVPN antara satu switch leaf border di zona saat ini dan switch leaf border lain di zona lain, jalankan:

kubectl patch secret zone-LOCAL_ZONE_ID-blsw-LOCAL_BLSW_ID-zone-REMOTE_ZONE_ID-blsw-REMOTE_BLSWID-evpn-bgp-password -p='{"stringData":{"password":"PASSWORD"}}' -n gpc-system --kubeconfig=KUBECONFIG_PATH

Ganti kode berikut:

  • LOCAL_ZONE_ID: ID numerik zona saat ini.
  • LOCAL_BLSW_ID: ID numerik switch leaf border zona saat ini. Nilai ini harus berupa 1 atau 2.
  • REMOTE_ZONE_ID: ID numerik zona jarak jauh.
  • REMOTE_BLSW_ID: ID numerik switch leaf batas zona jarak jauh. Nilai ini harus berupa 1 atau 2.
  • PASSWORD: Sandi BGP yang diterapkan ke sesi BGP EVPN antara switch leaf border lokal dan switch leaf border jarak jauh.

3. Opsi konfigurasi lanjutan

Bagian ini memperkenalkan opsi konfigurasi lanjutan yang disediakan oleh multi-zone network API.

3.1. Mengonfigurasi penggantian konfigurasi BGP operator

Secara default, switch leaf batas membuat koneksi peering BGP dengan perangkat PE operator menggunakan alokasi alamat IP default. Alamat IP peering BGP tertentu yang sedang digunakan dapat ditemukan dengan memeriksa MultiZoneNetworkPeeringConfig resource zone-<ZONE_ID>-ipv4-peering-config. Contoh:

   apiVersion: system.private.gdc.goog/v1alpha1
   kind: MultiZoneNetworkPeeringConfig
   metadata:
     name: zone-1-ipv4-peering-config
     namespace: gpc-system
   spec: ...
   status:
     borderLeafSwitches:
     - blswID: 1
       blswName: aa-aa-blsw01
       ipv4BGPSessions:
       - bgpSessionConfig:
           addressFamily: IPv4
           bfdConfig:
             bfdMode: PlainBFD
           localASN: 65501
           localIP: 192.168.208.0/31
           md5SecretRef:
             name: zone-1-blsw-1-port-6-ipv4-bgp-password
             namespace: gpc-system
           peerASN: 65502
           peerIP: 192.168.208.1
   ...

Untuk menggunakan rencana alamat IP kustom, ganti konfigurasi BGP operator default dengan mengikuti langkah-langkah di bawah ini:

  1. Jalankan kubectl edit MultiZoneNetworkPeeringConfig zone-<ZONE_ID>-ipv4-peering-config -n gpc-system, dengan menambahkan bagian carrierBGPConfigOverride di bawah spec.Peerings. Contoh:
apiVersion: system.private.gdc.goog/v1alpha1
kind: MultiZoneNetworkPeeringConfig
metadata:
  name: zone-1-ipv4-peering-config
  namespace: gpc-system
  ...
spec:
  peeringConfigType: L3-IPv4
  peerings:
  - carrierBGPConfigOverride:
      peeringIP:
        localIP: 192.168.78.5/31
        peerIP: 192.168.78.4
    peerA:
      blswID: 1
      port:
        port: 11
      zoneID: 1
    ...

Dalam contoh ini, menentukan carrierBGPConfigOverride.peeringIP akan menggantikan subnet peering menjadi 192.168.78.4/31.

3.2. Mengonfigurasi penggantian port

Google merekomendasikan agar semua switch leaf batas di semua zona menggunakan set port yang sama. Konfigurasi port ini berguna untuk skenario yang memerlukan kontrol mendetail untuk port.

Zona lokal adalah zona tempat Anda melakukan deployment.

Zona jarak jauh adalah zona lain dalam semesta multi-zona yang sama.

Secara default, Anda harus menggunakan port yang sama untuk dua switch leaf border dari satu zona untuk terhubung ke zona lain atau operator. Namun, Anda dapat mengaktifkan opsi penggantian port untuk menentukan port lain yang akan digunakan untuk koneksi antar-zona ini.

Untuk mengonfigurasi fitur penggantian port, ikuti langkah-langkah berikut:

  1. Aktifkan fitur portOverride:

    kubectl patch MultiZoneNetworkConfig multizone-network-config -n gpc-system --type='merge' -p '{"spec":{"enablePortOverride":true}}' --kubeconfig=KUBECONFIG_PATH
    
  2. Identifikasi switch leaf batas zona lokal dan switch leaf batas zona jarak jauh, ubah port switch leaf batas lokal:

    kubectl edit MultiZoneNetworkPeeringConfig zone-ZONE_1_ID-zone-ZONE_2_ID -n gpc-system --kubeconfig=KUBECONFIG_PATH
    

    Ganti kode berikut:

    • ZONE_1_ID: ID zona yang lebih kecil antara ID zona lokal dan ID zona jarak jauh. Misalnya, jika ID zona lokal adalah 1, dan ID zona jarak jauh adalah 2, berikan nilai 1 di sini.
    • ZONE_2_ID: ID zona yang lebih besar antara ID zona lokal dan ID zona jarak jauh.

    Resource MultiZoneNetworkPeeringConfig mungkin terlihat seperti berikut:

    apiVersion: system.private.gdc.goog/v1alpha1
    kind: MultiZoneNetworkPeeringConfig
    metadata:
      name: zone-2-zone-3-peering-config
      namespace: gpc-system
    spec:
      peeringConfigType: L2
      peerings:
      - peerA:
          blswID: 1
          port:
            port: 12
          zoneID: 2
        peerB:
          blswID: 1
          port:
            port: 12
          zoneID: 3
        secrets:
        - secretRef:
            name: zone-2-blsw-1-zone-3-blsw-1-ipv4-bgp-password
            namespace: gpc-system
          type: ipv4-bgp-password
        - secretRef:
            name: zone-2-blsw-1-zone-3-blsw-1-evpn-bgp-password
            namespace: gpc-system
          type: evpn-bgp-password
        - secretRef:
            name: zone-2-blsw-1-zone-3-blsw-1-bfd-auth-key
            namespace: gpc-system
          type: bfd-auth-key
      - peerA:
          blswID: 1
          port:
            port: 12
          zoneID: 2
        peerB:
          blswID: 2
          port:
            port: 12
          zoneID: 3
        secrets:
        - secretRef:
            name: zone-2-blsw-2-zone-3-blsw-2-ipv4-bgp-password
            namespace: gpc-system
          type: ipv4-bgp-password
        - secretRef:
            name: zone-2-blsw-2-zone-3-blsw-2-evpn-bgp-password
            namespace: gpc-system
          type: evpn-bgp-password
        - secretRef:
            name: zone-2-blsw-2-zone-3-blsw-2-bfd-auth-key
            namespace: gpc-system
          type: bfd-auth-key
    

    Anda harus memperbarui nilai port salah satu switch leaf border yang membentuk peering antar-zona. Di kolom Spec.peerings, cari peering yang mencakup beberapa zona. Dalam contoh ini, kita memiliki koneksi peer antara zona dua dan zona tiga:

    peerA:
      blswID: 1
      port:
        port: 12
      zoneID: 2
    peerB:
      blswID: 2
      port:
        port: 12
      zoneID: 3
    

    Output menampilkan dua switch leaf batas, yang diidentifikasi oleh blswID: 1 dan blswID: 2. Untuk switch leaf batas pertama yang diidentifikasi oleh blswID: 1, perbarui port ke nilai baru 20:

    peerA:
      blswID: 1
      port:
        port: 20
      zoneID: 2
    peerB:
      blswID: 2
      port:
        port: 12
      zoneID: 3
    

    Dalam contoh, kita memperbarui nilai port switch leaf batas pertama menjadi port: 20.