본문 바로가기

전산

# 오픈스택 Neutron 구성하기: 네트워크 설정 완벽 가이드

반응형

1. 오픈스택 Neutron이란?

오픈스택(OpenStack)은 클라우드 컴퓨팅을 위한 오픈소스 플랫폼으로, 컴퓨팅(Nova), 스토리지(Cinder, Swift), 네트워크(Neutron) 등의 다양한 컴포넌트로 구성됩니다. 이 중 Neutron은 네트워크 관리 기능을 제공하여 가상 네트워크를 생성하고 관리하는 핵심 역할을 합니다.

Neutron을 사용하면 가상 머신(VM) 간의 네트워크 연결을 정의하고, 외부 네트워크와의 통신을 설정하며, SDN(소프트웨어 정의 네트워크) 솔루션과도 연동할 수 있습니다. 본 가이드에서는 오픈스택 Neutron을 설치하고 구성하는 방법을 단계별로 설명합니다.


2. Neutron의 주요 구성 요소

Neutron을 제대로 이해하려면 주요 구성 요소를 알아야 합니다. Neutron은 여러 가지 핵심 컴포넌트로 구성되며, 다음과 같은 주요 요소들이 있습니다:

2.1 네트워크 유형

Neutron은 다양한 네트워크 유형을 지원하며, 다음과 같이 나뉩니다:

  • Flat Network: VLAN 태깅 없이 하나의 네트워크를 공유합니다.
  • VLAN (802.1Q): VLAN 태깅을 사용하여 트래픽을 분리합니다.
  • VXLAN/GRE: 터널링을 통해 가상 네트워크를 제공합니다.
  • External Network: 외부와 연결되는 네트워크입니다.

2.2 핵심 서비스

Neutron의 핵심 서비스는 다음과 같습니다:

  • Neutron Server (neutron-server): API를 제공하고 데이터베이스를 관리합니다.
  • L3 Agent: 라우팅 및 외부 네트워크 연결을 담당합니다.
  • DHCP Agent: 가상 머신에 IP 주소를 할당합니다.
  • Metadata Agent: 메타데이터 서비스 요청을 처리합니다.
  • Plugin (ML2, OVS, Linux Bridge 등): 네트워크 구현 방식과 관련된 플러그인을 설정합니다.

3. Neutron 설치 및 설정

Neutron을 설치하려면 오픈스택 컨트롤러 노드와 네트워크 노드에서 설정해야 합니다.

3.1 사전 준비

  • 오픈스택이 설치된 환경이 준비되어 있어야 합니다.
  • 네트워크 인터페이스 구성이 필요합니다.
  • 데이터베이스(MySQL/MariaDB) 및 메시지 큐(RabbitMQ)를 설정해야 합니다.

3.2 Neutron 패키지 설치

컨트롤러 노드에서 Neutron을 설치하려면 다음 명령을 실행합니다:

sudo apt update && sudo apt install -y neutron-server neutron-plugin-ml2 neutron-linuxbridge-agent neutron-l3-agent neutron-dhcp-agent neutron-metadata-agent

설치 후, neutron.conf 파일을 수정하여 데이터베이스 및 RabbitMQ 연결을 설정합니다.

[database]
connection = mysql+pymysql://neutron:NEUTRON_DBPASS@controller/neutron

[DEFAULT]
core_plugin = ml2
service_plugins = router
transport_url = rabbit://openstack:RABBIT_PASS@controller

3.3 ML2 플러그인 설정

ML2 플러그인을 사용하려면 /etc/neutron/plugins/ml2/ml2_conf.ini 파일을 수정합니다.

[ml2]
type_drivers = flat,vlan,vxlan
tenant_network_types = vxlan
mechanism_drivers = linuxbridge,l2population

3.4 Linux Bridge 설정

Neutron에서 Linux Bridge를 사용하려면 /etc/neutron/plugins/ml2/linuxbridge_agent.ini 파일을 수정합니다.

[linux_bridge]
physical_interface_mappings = provider:eth1

[vxlan]
enable_vxlan = true
local_ip = 192.168.1.1
l2_population = true

이후, Neutron 서비스를 재시작합니다.

sudo systemctl restart neutron-server neutron-linuxbridge-agent neutron-l3-agent neutron-dhcp-agent neutron-metadata-agent

4. 네트워크 구성 및 테스트

4.1 프로젝트 네트워크 생성

Neutron CLI를 사용하여 테넌트 네트워크를 생성합니다.

openstack network create my_network
openstack subnet create --network my_network --subnet-range 192.168.100.0/24 my_subnet

4.2 라우터 생성 및 연결

외부 네트워크와 내부 네트워크를 연결하기 위해 라우터를 생성하고 연결합니다.

openstack router create my_router
openstack router set my_router --external-gateway provider
openstack router add subnet my_router my_subnet

4.3 가상 머신(VM) 테스트

이제 인스턴스를 생성하고 네트워크 연결을 테스트할 수 있습니다.

openstack server create --flavor m1.small --image ubuntu --network my_network --security-group default my_instance

가상 머신에 접속하여 네트워크 연결을 확인합니다.

ping 8.8.8.8

5. 문제 해결 및 로그 확인

Neutron의 문제를 해결하려면 로그를 확인하는 것이 중요합니다.

  • 네트워크 서비스 로그: /var/log/neutron/neutron-server.log
  • 에이전트 로그: /var/log/neutron/neutron-linuxbridge-agent.log
  • 네트워크 연결 문제 해결:
    • ip a 명령으로 네트워크 인터페이스 확인
    • ip route 명령으로 라우팅 테이블 점검
    • neutron agent-list로 에이전트 상태 확인

6. 결론

오픈스택 Neutron을 활용하면 강력한 가상 네트워크 환경을 구축할 수 있습니다. 본 가이드에서는 Neutron의 개념부터 설치, 설정, 네트워크 구성, 문제 해결 방법까지 상세히 설명하였습니다. 추가적으로 Open vSwitch(OVS)나 SDN 솔루션을 적용하여 확장성을 고려할 수도 있습니다.

Neutron을 적절히 구성하면 오픈스택 환경에서 안정적인 네트워크 인프라를 구축할 수 있으며, 퍼블릭 및 프라이빗 클라우드 환경에서 유연한 네트워크 구성이 가능합니다.

반응형