BGP dynamic routing

BGP dynamic routing

BGP routing dinamis men mengaktifkan self-service prefiks (private) jaringan untuk perangkat jaringan fisik yang mendukung BGP seperti router, sehingga menghilangkan ketergantungan konvensional pada rute statis. Fitur ini bergantung pada:ref:address scopes <config-address-scopes> dan membutuhkan pengetahuan tentang operasi mereka untuk penyebaran yang tepat.

BGP routing dinamis terdiri dari plug-in layanan dan agen. Layanan plug-in mengimplementasikan Jaringan ekstensi layanan dan agen mengelola BGP peering sesi. Seorang administrator cloud menciptakan dan mengkonfigurasi pembicara BGP menggunakan CLI atau API dan manual jadwal untuk satu atau lebih host menjalankan agen. Agen dapat berada pada host dengan atau tanpa agen layanan Networking lainnya. Advertisement awalan tergantung pada pengikatan jaringan eksternal ke speaker BGP dan ruang lingkup alamat rentang alamat IP eksternal dan internal atau subnet.

BGP dynamic routing overview

Catatan

Meskipun jaringan self-service umumnya menggunakan rentang alamat IP private (RFC 1918) untuk subnet IPv4, BGP routing dinamis dapat mengiklankan rentang alamat IPv4.

Contoh configuration

Contoh konfigurasi melibatkan komponen-komponen berikut:

  • One BGP agent.
  • Salah satu ruang lingkup alamat yang berisi IP rentang alamat 203.0.113.0/24 untuk jaringan penyedia, dan alamat IP berkisar 10.0.1.0/24 dan 10.0.2.0/24 untuk jaringan swalayan.

  • One provider network using IP address range 203.0.113.0/24.
  • Three self-service networks.
    • Self-service networks 1 and 2 use IP address ranges inside of the address scope.
    • Self-service jaringan 3 menggunakan rentang alamat IP yang unik 10.0.3.0/24 untuk menunjukkan bahwa speaker BGP tidak advertise prefiks luar lingkup alamat.

  • Tiga router. Setiap router menghubungkan satu jaringan swalayan ke jaringan provider.

    • Router 1 contains IP addresses 203.0.113.11 and 10.0.1.1.
    • Router 2 contains IP addresses 203.0.113.12 and 10.0.2.1.
    • Router 3 contains IP addresses 203.0.113.13 and 10.0.3.1.

Catatan

Contoh konfigurasi mengasumsikan pengetahuan yang cukup tentang layanan Networking, routing, dan BGP. Untuk pengerahan dasar layanan Networking, konsultasikan salah satu Contoh pengerahan. Untuk informasi lebih lanjut tentang BGP, lihat RFC 4271.

Controller node

  • Dalam file neutron.conf, aktifkan konvensional lapisan-3 dan layanan routing dinamis BGP plug-in:

    [DEFAULT]
    service_plugins = router,bgp
    

Agent nodes

  • Dalam file bgp_dragent.ini:

    • Configure driver.

      [BGP]
      bgp_speaker_driver = neutron.services.bgp.driver.ryu.driver.RyuBgpDriver
      

      Catatan

      Agen saat ini hanya mendukung driver Ryu BGP.

    • Konfigurasi ID router.

      [BGP]
      bgp_router_id = ROUTER_ID
      

      Ganti ROUTER_ID dengan nomor 32-bit yang unik cocok, biasanya alamat IPv4 dari host menjalankan agen. Misalnya, 192.0.2.2.

Verifikasi operasi layanan

  1. Dapatkan kredensial proyek administrasi.

  2. Memverifikasi keberadaan dan operasi masing-masing agen routing dinamis BGP.

    $ neutron agent-list --agent-type=="BGP dynamic routing agent"
    +--------------------------------------+---------------------------+------------+-------------------+-------+----------------+---------------------------+
    | id                                   | agent_type                | host       | availability_zone | alive | admin_state_up | binary                    |
    +--------------------------------------+---------------------------+------------+-------------------+-------+----------------+---------------------------+
    | 37729181-2224-48d8-89ef-16eca8e2f77e | BGP dynamic routing agent | controller |                   | :-)   | True           | neutron-bgp-dragent       |
    +--------------------------------------+---------------------------+------------+-------------------+-------+----------------+---------------------------+
    

