NSX logical routing architecture
edge
네트워크 서비스 제공(DHCP, NAT , DNS , L4 등)
라우팅(OSPF,BGP)
Edge 클러스터 생성 > Edge노드 생성 > Edge노드에 생성할 스위치 생성 및 설정(IP pool, 매칭될 전송노드,업링크,IP POOL, 게이트웨이 설정 등)
논리적 라우팅을 위해서 반드시 엣지영역이 배포되어야 한다.
tenant
ISP : 고객 or 가입자
enterprise(회사) : 부서,지사,그룹
Routing Component
Tier 0과 Tier 1은 모두 SR과 DR을 가질 수 있다.
Tier 0은 반드시 SR을 포함해야 하고 Tier 1은 반드시 DR을 포함해야 한다.
Tier 0의 SR은 반드시 엣지 노드에 속해야 하고 DR은 호스트마다 분산 생성될 수 있다.
Tier 1은 반드시 DR을 포함해야 하며 North-South 네트워크 구성이 필요하다면 SR을 구성해야 한다.
만약 토폴로지 구성이 단일 계층 구성일 경우 Tier 0만 사용한다.
VM > SW > T1 DR > T0 DR > T0 SR
+----------------------+
| Physical Router |
+----------------------+
│
+----------------------+
| Tier-0 Gateway |
| +--------------+ |
| | SR | |
| +--------------+ |
| | DR | |
| +--------------+ |
+----------------------+
│
----------------------------------
| Intratier Transit Link |
----------------------------------
│
+----------------------+
| Tier-1 Gateway |
| +--------------+ |
| | SR | |
| +--------------+ |
| | DR | |
| +--------------+ |
+----------------------+
│
--------------------------
| Downlink Interface |
--------------------------
│ │ │
+----+ +----+ +----+
| VM | | VM | | VM |
+----+ +----+ +----+
호스트(물리서버) 마다 Tier 0의 SR영역을 둘 순 있지만 해당 구성을 위해서는 호스트마다 물리케이블을 결선해야 한다.
해당 구성시 물리자원이 더 많이들고 트래픽 중앙집중화가 되지않아 관리에 어려움이 생긴다.
DR(Distributed Router)
- 기본적인 패킷 포워딩 기능 가짐
- 호스트에 분산된 구조
- 전송된 노드에 존재
- ESXI 하이퍼바이저 내부 커널 모듈에서 동작
- 분산된 라우팅 기능 제공
- 가상머신 입장에서의 첫번째 홉
SR(Service Router) :
- NAT와 VPN등의 중앙집중형 서비스 제공
- North-South 라우팅
- 엣지 노드에 존재
- Tier 1에 직접 연결은 불가능
Uplink port : 외부에 존재하는 물리 라우터와 연결하기 위한 링크포트
IntraTier Transit Link : Tier 0또는 Tier 1 게이트웨이에서 DR과 SR 사이에 존재하는 링크로 자동적으로 생성
기본적으로 169.254.0.0/24 네트워크가 할당된다.
RouterLink Port : Tier 0 GW(DR)와 Tier 1 GW(SR)를 자동적으로 연결하는 링크 기본적으로 100.64.0.0/16 네트워크가
할당된다.
Downlink Interface : 다운링크(VM과 연결된 링크)를 Tier 1 게이트웨이에 연결 VM의 게이트웨이 역할
Service Interface : 다운링크의 확장 버전 VMware에서 기본적으로 지원되지 않는 서비스(서드파티)를 연동시에 사용
예 : VMware에 알테온의 L4 스위치를 연동한다면 Service Interface가 필요
Tier 0 and Tier 1 Gateway
Tier 0은 정적/동적 라우팅 지원 Tier 1은 동적 라우팅만 지원
Tier 0과 Tier 1은 모두 ECMP를 지원
Tier 0은 외부 네트워크와 필수 연동 Tier 1은 Tier 0와 필수 연동
Tier 0는 NSX Edge 사용시 반드시 클러스터 상태로 사용
Tier 1은 클러스터가 필수는 아님 단, NAT 등의 서비스를 위해서는 반드시 SR(Edge) 연동
NSX Edge Node
Tier 0를 호스팅 하는 노드
중앙집중화와 stateful 서비스 제공
VPN , DHCP , P-to-V Gateway , Service Insertion , NAT , Routing , VRF Lite , Gateway Firewall 등을 지원
엣지 노드는 N-VDS를 단일로 설정하여 단일 스위치에 VLAN과 overlay를 같이 사용하거나 여러 개의 N-VDS를 두는 방법으로 나뉜다.
Failer Domain : 클러스터의 HA를 구현하기 위한 목적
NSX Edge 옵션 별 권장 리소스
VPN
Confidentality 기밀성 예 : DES/3DES AES RSA
Integrity 무결성 예 : sha md5
authentication 인증 예 : key,certification
advertise : Tier 1가 VM에게서 네트워크 정보를 받음
redistribution : Tier 0가 외부 네트워크에 트래픽 전달
dynamic routing
Tier 0에서는 다른 AS간에 EBGP 지원(BGP를 사용하기 위해서는 반드시 다른 AS간의 연결에서만 사용가능)
기본적으로 EBGP만 지원하나 포트 다운시와 같은 상황에서 지속적인 트랜짓을 위해 IBGP가 자동으로 생성
만약 같은 AS간의 통신에서는 OSPF를 사용가능(point-to-point or broadcast)
preparing ESXI HOST
TZ 만들기
IP구성
host preparation
routing feature
ECMP
라우팅 트래픽의 부하분산을 위해 사용 NSX에서의 BGP설정시 기본적으로 활성화
ECMP 해싱 방식은 5개의 튜플 알고리즘 사용
Multipath Relax
다른 AS간의 통신시에 ECMP매칭을 위해 사용
라우팅테이블에 두 AS 경로를 추가하기 위해 두 개의 병렬경로를 설치가능
High Avilability
Active-Active : 모든 엣지노드를 Active로 사용 모든 노드가 Active가 되기 위해서 모든 노드의 cost가 같아야 한다.
Active-standby : 특정 엣지노드를 Active로 사용 VPN 또는 stateful Gateway Firewall 등에서 사용 standby는 받은 정보에 대한 상태정보를 가지지 않으므로 active와 다르게 외부에 내부정보를 광고하지 않는다.
Failover Detection Mechanisms
BFD(Bidirectional Forwarding Detection) : IGP로 연결된 BGP간의 라우터 사이 스위치가 있을 경우 스위치 사이의 한 쪽 포트가 끊어질 때 반대쪽의 라우터는 포트절단을 바로 감지할 수 없으므로 OSPF 네이버가 바로 끊어지지 않아 순간적으로 통신문제 발생
BFD 매칭을 통해 스위치간에 BFD 링크를 매칭하여 스위치 포트절단시에도 더욱 빠른 감지가 가능하여 에러시간 감소
BFD keepalives 를 통해 BFD의 시그널 빈도를 조정할 수 있다.
dynamic Routing : Active-standby에서 Active가 절단시 standby가 연결된다.
단, inbound 또는 outbound방향중 양쪽이 아닌 한쪽만 절단되는 경우 Active가 변경되지 않는다.
Failover Mode
Preemptive : Active와 Standby가 서로 변경된 이후 다시 Active였던 라우터가 활성화시 다시 해당 라우터는 Active가 된다.
Non Preemptive : Active와 Standby가 서로 변경된 이후 Active였던 라우터가 활성화시 다시 Active로 전환되지 않는다.
transport node(ESXI host)에서 라우팅테이블 확인 순서
1. ESXI HOST로 접속
2. nsxcli 입력
3. get logical-router
4.get logical-router <uuid> forwarding
Host 영역에서 라우팅 테이블 확인시 디폴트경로는 Tier 1의 DR이 된다.
transport mode (edge)에서 라우팅테이블 확인 순서
1. edge mode로 ssh 접속
2. get logical-router 명령어로 vrf 번호 확인
3. vrf x(번호)
4. get route
단일Tier 라우팅 (T1 DR이 단일)
1.내부>외부로 트래픽 전송
2.호스트는 라우팅테이블을 확인 후 DR 영역으로 패킷 전송하고 SR은 받은 패킷의 목적지를 확인한 뒤 라우팅테이블을 확인하여 최적경로 결정 (internal Transit 169.254.0.0/24)
3.Transit Transport 경로를 통해 엣지노드가 존재하는 호스트의 DR 탭에 Geneve캡슐화된 트래픽 payload를 전송
4. 트래픽은 받은 탭은 반캡슐화 후 엣지노드의 Tier 0 SR에 전송
5.Tier 0는 라우팅 테이블을 통해 최적경로 넥스트 홉으로 트래픽 전송
멀티 Tier 라우팅
1.내부> 외부로 트래픽 전송
2.호스트는 라우팅테이블을 확인 후 Tier 0의 DR 영역으로 패킷 전송 (External Transit 100.64.0.0/16)
3.Tier 0 의 DR은 SR로 패킷을 전송하고 SR은 받은 패킷의 목적지를 확인 후 라우팅테이블과 대조하여 최적경로 결정
4.Transit overlay 경로를 통해 엣지노드가 존재하는 호스트의 DR 탭에 Geneve캡슐화된 트래픽 payload를 전송
5.트래픽을 받은 탭은 반캡슐화 후 엣지노드의 Tier 0 SR에 전송
6.Tier 0 는 라우팅 테이블을 통해 최적경로 넥스트홉으로 트래픽 전송
VRF(virtual routing forwarder)
eth | label | ip | L4 | data 예 : MPLS(Multiprotocol label switching)
라우팅 영역을 분할
Tier 0를 만약 3개 사용한다면 엣지는 최소 3개 이중화시 6개가 필요 부하 증가
만약 VRF를 사용시 Tier 0을 분할하여 하나의 Tier 0으로 여러 오버레이 네트워크 영역을 수용가능
각각의 포트들은 독립된 라우터처럼 동작
VRF는 외부 라우터에서도 추가설정 필요
router ospf 1 vrf BLUE
router ospf 2 vrf RED
VRF Lite Control and Data Planes
BGP간의 통신이 VLAN기반을 통해 통신
GUI 트러블슈팅
Traffic analyst
소스와 목적지를 정하고 해당경로의 서비스 또는 트래픽 여부를 검증
일반 analyst와 live analyst가 존재
IPFIX
물리적 디바이스에서 제공하는 것과 유사한 네트워크 모니터링 데이터를 제공하며 관리자에게
가상 네트워크 상태를 보여준다.
네트워크 관리자가 물리적 하드웨어에서 네트워크를 분리할 수 있는 기능을 통해 네트워크를 가상화한다.
Port Mirroring
특정 포트에 대한 복사본을 따로 두어 모니터링
SPAN(switch port analyst)
스위치 포트의 작동여부 감시 SPAN은 local span과 remote span으로 나뉨
local span
미러링 세션의 소스와 목적지인 NICS가 모두 동일한 전송 노드에 있는 경우 사용
remote span
캡처된 트래픽을 다음 세 가지 프로토콜 중 하나로 캡슐화된 원격 IP 주소로 전달
GRE,ERSPAN type 2 ERSPAN type3
Firewall
Distribute firewall
VM 단위의 필터링
Gateway firewall
Tier 0 또는 1의 업링크 필터링 (엣지영역)
NSX Segmentation
데이터 센터 인프라를 작은 구역으로 나누어 트래픽 흐름에 대한 세밀한 제어와 검사가 가능하도록 하는 프로세스
Macro-segment
특정 환경을 격리
Micro-segment
환경의 특정 애플리케이션을 격리하고 보호
Firewall policy
룰을 적용할 단위
Firewall Rule
정책에 적용시킬 조건
rule attribute
groups 대상의 모음 태그를 추가하여 관리 편의성 가능
services
profiles
save,rollback,export,import
Distributed 방화벽의 기능
L2 stateless 방화벽 rule
L3 stateless and stateful(L4 서비스) rules
context-aware(L7) 방화벽 rule
윈도우 작업량 확인
FQDN 필터링
변조아이피 차단
시간 기반 정책 (특정시간만 정책적용)
Distributed 방화벽의 Key Concepts
Security policy : 방화벽 rule의 모음집
Firewall rule : 적용시킬 조건 rule
Group : 특정 policy를 적용할 개체의 묶음 정적 또는 동적으로 설정가능
Service : 포트와 프로토콜 정의
Context profile : 패킷의 데이터 영역을 제어
Distributed 방화벽의 특성
up-down 기반의 정책적용(cisco의 acl과 같음)
첫번째로 매치된 룰 등록
정책이 적용되지 않은 영역의 경우 default rule이 적용
3티어 정책 옵션
TCP strict
이 설정이 특정 섹션에서 활성화되어 있고, 패킷이 해당 섹션의 규칙과 일치하는 경우, 패킷이 기존 세션에 속하지 않으며 SYN 플래그가 커널에서 설정되지 않은 경우 해당 패킷은 차단
Stateful
이 설정을 사용하면 구성 변경을 수행하는 동안 정책을 잠글 수 있어 다른 사용자가 동시에 수정할 수 없다.
Locked
분산 방화벽은 상태 저장 패킷 검사를 수행하고 네트워크 연결의 상태를 추적 활성 상태로 확인된 기존 연결과 일치하는 패킷은 허용 일치하지 않는 패킷은 방화벽 규칙을 기준으로 검사
Firewall Rule action
allow : 허용
drop : source에게 실패한 이유를 전송하지 않고 거부
reject : source에게 실패한 이유를 전송하고 거부
Distributed 방화벽 동작
사용자가 정책 구성
정책들이 프로세싱
분산 방화벽 정책은 관리자 역할에 푸시되어 유지
관리자룰은 CCP에 포워딩
CCP는 nsx-proxy를 통해 LSP에 포워딩
호스트의 전송노드는 방화벽 정책과 경로를 저장
VSIP(Vmware Service Insertion Platform) : 방화벽 룰을 받은 뒤 각각의 vm의 vnic을 다운로드
VDPI( : L7 패킷 허용(패킷의 상세내용)
D 방화벽 rule 프로세싱
rule table : 동작
connection table : 연결기록 남김
1.연결 테이블에서 조회를 수행하여 연결이 있는지 확인
2.연결이 없으면 패킷이 규칙 테이블과 일치
3.패킷이 허용되고 트래픽 유형이 상태 저장형이면 연결 테이블에 연결 항목이 생성
4.동일한 연결에 대한 모든 후속 패킷은 연결 테이블에서 직접 서비스 상태 저장형 패킷은 항상 규칙 테이블과 일치
보안설정
(공격)attack (방어)mitigation
arp spoofing arp snooping
dhcp spoofing dhcp snooping
nd(neighbor discovery) spoofing nd snooping
Gateway Firewall
엣지 영역의 방화벽 엣지 외부의 네트워크에도 정책 설정시 Distributed가 아닌 gateway 방화벽을 설정
사용자 > 정책 > 매니저 > CCP > Proxy hub > nsx-proxy(엣지영역) > datapath(SW)
이외의 설정은 Distributed와 비슷하며 Gateway 영역에서만 EGP의 영역을 조회 가능하다.
물리 인프라
sw/router
security
fw
vpn
ips/ids
slb
L4 slb
L7 slb
cashing
network service:nat,dhcp,dns,ntp
waas: web application acceleration system
NAT
NAT rule
SNAT/DNAT/NAT64 Tier0-1 Active-Standby
기본적인 NAT 설정
Reflexive NAT only Tier 0 Stateless Active-Active
Active-Active설정 이후 추가적인 변경에 어려움이 있기 때문에 사용되는 NAT 옵션 상태정보를 가지지 않기 때문에 양단의 NAT 연결단에 Reflexive 설정을 해주어야 한다.
Stateful Active-Active SNAT/DNAT Tier-0 and Tier-1 Stateful Active-Active
Active-Active설정 이후 추가적인 변경에 어려움이 있기 때문에 사용되는 NAT 옵션으로 Reflextive NAT와의 차이는 Stateful의 경우 한쪽단에만 설정해줘도 NAT설정 사용이 가능하다.
SNAT
내부의 아이피를 외부로 나갈시에 아이피를 변경해줌
DNAT
외부의 아이피를 내부로 들어올시에 아이피를 변경해줌
NAT64
ipv6기반의 IP를 ipv4의 기반으로 변경
NAT64는 Tier 0와 Tier 1둘다 지원 단 stateful Tier 0의 조건일 경우 active-standby 사용
NAT64는 Tier-1을 사용시 엣지클러스터를 active-standby 사용
SLB (Server Load Balancing)
자신이 받을 요청을 내부의 백엔드 서버에 부하분산
로드밸런싱을 위해 서버의 Vip(Virtual IP)를 지정
Vip를 가진 장비는 항상 자신과 연결된 host를 실시간 모니터링
L4 Load Balancing
L4의 헤더를 확인하고 세션 생성 및 부하분산
L7 Load Balancing
세션을 맺고 L7 정보를 통해 부하분산
예 : 네이버사이트의 네이버뉴스 등에 대한 상세기능제어
로드밸런싱 설계
로드밸런서는 가상서버, profiles, server pools , 모니터링을 포함한다.
Virtual Server
Server pool중 한 개의 서버에서 서비스를 중계
profiles
Virtual서버를 어떻게 운용하는가
애플리케이션 :가상 서버가 네트워크 트래픽을 처리하는 방법을 정의
persistence :상태 저장 애플리케이션에서 모든 관련 연결을 동일한 백엔드 서버로 리디렉션하는 데 사용
SSL :클라이언트와 서버에서 사용할 SSL 프로토콜 유형과 암호를 정의(L7만 해당)
Server pools
서버 풀은 정적으로 수동지정하는 방식과 dynamic 방식이 있다.
Monitors
서버의 상태를 확인
Active 모니터링 : 모니터가 백엔드서버의 정상 여부를 지속적으로 테스트
Passive 모니터링 : 클라이언트-서버간의 통신을 확인하여 모니터링
로드밸런싱 컴포턴트간의 관계
로드 밸런서는 하나의 Tier-1 게이트웨이에만 연결 가능
로드 밸런서는 하나 이상의 가상 서버를 호스팅 가능
하나 이상의 가상 서버는 프로필을 사용 가능
가상 서버는 하나 이상의 서버 풀을 포함 가능
하나 이상의 서버 풀은 모니터를 사용 가능
로드밸런싱 배포 모드
Inline : SLB를 실제 트래픽 경로와 직선으로 구성
One arm : SLB를 실제 트래픽 경로와 분리하여 구성
VPN
site-to-site VPN : 회사간의 VPN
remote-as VPN : 회사와 개인간의 VPN
MPLS VPN
L2 MPLS : 라우터가 태그를 통해 스위치와 비슷하게 동작 확장성의 문제 존재
L3 MPLS : 라우터가 태그를 통해 양단에서 피어를 설정