BGP dinamik yönlendirme

BGP dinamik yönlendirme

BGP dinamik yönlendirmesi, yönlendiriciler gibi BGP’yi destekleyen fiziksel ağ aygıtlarına self-servis (özel) ağ ön eklerinin tanıtımını sağlar ve böylece statik yollara geleneksel bağımlılığı ortadan kaldırır. Bu özellik şunlara dayanıyor adres alanları ve doğru kurulum için işlemlerinin bilinmesi gerekir.

BGP dinamik yönlendirme, bir hizmet eklentisinden ve bir ajandan oluşur. Hizmet eklentisi Ağ hizmet uzantısını uygular ve aracı BGP gözlemci oturumlarını yönetir. Bir bulut yöneticisi CLI veya API kullanarak bir BGP hoparlörü oluşturur ve yapılandırır ve aracıyı çalıştıran bir veya daha fazla ana makineye el ile zamanlar. Ajanlar, diğer Ağ servisleri ajanları olsun olmasın, ana makinelerde ikamet edebilir. Önek ilanı, harici ağların bir BGP hoparlörüne bağlanması ve dış ve iç IP adres aralıklarının veya alt ağlarının adres alanına bağlıdır.

BGP dynamic routing overview

Not

Self-servis ağlar IPv4 alt ağları için genellikle özel IP adres aralığı (RFC1918) kullanmalarına rağmen, BGP dinamik yönlendirme herhangi bir IPv4 adres aralığını ilan edebilir.

Örnek yapılandırma

Örnek yapılandırma aşağıdaki bileşenleri içerir:

  • Bir BGP ajanı.
  • Sağlayıcı ağları için IP adres aralığı 203.0.113.0/24 ve self servis ağlar için IP adresi aralıkları 10.0.1.0/24 ve 10.0.2.0/24 olan bir adres alanı.
  • 203.0.113.0/24 IP adres aralığını kullanan bir sağlayıcı ağ.
  • Üç self-servis ağ.
    • Kendi kendine hizmet ağları 1 ve 2, adres alanının içinde IP adresi aralıkları kullanır.
    • Kendi kendine hizmet ağı 3, BGP hoparlörünün adres kapsamlarının dışındaki önekleri tanıtmadığını göstermek için 10.0.3.0/24 aralığında benzersiz bir IP adresi kullanır.
  • Üç yönlendirici. Her yönlendirici bir self-servis ağını sağlayıcı ağına bağlar.
    • Yönlendirici 1, 203.0.113.11 ve 10.0.1.1 IP adreslerini içerir.
    • Yönlendirici 2, IP adresi 203.0.113.12 ve 10.0.2.1 içerir.
    • Yönlendirici 3, 203.0.113.13 ve 10.0.3.1 IP adreslerini içerir.

Not

Örnek yapılandırma, Ağ servisi, yönlendirme ve BGP hakkında yeterli bilgiyi üstlenir. Ağ servisinin temel dağıtımı için, aşağıdakilerden birine başvurun:ref:deploy. BGP üzerideki daha fazla bilgi için, RFC 4271 belgesine bakınız.

Denetleyici düğüm

  • neutron.conf dosyasında, bilinen katman-3 ve BGP dinamik yönlendirme servis eklentilerini etkinleştir:

    [DEFAULT]
    service_plugins = neutron_dynamic_routing.services.bgp.bgp_plugin.BgpPlugin,neutron.services.l3_router.l3_router_plugin.L3RouterPlugin
    

Ajan düğümleri

  • bgp_dragent.ini dosyasında:

    • Sürücüyü yapılandır.

      [BGP]
      bgp_speaker_driver = neutron_dynamic_routing.services.bgp.agent.driver.ryu.driver.RyuBgpDriver
      

      Not

      Ajan mevcutta sadece Ryu BGP sürücüsünü destekler.

    • Yönlendirici ID’yi yapılandır.

      [BGP]
      bgp_router_id = ROUTER_ID
      

      ROUTER_ID‘yi uygun benzersiz tipik olarak ajanın çalıştığı sunucuda bir IPv4 adresi 32-bit numara ile değiştir. Örneğin, 192.0.2.2.