Buat address scope dan subnet pool

  1. Buat address scope. Provider (eksternal) dan jaringan self-service harus termasuk dalam address scope yang sama untuk agen melakukan advertise mereka prefixes jaringan self-service.

    $ neutron address-scope-create --shared bgp 4
    Created a new address_scope:
    +------------+--------------------------------------+
    | Field      | Value                                |
    +------------+--------------------------------------+
    | id         | c02c358a-9d35-43ea-8313-986b3e4a91c0 |
    | ip_version | 4                                    |
    | name       | bgp                                  |
    | shared     | True                                 |
    | tenant_id  | b3ac05ef10bf441fbf4aa17f16ae1e6d     |
    +------------+--------------------------------------+
    
  2. Membuat subnet pool. Jaringan provider dan self-service menggunakan pool yang berbeda.

    • Buat pool jaringan provider.

      $ neutron subnetpool-create --pool-prefix 203.0.113.0/24 \
        --address-scope bgp provider
      Created a new subnetpool:
      +-------------------+--------------------------------------+
      | Field             | Value                                |
      +-------------------+--------------------------------------+
      | address_scope_id  | c02c358a-9d35-43ea-8313-986b3e4a91c0 |
      | created_at        | 2016-03-17T23:11:12                  |
      | default_prefixlen | 8                                    |
      | default_quota     |                                      |
      | description       |                                      |
      | id                | 3771c0e7-7096-46d3-a3bd-699c58e70259 |
      | ip_version        | 4                                    |
      | is_default        | False                                |
      | max_prefixlen     | 32                                   |
      | min_prefixlen     | 8                                    |
      | name              | provider                             |
      | prefixes          | 203.0.113.0/24                       |
      | shared            | False                                |
      | tenant_id         | b3ac05ef10bf441fbf4aa17f16ae1e6d     |
      | updated_at        | 2016-03-17T23:11:12                  |
      +-------------------+--------------------------------------+
      
    • Buat pool jaringan self-service.

      $ neutron subnetpool-create --pool-prefix 10.0.1.0/24 \
        --pool-prefix 10.0.2.0/24 --address-scope bgp \
        --shared selfservice
      Created a new subnetpool:
      +-------------------+--------------------------------------+
      | Field             | Value                                |
      +-------------------+--------------------------------------+
      | address_scope_id  | c02c358a-9d35-43ea-8313-986b3e4a91c0 |
      | created_at        | 2016-03-17T23:11:51                  |
      | default_prefixlen | 8                                    |
      | default_quota     |                                      |
      | description       |                                      |
      | id                | c7e9737a-cfd3-45b5-a861-d1cee1135a92 |
      | ip_version        | 4                                    |
      | is_default        | False                                |
      | max_prefixlen     | 32                                   |
      | min_prefixlen     | 8                                    |
      | name              | selfservice                          |
      | prefixes          | 10.0.1.0/24                          |
      |                   | 10.0.2.0/24                          |
      | shared            | True                                 |
      | tenant_id         | b3ac05ef10bf441fbf4aa17f16ae1e6d     |
      | updated_at        | 2016-03-17T23:11:51                  |
      +-------------------+--------------------------------------+
      

