네트워크 기본 요소
- 가상 머신 (VM)
- 네트워크 인터페이스 카드 (NIC)
- 물리 서버가 네트워크에 연결되기 위한 하드웨어 장치
- NIC Bonding: 여러 물리 NIC를 하나로 묶어 대역폭을 늘리거나(링크 통합), 한 NIC가 고장 나도 다른 NIC가 대신 작동하여 네트워크 이중화를 제공하는 기술
- IP Address
- 인터넷에 연결된 모든 기기가 서로를 식별하고 통신하기 위해 사용하는 고유한 숫자
- Subnet
- 하나의 큰 IP 주소 공간을 여러 개의 작은 논리적 네트워크로 나눈 것을 의미함
- 각 서브넷은 가상 머신에 할당될 수 있는 IP주소들의 pool을 정의하고, DHCP 서비스를 통해 IP 주소를 자동으로 할당할 수도 있음
- Port
- 가상 네트워크에 가상 머신이나 다른 네트워크 서비스가 연결되는 지점을 의미함
- 가상 네트워크에서는 소프트웨어적으로 포트가 생성되어 연결됨
가상 네트워크 및 스위칭
- Virtual Network
- openstack 안에서 가상 머신들이 서로 통신할 수 있도록 만들어진 소프트웨어 기반의 논리적 네트워크
- Virtual Switch
- 가상 머신을 가상 네트워크에 연결하는 소프트웨어 애플리케이션
- 물리적인 스위치와 유사하게, 동일 네트워크에 속한 가상 머신들이 서로 통신할 수 있도록 데이터 패킷을 전달하는 역할을 함
- Linux Bridging
- 리눅스 커널에 내장된 기본적인 가상 스위치 기능으로, VLAN 기반의 스위칭을 제공함
- Open vSwitch(OVS): 더 고급 스위칭 기능을 제공하는 오픈 소스 가상 스위치
- NetFlow, SPAN 등의 표준 프로토콜을 지원하며 프로그래밍 가능한 플로우 규칙을 통해 패킷 포워딩을 제어할 수 있음
- VLAN (Virtual Local Arean Network)
- 물리적인 네트워크 스위치를 여러 개의 논리적인 네트워크로 분리하는 기술
- 각 VLAN은 고유한 ID(태그)를 가지며, 같은 VLAN ID를 가진 기기들만 서로 통신할 수 있어 네트워크를 논리적으로 격리함
- Overlay Network
- 물리적인 네트워크(언더레이 네트워크)위에서 가상의 독립적인 네트워크를 생성하는 방식
- 물리 네트워크의 제약을 받지 않고 대규모의 논리적 네트워크를 구성할 수 있음
- Tunneling:
- 오버레이 네트워크를 구현하는 핵심 기술로, 원래의 패킷을 다른 패킷 안에 캡슐화하여 물리적 네트워크(IP Fabirc)를 통해 전송함
- GRE(Generic Routing Encapsulation) 및 VXLAN(Virtual Extensible Local Area Network)
- 대표적인 터널링 프로토콜
- 물리적인 네트워크(언더레이 네트워크)위에서 가상의 독립적인 네트워크를 생성하는 방식
네트워크 트래픽 관리
- Routing
- 서로 다른 네트워크 간에 데이터 패킷을 올바른 목적지로 전달하는 과정
- 이 역할을 하는 장치가 router임
- Virtual Router
- Openstack Neutron에서 소프트웨어적으로 구현된 라우터
- 여러 가상 네트워크를 서로 연결하고, 클라우드 내부의 가상 머신들이 외부 인터넷과 통신할 수 있도록 길을 열어주는 역할
- Network Namespace
- 리눅스 커널의 기능으로, 네트워크 스택(IP 주소, 라우팅 테이블, 방화벽 규칙..)을 위한 완전히 격리된 공간을 제공
- 이를 통해 각 사용자(테넌트)의 네트워크가 다른 사용자의 네트워크와 IP 주소가 겹치거나 간섭하지 않도록 보장할 수 있음
- Network Address Transaltion (NAT)
- 네트워크 주소 변환을 말함
- IP 주소를 다른 IP주소로 변환하는 것을 말함
- 주로 사설 네트워크 IP주소를 외부 인터넷과 통신할 수 있는 공인 IP 주소로 바꾸는데 사용함
- SNAT(Source NAT): 내부 네트워크에서 외부로 나가는 트래픽 출발지 IP주소를 변환함
- DNAT(Destination NAT): 외부에서 내부로 들어오는 트래픽 목적지 IP 주소를 변환함
- Floating IP
- openstack에서 가상 머신에 할당할 수 있는 공인 IP 주소
- 이 IP를 상요하면 외부 인터넷에서 특정 가상 머신에 직접 접근할 수 있음
- Floating IP는 기본적으로 DNAT를 통해 가상 머신의 사설 IP로 변환되어 통신함
- Load Balancing
- 들어오는 네트워크 트래픽이나 클라이언트 요청을 여러 개의 서버나 가상 머신에 균등하게 분산시켜주는 기술
- LBaas(Load-Balacning as a Service): Neutron이 제공하는 로드 밸런싱 기술
- Firewall
- 네트워크 보안을 위해 들어오고 나가는 트래픽을 검사하고 제어하는 시스템
- Neutron은 두 가지 방식으로 방화벽 기능을 제공함
- Security Group
- 가상 인스턴스 수준에서 트래픽을 제어하는 방화벽 규칙
- IP tables를 사용해 가상 머신으로 들어오고 나가는 트래픽을 필터링함
- 기본적으로는 '모두 거부' 정책에 특정 허용 규칙을 추가하는 방식으로 작동함
- FwaaS(Firewall-as-a-Service)
- 보안 그룹보다 더 높은 수준에서 네트워크 보안을 제공함
- 라우터 수준에서 트래픽을 제어하며, 여러 네트워크를 연결하는 '경계"에서 보안 정책을 적용할 수 있음
- 허용 규칙과 거부 규칙을 모두 명시적으로 설정할 수 있음
- IP Tables
- 리눅스 시스템에서 네트워크 패킷 필터링과 NAT 규칙을 설정하는데 사용되는 강력한 도구
- Neutron의 보안 그룹과 라우팅/NAT 기능 구현에 활용됨
- VPN (Virtual Private Network)
- 공용 네트워크(ex: 인터넷)을 통해 암호화된 사설 네트워크 연결을 만들어주는 기술
- 마치 사설 네트워크에 직접 연결된 것처럼 안전하게 데이터를 주고 받을 수 있게 해줌
- 원격의 데이터센터나 지점간에 안전하게 통신할 때 사용됨
- VPNaas(VPN-as-a-Service): Neutron이 제공하는 VPN 기능
클라우드 서비스 관련 개념
- 소프트웨어 정의 네트워킹 (Software-Defined Networking, SDN)
- 네트워크의 제어 계층과 데이터 계층을 분리하여 네트워크를 소프트웨어적으로 프로그래밍하고 관리할 수 있게 해주는 기술
- Neutron은 SDN 방식에 의존해 추상적이고 자동화된 방식으로 네트워크 서비스를 관리함
- API
- Neutron은 API를 통해 사용자나 다른 openstack 서비스가 네트워크 리소스를 생성하고 관리할 수 있게 해줌
- Database
- 네트워크 설정과 같은 영구적인 정보를 저장하는 시스템
- Openstack Networking 서비스는 모든 네트워크 구성을 데이터베이스에 저장하고 관리함
- Message Bus
- openstack 서비스의 각 구성 요소(ex: Neutron 서버와 에이전트)들이 서로 메시지를 주고받는 데 사용되는 통신 시스템
- 이를 통해 분산된 서비스들이 효율적으로 협력할 수 있음
- Controller Node, Network Node, Compute Node
- Openstack 클라우드를 구성하는 주요 서버 역할
- controller node: openstack의 핵심 서비스(API, DB, Messaging..)이 실행되는 서버
- network node: 주로 neutron의 L3 에이전트, DHCP 에이전트 등 네트워크 관련 서비스가 실행되는 전용 서버
- controller node의 부하를 줄이고 보안 및 안전성을 높일 수 있음
- Neutron L3 에이전트:
가상 네트워크 라우터 기능 수행. VM과 외부망, 다양한 내부 네트워크(VLAN, 서브넷 등)를 서로 라우팅함 - Neutron DHCP 에이전트:
각 테넌트/서브넷 내 VM에 동적으로 IP를 할당하는 DHCP 서버 역할 - Neutron Metadata 에이전트:
VM이 부팅 시 필요한 메타데이터(ssh키, 사용자 데이터 등) 서비스 중계
- compute node: VM이 실제로 생성되고 실행되는 서버
'클라우드 > OpenStack' 카테고리의 다른 글
| Neutron 네트워크(2) - 아키텍처, 구현 (0) | 2025.07.22 |
|---|---|
| Neutron 네트워크 (1) (0) | 2025.07.22 |
| glance에서 keystone 서비스 연동 (0) | 2025.07.19 |
| Key Stone install & managment (0) | 2025.07.06 |
| Openstack Installation (0) | 2025.07.06 |