Servis işlemini doğrula

  1. Yönetimsel proje kimlik bilgilerini kaynak olarak verin.

  2. Her bir BGP dinamik yönlendirme aracının varlığını ve çalışmasını doğrulayın.

    $ 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       |
    +--------------------------------------+---------------------------+------------+-------------------+-------+----------------+---------------------------+
    

Adres kapsamını ve alt ağ havuzlarını oluşturma

  1. Bir adres alanı oluşturun. Hizmet sağlayıcı (dış) ve kendi kendine hizmet ağları, aracının bu self servis ağ öneklerini tanıtması için aynı adres alanına ait olmalıdır.

    $ openstack address scope create --share --ip-version 4 bgp
    
    +------------+--------------------------------------+
    | Field      | Value                                |
    +------------+--------------------------------------+
    | headers    |                                      |
    | id         | f71c958f-dbe8-49a2-8fb9-19c5f52a37f1 |
    | ip_version | 4                                    |
    | name       | bgp                                  |
    | project_id | 86acdbd1d72745fd8e8320edd7543400     |
    | shared     | True                                 |
    +------------+--------------------------------------+
    
  2. Alt ağ havuzları oluşturun. Sağlayıcı ve self-servis ağları farklı havuzlar kullanmaktadır.

    • Sağlayıcı ağ havuzu oluşturun.

      $ openstack subnet pool create --pool-prefix 203.0.113.0/24 \
        --address-scope bgp provider
      
      +-------------------+--------------------------------------+
      | Field             | Value                                |
      +-------------------+--------------------------------------+
      | address_scope_id  | f71c958f-dbe8-49a2-8fb9-19c5f52a37f1 |
      | created_at        | 2017-01-12T14:58:57Z                 |
      | default_prefixlen | 8                                    |
      | default_quota     | None                                 |
      | description       |                                      |
      | headers           |                                      |
      | id                | 63532225-b9a0-445a-9935-20a15f9f68d1 |
      | ip_version        | 4                                    |
      | is_default        | False                                |
      | max_prefixlen     | 32                                   |
      | min_prefixlen     | 8                                    |
      | name              | provider                             |
      | prefixes          | 203.0.113.0/24                       |
      | project_id        | 86acdbd1d72745fd8e8320edd7543400     |
      | revision_number   | 1                                    |
      | shared            | False                                |
      | updated_at        | 2017-01-12T14:58:57Z                 |
      +-------------------+--------------------------------------+
      
    • Self servis ağ havuzu oluşturun.

      $ openstack subnet pool create --pool-prefix 10.0.1.0/24 \
        --pool-prefix 10.0.2.0/24 --address-scope bgp \
        --share selfservice
      
      +-------------------+--------------------------------------+
      | Field             | Value                                |
      +-------------------+--------------------------------------+
      | address_scope_id  | f71c958f-dbe8-49a2-8fb9-19c5f52a37f1 |
      | created_at        | 2017-01-12T15:02:31Z                 |
      | default_prefixlen | 8                                    |
      | default_quota     | None                                 |
      | description       |                                      |
      | headers           |                                      |
      | id                | 8d8270b1-b194-4b7e-914c-9c741dcbd49b |
      | 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             |
      | project_id        | 86acdbd1d72745fd8e8320edd7543400     |
      | revision_number   | 1                                    |
      | shared            | True                                 |
      | updated_at        | 2017-01-12T15:02:31Z                 |
      +-------------------+--------------------------------------+
      