Buat jaringan provider dan self-service

  1. Buat jaringan provider.

    $ neutron net-create --router:external True --provider:physical_network provider \
      --provider:network_type flat provider
    Created a new network:
    +---------------------------+--------------------------------------+
    | Field                     | Value                                |
    +---------------------------+--------------------------------------+
    | admin_state_up            | True                                 |
    | id                        | 68ec148c-181f-4656-8334-8f4eb148689d |
    | name                      | provider                             |
    | provider:network_type     | flat                                 |
    | provider:physical_network | provider                             |
    | provider:segmentation_id  |                                      |
    | router:external           | True                                 |
    | shared                    | False                                |
    | status                    | ACTIVE                               |
    | subnets                   |                                      |
    | tenant_id                 | b3ac05ef10bf441fbf4aa17f16ae1e6d     |
    +---------------------------+--------------------------------------+
    
  2. Buat subnet pada jaringan operator menggunakan kisaran alamat IP dari penyedia subnet kolam.

    $ neutron subnet-create --name provider --subnetpool provider \
      --prefixlen 24 --allocation-pool start=203.0.113.11,end=203.0.113.254 \
      --gateway 203.0.113.1 provider
    Created a new subnet:
    +-------------------+---------------------------------------------------+
    | Field             | Value                                             |
    +-------------------+---------------------------------------------------+
    | allocation_pools  | {"start": "203.0.113.11", "end": "203.0.113.254"} |
    | cidr              | 203.0.113.0/24                                    |
    | created_at        | 2016-03-17T23:17:16                               |
    | description       |                                                   |
    | dns_nameservers   |                                                   |
    | enable_dhcp       | True                                              |
    | gateway_ip        | 203.0.113.1                                       |
    | host_routes       |                                                   |
    | id                | 8ed65d41-2b2a-4f3a-9f92-45adb266e01a              |
    | ip_version        | 4                                                 |
    | ipv6_address_mode |                                                   |
    | ipv6_ra_mode      |                                                   |
    | name              | provider                                          |
    | network_id        | 68ec148c-181f-4656-8334-8f4eb148689d              |
    | subnetpool_id     | 3771c0e7-7096-46d3-a3bd-699c58e70259              |
    | tenant_id         | b3ac05ef10bf441fbf4aa17f16ae1e6d                  |
    | updated_at        | 2016-03-17T23:17:16                               |
    +-------------------+---------------------------------------------------+
    

    Catatan

    Alamat IP kolam alokasi mulai `` .11`` meningkatkan kejelasan diagram. Anda dapat dengan aman menghilangkan itu.

  3. Buat jaringan self-service.

    $ neutron net-create selfservice1
    Created a new network:
    +---------------------------+--------------------------------------+
    | Field                     | Value                                |
    +---------------------------+--------------------------------------+
    | admin_state_up            | True                                 |
    | id                        | be79de1e-5f56-11e6-9dfb-233e41cec48c |
    | name                      | selfservice1                         |
    | shared                    | False                                |
    | status                    | ACTIVE                               |
    | subnets                   |                                      |
    | tenant_id                 | b3ac05ef10bf441fbf4aa17f16ae1e6d     |
    +---------------------------+--------------------------------------+
    
    $ neutron net-create selfservice2
    Created a new network:
    +---------------------------+--------------------------------------+
    | Field                     | Value                                |
    +---------------------------+--------------------------------------+
    | admin_state_up            | True                                 |
    | id                        | c1fd9846-5f56-11e6-a8ac-0f998d9cc0a2 |
    | name                      | selfservice2                         |
    | shared                    | False                                |
    | status                    | ACTIVE                               |
    | subnets                   |                                      |
    | tenant_id                 | b3ac05ef10bf441fbf4aa17f16ae1e6d     |
    +---------------------------+--------------------------------------+
    
    $ neutron net-create selfservice3
    Created a new network:
    +---------------------------+--------------------------------------+
    | Field                     | Value                                |
    +---------------------------+--------------------------------------+
    | admin_state_up            | True                                 |
    | id                        | c283dc1c-5f56-11e6-bfb6-efc30e1eb73b |
    | name                      | selfservice3                         |
    | shared                    | False                                |
    | status                    | ACTIVE                               |
    | subnets                   |                                      |
    | tenant_id                 | b3ac05ef10bf441fbf4aa17f16ae1e6d     |
    +---------------------------+--------------------------------------+
    
  4. Buat subnet pada dua jaringan self-service pertama menggunakan kisaran alamat IP dari swalayan subnet kolam renang.

    $ neutron subnet-create --name selfservice1 --subnetpool selfservice \
      --prefixlen 24 selfservice1
    Created a new subnet:
    +-------------------+--------------------------------------------+
    | Field             | Value                                      |
    +-------------------+--------------------------------------------+
    | allocation_pools  | {"start": "10.0.1.2", "end": "10.0.1.254"} |
    | cidr              | 10.0.1.0/24                                |
    | created_at        | 2016-03-17T23:20:20                        |
    | description       |                                            |
    | dns_nameservers   |                                            |
    | enable_dhcp       | True                                       |
    | gateway_ip        | 10.0.1.1                                   |
    | host_routes       |                                            |
    | id                | 8edd3dc2-df40-4d71-816e-a4586d61c809       |
    | ip_version        | 4                                          |
    | ipv6_address_mode |                                            |
    | ipv6_ra_mode      |                                            |
    | name              | selfservice1                               |
    | network_id        | be79de1e-5f56-11e6-9dfb-233e41cec48c       |
    | subnetpool_id     | c7e9737a-cfd3-45b5-a861-d1cee1135a92       |
    | tenant_id         | b3ac05ef10bf441fbf4aa17f16ae1e6d           |
    | updated_at        | 2016-03-17T23:20:20                        |
    +-------------------+--------------------------------------------+
    
    $ neutron subnet-create --name selfservice2 --subnetpool selfservice \
      --prefixlen 24 selfservice2
    Created a new subnet:
    +-------------------+--------------------------------------------+
    | Field             | Value                                      |
    +-------------------+--------------------------------------------+
    | allocation_pools  | {"start": "10.0.2.2", "end": "10.0.2.254"} |
    | cidr              | 10.0.2.0/24                                |
    | created_at        | 2016-03-17T23:20:20                        |
    | description       |                                            |
    | dns_nameservers   |                                            |
    | enable_dhcp       | True                                       |
    | gateway_ip        | 10.0.2.1                                   |
    | host_routes       |                                            |
    | id                | 8edd3dc2-df40-4d71-816e-a4586d61c809       |
    | ip_version        | 4                                          |
    | ipv6_address_mode |                                            |
    | ipv6_ra_mode      |                                            |
    | name              | selfservice2                               |
    | network_id        | c1fd9846-5f56-11e6-a8ac-0f998d9cc0a2       |
    | subnetpool_id     | c7e9737a-cfd3-45b5-a861-d1cee1135a92       |
    | tenant_id         | b3ac05ef10bf441fbf4aa17f16ae1e6d           |
    | updated_at        | 2016-03-17T23:20:20                        |
    +-------------------+--------------------------------------------+
    
  5. Buat subnet pada jaringan swalayan terakhir menggunakan kisaran alamat IP di luar lingkup alamat.

    $ neutron subnet-create --name subnet3 selfservice3 10.0.3.0/24
    Created a new subnet:
    +-------------------+--------------------------------------------+
    | Field             | Value                                      |
    +-------------------+--------------------------------------------+
    | allocation_pools  | {"start": "10.0.3.2", "end": "10.0.3.254"} |
    | cidr              | 10.0.3.0/24                                |
    | created_at        | 2016-03-17T23:20:20                        |
    | description       |                                            |
    | dns_nameservers   |                                            |
    | enable_dhcp       | True                                       |
    | gateway_ip        | 10.0.3.1                                   |
    | host_routes       |                                            |
    | id                | cd9f9156-5f59-11e6-aeec-172ec7ee939a       |
    | ip_version        | 4                                          |
    | ipv6_address_mode |                                            |
    | ipv6_ra_mode      |                                            |
    | name              | selfservice3                               |
    | network_id        | c283dc1c-5f56-11e6-bfb6-efc30e1eb73b       |
    | subnetpool_id     |                                            |
    | tenant_id         | b3ac05ef10bf441fbf4aa17f16ae1e6d           |
    | updated_at        | 2016-03-17T23:20:20                        |
    +-------------------+--------------------------------------------+
    

