18.3. DNS가 포트에 할당하는 이름 지정

포트 확장(dns_domain_ports)에 대해 RHOSP(Red Hat OpenStack Platform) 네트워킹 서비스(neutron) dns_domain을 활성화할 때 내부 DNS에서 포트에 할당된 이름을 지정할 수 있습니다.

YAML 형식의 환경 파일에서 RHOSP Orchestration(heat) NeutronPluginExtensions 매개변수를 선언하여 포트 확장에 대해 dns_domain을 활성화합니다. 해당 매개변수인 NeutronDnsDomain 을 사용하여 도메인 이름을 지정하여 기본값인 openstacklocal 을 덮어씁니다. 오버클라우드를 재배포한 후 OpenStack 클라이언트 포트 명령, 포트 세트 또는 포트 생성을 --dns-name 과 함께 사용하여 포트 이름을 할당할 수 있습니다.

또한 포트 확장의 dns_domain이 활성화되면 계산 서비스에서 VM 인스턴스 부팅 중에 인스턴스의 hostname 속성으로 dns_name 속성을 자동으로 채웁니다. 부팅 프로세스가 끝나면 dnsmasq는 인스턴스 호스트 이름으로 할당된 포트를 인식합니다.

절차

  1. stack 사용자로 언더클라우드에 로그인하고 stackrc 파일을 가져와 director 명령줄 툴을 활성화합니다.

    예제

    $ source ~/stackrc

  2. 사용자 지정 YAML 환경 파일(my-neutron-environment.yaml)을 만듭니다.

    참고

    괄호 안의 값은 이 절차의 예제 명령에 사용되는 샘플 값입니다. 이러한 샘플 값을 사이트에 적합한 값으로 바꿉니다.

    예제

    $ vi /home/stack/templates/my-neutron-environment.yaml

    작은 정보

    언더클라우드에는 오버클라우드 생성 계획을 구성하는 오케스트레이션 서비스 템플릿 세트가 포함되어 있습니다. 핵심 오케스트레이션 서비스 템플릿 컬렉션의 매개변수와 리소스를 재정의하는 YAML 형식의 파일인 환경 파일을 사용하여 오버클라우드의 특정 부분을 사용자 지정할 수 있습니다. 환경 파일은 필요한 수만큼 추가할 수 있습니다.

  3. 환경 파일에서 parameter_defaults 섹션을 추가합니다. 이 섹션에서 포트 확장자 dns_domain_ ports에 대해 dns_domain 을 추가합니다.

    예제

    parameter_defaults:
      NeutronPluginExtensions: "qos,port_security,dns_domain_ports"

    참고

    dns_domain_ports 를 설정하는 경우 배포에서 DNS 통합 확장 기능인 dns_domain 도 사용하지 않는지 확인합니다. 이러한 확장 기능은 호환되지 않으며 두 확장을 동시에 정의할 수 없습니다.

  4. 또한 parameter_defaults 섹션에서 NeutronDnsDomain 매개변수를 사용하여 도메인 이름(example.com)을 추가합니다.

    예제

    parameter_defaults:
        NeutronPluginExtensions: "qos,port_security,dns_domain_ports"
        NeutronDnsDomain: "example.com"

  5. openstack overcloud deploy 명령을 실행하고 핵심 오케스트레이션 템플릿, 환경 파일 및 이 새 환경 파일을 포함합니다.

    중요

    후속 환경 파일에 정의된 매개 변수와 리소스가 우선하기 때문에 환경 파일의 순서가 중요합니다.

    예제

    $ openstack overcloud deploy --templates \
    -e [your-environment-files] \
    -e /usr/share/openstack-tripleo-heat-templates/environments/services/my-neutron-environment.yaml

검증

  1. Overcloud에 로그인하고 네트워크(공용)에 새 포트(new_port)를 만듭니다. 포트에 DNS 이름(my_port)을 할당합니다.

    예제

    $ source ~/overcloudrc
    $ openstack port create --network public --dns-name my_port new_port

  2. 포트(new_port)의 세부 정보를 표시합니다.

    예제

    $ openstack port show -c dns_assignment -c dns_domain -c dns_name -c name new_port

    출력 결과

    +-------------------------+----------------------------------------------+
    | Field                   | Value                                        |
    +-------------------------+----------------------------------------------+
    | dns_assignment          | fqdn='my_port.example.com',                  |
    |                         | hostname='my_port',                          |
    |                         | ip_address='10.65.176.113'                   |
    | dns_domain              | example.com                                  |
    | dns_name                | my_port                                      |
    | name                    | new_port                                     |
    +-------------------------+----------------------------------------------+

    dns_assignment 에서 포트의 정규화된 도메인 이름(fqdn) 값에는 NeutronDnsDomain 을 사용하여 이전에 설정한 DNS 이름(my_port) 및 도메인 이름(example.com)의 연결이 포함됩니다.

  3. 방금 만든 포트(new_port)를 사용하여 새 VM 인스턴스( my_vm)를 만듭니다.

    예제

    $ openstack server create --image rhel --flavor m1.small --port new_port my_vm

  4. 포트(new_port)의 세부 정보를 표시합니다.

    예제

    $ openstack port show -c dns_assignment -c dns_domain -c dns_name -c name new_port

    출력 결과

    +-------------------------+----------------------------------------------+
    | Field                   | Value                                        |
    +-------------------------+----------------------------------------------+
    | dns_assignment          | fqdn='my_vm.example.com',                    |
    |                         | hostname='my_vm',                            |
    |                         | ip_address='10.65.176.113'                   |
    | dns_domain              | example.com                                  |
    | dns_name                | my_vm                                        |
    | name                    | new_port                                     |
    +-------------------------+----------------------------------------------+

    계산 서비스는 dns_name 속성을 원래 값(my_port)에서 포트가 연결된 인스턴스 이름(my_vm)으로 변경합니다.

추가 리소스