Sağlayıcı ve self-servis ağları oluştur

  1. Sağlayıcı ağ oluştur.

    $ openstack network create provider --external --provider-physical-network \
      provider --provider-network-type flat
    Created a new network:
    +---------------------------+--------------------------------------+
    | Field                     | Value                                |
    +---------------------------+--------------------------------------+
    | admin_state_up            | UP                                   |
    | availability_zone_hints   |                                      |
    | availability_zones        |                                      |
    | created_at                | 2016-12-21T08:47:41Z                 |
    | description               |                                      |
    | headers                   |                                      |
    | id                        | 190ca651-2ee3-4a4b-891f-dedda47974fe |
    | ipv4_address_scope        | None                                 |
    | ipv6_address_scope        | None                                 |
    | is_default                | False                                |
    | mtu                       | 1450                                 |
    | name                      | provider                             |
    | port_security_enabled     | True                                 |
    | project_id                | c961a8f6d3654657885226378ade8220     |
    | provider:network_type     | flat                                 |
    | provider:physical_network | provider                             |
    | provider:segmentation_id  | 66                                   |
    | revision_number           | 3                                    |
    | router:external           | External                             |
    | shared                    | False                                |
    | status                    | ACTIVE                               |
    | subnets                   |                                      |
    | tags                      | []                                   |
    | updated_at                | 2016-12-21T08:47:41Z                 |
    +---------------------------+--------------------------------------+
    
  2. Sağlayıcı alt ağ havuzundan bir IP adres aralığını kullanarak sağlayıcı ağ üzerinde bir alt ağ oluştur.

    $ 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                               |
    +-------------------+---------------------------------------------------+
    

    Not

    .11‘den başlayan IP adres tahsis havuzu çizimlerin açıklığını arttırır. Güvenli bir şekilde çıkarabilirsiniz.

  3. Self-servis ağları oluştur.

    $ openstack network create selfservice1
    Created a new network:
    +---------------------------+--------------------------------------+
    | Field                     | Value                                |
    +---------------------------+--------------------------------------+
    | admin_state_up            | UP                                   |
    | availability_zone_hints   |                                      |
    | availability_zones        |                                      |
    | created_at                | 2016-12-21T08:49:38Z                 |
    | description               |                                      |
    | headers                   |                                      |
    | id                        | 9d842606-ef3d-4160-9ed9-e03fa63aed96 |
    | ipv4_address_scope        | None                                 |
    | ipv6_address_scope        | None                                 |
    | mtu                       | 1450                                 |
    | name                      | selfservice1                         |
    | port_security_enabled     | True                                 |
    | project_id                | c961a8f6d3654657885226378ade8220     |
    | provider:network_type     | vxlan                                |
    | provider:physical_network | None                                 |
    | provider:segmentation_id  | 106                                  |
    | revision_number           | 3                                    |
    | router:external           | Internal                             |
    | shared                    | False                                |
    | status                    | ACTIVE                               |
    | subnets                   |                                      |
    | tags                      | []                                   |
    | updated_at                | 2016-12-21T08:49:38Z                 |
    +---------------------------+--------------------------------------+
    
    $ openstack network create selfservice2
    Created a new network:
    +---------------------------+--------------------------------------+
    | Field                     | Value                                |
    +---------------------------+--------------------------------------+
    | admin_state_up            | UP                                   |
    | availability_zone_hints   |                                      |
    | availability_zones        |                                      |
    | created_at                | 2016-12-21T08:50:05Z                 |
    | description               |                                      |
    | headers                   |                                      |
    | id                        | f85639e1-d23f-438e-b2b1-f40570d86b1c |
    | ipv4_address_scope        | None                                 |
    | ipv6_address_scope        | None                                 |
    | mtu                       | 1450                                 |
    | name                      | selfservice2                         |
    | port_security_enabled     | True                                 |
    | project_id                | c961a8f6d3654657885226378ade8220     |
    | provider:network_type     | vxlan                                |
    | provider:physical_network | None                                 |
    | provider:segmentation_id  | 21                                   |
    | revision_number           | 3                                    |
    | router:external           | Internal                             |
    | shared                    | False                                |
    | status                    | ACTIVE                               |
    | subnets                   |                                      |
    | tags                      | []                                   |
    | updated_at                | 2016-12-21T08:50:05Z                 |
    +---------------------------+--------------------------------------+
    
    $ openstack network create selfservice3
    Created a new network:
    +---------------------------+--------------------------------------+
    | Field                     | Value                                |
    +---------------------------+--------------------------------------+
    | admin_state_up            | UP                                   |
    | availability_zone_hints   |                                      |
    | availability_zones        |                                      |
    | created_at                | 2016-12-21T08:50:35Z                 |
    | description               |                                      |
    | headers                   |                                      |
    | id                        | eeccdb82-5cf4-4999-8ab3-e7dc99e7d43b |
    | ipv4_address_scope        | None                                 |
    | ipv6_address_scope        | None                                 |
    | mtu                       | 1450                                 |
    | name                      | selfservice3                         |
    | port_security_enabled     | True                                 |
    | project_id                | c961a8f6d3654657885226378ade8220     |
    | provider:network_type     | vxlan                                |
    | provider:physical_network | None                                 |
    | provider:segmentation_id  | 86                                   |
    | revision_number           | 3                                    |
    | router:external           | Internal                             |
    | shared                    | False                                |
    | status                    | ACTIVE                               |
    | subnets                   |                                      |
    | tags                      | []                                   |
    | updated_at                | 2016-12-21T08:50:35Z                 |
    +---------------------------+--------------------------------------+
    
  4. Self-servis alt ağ havuzundan bir IP adres aralığı kullanarak ilk iki self-servis ağı üzerinde bir alt ağ oluştur.

    $ 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. Adres alanının dışında bir IP adres aralığı kullanarak en son self-servis ağında bir alt ağ oluştur.

    $ 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                        |
    +-------------------+--------------------------------------------+
    