Membuat dan mengkonfigurasi router

  1. Buat router.

    $ neutron router-create router1
    +-----------------------+--------------------------------------+
    | Field                 | Value                                |
    +-----------------------+--------------------------------------+
    | admin_state_up        | True                                 |
    | external_gateway_info |                                      |
    | id                    | 3f6f4ef8-63be-11e6-bbb3-2fbcef363ab8 |
    | name                  | router1                              |
    | status                | ACTIVE                               |
    | tenant_id             | b3ac05ef10bf441fbf4aa17f16ae1e6d     |
    +-----------------------+--------------------------------------+
    
    $ neutron router-create router2
    +-----------------------+--------------------------------------+
    | Field                 | Value                                |
    +-----------------------+--------------------------------------+
    | admin_state_up        | True                                 |
    | external_gateway_info |                                      |
    | id                    | 3fd21a60-63be-11e6-9c95-5714c208c499 |
    | name                  | router1                              |
    | status                | ACTIVE                               |
    | tenant_id             | b3ac05ef10bf441fbf4aa17f16ae1e6d     |
    +-----------------------+--------------------------------------+
    
    $ neutron router-create router3
    +-----------------------+--------------------------------------+
    | Field                 | Value                                |
    +-----------------------+--------------------------------------+
    | admin_state_up        | True                                 |
    | external_gateway_info |                                      |
    | id                    | 40069a4c-63be-11e6-9ecc-e37c1eaa7e84 |
    | name                  | router1                              |
    | status                | ACTIVE                               |
    | tenant_id             | b3ac05ef10bf441fbf4aa17f16ae1e6d     |
    +-----------------------+--------------------------------------+
    
  2. Untuk setiap router, tambahkan satu swalayan subnet sebagai interface pada router.

    $ neutron router-interface-add router1 selfservice1
    Added interface 90e3880a-5f5c-11e6-914c-9f3e20c8c151 to router router1.
    
    $ neutron router-interface-add router2 selfservice2
    Added interface 91628362-5f5c-11e6-826a-7322fb03a821 to router router2.
    
    $ neutron router-interface-add router3 selfservice3
    Added interface 91d51044-5f5c-11e6-bf55-ffd180541cc2 to router router3.
    
  3. Tambahkan jaringan operator sebagai gateway pada masing-masing router.

    $ neutron router-gateway-set router1 provider
    Set gateway for router router1
    
    $ neutron router-gateway-set router2 provider
    Set gateway for router router2
    
    $ neutron router-gateway-set router3 provider
    Set gateway for router router3
    

