overview
오늘은 Neutron에 대해서 공부해보려고 한다.
📅 관련 글
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 주요 구성 요소
- 타입 드라이버(Type Driver)
- VLAN, VXLAN, GRE, Flat, Local 등의 네트워크 유형을 지원.
- 네트워크 상태를 유지하고, 프로바이더(Provider) 네트워크를 검증하며, 프로젝트 네트워크를 할당.
- 메커니즘 드라이버(Mechanism Driver)
- 특정 네트워크 기술(OVS, Linux Bridge 등)을 지원하며, 네트워크 포트 생성, 삭제, 업데이트 등의 작업 수행.
- 코어 플러그인(Core Plugin)
- Neutron API를 구현하고 네트워크, 서브넷, 포트 등의 기본적인 네트워크 자원을 관리.
- 서비스 플러그인(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을 활용하면 다양한 네트워크 토폴로지를 구성할 수 있다.
기본적인 네트워크 구성
- Flat Network
- 네트워크 격리가 없는 단일 네트워크.
- VLAN 태깅 없이 모든 인스턴스가 동일한 네트워크에서 통신.
- VLAN Network
- VLAN을 활용한 네트워크 분리.
- 같은 물리 네트워크에서 여러 개의 논리 네트워크를 구성 가능.
- VXLAN / GRE Network
- Overlay 기술을 활용하여 L2 네트워크를 확장.
- 여러 데이터센터 간 가상 네트워크를 연결할 때 유용.
고급 네트워크 토폴로지
- Provider Network
- 물리 네트워크와 직접 연결된 네트워크.
- OpenStack 내부 네트워크와 외부 네트워크 간 연결.
- Self-Service Network
- 테넌트(VM 사용자)가 직접 생성하는 네트워크.
- Neutron 라우터를 통해 외부 네트워크와 연결 가능.
Neutron 보안 기능
- Security Groups
- 인스턴스별 방화벽 규칙을 설정하여 트래픽을 제어.
- Ingress(들어오는 트래픽) 및 Egress(나가는 트래픽) 정책 설정 가능.
- Floating IP
- 외부 네트워크에서 인스턴스에 접근할 수 있도록 IP를 동적으로 할당.
- Network Policy
- 특정 네트워크 리소스에 대한 접근 정책을 정의.
- FWaaS (Firewall as a Service)
- Neutron 기반의 가상 방화벽 서비스.
- LBaaS (Load Balancer as a Service)
- OpenStack 내에서 부하 분산을 수행하는 서비스.
Neutron 구성 시 고려할 요소
- 네트워크 유형 선택
- Overlay(VXLAN, GRE) vs. VLAN vs. Flat Network
- 성능, 보안, 확장성을 고려하여 적절한 네트워크 모델 선택.
- 고가용성(HA)
- L3 라우터 및 DHCP 에이전트의 HA 설정 필요.
- Pacemaker, Keepalived 등을 활용한 장애 대비 방안 구축.
- 네트워크 성능 최적화
- DPDK(Data Plane Development Kit)를 활용한 패킷 처리 성능 향상.
- SR-IOV(Network Interface Direct Access) 도입 검토.
- 네트워크 격리 및 보안
- Security Group 및 Network Policy를 활용하여 테넌트 간 네트워크 격리.
- VPNaaS, FWaaS 등을 통해 보안 정책 강화.
결론
- Neutron은 OpenStack 환경에서 유연하고 확장 가능한 네트워크 인프라를 구축하는 핵심 서비스다.
- SDN 기술과 결합하여 보다 효율적이고 안정적인 네트워크 환경을 구성할 수 있다.
- 보안 그룹, LBaaS, FWaaS 등의 기능을 활용하면 보다 강력한 네트워크 아키텍처를 구축할 수 있다.
- Neutron을 효과적으로 활용하기 위해서는 다음 개념을 충분히 이해하는 것이 중요하다.
- ML2 플러그인
- 네트워크 토폴로지
- 고가용성(HA)
- 네트워크 성능 최적화
Reference
'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 |