이 절차는 외부 네트워크를 나타내는 가상 네트워크를 만드는 방법을 보여줍니다. 이 가상 네트워크에서 DHCP는 사용되지 않습니다. 대신 유동 IP 주소가 만들어집니다. 이러한 유동 IP 주소는 특정 테넌트에 지정되며 해당 테넌트에 속하는 사용자용으로 Nova VM 인스턴스에 지정될 수 있습니다.
이 장의 샘플 다중 노드 아키텍처에서 컨트롤러에 Neutron 서비스가 포함되므로 컨트롤러 노드에서 다음 단계를 수행하십시오.
시작하기 전에
이 절차를 수행하려면 테넌트에 대한 내부 네트워크가 이미 있어야 합니다. 개인 네트워크를 만드는 절차는 내부 네트워크를 만드는 방법를 참조하십시오.
또한 l2-type 및 vlan-range 등록 정보가 구성된 것과 같이 탄력적 가상 스위치가 이미 구성되어 있어야 합니다. 다음 예에서는 Step 9에서 이러한 등록 정보 설정을 구성할 때 이러한 설정을 표시하는 방법을 보여줍니다.
controller# evsadm show-controlprop -p l2-type -p vlan-range PROPERTY PERM VALUE DEFAULT HOST l2-type rw vlan vlan -- vlan-range rw 1,200-300 -- --
외부 네트워크에 연결할 개인 네트워크의 테넌트에 대한 정보도 알고 있어야 합니다. 테넌트 정보는 다음 명령을 사용하여 언제든지 표시할 수 있습니다.
keystone tenant-list
controller# svcadm enable ipfilter
controller# ipadm set-prop -p forwarding=on ipv4
controller# export OS_USERNAME=neutron controller# export OS_PASSWORD=service-password controller# export OS_TENANT_NAME=service-name controller# export OS_AUTH_URL=http://controller-name:5000/v2.0
controller# neutron router-create router-name
이 명령은 라우터 이름을 해당 ID와 함께 표시합니다. 이 ID를 사용하여 다음 단계에서 구성 파일을 업데이트합니다.
/etc/neutron/l3_agent.ini 파일에서 router_id 매개변수의 값을 이전 단계의 라우터 UUID로 설정합니다.
router_id = router-ID
controller# svcadm enable neutron-l3-agent
controller# neutron net-create --provider:network_type=vlan \ --provider:segmentation_id=VLAN-nbr \ --router:external=true network-name
여기서 segmentation_id의 값은 VLAN 범위의 첫번째 숫자입니다.
이 문서의 샘플 구성에서는 DHCP가 사용 안함으로 설정되어 있습니다. 할당 풀은 서브넷에 지정된 유동 IP 주소의 범위로 구성됩니다.
controller# neutron subnet-create --enable-dhcp=false --name subnet-name \ --allocation-pool start=start-IP, end=end-IP network-name subnet-IP
controller# neutron router-gateway-set router-ID network-ID \
이 단계에서는 라우터 ID와 테넌트의 서브넷 ID가 필요합니다. 이 정보는 다음과 같이 얻을 수 있습니다.
# keystone tenant-list # neutron net-list --tenant-id tenant-ID
외부 네트워크에 추가하려는 테넌트의 개인 네트워크 수에 따라 이 단계를 반복하십시오.
controller# neutron router-interface-add router-ID subnet-ID
다음 예에서는 Figure 3–3의 일부분을 참조로 사용합니다. 이 그림에서 테넌트 A에는 두 개의 VM 인스턴스가 있고, 각 인스턴스는 개인 네트워크에 속해 있습니다. 두 개의 개인 네트워크는 HR과 ENG입니다. 두 개의 VM 인스턴스가 보다 광범위한 네트워크와 통신할 수 있도록 외부 인스턴스에 이러한 두 서브넷이 추가됩니다. 이 예에서는 Neutron 서비스에 대해 기본 사용자 이름과 암호를 사용한다고 가정합니다.
controller# svcadm enable ipfilter controller# ipadm set-prop -p forwarding=on ipv4 controller# export OS_USERNAME=neutron controller# export OS_PASSWORD=neutron controller# export OS_TENANT_NAME=TenantA controller# export OS_AUTH_URL=http://controller-name:5000/v2.0
controller# neutron router-create ext-router Created a new router: +-----------------------+-----------------+ | Field | Value | +-----------------------+-----------------+ | admin_state_up | True | | external_gateway_info | | | id | 97ro5-ut3er | | name | ext-router | | status | ACTIVE | | tenant_id | abcde12345 | +-----------------------+-----------------+
이때 router_ID 매개변수를 97ro5-ut3er로 설정하여 /etc/neutron/l3_agent.ini 파일을 업데이트하십시오.
파일을 업데이트한 후 나머지 단계를 진행하십시오.
controller# svcadm enable neutron-l3-agent controller# neutron net-create --provider:network_type=vlan \ --provider:segmentation_id=1 --router:external=true ext_network Created a new network: +--------------------------+-------------------+ | Field | Value | +--------------------------+-------------------+ | admin_state_up | True | | id | 555ext-net555 | | name | ext_network | | provider:network_type | vlan | | provider:segmentation_id | 1 | | router:external | True | | shared | False | | status | ACTIVE | | subnets | | | tenant_id | abcde12345 | +--------------------------+-------------------+ controller# neutron subnet-create --enable-dhcp=False \ --name ext_subnet --allocation-pool start=10.134.13.8,end=10.134.13.254 \ ext_network 10.134.13.0/24 Created a new subnet: +------------------+--------------------------------------------------+ | Field | Value | +------------------+--------------------------------------------------+ | allocation_pools | {"start": "10.134.13.8", "end": "10.134.13.254"} | | cidr | 10.134.13.0/24 | | dns_nameservers | | | enable_dhcp | False | | gateway_ip | 10.134.13.1 | | host_routes | | | id | 444sub-net444 | | ip_version | 4 | | name | ext_subnet | | network_id | 555ext-net555 | | tenant_id | abcde12345 | +------------------+--------------------------------------------------+ controller# neutron router-gateway-set 97ro5-ut3er 555ext-net555 Set gateway for router 97ro5-ut3er controller# keystone tenant-list +------------+---------+---------+ | id | name | enabled | +------------+---------+---------+ | 12345abcde | TenantA | True | | 67890fghij | TenantB | True | +------------+---------+---------+ controller# neutron net-list --tenant-id 12345abcde +------------+------+-------------+ | id | name | subnets | +------------+------+-------------+ | 1a3b5c7d9e | HR | xyz-123-uvw | | 2f4g6h8i0j | ENG | 098-r2d2-56 | +------------+------+-------------+ controller# neutron router-interface-add 97ro5-ut3er xyz-123-uvwHR added to the router. Added interface xyz-123-uvw to router 97ro5-ut3er. controller# neutron router-interface-add 97ro5-ut3er 098-r2d2-56ENG added to the router. Added interface 098-r2d2-56 to router 97ro5-ut3er.
참조