Membuat dan mengkonfigurasi speaker BGP

BGP speaker advertises alamat IP next-hop untuk jaringan swalayan yang memenuhi syarat dan alamat IP mengambang untuk contoh menggunakan jaringan tersebut.

  1. Buat speaker BGP.

    $ neutron bgp-speaker-create --ip-version 4 \
      --local-as LOCAL_AS bgpspeaker
    Created a new bgp_speaker:
    +-----------------------------------+--------------------------------------+
    | Field                             | Value                                |
    +-----------------------------------+--------------------------------------+
    | advertise_floating_ip_host_routes | True                                 |
    | advertise_tenant_networks         | True                                 |
    | id                                | 5f227f14-4f46-4eca-9524-fc5a1eabc358 |
    | ip_version                        | 4                                    |
    | local_as                          | 1234                                 |
    | name                              | bgpspeaker                           |
    | networks                          |                                      |
    | peers                             |                                      |
    | tenant_id                         | b3ac05ef10bf441fbf4aa17f16ae1e6d     |
    +-----------------------------------+--------------------------------------+
    

    Ganti LOCAL_AS dengan nomor sistem otonomi daerah yang tepat. Contoh konfigurasi menggunakan AS 1234.

  2. Speaker BGP memerlukan hubungan dengan jaringan provider untuk menentukan awalan yang memenuhi syarat. Asosiasi membangun daftar semua router virtual dengan gateway pada provider dan self-service jaringan di address scope yang sama sehingga speaker BGP dapat advertise prefixes jaringan self-service dengan sesuai router sebagai alamat IP next-hop. Mengasosiasikan speaker BGP dengan jaringan provider.

    $ neutron bgp-speaker-network-add bgpspeaker provider
    Added network provider to BGP speaker bgpspeaker.
    
  3. Verifikasi asosiasi jaringan provider dengan speaker BGP.

    $ neutron bgp-speaker-show bgpspeaker
    +-----------------------------------+--------------------------------------+
    | Field                             | Value                                |
    +-----------------------------------+--------------------------------------+
    | advertise_floating_ip_host_routes | True                                 |
    | advertise_tenant_networks         | True                                 |
    | id                                | 5f227f14-4f46-4eca-9524-fc5a1eabc358 |
    | ip_version                        | 4                                    |
    | local_as                          | 1234                                 |
    | name                              | bgpspeaker                           |
    | networks                          | 68ec148c-181f-4656-8334-8f4eb148689d |
    | peers                             |                                      |
    | tenant_id                         | b3ac05ef10bf441fbf4aa17f16ae1e6d     |
    +-----------------------------------+--------------------------------------+
    
  4. Verifikasi prefixes dan alamat IP next-hop yang speaker BGP melakukan advertise.

    $ neutron bgp-speaker-advertiseroute-list bgpspeaker
    +-------------+--------------+
    | destination | next_hop     |
    +-------------+--------------+
    | 10.0.1.0/24 | 203.0.113.11 |
    | 10.0.2.0/24 | 203.0.113.12 |
    +-------------+--------------+
    
  5. Buat peer BGP.

    $ neutron bgp-peer-create --peer-ip 192.0.2.1 \
      --remote-as REMOTE_AS bgppeer
    Created a new bgp_peer:
    +-----------+--------------------------------------+
    | Field     | Value                                |
    +-----------+--------------------------------------+
    | auth_type | none                                 |
    | id        | 35c89ca0-ac5a-4298-a815-0b073c2362e9 |
    | name      | bgppeer                              |
    | peer_ip   | 192.0.2.1                            |
    | remote_as | 4321                                 |
    | tenant_id | b3ac05ef10bf441fbf4aa17f16ae1e6d     |
    +-----------+--------------------------------------+
    

    Ganti REMOTE_AS dengan nomor sistem otonom jarak jauh yang sesuai. Contoh konfigurasi menggunakan AS 4321 yang memicu EBGP peering.

    Catatan

    Host yang mengandung agen BGP harus memiliki lapisan-3 konektivitas ke router penyedia.

  6. Tambahkan peer BGP ke speaker BGP.

    $ neutron bgp-speaker-peer-add bgpspeaker bgppeer
    Added BGP peer bgppeer to BGP speaker bgpspeaker.
    
  7. Verifikasi penambahan peer BGP ke speaker BGP.

    $ neutron bgp-speaker-show bgpspeaker
    +-----------------------------------+--------------------------------------+
    | Field                             | Value                                |
    +-----------------------------------+--------------------------------------+
    | advertise_floating_ip_host_routes | True                                 |
    | advertise_tenant_networks         | True                                 |
    | id                                | 5f227f14-4f46-4eca-9524-fc5a1eabc358 |
    | ip_version                        | 4                                    |
    | local_as                          | 1234                                 |
    | name                              | bgpspeaker                           |
    | networks                          | 68ec148c-181f-4656-8334-8f4eb148689d |
    | peers                             | 35c89ca0-ac5a-4298-a815-0b073c2362e9 |
    | tenant_id                         | b3ac05ef10bf441fbf4aa17f16ae1e6d     |
    +-----------------------------------+--------------------------------------+
    

    Catatan

    Setelah membuat sesi peering, Anda tidak dapat mengubah nomor sistem otonomi lokal atau remote.