Yönlendiricileri oluştur ve yapılandır

  1. Yönlendiricileri oluştur.

    $ openstack router create router1
    +-------------------------+--------------------------------------+
    | Field                   | Value                                |
    +-------------------------+--------------------------------------+
    | admin_state_up          | UP                                   |
    | availability_zone_hints |                                      |
    | availability_zones      |                                      |
    | created_at              | 2017-01-10T13:15:19Z                 |
    | description             |                                      |
    | distributed             | False                                |
    | external_gateway_info   | null                                 |
    | flavor_id               | None                                 |
    | ha                      | False                                |
    | headers                 |                                      |
    | id                      | 3f6f4ef8-63be-11e6-bbb3-2fbcef363ab8 |
    | name                    | router1                              |
    | project_id              | b3ac05ef10bf441fbf4aa17f16ae1e6d     |
    | revision_number         | 1                                    |
    | routes                  |                                      |
    | status                  | ACTIVE                               |
    | updated_at              | 2017-01-10T13:15:19Z                 |
    +-------------------------+--------------------------------------+
    
    $ openstack router create router2
    +-------------------------+--------------------------------------+
    | Field                   | Value                                |
    +-------------------------+--------------------------------------+
    | admin_state_up          | UP                                   |
    | availability_zone_hints |                                      |
    | availability_zones      |                                      |
    | created_at              | 2017-01-10T13:15:19Z                 |
    | description             |                                      |
    | distributed             | False                                |
    | external_gateway_info   | null                                 |
    | flavor_id               | None                                 |
    | ha                      | False                                |
    | headers                 |                                      |
    | id                      | 3fd21a60-63be-11e6-9c95-5714c208c499 |
    | name                    | router2                              |
    | project_id              | b3ac05ef10bf441fbf4aa17f16ae1e6d     |
    | revision_number         | 1                                    |
    | routes                  |                                      |
    | status                  | ACTIVE                               |
    | updated_at              | 2017-01-10T13:15:19Z                 |
    +-------------------------+--------------------------------------+
    
    $ openstack router create router3
    +-------------------------+--------------------------------------+
    | Field                   | Value                                |
    +-------------------------+--------------------------------------+
    | admin_state_up          | UP                                   |
    | availability_zone_hints |                                      |
    | availability_zones      |                                      |
    | created_at              | 2017-01-10T13:15:19Z                 |
    | description             |                                      |
    | distributed             | False                                |
    | external_gateway_info   | null                                 |
    | flavor_id               | None                                 |
    | ha                      | False                                |
    | headers                 |                                      |
    | id                      | 40069a4c-63be-11e6-9ecc-e37c1eaa7e84 |
    | name                    | router3                              |
    | project_id              | b3ac05ef10bf441fbf4aa17f16ae1e6d     |
    | revision_number         | 1                                    |
    | routes                  |                                      |
    | status                  | ACTIVE                               |
    | updated_at              | 2017-01-10T13:15:19Z                 |
    +-------------------------+--------------------------------------+
    
  2. Her yönlendirici için, yönlendiricide bir arabirim olarak bir self servis alt ağ ekleyin.

    $ 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. Her yönlendiriciye bir sağlayıcı ağı geçit olarak ekleyin.

    $ 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
    

