Openstack

Openstack Neutron이란? (network)

Somaz 2022. 8. 8. 14:58
728x90
반응형

overview

오늘은 Neutron에 대해서 공부해보려고 한다.

출처 : https://docs.redhat.com/ko/documentation/red_hat_openstack_platform/16.2/html/security_and_hardening_guide/con_neutron-placement-on-physical-services_networking-service

 

 

 

📅 관련 글

2022.05.11 - [Openstack] - Openstack이란?

2022.07.29 - [Openstack] - Openstack Nova란? (compute)

 

 

 

 


 

 

Neutron 이란?

Neutron은 OpenStack에서 네트워크 서비스 및 가상 네트워크 인프라(VNI)를 생성하고 관리할 수 있도록 허용하는 서비스이다.

 

OpenStack 네트워킹(Neutron)은 가상 네트워킹 인프라(VNI)뿐만 아니라 OpenStack 환경의 물리 네트워킹 인프라(PNI) 접근 레이어까지 관리한다.

 

또한 방화벽(FWaaS), 로드 밸런서(LBaaS), 가상 사설망(VPNaaS) 같은 네트워크 서비스를 제공하며, 고급 가상 네트워크 토폴로지를 생성하여 테넌트를 활성화할 수 있다.

  • 네트워크 서비스 : 가상 네트워크 인프라의 모든 네트워크 요소와 실제 물리 네트워크 인프라의 접근계층을 모두 관리할 수 있는 서비스. Neutron를 사용해서 로드밸런서, vpn 상위 계층을 사용할 수 있다.

 

 

 


 

 

 

 

✅ Neutron의 주요 개념

 

네트워크 서비스

가상 네트워크 인프라의 모든 네트워크 요소뿐만 아니라 물리 네트워크 인프라의 접근 계층까지 모두 관리할 수 있다. Neutron을 사용하면 로드 밸런서(LBaaS), VPN(VPNaaS), 방화벽(FWaaS) 등의 네트워크 서비스를 활용할 수 있다.

 

네트워크 추상화

Neutron은 네트워크 객체를 추상화하여 관리하며, 주요 구성 요소는 다음과 같다.

  • 네트워크(Network): 서브넷이 포함되는 기본적인 가상 네트워크 단위.
  • 서브넷(Subnet): IP 주소 범위를 지정하며, 네트워크 내에서 IP 주소를 할당하는 역할을 한다.
  • 라우터(Router): 네트워크 간의 트래픽을 중계하는 역할을 하며, 외부 네트워크와 내부 네트워크를 연결한다.
  • 포트(Port): 가상 머신(VM)이나 네트워크 인터페이스가 연결되는 지점.

 

외부 및 내부 네트워크

  • 외부 네트워크(External Network): OpenStack 클라우드 외부와의 연결을 위한 네트워크. 물리적 네트워크와 연결되며, DHCP가 기본적으로 비활성화됨.
  • 내부 네트워크(Internal Network): OpenStack 클라우드 내부에서만 사용되는 가상 네트워크. VM과 직접 연결되며, 라우터를 통해 외부 네트워크와 통신할 수 있다.

 

네트워크 보안

  • Security Groups: 인스턴스별 방화벽 규칙을 정의하여 트래픽을 제어할 수 있다.
  • Floating IP: 내부 네트워크의 VM이 외부 네트워크와 통신할 수 있도록 외부 IP 주소를 동적으로 할당한다.

 

 

 


 

 

 

 

 

Neutron의 구성 요소

Neutron은 여러 핵심 구성 요소를 통해 OpenStack의 네트워크를 관리한다.

구성 요소 역할
neutron-server API 요청을 처리하고 네트워크, 서브넷 및 라우터를 생성, 삭제하는 역할을 수행
L2 Agent Open vSwitch(OVS) 또는 Linux Bridge를 사용하여 Layer 2 네트워크를 구성 및 관리
L3 Agent 라우팅을 담당하며, Floating IP, SNAT 등을 지원
DHCP Agent 가상 머신에 IP 주소를 동적으로 할당하는 역할 수행
Metadata Agent Nova Metadata 서비스와 연동하여 VM의 메타데이터 요청 처리

 

 

 

 


 

 

 

 

ML2(멀티 레이어 2) 플러그인

ML2(멀티 레이어 2) 플러그인은 다양한 Layer 2 네트워크 기술을 동시에 지원하는 프레임워크이다.

 

 

 

ML2 주요 구성 요소

 

  1. 타입 드라이버(Type Driver)
    • VLAN, VXLAN, GRE, Flat, Local 등의 네트워크 유형을 지원.
    • 네트워크 상태를 유지하고, 프로바이더(Provider) 네트워크를 검증하며, 프로젝트 네트워크를 할당.
  2. 메커니즘 드라이버(Mechanism Driver)
    • 특정 네트워크 기술(OVS, Linux Bridge 등)을 지원하며, 네트워크 포트 생성, 삭제, 업데이트 등의 작업 수행.
  3. 코어 플러그인(Core Plugin)
    • Neutron API를 구현하고 네트워크, 서브넷, 포트 등의 기본적인 네트워크 자원을 관리.
  4. 서비스 플러그인(Service Plugin)
    • LBaaS, FWaaS, VPNaaS 등의 네트워크 서비스 제공.

 

 

 

ML2 지원 네트워크 유형