Jadwalkan speaker BGP untuk agen

  1. Tidak seperti kebanyakan agen, BGP speaker memerlukan penjadwalan manual untuk agen. BGP speaker hanya membentuk peering sesi dan mulai prefix advertisement setelah penjadwalan untuk agen. Menjadwalkan speaker BGP untuk agen `` 37729181-2224-48d8-89ef-16eca8e2f77e``.

    $ neutron bgp-dragent-speaker-add 37729181-2224-48d8-89ef-16eca8e2f77e bgpspeaker
    Associated BGP speaker bgpspeaker to the Dynamic Routing agent.
    
  2. Verifikasi penjadwalan speaker BGP untuk agen.

    $ neutron bgp-dragent-list-hosting-speaker bgpspeaker
    +--------------------------------------+------------+----------------+-------+
    | id                                   | host       | admin_state_up | alive |
    +--------------------------------------+------------+----------------+-------+
    | 37729181-2224-48d8-89ef-16eca8e2f77e | controller | True           | :-)   |
    +--------------------------------------+------------+----------------+-------+
    
    $ neutron bgp-speaker-list-on-dragent 37729181-2224-48d8-89ef-16eca8e2f77e
    +--------------------------------------+------------+----------+------------+
    | id                                   | name       | local_as | ip_version |
    +--------------------------------------+------------+----------+------------+
    | 5f227f14-4f46-4eca-9524-fc5a1eabc358 | bgpspeaker |     1234 |          4 |
    +--------------------------------------+------------+----------+------------+
    

