Nexus, 9000, 9K : Today Key
올 2월에 시스코 코라에서 이틀 짜리 교육을 받으면서, 필기한 내용 중의 일부입니다.
좀 더 정리해서 포스팅하려고 했다가, 계속 미뤄지고 있어서 우선 일부 내용에 대해서 먼저 간단하게 모양새 정리만 해서 공유합니다.
○ Data Center Trends (단계별 필요)
- Consolidation : 중앙 집중화 (리센트럴라이제이션)
: 단순히 장비의 중앙화가 아닌 통합(Consolidation - Unified I/O : FCoE)
: Unified Computing : UCS B 시리즈 (채시안에 들어가는 블레이드 서버가 B시리즈)
: FEX (Parent S/W : 5K, 6K, 7K, 9K, FI) * FI는 UCS에서만 사용
- Virtualization
: Server/Desktop 가상화
: NFV (NX-1KV, ASAv, vWAAS)
- Automation / Orchestration (UCS Director, MicroSoft System Center, dCloud Director, ACI)
: Virtualization에서 이 단계로 접어들 때에는 Programmability 필요
- Cloud Computting(Private, Public, Hybrid)
○ Nexus 9K & Nexus 7K
- NX 7K는 최초 데이터센터용 스위치였지만, 다양한 요구 사항에 맞추기 위해서 다양한 Feature들이 들어가면서 범용적으로 사용
- NX 9K는 오직 데이터센터용 스위치로 집중
: 데이터센터에 필요한 이외의 다양한 Feature에 대해서는 사용하지 않고 데이터센터용 기능에만 집중.
: 기본적인 Feature만 제공하며, 기타 Programmability에 기능을 추가.
○ Nexus 9K Programmability 특화된 기능 지원.
- API : REST API
NX-OS API
- SDN : ONF - Imperative 모드
ODL - Declarative 모드
* Control/DataPlane은 각 장비에서 가지고 있으며, Controller는 Policies만 가지고 있겠다.
* opFlex (Protocol : 현재 비표준화)
- Openstack 지원
- Scripts : Python
※ NX-OS 7.2에서는 Programmability 에 대한 기능 지원을 Nexus 시리즈에서 모두 동일하게 지원 예정.
- 기존에는 Nexus 시리즈(9K, 7K, 5K, 3K 등)에서 지원 범위가 상이.
- Shell : Linux
BCM (Broadcom쉘)
- Overlay 기술 : VxLAN
- DevOps : Chef, Puppet 사용툴을 설치하여 사용 가능.
※ NX-API를 사용하여 Ansible을 사용할 수도 있음.
※ 일반 IOS에서도 SNMP를 활용하여 일부 제어가 가능한 Ansible Library가 있음.
( 시스코 공식은 아니며, 현재 기능 제한적 → 관련 포스팅 http://zigispace.net/840 )
○ Cloud Computing
- Flexiable, Scalable, On-Demand
- Drives the need for :
* Automation
* Programmable Infrastructure
* Cost Optimized Hardware
* Orchestrated Application Deployment
○ ONE, OnePK, DFA(Dynamic Fabric Automation), OpenDaylight, OpenFlow
○ Nexus 9000 Solution
- Standalone (NXOS Mode)
Per-Box Programmability
- ACI
Centralized Fabric Programmability
APIC은 Delarative(Policies) 진영의 Controller
○ Hardware
- Not for ACI : ACI를 사용하지 않는 경우에 사용하는 모듈
- ACI Ready : ACI가 필요한 경우에 사용하는 모듈.
- Nexus 9K의 뒤의 숫자는 Linecard만 포함. Supervisor 갯수는 제외 (7K는 Supervisor 까지 포함)
* ACI 지원 여부 / Leaf용이냐, Spine 용이냐에 따라 라인카드가 다름.
○ Leaf-Spine
- 기존에는 Pod of Based로 확장하였으나(Notrh-South에 적합), East-West Traffic에는 적합하지 않아서 Leaf-Spine 구조로 사용.
- 9508 기준 : (2 - 12 Spine / 4 ~ 288 Leaf / 4608 ToR(N2232)
- Leaf : 40G 경우 288개, 10G로 구성 시 1,152개로 구성 가능. 9508 기준
- 9300은 보통 16개의 FEX 구성 가능.
○ NX-OS Enhancements
- VxLAN bridging and routing
- VM mobility and tracking
- XMPP, openstack, Shell, Python, NX-API (RPC), JSON, NetConf/XML 등의 프로그래머빌리티 인터페이스 지원
- 64bit Linux 3.4.10
- Single Image : Kick Start, System Image로 나누지 않고 하나의 Image로 구성.
- L2, L3, VxLAN, vPC 지원 (※ VDC, FP 등은 현재 지원 안함)
○ Nexus 9000 Hardware
- 5P
* Price / Port Density / Programmability
* Performance [East-West Traffic에 특화 30% 향상/ Line Rate 100%]
* Power Efficiency 20% 향상 : Colling에 효율화
- Fan Module , Fabric Module은 950x 시리즈의 채시 사이에 호환이 안 됨. (슈퍼바이저, 파워 등 나머지는 호환가능)
- Fabric Module 분리할 때는 센터버튼을 눌러서 Out-Of-Service 상태로 바꾸고 작업을 해야, Packet Loss가 발생하지 않음.
- Supervisor
* Half-width
* GPS
* External Clock Input (PTP) : 일부 기능을 위해서 반드시 사용해야 함.
: GPS를 통해서 받아도 되고, Spine에서 받아서 Leaf로 전송해도 됨.
- System Contrller Module
* Supervisor의 기능을 일부를 분리 함.
- Fabric Module (호환 불가)
* ASIC 단위에 Path만 존재했지만, N9K에서는 Routing Table 존재.
* N7K - 46G / 110G , N77K - 220G, N9K - 320G : Fabric Module Slot 당
* 9504 FM에는 NFE가 1개 / 9508 FM에는 NFE가 2개 / 9516 FM에는 NFE가 4개
- LineCard (40G 36Port , 1/10G 48Port가 일반적) [ 홀수는 ACI / 짝수는 Non ACI ]
ACI - Spine : X9700 [ ASE * 3 ]
# ACI Spine Engine : NX-OS 모드 사용 불가(Standalone 모드 사용 불가)
- Leaf : X9500 [ Fabric - ALE(Cisco Chip) - NFE ] : NFC와 ALE가 2개씩 존재 (40G 구성 시 Oversubscri)
# NFE는 Buffer를 12M만 지원, ALE Buffer을 40M 지원 (ASE는 23M). (속도가 다른 포트 연결 시, Buffer 공간 제공)
# ACI Leaf Engine : NX-OS 모드 호환
# FEX 기능을 위해서는 ALE가 반드시 필요.
* Non-ACI : ASIC이 3개 (NFE [브로드컴칩(BCM)] : Cisco Chip이 없음)
: X9600 : 40G
: X9400 : 10G
: Cisco Chip어 없기 때문에 VM-TAG를 구분할 수 없어서 FEX 사용 불가
* ACI와 NX-OS는 별도 이미지
* L2 / L3 Line rate Performance for all packet sizes
BCM은 200byte 이하의 경우에 Line Full rate 불가(?)
- 9300 시리즈에서는 40G 포트는 Expansion Module로 추가 확장 가능.
Expansion Module에서는 ACI 모드 지원 / VxLAN 지원 등 지원 가능.
- FEX
* 9500 : 32개 / 9300 : 16개 (기존 12개에서 확장) 가능
2232TM-E (FCoE) / 2248TP-E (확장 Buffer ) - 모델별 'E'의 의미가 다름.
* Enhanced vPC+ : 2015 Q2 예정 ( N7K도 Q2 예정 / N5K,N6K는 가능)
- BCM 칩셋을 사용하면 NAT 사용 불가(브로드컴칩의 제한) - 2015 Q2에 지원되도록 예정.
○ 40G / 100G
- Cisco 현재 100G 지원 예정임.
- 100G는 25G의 Tx/Rx가 4개 존재
- 다양한 광 Transceivers 존재 - 광전송 : Actice 모드 (추가적인 전력 소모 필요) / Passive (추가적인 전력 불필요)
- 40G QSFP Transceivers - SR4, CSR4, BiDi, LR4
* BiDi를 사용하면 기존 10G 케이블을 재사용하여, Gbic과 Linecard만 교체하면 가능. (10G 모듈에 비해 30% 비용 상승)
: 전송 거리에 대한 제약 (광 모듈은 AVAGO 제품만 가능)
- Spine과 Leaf의 최대 제한 거리는 10Km이지만, ER 모듈을 이용하면 30Km까지 지원(예정)
: 추가적인 Wan 구성이나, 별도의 프로토콜(OTV등)을 사용 하지 않고도 데이터센터간 Spine/Leaf 구성 가능
- FEX와 연결 시에는 40G를 10G를 4개로 Break-out한걸로는 연결하면 안됨.
- 36Port ACI 40G에서도 Break-out 불가
○ Cisco 9000 Series Hardware 아키텍처
- System Controller
* EOBC (Ethernet Out of Band Channel) - 직접 라인 카드와 연동하여 라인카드에 대한 Control
* EPC (Ethernet Protocol Channel) - Protocol 상의 패킷 전송 / Fabric Module과 연동 (라인카드와는 직접 미연동)
- 라인카드에는 Host Route 정보만 가지고 있음. 나머지 경로는 FM으로 보내서 라우팅( 0.0.0.0/0 -> FM)
+ VxLAN 을 사용하여 LISP을 구현할 수 있음.
* Host Route는 자신의 LineCard에 연결된 정보만 가지고 있음. 다른 LineCard에 연결된 Host는 FM으로 보내서 확인
- Fabric Module에 LPM Table(롱기스트 패스 매치)을 가지고 있음. (128K LPM 정보 / 32K 엔트리 / 16K 엔트리)
- LineCard 종류에 따라서 ASIC 종류가 다름.
* Fabric모듈과 Linecard 연결 시, Host Port를 위한 (48port 1/10G)포트와 Uplink Port를 위한(4Port 40G)포트를 위한
ASIC을 구분해서 사용.
* Fabric 모듈을 3개만 연결 시에는 2,4,6번 공간에 설치
* Fabric 모듈을 6개 모두 장착 시에는 1,2/3,4/5,6이 Pair를 이룸.
○ Packet Forwarding
* Ingress
- Parser : 최초 128byte만 확인.
- Tunnel Termination : De-encapsulation
- L2/L3 Lookup : Host Routing Table
- Ingress ACL [향후 NAT까지]
- Buffering and Scheduling :
* Egress
- Parsing
- Packet Modification
- Egress ACL
※ Nexus 7K에서 지원하던 VOQ는 지원하지 않고, FIFO에 대한 큐잉을 지원