네트워크 유형  설명
Local 단일 노드에서 테스트 용도로 사용되며 호스트 간의 연결이 불가능
Flat VLAN 태깅 없이 모든 인스턴스가 동일한 네트워크에 위치
VLAN VLAN 태깅을 사용하여 네트워크 트래픽을 분할 및 격리
GRE 터널링을 통해 격리된 가상 네트워크를 제공
VXLAN Mac over IP/UDP 기반의 오버레이 네트워크 기술

 

 

 

 

 


 

 

 

 

 

 

Neutron 플러그인 및 백엔드 구성

Neutron은 다양한 네트워크 기술 및 벤더별 솔루션과 연동할 수 있는 플러그인을 제공한다.

 

플러그인 유형

플러그인 설명
ML2 플러그인 여러 Layer 2 네트워크 기술을 지원하는 프레임워크
Linux Bridge 플러그인 전통적인 Linux Bridge 기반 네트워크를 지원
OVS 플러그인 Open vSwitch 기반의 가상 네트워크를 구성
SR-IOV 플러그인 고성능 네트워크 카드(NIC)를 활용한 직접 패킷 전달
ODL(OpenDaylight) 플러그인 OpenDaylight SDN 컨트롤러와 연동
ONOS 플러그인 ONOS SDN 컨트롤러와 연동

 

 

 

 


 

 

 

 

 

 

Neutron 네트워크 토폴로지

Neutron을 활용하면 다양한 네트워크 토폴로지를 구성할 수 있다.

 

기본적인 네트워크 구성

 

  1. Flat Network
    • 네트워크 격리가 없는 단일 네트워크.
    • VLAN 태깅 없이 모든 인스턴스가 동일한 네트워크에서 통신.
  2. VLAN Network
    • VLAN을 활용한 네트워크 분리.
    • 같은 물리 네트워크에서 여러 개의 논리 네트워크를 구성 가능.
  3. VXLAN / GRE Network
    • Overlay 기술을 활용하여 L2 네트워크를 확장.
    • 여러 데이터센터 간 가상 네트워크를 연결할 때 유용.

 

 

 

고급 네트워크 토폴로지

  1. Provider Network
    • 물리 네트워크와 직접 연결된 네트워크.
    • OpenStack 내부 네트워크와 외부 네트워크 간 연결.
  2. Self-Service Network
    • 테넌트(VM 사용자)가 직접 생성하는 네트워크.
    • Neutron 라우터를 통해 외부 네트워크와 연결 가능.

 

 

 

 

 

Neutron 보안 기능

  1. Security Groups
    • 인스턴스별 방화벽 규칙을 설정하여 트래픽을 제어.
    • Ingress(들어오는 트래픽) 및 Egress(나가는 트래픽) 정책 설정 가능.
  2. Floating IP
    • 외부 네트워크에서 인스턴스에 접근할 수 있도록 IP를 동적으로 할당.
  3. Network Policy
    • 특정 네트워크 리소스에 대한 접근 정책을 정의.
  4. FWaaS (Firewall as a Service)
    • Neutron 기반의 가상 방화벽 서비스.
  5. LBaaS (Load Balancer as a Service)
    • OpenStack 내에서 부하 분산을 수행하는 서비스.

 

 

 

 


 

 

 

 

 

Neutron 구성 시 고려할 요소

  1. 네트워크 유형 선택
    • Overlay(VXLAN, GRE) vs. VLAN vs. Flat Network
    • 성능, 보안, 확장성을 고려하여 적절한 네트워크 모델 선택.
  2. 고가용성(HA)
    • L3 라우터 및 DHCP 에이전트의 HA 설정 필요.
    • Pacemaker, Keepalived 등을 활용한 장애 대비 방안 구축.
  3. 네트워크 성능 최적화
    • DPDK(Data Plane Development Kit)를 활용한 패킷 처리 성능 향상.
    • SR-IOV(Network Interface Direct Access) 도입 검토.
  4. 네트워크 격리 및 보안
    • Security Group 및 Network Policy를 활용하여 테넌트 간 네트워크 격리.
    • VPNaaS, FWaaS 등을 통해 보안 정책 강화.

 

 

 

 


 

 

 

 

결론

  • Neutron은 OpenStack 환경에서 유연하고 확장 가능한 네트워크 인프라를 구축하는 핵심 서비스다.
  • SDN 기술과 결합하여 보다 효율적이고 안정적인 네트워크 환경을 구성할 수 있다.
  • 보안 그룹, LBaaS, FWaaS 등의 기능을 활용하면 보다 강력한 네트워크 아키텍처를 구축할 수 있다.
  • Neutron을 효과적으로 활용하기 위해서는 다음 개념을 충분히 이해하는 것이 중요하다.
    • ML2 플러그인
    • 네트워크 토폴로지
    • 고가용성(HA)
    • 네트워크 성능 최적화

 

 

 

 


 

Reference

https://wiki.openstack.org/wiki/Neutron

https://www.openstack.org/

https://docs.redhat.com/ko/documentation/red_hat_openstack_platform/16.2/html/security_and_hardening_guide/con_neutron-placement-on-physical-services_networking-service

728x90
반응형

'Openstack' 카테고리의 다른 글

Openstack Keystone이란? (identity)  (0) 2022.08.08
Openstack Glance란? (image)  (0) 2022.08.08
Openstack 배치 서비스 Placement란?  (0) 2022.08.08
Openstack Nova란? (compute)  (0) 2022.07.29
Openstack이란?  (0) 2022.05.11