Prefix advertisement

BGP routing dinamis advertises prefixes untuk jaringan self-service dan host me-rute floating IP addresses.

Advertisement jaringan self-service membutuhkan memenuhi kondisi berikut:

  • Jaringan eksternal dan self-service berada dalam address scope yang sama.

  • Router berisi sebuah interface pada subnet self-service dan gateway pada jaringan eksternal.

  • BGP speaker associates with jaringan eksternal yang menyediakan gateway pada router.

  • BGP speaker memiliki atribut advertise_tenant_networks diatur ke True.

Example of prefix advertisements with self-service networks

Advertisement dari alamat IP mengambang membutuhkan memenuhi kondisi berikut:

  • Router dengan alamat IP mengambang mengikat berisi gateway pada jaringan eksternal dengan asosiasi speaker BGP.

  • BGP speaker memiliki attribut advertise_floating_ip_host_routes diatur ke `` True``.

Example of prefix advertisements with floating IP addresses

Operasi dengan Distributed Virtual Routers (DVR)

Dalam penyebaran menggunakan DVR, pembicara BGP mengiklankan (advertises) alamat IP mengambang dan jaringan swalayan berbeda. Untuk alamat IP mengambang, pembicara BGP mengiklankan agen gateway IP mengambang pada node komputasi yang sesuai sebagai alamat IP next-hop. Untuk jaringan swalayan menggunakan SNAT, pembicara BGP mengiklankan node DVR SNAT sebagai alamat IP next-hop.

Misalnya, pertimbangkan komponen-komponen berikut:

  1. Sebuah jaringan operator menggunakan IP rentang alamat 203.0.113.0/24, dan mendukung alamat IP mengambang 203.0.113.101, 203.0.113.102, dan 203.0.113.103.

  2. Sebuah jaringan swalayan menggunakan IP rentang alamat 10.0.1.0/24.

  3. Gatewaya (gerbang) SNAT berada pada 203.0.113.11.

  4. Agen gateway IP mengambang (satu per komputasi node) berada pada 203.0.113.12, 203.0.113.13, dan 203.0.113.14.

  5. Tiga instance, salah satu per komputasi node, masing-masing dengan alamat IP mengambang.

$ neutron bgp-speaker-advertiseroute-list bgpspeaker
+------------------+--------------+
| destination      | next_hop     |
+------------------+--------------+
| 10.0.1.0/24      | 203.0.113.11 |
| 203.0.113.101/32 | 203.0.113.12 |
| 203.0.113.102/32 | 203.0.113.13 |
| 203.0.113.103/32 | 203.0.113.14 |
+------------------+--------------+

Catatan

DVR kekurangan dukungan untuk routing langsung ke alamat IP tetap melalui floating IP agent gateway port dan dengan demikian mencegah speaker BGP dari advertisement alamat IP tetap.

Anda juga dapat mengidentifikasi floating IP agent gateway di lingkungan Anda untuk membantu memverifikasi operasi speaker BGP.

$ neutron port-list --device_owner="network:floatingip_agent_gateway"
+--------------------------------------+------+-------------------+--------------------------------------------------------------------------------------------------------+
| id                                   | name | mac_address       | fixed_ips                                                                                              |
+--------------------------------------+------+-------------------+--------------------------------------------------------------------------------------------------------+
| 87cf2970-4970-462e-939e-00e808295dfa |      | fa:16:3e:7c:68:e3 | {"subnet_id": "8ed65d41-2b2a-4f3a-9f92-45adb266e01a", "ip_address": "203.0.113.12"}                    |
| 8d218440-0d2e-49d0-8a7b-3266a6146dc1 |      | fa:16:3e:9d:78:cf | {"subnet_id": "8ed65d41-2b2a-4f3a-9f92-45adb266e01a", "ip_address": "203.0.113.13"}                    |
| 87cf2970-4970-462e-939e-00e802281dfa |      | fa:16:3e:6b:18:e0 | {"subnet_id": "8ed65d41-2b2a-4f3a-9f92-45adb266e01a", "ip_address": "203.0.113.14"}                    |
+--------------------------------------+------+-------------------+--------------------------------------------------------------------------------------------------------+

