VMware Integrated OpenStack 4.0부터는 제공자 및 테넌트를 위한 동적 라우팅을 구성할 수 있습니다.

먼저 나중에 게이트웨이 Edge를 위한 내부 인터페이스로 사용할 XLAN 외부 네트워크를 생성해야 합니다.

사전 요구 사항

  • VMware NSX for vSphere 를 가상 네트워크 제공자로 사용해야 합니다.

프로시저

  1. 이후 테넌트 서브넷 및 외부 VXLAN 네트워크 서브넷에 대한 IPv4 주소 범위를 생성합니다.
    neutron address-scope-create scope_name 4
  2. 제공자 서브넷 풀을 생성합니다.
    scope_name을 앞서 생성한 주소 범위의 이름으로 바꿉니다.
    neutron subnetpool-create --pool-prefix 10.10.10.0/24 --default-prefixlen 24 provider_pool_name --address-scope scope_name
  3. 테넌트 네트워크에 대한 셀프 서비스 서브넷 풀을 생성합니다.
    scope_name을 앞서 생성한 주소 범위의 이름으로 바꿉니다.
    neutron	subnetpool-create --pool-prefix 1.1.1.0/24 --default-prefixlen 26 selfservice	--address-scope scope_name --shared
  4. 외부 VXLAN 네트워크를 생성합니다.
    다음 명령은 VMware NSX for vSphere 에서 새 논리적 스위치를 생성합니다.
    neutron net-create --provider:network_type vxlan --router:external external_VXLAN_network_name
  5. 외부 VXLAN 서브넷을 생성합니다.
    provider_pool_name을 앞서 생성한 제공자 풀의 이름으로 바꿉니다. external_VXLAN_network_name을 앞서 생성한 네트워크의 이름으로 바꿉니다.
    neutron subnet-create --no-gateway --name ext_vxlan_subnet_name --disable-dhcp --allocation-pool start=start_IP,end=end_IP --subnetpool provider_pool_nameexternal_VXLAN_network_nameNETWORK[CIDR]
  6. nsxadmin 유틸리티를 사용하여 BGP 피어링 게이트웨이 Edge를 생성합니다.
    게이트웨이 Edge는 관리 네트워크를 외부 인터페이스 및 외부 인터페이스로 생성한 외부 네트워크로 사용합니다.
    nsxadmin -r bgp-gw-edge -o create --property name=name_GW-EDGE1 --property local-as=65001 --property external-iface=morefid:mgtnetwork --property internal-iface=morefid:internal_interface_network_GW-EDGE1
    
    nsxadmin -r bgp-gw-edge -o create --property name=name_GW-EDGE2 --property local-as=65001 --property external-iface=morefid:mgtnetwork --property internal-iface=morefid:internal_interface_network_GW-EDGE2
  7. NSX Edge를 BGP 광고로 업데이트합니다.
    앞의 단계에서 생성한 Edge의 ID를 사용합니다.
    nsxadmin -r routing-redistribution-rule -o create --property gw-edge-ids=edge-ID_GW-EDGE1,edge-ID_GW-EDGE2 --property learner-protocol=bgp --property learn-from=connected,bgp --property action=permit 
    
  8. NSX Edge를 BGP 이웃으로 업데이트합니다.
    앞서 생성한 Edge의 ID를 사용합니다.
    nsxadmin -r bgp-neighbour -o create --property gw-edge-ids=edge-ID_GW-EDGE1,edge-ID_GW-EDGE2 --property ip-address=IP_physical_router1 --property remote-as=65000 --property password=BGP_password
    
    nsxadmin -r bgp-neighbour -o create --property gw-edge-ids=edge-ID_GW-EDGE1,edge-ID_GW-EDGE2 --property ip-address=IP_physical_router2 --property remote-as=65000 --property password=BGP_password
  9. 물리적 라우터를 업데이트합니다.
    1. AS 값을 65000으로 설정합니다.
    2. BGP 이웃을 name_GW-EDGE1name_GW-EDGE2로 설정합니다.
    3. 광고 자체를 동적 게이트웨이로 설정합니다.
  10. BGP 스피커를 생성 및 구성합니다.
    1. BGP 스피커를 생성합니다.
      neutron bgp-speaker-create --local-as local_as_valuename_bgp_speaker
    2. BGP 피어를 생성합니다.
      neutron bgp-peer-create --peer-ip internal_interface_network_GW-EDGE1 --remote-as 65001 --password BGP_password --auth-type md5 name_GW-EDGE1 --esg-id edge-ID_GW-EDGE1
      
      neutron bgp-peer-create --peer-ip internal_interface_network_GW-EDGE2 --remote-as 65001 --password BGP_password --auth-type md5 name_GW-EDGE2 --esg-id edge-ID_GW-EDGE2
    3. BGP 스피커에 BGP 피어를 추가합니다.
      neutron bgp-speaker-peer-add name_bgp_speakername_GW-EDGE1 
      
      neutron bgp-speaker-peer-add name_bgp_speakername_GW-EDGE2
    4. 스피커를 VXLAN 네트워크와 연결합니다.
      neutron bgp-speaker-network-add name_bgp_speakerexternal_VXLAN_network_name
  11. (선택 사항) 테넌트에 대한 BGP 라우터를 생성합니다.
    테넌트 사용자는 고유의 BGP 라우터를 생성할 수 있습니다. SNAT 없이 라우터를 구성하려면 테넌트 사용자가 admin이어야 합니다.
    1. 테넌트에 대한 논리적 스위치 2개와 논리저 스위치에 대한 서브넷 풀을 생성합니다.
      neutron net-create name_Tenant1_LS1
      
      neutron subnet-create --name name_network_Tenant1-LS1name_Tenant1_LS1 --subnetpool selfservice
      
      neutron net-create name_Tenant1_LS2
      
      neutron subnet-create --name name_network_Tenant1-LS2name_Tenant1_LS2 --subnetpool selfservice
      
    2. BGP 구성으로 라우터를 생성합니다.
      BGP가 모든 OpenStack 논리적 라우터 폼팩터 shared, distributedexclusive와 작동합니다.
      neutron router-create name_Tenant1-LR --router_type=exclusive
      
      neutron router-interface-add name_Tenant1-LRname_network_Tenant1-LS1
      
      neutron router-interface-add name_Tenant1-LRname_network_Tenant1-LS2
      
      neutron router-gateway-set name_Tenant1-LR --disable-snat external_VXLAN_network_name

결과

이제 BGP 동적 라우팅이 제공자 측에서 구성되었으며 테넌트가 이를 사용할 수도 있습니다.