본문 바로가기

네트워크/Network 가상화

Nexus - NX-OS 정리 Part 25(FabricPath - 1)

2014년 첫 포스팅입니다.

FabricPath에 대한 포스팅입니다.  이 주제에 대해서 몇 번에 걸쳐서 정리를 진행하게 될지는 모르겠지만..

차근 차근... 정리를 시작해보려고 합니다.

물론 기존의 정리하고 있던 주제들도 함께 추가적으로 정리 및 포스팅 될 예정입니다.

 

제가 정리된 부분에서 잘못되서 수정해야 할 부분, 업데이트 해야할 부분 등이 있으면 알려주시면 업데이트 하도록 하겠습니다.


 

FabricPath

하나의 Ethernet Fabric구조를 만들어 주는 기술

Network 구성이 Flat하게 구성된다.

• Fabric 외부 관점에서는 하나의 Switch처럼 인식된다.

• Layer2Mobility & Flexible의 장점과 L3Loop Prevention의 장점을 동시에 가져옴

MAC in MAC : MAC을 또 다른 MAC으로 Encapsulation.

    - IP Address는 미 변경되어, 어디서나 바로 사용 가능 (Plug & Play)

• STP를 사용하지 않음 : IS-IS로 대체 (내부적으로 동작하기 때문에 설정할 필요는 없음)

• Fabric 내에서의 통신은 STP가 아닌 Shortest pathSwitching되기 때문에 Optimal하고 Low Latency Switching이 가능하다.

ECMP Multi-topology Forwarding으로 통해서 Bandwidth를 충분히 활용할 수 있다.

 

Fabric Path 지원 하드웨어/License

• N7K F1 Linecard   : 5.1.1  N7K F2 Linecard   : 6.0.1

N7K F2E Linecard  : 6.1.2  • N5500 : 5.1.3 (no L3 module required)

License : Enhanced L2

 

 

 

 

Fabric Path의 이점.

• Conversational learning을 통한 MAC Address확장성을 가져옴.

     - 필요한 Mac Address만을 학습하여, 동일한 공간에 저장 가능한 Mac-addres를 늘려주는 효과를 가져옴.

설정이 매우 간단하다. (Fabric로 사용할 PortMode를 단순히 Fabric mode로만 설정하면 된다.)

• ECMP가 가능하기 때문에 High BandwidthHigh Resiliency를 가져온다.

• STP에 의존하지 않고 독립적으로 동작. 각각의 Switch들은 Layer 2 Topology로 운영되지만, 실제 동작은 Shortest-pathfirst

 기반으로 Layer 2 forwarding을 한다.

• STP에 상관없이 동작되기 때문에 FabricPath를 구성하는 장비간에 보다 더 직접적인 통신 경로로 통신하게 된다.

• Multicast Traffic2개의 Multi-destination Tree를 통해 분산된다.

• FabricPath에서 Frame 전송 시에, TTL Filed를 사용하여 Layer 2 loop을 완화시킨다.

 

 

Fabric Path 구성 요소

leaf (Edge) Device

    - CE(Classic Ethernet) Device와 연결하면서, Fabric Path Port와도 연결

    - Edge Device는 목적지를 Mac-AddressSwitch-idMapping하여 확인

    - Locally MacPortMapping되며, Remote MacSwitch-idMapping.

 

Spine (Core) Device

    - FabricPath Edge Device간의 연결을 하는 Device.

    - Spine Device는 오직 Switch-id를 통해서 목적지와 통신

    - Mac-address Learning을 하지 않음. 오직 Switch-id를 기반으로만 동작

    - Spanning-Tree가 동작하지 않음

    - Topology 정보는 Layer ISIS Adjacency를 통해서 교환

    - /수신 TrafficFabricPath Header와 함께 이동.

 

• Edge SwitchCE Port를 통해서 Local Source Mac-addres뿐 아니라, Switch-id로의 MappingMac-address Table에 유지한다.

 

 

FabricPath Interface

FabricPath Edge Port

    - FabricPath DomainEdge에 있는 Port로 일반 CE(Classic Ethernet)에 연결된 Interface

    - Edge PortMac Learning을 하며, 일반 Ethernet Frame을 전송을 한다.

    - Access 혹은 Trunk로 설정 가능.

FabricPath Core Port

    - Core PortEthernet Frame을 캡슐화하여 FabricPath Header  붙여서  FabricPath을 통해 전송을 한다

 

 

 

 

FabricPath 동작

