IT창고

OpenStack 네트워킹 서비스(Neutron) 본문

OpenStack

OpenStack 네트워킹 서비스(Neutron)

영이26 2019. 10. 11. 15:12

1) 네트워킹 서비스 개요

OpenStack 네트워킹 서비스인 Neutron 에서는 Openstack 의 다른 서비스와 통신할 수 있도록 인터페이스 디바이스를 생성하고 연결할 수 있다. 이러한 플러그인 구조는 OpenStack 아키텍쳐와 배포 방식에 유연성을 제공할 수 있는 다양한 네트워킹 장비와 소프트웨어의 조합으로 구현된다.

 

 

네트워킹 서비스 구성요소

① Neutron‐server

API 요청을 받아들이고, 이를 적절한 OpenStack 네트워킹 플러그인으로 전달하여 동작하도록 한다.

 

① OpenStack 네트워킹 플러그인과 에이전트

포트를 연결하거나 해제하며 네트워크와 서브넷을 생성하고 IP 주소를 제공한다. 이들 플러그인과 에이전트는 클라우드마다 공급업체와 기술에 따라 달라진다. OpenStack 네트워킹에는 Cisco 가상 스위치 및 물리적인 스위치, NEC OpenFlow 제품군, OpenvSwitch, 리눅스 브리지 및 VMware NSX 제품군을 위한 플러그인과 에이전트가 포함되어 있다. L3(layer 3), DHCP(dynamic host IP addressing) 및 플러그인 에이전트는 공용 에이전트로 제공된다.

 

② 메시징 큐

대부분의 OpenStack 네트워킹 설치에서 neutron‐server 와 다양한 에이전트 간의 정보 전달을 위해 사용된다. 이와 더불어, 특정 플러그인의 네트워킹 상태를 저장하는 데이터베이스로 동작한다.

 

OpenStack 네트워킹은 인스턴스에 네트워크를 제공하고 이를 연결하기 위해 주로 OpenStack 컴퓨트와 상호작용한다.

 

 

2) Controller Node 설치 및 구성

이 섹션에서는 컨트롤러 노드에 네트워킹 서비스인 Neutron 을 설치하고 구성하는 과정에 대해서 설명한다. 네트워킹 서비스는 옵션 2(셀프서비스 네트워킹)으로 구성할 것이다.

 

 

▶ 전제 조건

데이터베이스 접속 클라이언트를 사용하여 데이터베이스 서버에 root 로 로그인한다.

neutron 데이터베이스를 생성한다.

neutron 데이터베이스에 권한을 부여한다.

관리자 모드로 CLI 명령을 실행하기 위해 admin 인증 스크립트를 실행한다.

neutron 사용자를 생성한다.

neutron 사용자에 admin 역할을 부여한다.

neutron 서비스 엔티티를 생성한다.

public, internal, admin 세 가지의 서비스 API 엔드포인트를 생성한다.

 

 

▶ 네트워킹 옵션 2 : 셀프 서비스 네트워크

네트워킹 패키지를 설치한다.

/etc/neutron/neutron.conf 파일을 다음과 같이 수정한다.

[DEFAULT]

transport_url = rabbit://openstack:It1@cont

core_plugin = ml2

service_plugins = router

allow_overlapping_ips = true

notify_nova_on_port_status_changes = true

notify_nova_on_port_data_changes = true

auth_strategy = keystone

 

 

[database]

connection = mysql+pymysql://neutron:It1@cont/neutron

 

 

[keystone_authtoken]

www_authenticate_uri = http://cont:5000

auth_url = http://cont:5000

memcached_servers = cont:11211

auth_type = password

project_domain_name = default

user_domain_name = default

project_name = service

username = neutron

password = It1

 

 

[oslo_concurrency]

lock_path = /var/lib/neutron/tmp

 

 

가장끝줄에 입력

[nova] - 1062

auth_url = http://cont:5000

auth_type = password

project_domain_name = default

user_domain_name = default

region_name = RegionOne

project_name = service

username = nova

password = It1

 

 

 

 

▶ Modular Layer 2(ML2) 플러그인 설정

ML2 플러그인은 인스턴스의 레이어‐2(브리징과 스위칭) 가상 네트워킹 인프라스트럭처로 리눅스 브리지 구조를 사용한다.

 

/etc/neutron/plugins/ml2/ml2_conf.ini 를 다음과 같이 수정한다.

[ml2]

type_drivers = flat,vlan,vxlan

tenant_network_types = vxlan

mechanism_drivers = linuxbridge,l2population

extension_drivers = port_security

 

[ml2_type_flat]

flat_networks = provider

 

 

[ml2_type_vxlan]

vni_ranges = 1:1000

 

 

[securitygroup]

enable_ipset = true

 

 

 

 

▶ 리눅스 브리지 에이전트 설정

리눅스 브리지 에이전트는 인스턴스의 레이어‐2(브리징과 스위칭) 가상 네트워킹 인프라스트럭처를 구성하고 시큐리티 그룹을 관리한다.

 

/etc/neutron/plugins/ml2/linuxbridge_agent.ini 파일을 다음과 같이 설정한다.

[linux_bridge]

