Oracle® Solaris에서 OpenStack(Kilo) 설치 및 구성

인쇄 보기 종료

업데이트 날짜: 2016년 6월
 
 

외부 네트워크 만들기

라우터를 만든 후 외부 네트워크를 구성합니다. 외부 네트워크의 게이트웨이를 통해 클라우드의 내부 네트워크 사용자가 인터넷에 연결할 수 있습니다.

다음 그림은 단일 라우터가 클라우드 프로젝트의 네트워크 통신을 어떻게 지원하는지 보여줍니다.

그림 3  개인 네트워크 모델을 사용하는 공급자 라우터

image:각각 2개의 내부 네트워크와 2개의 VM 인스턴스가 있는 프로젝트 2개

그림은 다음을 보여줍니다.

  • 프로젝트 2개(Tenant ATenant B)

  • VM 4개(VM1, VM2, VM3VM4)

  • 서브넷 4개(HR, ENG, ITACCT)

  • 라우터

  • 외부 네트워크

외부 네트워크에 대한 내부 네트워크 액세스를 제공할 경우 VM의 IP 주소는 외부 네트워크에 지정하는 유동 주소 중 하나에 매핑됩니다.

외부 네트워크를 만드는 방법

이 절차에서는 외부 네트워크를 나타내는 가상 네트워크를 만드는 방법을 보여줍니다. 이 가상 네트워크에서는 DHCP를 사용하지 않습니다. 대신 유동 IP 주소가 만들어지고 프로젝트에 지정되며 이러한 프로젝트 아래에서 Nova VM 인스턴스에 의해 사용됩니다. 다음 단계에서는 VLAN 네트워크 유형을 만들지만, 절차는 다른 네트워크 유형(예: 플랫 네트워크) 만들기에도 적용됩니다.

내부 네트워크 만들기와 독립적으로 외부 네트워크를 만들 수 있습니다.

시작하기 전에

탄력적 가상 스위치의 구성을 완료하십시오. 자세한 내용은 Neutron을 설치 및 구성하는 방법, 특히 EVS 구성 단계를 참조하십시오.

  1. Neutron에 대한 전역 셸 변수를 설정합니다.
    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
  2. (옵션) VLAN 범위를 가져옵니다.
    controller# evsadm show-controlprop -p vlan-range
  3. 외부 네트워크를 만듭니다.
    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입니다.


    주 -  플랫 네트워크를 만드는 경우 세그먼트화 ID를 지정할 필요가 없습니다.
  4. 외부 네트워크의 서브넷을 만듭니다.

    할당 풀은 서브넷에 지정된 일정 범위의 유동 IP 주소로 구성됩니다.

    controller# neutron subnet-create --name subnet-name --disable-dhcp \
       --allocation-pool start=start-IP,end=end-IP \
       network-name subnet-IP
  5. 라우터에 외부 네트워크를 추가합니다.
    controller# neutron router-gateway-set router-name ext-network-ID

    주 -  기본적으로 SNAT는 이 명령을 실행할 때 사용으로 설정됩니다. SNAT가 사용으로 설정된 경우 개인 네트워크의 VM은 외부 네트워크에 액세스할 수 있습니다. 그러나 인스턴스 자체는 클라우드 밖에서 액세스할 수 없습니다. SNAT를 사용 안함으로 설정하려면 neutron router-gateway-set 하위 명령에 –--disable-snat 옵션을 지정합니다.
  6. (옵션) 라우터에 대한 정보를 표시합니다.
    controller# neutron router-show router-name
예 2  외부 네트워크 만들기

이 예에서는 외부 네트워크를 만들어 클라우드의 내부 네트워크에서 사용할 수 있도록 준비하는 방법을 보여줍니다.

플랫 네트워크를 만들려면 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                      |
+-----------------------+-------------------------------------------------------+

참조

내부 네트워크에 외부 연결을 제공하는 방법

이 절차를 사용하여 내부 네트워크에서 더 넓은 공용 네트워크에 액세스하도록 할 수 있습니다. 이 절차에서는 내부 네트워크가 특정 프로젝트에 대해 이미 존재한다고 간주합니다. 대시보드를 사용하여 프로젝트 내부 네트워크를 만들려면 프로젝트에 대한 내부 네트워크 만들기를 참조하십시오.

시작하기 전에

계속하기 전에 공용 액세스가 필요한 서브넷 이름을 확인하십시오.

  1. Neutron에 대한 전역 셸 변수를 설정합니다.
    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
  2. 외부 액세스가 필요한 서브넷의 ID를 식별합니다.
    controller# neutron subnet-list | grep subnet-name
  3. (옵션) 라우터의 이름을 확인합니다.
    controller# neutron router-list
  4. 서브넷의 ID를 라우터에 인터페이스로 추가합니다.
    controller# neutron router-interface-add router-name subnetID
예 3  외부 네트워크에 내부 네트워크 연결

이 예에서는 프로젝트에 대한 네트워크를 구성하는 방법에서 만들어진 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.

L3 에이전트 구성을 관찰하는 방법

IP 필터 명령(예: ipf, ippoolipnat) 및 네트워킹 명령(예: dladmipadm)을 사용하여 neturon-l3-agent로 완료된 구성을 관찰하고 문제를 해결할 수 있습니다.

  1. neutron-l3-agent로 만들어진 VNIC를 표시합니다.
    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
    
  2. neutron-l3-agent로 만들어진 IP 주소를 표시합니다.
    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
  3. IP 필터 규칙을 표시합니다.
    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; };
  4. IP NAT 규칙을 표시합니다.
    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]