• FabricPath 동작 순서

    1. Edge port에서 FrameIngress FabricPath switch로 수신된다.

    2. Ingress FabricPath switchDestination Mac Address을 찾아가기 위한 SID 위해 MAC addressLookup 하며,

       어떤 Interface로 전송을 할지에 대해서, 결정한 후 전송한다.

    3. Core FabricPath switchFabricPath core port로부터 Frame 수신하고, FabricPath Header에 있는 SID를 통해서,

       Next-Hop을 결정하여 Frame을 전송한다.

    4. Egress FabricPath switchFabricPath Header를 제거하고 적절한 CE PortFrame을 전송한다.

.

 

 

 

FabricPath Encapsulation

FabricPath에서는 CE Port에서 FE Port로 전송되는 모든 Ethernet Frame들이 16ByteFabricPath Header로 붙여서 캡슐화한

  후에 전송을 하게 된다.

FabricPath의 캡슐화는 MAC-in-MAC 캡슐화 포맷을 사용한다.

캡슐화 시에는 802.1Q tag를 포함한 기본 Ethernet Frame48bitOuter Source Address48bitOuter Destination Address,

  32bitFabricPath Tag를 추가하게 된다.  (16Byte = 128bit)

 

 

 

 

FabricPath Header [Outer Address]

Endnode ID

    - NX-OS 6.2(2)에서는 현재 이 Filed에 대해서는 구현되어 있지 않다.

 

• U/L (1bit)

    - 모든 UnicastOSAODA field에 설정

 

I/G (1bit)

    - Multi-destination Address인 경우에 설정

 

OOO/DL (1bit)

    - NX-OS 6.2(2)에서는 현재 이 Filed에 대해서는 구현되어 있지 않다.

    - 향후 ECMP시에, 패킷별 Load-Sharing이 기능을 제공할 수 있다.

 

Switch ID [SID] (12bit)

    - FabricPath Domain에 있는 모든 Switch에 할당되는 ID.

    - DARP를 이용하여 자동할당 받거나, 수동으로 직접 입력 가능. , 유일한 값으로 설정해야 함.

        동일한 ID를 갖는 경우에는 DARP에 의해서 한 쪽의 Switch ID 값을 유일한 값으로 변경

    - FabricPath MAC-in-MAC Frame"Outer MAC Address"이다.

 

  Sub-Switch ID

    - NX-OS 6.1(2)이전 버전에서는 Source 또는 Destination vPC+ PortChannel Interface를 식별하기 위해서 사용.

      bit를 통해서 최대 244개의 vPC+ PortChannel을 구분할 수 있다.

    - NX-OS 6.1(2)부터는 "no port-channel limit" 명령을 사용하여 개수의 제한을 없앨 수 있다. (F2/F2E만 가능 / F1 불가)

    - vPC+를 사용하지 않는 경우에는 이 Filed0으로 설정된다.

 

LID (Local ID / Port ID)

  - Source / Destination에 대한 Physical 혹은 Logical Interface

  - Outer DA에 있는 LID 값은 Egress SwitchFrame Forwarding할 때, 별도의 MAC-Address TableLookup하지 않게 해준다.

 

 

 

 

FabricPath Header [ FP Tag ]

• FabricPath packet 0x8903 이다.

 

• TTL은 초기 32이며, FabricPath Switch를 지날 때마다(hop) 1감소하며 Field를 통해서 Looping을 예방.

    - NX-OS 5.2(1) 에서는 모든 Frame에 대해서 32가 초기값

    - NX-OS 6.2(2) 부터는 fabricpath ttl 명령으로 Unicast Multicast frame을 구분하여 변경 가능하다.

         * BroadcastUnknown FrameUnicast TTL 값을 사용

         * IPv4/v6, non-IP Multicast FrameMulticast TTL 값을 사용

 

• FTAG(Forwarding TAG)

    - Topology , Distribution TreeUniqueID.

    - Unicast에서는 FabricPath IS-IS Topology를 식별하기 위해 사용하고, Multidestination에서는 Distribution tree를 식별하기 위

      해 사용한다.

 

 

 

 

 

STP & FabricPath

• FabricPath Network 내부에서는 STP가 없다.

• TCN을 제외한 BPDUFabricPath Network 애서 전달되지 않고 FabricPath edge에서 Drop된다.

• FabricPath network 1대의 Swtich처럼 보이기 위해서 모든 BPDU는 같은 Bridge ID를 가지고 BPDU를 전송한다.

  c84c.75fa.60XX : XXDomain IDHex 값이며, default 값은 00 이다

• FabricPath Port Upe되기 전까지 Switch 기존 STP에서 사용하는 Bridge ID를 사용한다.