라우터를 만든 후 외부 네트워크를 구성합니다. 외부 네트워크의 게이트웨이를 통해 클라우드의 내부 네트워크 사용자가 인터넷에 연결할 수 있습니다.
다음 그림은 단일 라우터가 클라우드 프로젝트의 네트워크 통신을 어떻게 지원하는지 보여줍니다.
그림 3 개인 네트워크 모델을 사용하는 공급자 라우터
그림은 다음을 보여줍니다.
프로젝트 2개(Tenant A 및 Tenant B)
VM 4개(VM1, VM2, VM3 및 VM4)
서브넷 4개(HR, ENG, IT 및 ACCT)
라우터
외부 네트워크
외부 네트워크에 대한 내부 네트워크 액세스를 제공할 경우 VM의 IP 주소는 외부 네트워크에 지정하는 유동 주소 중 하나에 매핑됩니다.
이 절차에서는 외부 네트워크를 나타내는 가상 네트워크를 만드는 방법을 보여줍니다. 이 가상 네트워크에서는 DHCP를 사용하지 않습니다. 대신 유동 IP 주소가 만들어지고 프로젝트에 지정되며 이러한 프로젝트 아래에서 Nova VM 인스턴스에 의해 사용됩니다. 다음 단계에서는 VLAN 네트워크 유형을 만들지만, 절차는 다른 네트워크 유형(예: 플랫 네트워크) 만들기에도 적용됩니다.
내부 네트워크 만들기와 독립적으로 외부 네트워크를 만들 수 있습니다.
시작하기 전에
탄력적 가상 스위치의 구성을 완료하십시오. 자세한 내용은 Neutron을 설치 및 구성하는 방법, 특히 EVS 구성 단계를 참조하십시오.
controller# export OS_USERNAME=neutron controller# export OS_PASSWORD=service-password controller# export OS_PROJECT_NAME=service controller# export OS_AUTH_URL=http://$CONTROLLER_ADMIN_NODE:5000/v2.0
controller# evsadm show-controlprop -p vlan-range
controller# neutron net-create --provider:network_type=vlan \ --provider:segmentation_id=VLAN-nbr \ --router:external network-name
이 단계에서는 Neutron을 설치 및 구성하는 방법에 따라 VLAN 네트워크를 만든 것으로 간주합니다. segmentation_id는 EVS를 구성할 때 정의한 범위의 VLAN 네트워크에 대한 VLAN ID입니다.
할당 풀은 서브넷에 지정된 일정 범위의 유동 IP 주소로 구성됩니다.
controller# neutron subnet-create --name subnet-name --disable-dhcp \ --allocation-pool start=start-IP,end=end-IP \ network-name subnet-IP
controller# neutron router-gateway-set router-name ext-network-ID
controller# neutron router-show router-name
이 예에서는 외부 네트워크를 만들어 클라우드의 내부 네트워크에서 사용할 수 있도록 준비하는 방법을 보여줍니다.
플랫 네트워크를 만들려면 https://blogs.oracle.com/openstack/tags/juno의 2절에 제공된 예를 참조하십시오.
controller# export OS_USERNAME=neutron controller# export OS_PASSWORD=service-password controller# export OS_PROJECT_NAME=service controller# export OS_AUTH_URL=http://$CONTROLLER_ADMIN_NODE:5000/v2.0 controller# evsadm show-controlprop -p vlan-range PROPERTY PERM VALUE DEFAULT HOST vlan-range rw 1,200-300 -- -- controller# neutron net-create --router:external \ --provider:network_type=vlan --provider:segmentation_id=1 ext_network Created a new network: +--------------------------+--------------------------------------+ | Field | Value | +--------------------------+--------------------------------------+ | admin_state_up | True | | id | 08cf49c8-f28f-49c1-933d-bdb1017e0294 | | name | ext_network | | provider:network_type | vlan | | provider:segmentation_id | 1 | | router:external | True | | shared | False | | status | ACTIVE | | subnets | | | project_id | 7d1caf0854b24becb28df5c5cabf72cc | +--------------------------+--------------------------------------+ controller# neutron subnet-create --name ext_subnet --disable-dhcp \ --allocation-pool start=10.134.10.8,end=10.134.10.254 \ ext_network 10.134.10.0/24 Created a new subnet: +-------------------+---------------------------------------------------+ | Field | Value | +-------------------+---------------------------------------------------+ | allocation_pools | {"start": "10.134.10.8", "end": "10.134.10.254"} | | cidr | 10.134.10.0/24 | | dns_nameservers | | | enable_dhcp | False | | gateway_ip | 10.134.13.1 | | host_routes | | | id | fce503ff-f483-4024-b122-f2524e3edae1 | | ip_version | 4 | | ipv6_address_mode | | | ipv6_ra_mode | | | name | ext_subnet | | network_id | 08cf49c8-f28f-49c1-933d-bdb1017e0294 | | project_id | 7d1caf0854b24becb28df5c5cabf72cc | +-------------------+---------------------------------------------------+ controller# neutron router-gateway-set ext-router 08cf49c8-f28f-49c1-933d-bdb1017e0294 Set gateway for router ext-router controller# neutron router-show ext-router +-----------------------+-------------------------------------------------------+ | Field | Value | +-----------------------+-------------------------------------------------------+ | admin_state_up | True | | external_gateway_info | {"network_id": "08cf49c8-f28f-49c1-933d-bdb1017e0294",| | | "enable_snat": true, | | | "external_fixed_ips": | | |[{"subnet_id": "fce503ff-f483-4024-b122-f2524e3edae1", | | |"ip_address": "10.134.10.8"}]} | | | id | f89b24ed-42dd-48b0-8f4b-fd41887a3370 | | name | ext-router | | status | ACTIVE | | project_id | 7d1caf0854b24becb28df5c5cabf72cc | +-----------------------+-------------------------------------------------------+
참조
이 절차를 사용하여 내부 네트워크에서 더 넓은 공용 네트워크에 액세스하도록 할 수 있습니다. 이 절차에서는 내부 네트워크가 특정 프로젝트에 대해 이미 존재한다고 간주합니다. 대시보드를 사용하여 프로젝트 내부 네트워크를 만들려면 프로젝트에 대한 내부 네트워크 만들기를 참조하십시오.
시작하기 전에
계속하기 전에 공용 액세스가 필요한 서브넷 이름을 확인하십시오.
controller# export OS_USERNAME=neutron controller# export OS_PASSWORD=service-password controller# export OS_PROJECT_NAME=service controller# export OS_AUTH_URL=http://$CONTROLLER_ADMIN_NODE:5000/v2.0
controller# neutron subnet-list | grep subnet-name
controller# neutron router-list
controller# neutron router-interface-add router-name subnetID
이 예에서는 프로젝트에 대한 네트워크를 구성하는 방법에서 만들어진 HR 내부 네트워크를 사용합니다. 서브넷이 HR_Subnet인 HR 네트워크에 공용 네트워크에 대한 액세스가 필요합니다.
controller# neutron subnet-list | grep HR_Subnet | b6feff42-36aa-4235- | HR_Subnet | 10.132.30.0/24 | {"start": "10.132.30.2", | | 9fe0-ac5de6b43af3 | | | "end": "10.132.30.254"} | controller# neutron router-list +--------------------- +------------+--------------------------------+ | id | name | external_gateway_info | +--------------------- +------------+--------------------------------+ | f89b24ed-42dd-48b0- | ext-router | {"network_id": "6c4c1823-a203- | | 8f4b-fd41887a3370 | | 43b1-9674-ddb5ff4185fc", | | | | "enable_snat": true, | | | | "external_fixed_ips": | | | | [{"subnet_id": "83d9b40f-cc61- | | | | 4696-b22e-b4cbc2aa3872", | | | | "ip_address": "10.132.10.8"}]} | +---------- -----------+------------+--------------------------------+ controller# neutron router-interface-add ext-router b6feff42-36aa-4235-9fe0-ac5de6b43af3 Added interface b6feff42-36aa-4235-9fe0-ac5de6b43af3 to router ext-router.
IP 필터 명령(예: ipf, ippool 및 ipnat) 및 네트워킹 명령(예: dladm 및 ipadm)을 사용하여 neturon-l3-agent로 완료된 구성을 관찰하고 문제를 해결할 수 있습니다.
network# dladm show-vnic LINK OVER SPEED MACADDRESS MACADDRTYPE VIDS l3i7843841e_0_0 net1 1000 2:8:20:42:ed:22 fixed 200 l3i89289b8e_0_0 net1 1000 2:8:20:7d:87:12 fixed 201 l3ed527f842_0_0 net0 100 2:8:20:9:98:3e fixed 0
network# ipadm NAME CLASS/TYPE STATE UNDER ADDR l3ed527f842_0_0 ip ok -- -- l3ed527f842_0_0/v4 static ok -- 10.134.10.8/24 l3ed527f842_0_0/v4a static ok -- 10.134.10.9/32 l3i7843841e_0_0 ip ok -- -- l3i7843841e_0_0/v4 static ok -- 192.168.100.1/24 l3i89289b8e_0_0 ip ok -- -- l3i89289b8e_0_0/v4 static ok -- 192.168.101.1/24
network# ipfstat -io empty list for ipfilter(out) block in quick on l3i7843841e_0_0 from 192.168.100.0/24 to pool/4386082 block in quick on l3i89289b8e_0_0 from 192.168.101.0/24 to pool/8226578 network# ippool -l table role = ipf type = tree number = 8226578 { 192.168.100.0/24; }; table role = ipf type = tree number = 4386082 { 192.168.101.0/24; };
network# ipnat -l List of active MAP/Redirect filters: bimap l3ed527f842_0_0 192.168.101.3/32 -> 10.134.13.9/32 List of active sessions: BIMAP 192.168.101.3 22 <- -> 10.134.13.9 22 [10.132.146.13 36405]