BGP yayıncıyı oluştur ve yapılandır

BGP yayıncı, uygun self-servis ağları için bir sonraki atlamalı IP adresini ve bu ağları kullanan örnekler için kayan IP adreslerini duyurur.

  1. BGP yayıncıyı oluştur.

    $ 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     |
    +-----------------------------------+--------------------------------------+
    

    LOCAL_AS yerine uygun yerel özerk sistem numarası koyun. Örnek yapılandırmada AS 1234 kullanılıyor.

  2. Bir BGP yayıncı uygun önekleri belirlemek için bir sağlayıcı ağı ile bağlantıya girmeyi gerektirir. Bu ilişki, aynı adres alanındaki sağlayıcı ve self-servis ağlarındaki ağ geçitleriyle tüm sanal yönlendiricilerin bir listesini oluşturur; böylece BGP yayınlayıcı, sonraki hop IP adresi olarak karşılık gelen yönlendirici ile self-servis ağ önekleri ilan edebilir. BGP hoparlörünü sağlayıcı ağı ile ilişkilendirin.

    $ neutron bgp-speaker-network-add bgpspeaker provider
    Added network provider to BGP speaker bgpspeaker.
    
  3. BGP yayıncı ile sağlayıcı ağ arasındaki ilişkiyi doğrula.

    $ 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. BGP yayıncının önerdiği önekleri ve sonraki IP adres zıplamalarını doğrula.

    $ 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. Bir BGP akranı oluştur.

    $ 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     |
    +-----------+--------------------------------------+
    

    REMOTE_AS dosyasını uygun bir uzak özerk sistem numarası ile değiştirin. Örnek konfigürasyon, EBGP denkliği tetikleyen AS 4321’i kullanır.

    Not

    BGP ajanı içeren sunucu sağlayıcı yönlendiriciye katman-3 bağlanabilirliğine sahip olmak zorundadır.

  6. BGP yayıncısına BGP eşi ekle.

    $ neutron bgp-speaker-peer-add bgpspeaker bgppeer
    Added BGP peer bgppeer to BGP speaker bgpspeaker.
    
  7. BGP yayıncısına BGP eşi eklemeyi onayla.

    $ 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     |
    +-----------------------------------+--------------------------------------+
    

    Not

    Eşleme oturumu oluşturduktan sonra yerel veya uzak özerk sistem numaralarını değiştiremezsiniz.

BGP yayıncısını bir ajana zamanla

  1. Çoğu ajanın aksine, BGP yayıncıları bir ajanı el ile zamanlama gerektirir. BGP yayıncıları sadece bir eşleme oturumu oluşturur ve bir ajana planlandıktan sonra önek ilanını başlatırlar. BGP yayıncısını 37729181-2224-48d8-89ef-16eca8e2f77e ajanına zamanla.

    $ neutron bgp-dragent-speaker-add 37729181-2224-48d8-89ef-16eca8e2f77e bgpspeaker
    Associated BGP speaker bgpspeaker to the Dynamic Routing agent.
    
  2. BGP yayıncısını ajana zamanlamayı onayla.

    $ 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 |
    +--------------------------------------+------------+----------+------------+
    

Ön ek ilanı

