[Network] 4. VMware NSX
# VMware NSX
1. 개념
1-1. 네트워크 가상화
네트워크 가상화
네트워크 가상화란, 서버 가상화 및 CMP를 전제로 하는 환경에서 가상화 기반 엣지 장치인 하이퍼바이저의 가상 스위치에 고기능성을 추가해 집중 관리를 하고 동시에 상위 계층인 CMP에 API를 제공해 네트워크 기반 전체를 추상화 하는 것
네트워크 가상화 3대 요소
- 분리(Decoupling) : 물리 네트워크와 논리 네트워크 분리
- 재현성 : 물리 네트워크 변경없이 논리 네트워크 추가, 삭제 가능
- 자동화 : API를 통한 쉬운 자동화
2. NSX
2-1. 개요
- NSX는 네트워크를 위한 하이퍼바이저 역할 담당
- NSX-V , NSX-T(멀티 하이퍼바이저용)
2-2. NSX 구성요소
2-2-1. 컨트롤러 클러스터
- NSX 컨트롤러
- 네트워크상의 물리적인 자원과 논리적인 자원 일괄 관리, 자원 간 매핑 조절
- x86 아키텍처 서버에서 실행되는 소프트웨어
- 여러 개의 노드로 구성된 클러스터 구성
- 일반 OpenFlow 컨트롤러와 달리, 플로우 테이블을 모두 사전에 설정
2-2-2. 전송 노드
- 전송 노드 : 사용자의 트래픽이 흐르는 노드
- 종류 : 하이퍼바이저, Service Node, Gateway
2-2-3. Service Node
- NSX 전송 노드의 하나
- 서버에서 동작하는 소프트웨어
- BUM 트래픽 처리
- BUM 패킷은 유니캐스트로 Service Node에 전송, Service Node 에서는 패킷을 복제해 다시 유니캐스트로 각 노드에 전송
- IPsec 트래픽 종단
- 원격 Gateway에서 들어오는 IPsec 트래픽을 처리 후, 하이퍼바이저에 전달
- 컨트롤 플레인 중계
- 원격 Gateway 와 컨트롤 플레인 간의 중계
2-2-4. Gateway
- 구현 형태에 따라 소프트웨어 GW / 하드웨어 GW
- L2 Gateway
- 물리네트워크와 가상네트워크를 2계층으로 연결
- 확장 구성 가능(Active/Standby)
- L3 Gateway
- 물리네트워크와 가상네트워크를 3계층(라우팅방식) 연결
- 확장 구성 가능(All Active)
2-2-5. NSX Manager
- NSX 컨트롤러를 위한 웹 프런트엔드
- 대시보드 / 네트워크 구성 요소 관리 / 컨트롤러 클러스터 관리 / 시각화 도구 및 문제 해결 / 기타 관리
2-3. NSX 기능과 개념
2-3-1. 논리 스위치
- NSX 논리 스위치는 여러 개 생성 가능 / 서로 완전히 독립
2-3-2. 논리 포트
- 물리 네트워크의 물리 포트에 해당
- 논리 스위치 포트 / 논리 라우터 포트
- 논리 스위치 포트는 특정 하이퍼바이저에 묶인 것이 아니기 때문에, 가상 머신이 마이그레이션해도 ‘논리 스위치 포트’에 연결된 상태이므로 논리 네트워크 상 변경이 없음
2-3-3. Attachment
- VIF(Virtual Interface) : 가상 머신의 가상 인터페이스를 위한 Attachment
- L2, L3 Gateway Attachment : L2, L3 Gateway 연결용
- Patch : 논리 스위치와 논리 라우터 연결용
- VTEP L2 Gateway 용
- MDI(Multi-Domain Interconnetc) : 컨트롤러 클러스터에서 관리되는 여러 도메인을 서로 연계
2-3-4. 논리 라우터
- 집중형 논리 라우터
- L3 Gateway 상에 만들어진 라우팅과 NAT 처리 등 구현
- 패킷을 라우팅할 필요가 있다면 반드시 L3 Gateway 경유
- East-West 간 트래픽도 L3 Gateway의 논리 라우터가 처리
- 출발지 주소를 변환하는 SNAT / 목적지 주소를 변환하는 DNAT 지원(=Floating IP)
- 분산형 논리 라우터
- 라우팅 테이블을 각 하이퍼바이저에 두고 라우팅을 각 하이퍼바이저에서 분산 처리
- East-West 간 트래픽도 하이퍼바이저에서 처리
- 논리라우터는 물리 네트워크에 대해 1개의 업링크만
- 논리라우터에 연결 가능한 것은 논리 스위치 뿐
2-3-5. 트랜스포트 존
- 같은 트랜스포트 존에 속하는 트랜스포트 노드 간에서만 터널 생성
- 어떤 전송 노드까지 터널을 만들 것인가를 결정하기에 NSX에서 사용되는 터널의 ‘직경’을 결정
2-3-6. QoS
- Rate Limiting, DSCP 마팅 지원
- QoS 설정은 논리 큐라는 논리 네트워크 구성요소를 통해 이뤄짐
2-3-7. Security Profile
- NSX가 제공하는 보안 기능
- AWS의 보안그룹과 유사
- Security Profile을 통한 방화벽은 내부적으로 Open vSwitch의 플로우 테이블에 구현
- ‘확장형’ 분산 방화벽
- L3, L4 레벨 패킷 필터링 규칙 가능
- VIF가 연결된 논리 포트에만 적용 가능
- ‘화이트 리스트’ 방식
- Stateful / Stateless 방식 지원
2-3-8. ACL
- L2, L3 Gateway, Patch Attachment에 적용
- 네트워크 레벨 트래픽 제어
2-3-9. Gateway 서비스
- Gateway 설정 시, 직접 Gateway를 지정하지 않고 GW 서비스에 설정
2-3-10. 포트 분리
- 가상 스위치에 연결된 가상 머신끼리의 통신을 금지하고 특정 통신만 허용
- ‘Private VLAN’과 유사
- L2 GW와 통신은 가능
2-3-11. 포트 보안
- 스푸핑 방지
- Ingress, Egress 양방향
2-4. NSX for vSphere
2-4-1. 기능과 구성요소
기능 | 역할 | 구성요소 |
---|---|---|
데이터플레인 | 패킷 전송 | NSX vSwitch / NSX Edge |
컨트롤 플레인 | 경로 제어 수행 | NSX 컨트롤러 클러스터 논리 라우터 컨트롤 VM User World Agent |
관리 플레인 | 설정 및 관리 수행 | NSX Manager |
- NSX vSwitch
- VDS를 기반으로 하이퍼바이저 커널 내에서 동작하는 커널 모듈이 포함된 가상 스위치
- VXLAN을 사용한 오버레이 방식
- 가상 머신의 가상 NIC 수준에서 방화벽 기능과 분산 방화벽 제공
- ‘분산’은 일반적인 가상 어플라이언스에서 처리되는 가상화 대응 라우터나 방화벽과 달리 각 호스트 단위에서 처리가 이뤄지는 것
- NSX Edge
- NSX vSwitch에서 구성된 논리 스위치 간이나 논리 스위치와 물리 네트워크를 연결하는 가상 어플라이언스
- L3 라우팅, 트래픽 환경의 방화벽, 로드밸런서, VPN, DHCP 등 네트워크 서비스 제공
- NSX 컨트롤러 클러스터
- 하이퍼바이저 내에서 스위칭과 라우팅을 중앙 집중 제어하는 역할
- NSX 컨트롤러 클러스터에 의해 멀티캐스트를 사용하지 않고 VXLAN 기반 논리 스위치 구성 가능
- 컨트롤 플레인의 일부이기 때문에 클러스터에 장애가 발생해도 데이터 플레인에 영향을 끼치지 않음
- 논리 라우터 컨트롤 VM
- 논리 라우팅에서 라우팅 처리를 하기 위한 가상 어플라이언스
- 컨트롤러 클러스터를 통해 하이퍼바이저 NSX vSwitch에 학습ㅎ나 경로 푸시
- User World Agent
- UWA는 ESXi 호스트에서 동작
- NSX 컨트롤러 클러스터의 각 노드와 TCP over SSL 통신 설정하고 컨트롤 플레인 구성
- NSX에서 구성하는 논리 스위치에 연결된 가상 머신을 트래킹하고 컨트롤러 노드가 ESXi의 로컬 테이블을 적절히 갱신하기 위해 정보 교환
- NSX Manager
- NSX 전체 환경 설정 관리
2-5. NSX 제공 기능
2-5-1. 논리 스위치
- 논리 스위치 구성 요소 : NSX Manager, NSX 컨트롤러 클러스터, NSX vSwtich
- NSX Manger는 논리 스위치를 만들고 가상 머신을 논리 스위치에 연결하는 기능에 제공
- NSX 컨트롤러 클러스터는 여러 개의 노드로 구성되지만 임의의 노드가 특정 논리 스위치를 관리하는 역할에 따라 어떤 컨트롤러가 어느 논리 스위치를 관리할지 자동 선택
- NSX vSwitch는 하이퍼바이저 사이에서 오버레이 네트워킹을 수행하는 VXLAN 터널을 통해 논리 스위치를 구성하기 위한 VTEP 작동
2-5-2. 논리 라우터
- NSX Edge 라우팅
- 가상 어플라이언스로 라우팅 기능 동작
- NSX Manager에서 설정을 수행하고 NSX Edge에서 데이터 플레인과 컨트롤 플레인 동작
- 라우터 만이 아닌 방화벽, LB, NAT, VPN 등 L4-L7 서비스 함께 동작 가능
- North-South 트래픽 처리
- 분산 라우팅(DLR)
- East-West 트래픽 처리
- 분산 라우팅에서 컨트롤 플레인은 논리 라우터 컨트롤 VM에서 제공되는 동적 라우팅 프로토콜을 지원하고 L3 장치(보통 NSX Edge)와 라우팅 갱신 내용을 교환, NSX 컨트롤러 클러스터나 NSX manager와 통신
- 데이터 플레인은 각 호스트의 NSX vSwitch, 커널 모듈에 위치
2-5-3. 논리 방화벽
- 경계 방화벽 (NSX Edge)
- 서버 가상화 내의 가상 어플라이언스에서 방화벽 기능 동작
- 논리 스위치에 있는 가성 머신들 사이의 경계, 논리 스위치의 가상 머신과 VLAN에 연결된 가상 머신 또는 물리 서버와의 경계
- 분산 방화벽
- 커널 기반 방화벽
- 마이그레이션 해도 정책 유지
- 네트워크 수준에서 가상 머신의 트래픽을 허용/차단/거부하는 마이크로 세그멘테이션 제공
- 가상 NIC 수준에서 수행
- 분산 방화벽의 관리 플레인은 vCenter Server
- NSX vSwitch 커널 공간에 데이터 플레인
2-5-4. 논리 로드 밸런서
- 서버 가상화 환경의 가상 어플라이언스에서 동작
- 원 암형 / 인라인형 지원
- L4 / L7
2-5-5. 논리 VPN
- 가상 어플라이언스
- L2 VPN
- 2개의 DC 사이에 L2 연결
- 각 DC의 각 NSX 환경에서 NSX Edge를 배치하고 Edge 간 L2 터널 구성
- L3 VPN
- 원격 사용자 접근(SSL-VPN)과 사이트 간 접속(IPsec VPN) 지원
- SSL VPN
- 원격 사용자로부터 NSX Edge 뒤의 사설 네트워크 안에 있는 서버나 APP에 보안 연결
- IPSec VPN
- NSX Edge 간 또는 NSX Edge와 원격 사이트 VPN 장비 간에 IPSec VPN을 사용해 연결
- 로컬 서브넷과 피어 측 서브넷 사이에 터널 설정
2-5-6. 물리 환경 연결
L2 브리지
- VXLAN 세그먼트 ID와 VLAN ID를 매핑해 서브넷 생성
- 분산 라우팅의 논리 라우터 컨트롤 VM이 배치된 ESXi 호스트에서 제공
- 일대일 매핑
- VXLAN 간, VLAN 간, DC 인터넷 브리지용이 아님