physical_interface_mappings = provider:ens33

 

 

[vxlan]

enable_vxlan = true

local_ip = 1.0.0.1

l2_population = true

 

 

[securitygroup]

enable_security_group = true

firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver    //OVSHybridIptablesFirewallDriver : openvswith사용시사용

 

 

 

 

▶ Layer‐3 에이전트 설정

Layer‐3(L3) 에이전트는 셀프서비스 가상 네트워크의 라우팅과 NAT 서비스를 제공한다.

 

/etc/neutron/l3_agent.ini 파일을 다음과 같이 수정한다.

[DEFAULT]

interface_driver = linuxbridge

 

DHCP 에이전트 설정

DHCP 에이전트는 셀프서비스 가상 네트워크에 DHCP 서비스를 제공한다.

 

/etc/neutron/dhcp_agent.ini 파일을 다음과 같이 수정한다.

[DEFAULT]

interface_driver = linuxbridge

dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq

enable_isolated_metadata = true

 

메타데이터 에이전트 설정

메타데이터 에이전트는 인스턴스의 인증과 같은 구성 정보를 제공한다.

 

/etc/neturon/metadata_agent.ini 를 다음과 같이 수정한다.

[DEFAULT]

nova_metadata_host = cont

metadata_proxy_shared_secret = It1

 

네트워킹 사용을 위한 컴퓨트 서비스 설정

 

/etc/nova/nova.conf 파일을 다음과 같이 수정하여 컴퓨트 서비스가 네트워킹을 사용할 수 있도록 한다.

[neutron]

url = http://cont:9696

service_metadata_proxy = true

metadata_proxy_shared_secret = It1

auth_type = password

auth_url = http://cont:5000

project_name = service

project_domain_name = default

username = neutron

user_domain_name = default

password = It1

region_name = RegionOne

 

 

 

 

설치완료

 

네트워킹 서비스 초기화 스크립트를 위해 /etc/neutron/plugin.ini 파일이 ML2 플러그인 설정 파일인 /etc/neutron/plugins/ml2/ml2_conf.ini 파일을 가리키도록 심볼릭 링크가 되어 있어야한다.

데이터베이스를 채워준다.

컴퓨트 API 서비스를 재시작한다.

네트워킹 서비스를 시작하고 시스템 시작시에 자동으로 시작되도록 설정한다.

셀프 네트워킹 서비스를 사용했을 경우에는 레이어 3 서비스도 활성화 시켜야 한다.

 

 

 

3) Compute Node 설치 및 구성

컴퓨트 노드는 인스턴스의 연결과 시큐리티 그룹을 처리한다. 네트워킹 옵션 2 를 사용하여 컨트롤러 노드를 구성하였으므로, 이 섹션에서는 컴퓨트 노드에서 셀프 서비스 네트워킹을 설치하고 구성하는 과정을 설명한다.

 

▶ 구성 요소 설치

패키지를 설치한다.

▶ 공통 구성요소 설정

 

/etc/neutron/neutron.conf 파일을 다음과 같이 수정한다.

[DEFAULT]

transport_url = rabbit://openstack:It1@cont

auth_strategy = keystone

 

[keystone_authtoken]

www_authenticate_uri = http://cont:5000

auth_url = http://cont:5000

memcached_servers = cont:11211

auth_type = password

project_domain_name = default

user_domain_name = default

project_name = service

username = neutron

password = It1

 

 

[oslo_concurrency]

lock_path = /var/lib/neutron/tmp

 

 

 

▶ 리눅스 브리지 에이전트 설정

 

/etc/neutron/plugins/ml2/linuxbridge_agent.ini 파일을 다음과 같이 설정한다.

[linux_bridge]

physical_interface_mappings = provider:ens33

 

 

[vxlan]

enable_vxlan = true

local_ip = 1.0.0.2

l2_population = true

 

 

[securitygroup]

enable_security_group = true

firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver    //OVSHybridIptablesFirewallDriver : openvswith사용시사용

 

 

 

▶ 네트워킹 사용을 위한 컴퓨트 서비스 설정

 

/etc/nova/nova.conf 파일을 다음과 같이 수정하여 컴퓨트 서비스가 네트워킹을 사용할 수 있도록 한다.

[neutron]

url = http://cont:9696                   

service_metadata_proxy = true

metadata_proxy_shared_secret = It1  

auth_type = password

auth_url = http://cont:5000             

project_name = service

project_domain_name = default       

username = neutron

user_domain_name = default          

password = It1

region_name = RegionOne

 

 

▶ 설치완료

 

컴퓨트 서비스를 재시작한다.

리눅스 브릿지 에이전트를 시작하고 시스템 시작시에 자동으로 시작되도록 설정한다.

 

 

 

4) 작동 확인

▶ 컨트롤러 노드에서 명령을 수행할 것

 

관리자 모드로 CLI 명령을 실행하기 위해 admin 인증 스크립트를 실행한다.

중성자 에이전트의 성공적인 시작을 확인하기 위해 에이전트를 나열한다. 출력은 컨트롤러 노드에 4 개의 에이전트와 계산 노드에 1 개의 에이전트를 표시해야한다.

Comments