IPv6

BGP routing dinamis mendukung mengintip melalui IPv6 dan advertisement IPv6 prefixes.

  • Untuk mengaktifkan mengintip melalui IPv6, membuat peer BGP dan menggunakan alamat IPv6 untuk `` peer_ip``.

  • Untuk mengaktifkan advertisement prefixes IPv6, membuat address scope dengan ip_version=6 dan speaker BGP dengan ip_version=6.

Catatan

DVR dengan fungsi IPv6 mirip dengan DVR dengan IPv4.

ketersediaan tinggi

BGP routing dinamis mendukung penjadwalan speaker BGP ke beberapa agen yang secara efektif mengalikan prefix advertisement untuk peer yang sama. Jika agen gagal, peer terus menerima advertisements dari satu atau lebih agen operasional.

  1. Tampilkan tersedia agen routing dinamis.

    $ neutron agent-list --agent-type=="BGP dynamic routing agent"
    +--------------------------------------+---------------------------+----------+-------------------+-------+----------------+---------------------------+
    | id                                   | agent_type                | host     | availability_zone | alive | admin_state_up | binary                    |
    +--------------------------------------+---------------------------+----------+-------------------+-------+----------------+---------------------------+
    | 37729181-2224-48d8-89ef-16eca8e2f77e | BGP dynamic routing agent | bgp-ha1  |                   | :-)   | True           | neutron-bgp-dragent       |
    | 1a2d33bb-9321-30a2-76ab-22eff3d2f56a | BGP dynamic routing agent | bgp-ha2  |                   | :-)   | True           | neutron-bgp-dragent       |
    +--------------------------------------+---------------------------+----------+-------------------+-------+----------------+---------------------------+
    
  2. Jadwalkan BGP speaker ke beberapa agen.

    $ neutron bgp-dragent-speaker-add 37729181-2224-48d8-89ef-16eca8e2f77e bgpspeaker
    Associated BGP speaker bgpspeaker to the Dynamic Routing agent.
    
    $ neutron bgp-dragent-speaker-add 1a2d33bb-9321-30a2-76ab-22eff3d2f56a bgpspeaker
    Associated BGP speaker bgpspeaker to the Dynamic Routing agent.
    
    $ neutron bgp-dragent-list-hosting-speaker bgpspeaker
    +--------------------------------------+---------+----------------+-------+
    | id                                   | host    | admin_state_up | alive |
    +--------------------------------------+---------+----------------+-------+
    | 37729181-2224-48d8-89ef-16eca8e2f77e | bgp-ha1 | True           | :-)   |
    | 1a2d33bb-9321-30a2-76ab-22eff3d2f56a | bgp-ha2 | True           | :-)   |
    +--------------------------------------+---------+----------------+-------+
    
    $ neutron bgp-speaker-list-on-dragent 37729181-2224-48d8-89ef-16eca8e2f77e
    +--------------------------------------+------------+----------+------------+
    | id                                   | name       | local_as | ip_version |
    +--------------------------------------+------------+----------+------------+
    | 5f227f14-4f46-4eca-9524-fc5a1eabc358 | bgpspeaker |     1234 |          4 |
    +--------------------------------------+------------+----------+------------+
    
    $ neutron bgp-speaker-list-on-dragent 1a2d33bb-9321-30a2-76ab-22eff3d2f56a
    +--------------------------------------+------------+----------+------------+
    | id                                   | name       | local_as | ip_version |
    +--------------------------------------+------------+----------+------------+
    | 5f227f14-4f46-4eca-9524-fc5a1eabc358 | bgpspeaker |     1234 |          4 |
    +--------------------------------------+------------+----------+------------+
    
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.