BGP dinamik yönlendirme, self servis ağlar için önekleri ve yüzen IP adresleri için ana bilgisayar yönlerini bildirir.

Bir self-servis ağının tanıtımı aşağıdaki koşulların sağlanmasını gerektirir:

  • Harici ve self-servis ağı aynı adres alanındadır.
  • Yönlendirici, self servis alt ağda bir arabirim ve harici ağda bir ağ geçidi içerir.
  • BGP yayıncı, yönlendiricide bir ağ geçidi sağlayan harici ağ ile ilişkilendirir.
  • BGP yayıncıda advertise_tenant_networks özeliği True olarak ayarlanmıştır.
Example of prefix advertisements with self-service networks

Yüzen IP adresinin tanıtımı aşağıdaki koşulların sağlanmasını gerektirir:

  • Yüzen IP adres bağlama özelliğine sahip yönlendirici, harici bir ağda BGP tanıtımı birliği bulunan bir ağ geçidi içerir.
  • BGP yayıncı True olarak ayarlanan advertise_floating_ip_host_routes özelliğine sahiptir.
Example of prefix advertisements with floating IP addresses

Dağıtık Sanal Yönlendiriciler (DVR) ile İşlem

DVR kullanan dağıtımlarda, BGP yayıncı yüzen IP adreslerini ve self-servis ağlarını farklı şekilde duyurur. Yüzen IP adresleri için, BGP yayıncı karşılık gelen hesaplama düğümünde yüzen IP aracı ağ geçidini bir sonraki atlamalı IP adresi olarak bildirir. SNAT kullanan self servis ağlar için, BGP yayıncısı DVR SNAT düğümünü sonraki atlamalı IP adresi olarak bildirir.

Örneğin, aşağıdaki bileşenleri göz önüne alın:

  1. 203.0.113.0/24 IP adres aralığını kullanan ve kayan 203.0.113.101, 203.0.113.102, ve 203.0.113.103 IP adreslerini destekleyen bir sağlayıcı ağ.
  2. IP adres aralığı 10.0.1.0/24 olan bir self-servis ağı.
  3. SNAT ağ geçidi 203.0.113.11 üzerinde.
  4. Yüzen IP ajan ağ geçitleri (her hesaplama düğümü için bir) 203.0.113.12, 203.0.113.13, ve 203.0.113.14 üzerinde yerleşiktir.
  5. Üç sunucu, her hesaplama düğümü için bir, her biri bir yüzen IP adresi ile.
$ 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 |
+------------------+--------------+

Not

DVR, kayan IP ajan ağ geçidi portu üzerinden doğrudan sabit bir IP adresine yönlendirme desteğine sahip değildir ve böylece BGP yayıncının sabit IP adreslerini önerilerden almasını önler.

BGP yayıncının çalışıp çalışmadığını doğrulamak için çevrenizdeki yüzen IP aracı ağ geçitlerini de tanımlayabilirsiniz.

$ 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 dinamik yönlendirmesi, IPv6 yoluyla gözlemlemeyi ve IPv6 öneklerini tanıtmayı destekler.

  • IPv6 vasıtasıyla gözatmayı etkinleştirmek için bir BGP eşi oluşturun ve peer_ip için bir IPv6 adresi kullanın.
  • IPv6 öneklerini tanıtmak için, ip_version=6` ile bir adres kapsamı ve ip_version=6 olan bir BGP yayıncı oluşturun.

Not

IPv6’lı DVR, IPv4’li DVR’ye benzer şekilde işlev görür.

Yüksek kullanılabilirlik

BGP dinamik yönlendirme, bir BGP yayıncı, önek tanıtımını aynı eşe etkili bir şekilde çarpan birden fazla ajana planlamayı destekler. Bir ajan başarısız olursa, eş bir veya daha fazla operasyonel aracıdan tanıtım yayınlamaya devam eder.

  1. Mevcut dinamik yönlendirme araçlarını gösterin.

    $ 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. BGP yayıncıyı çoklu ajanlara zamanla.

    $ 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.