6/10/2018

IEEE 802.3 L2 관련사항

1. IEEE 802.x 관련 내용 

아래 Wiki 정보를 보면 IEEE802.x에 진행중인 그룹들을 쉽게 알수 있다. IEEE 802.1/3/11를 제외하면 더 이상 신기술이 없을 것 같다.
이외에 IEEE 802.x 그룹이 있지만, 나에게는 큰 관심거리가 아니라서 아래와 같이 정리한다.

현재관심은 IEEE 802.3/ 2 / 1 이며, IEEE 802.11 이 어떻게 IEEE 802.3과 호환이 되는지 그부분이 관심사 이다

NameDescriptionNote
IEEE 802.1Higher Layer LAN Protocols (Bridging)active
IEEE 802.2LLCdisbanded
IEEE 802.3Ethernetactive
IEEE 802.4Token busdisbanded
IEEE 802.5Token ring MAC layerdisbanded
IEEE 802.6MANs (DQDB)disbanded
IEEE 802.7Broadband LAN using Coaxial Cabledisbanded
IEEE 802.8Fiber Optic TAGdisbanded
IEEE 802.9Integrated Services LAN (ISLAN or isoEthernet)disbanded
IEEE 802.10Interoperable LAN Securitydisbanded
IEEE 802.11Wireless LAN (WLAN) & Mesh (Wi-Fi certification)active

그외의 자료는 아래의 Wiki 참고
  https://en.wikipedia.org/wiki/IEEE_802


1.1 IEEE 802.x 관련정보 

IEEE 802.3 관련세부정보
  https://en.wikipedia.org/wiki/IEEE_802.3

IEEE 802.3 (CSMA/CD)
  https://en.wikipedia.org/wiki/Carrier-sense_multiple_access_with_collision_detection

IEEE 802.11 (CSMA/CA)
  https://en.wikipedia.org/wiki/Carrier-sense_multiple_access_with_collision_avoidance


2. Ethernet Frame (Layer 2)

Ethernet은 OSI의 Layer 2에 해당하며, 기존에 가지고 있던 Ethernet 지식으로 Packet을 분석을 해보면 가끔 이해 안될 때 가 있어 이 부분을 좀 더 알아보려 한다.

정확히 궁금한 부분은 MAC 주소와 다양한 EtherType 부분이며, WLAN과 호환성일 것이다.

802.3 Ethernet packet and frame structure
LayerPreambleStart of frame delimiterMAC destinationMAC source802.1Q tag (optional)Ethertype (Ethernet II) or length (IEEE 802.3)PayloadFrame check sequence(32‑bit CRC)Interpacket gap
octets1 octet6 octets6 octets(4 octets)2 octets46‑1500 octets4 octets12 octets
Layer 2 Ethernet frame← 64–1522 octets →
Layer 1 Ethernet packet & IPG← 72–1530 octets →← 12 octets →
The optional 802.1Q tag consumes additional space in the frame. Field sizes for this option are indicated parenthetically in the table above. IEEE 802.1ad (Q-in-Q) allows for multiple tags in each frame. This option is not illustrated here.


  • VLAN(Virtual LAN, 802.1Q)
802.1Q은 옵션이기때문에, EtherType과 같은 위치에 존재하므로, 사용해야 한다면 EtherType: 0x8100 설정하고, Layer2 에 802.1Q의 TAG가 삽입되며서 EtherType은 TPID로변경이되어 Layer2가 확장된다.

802.1Q (Virtual LAN)는 아래 wiki보면 쉽게 이해간다.
  1. EtherType: 0x8100
  2. EtherType: 0x88A8
  https://en.wikipedia.org/wiki/IEEE_802.1Q



  • IEEE 802.2/3 EtherType or Length의 선택 
기존의 Ethernet은 EtherType을 Length로 사용하여, 46(0x002E) ~ 1500(0x05DC)를 했지만, 이 영역을 피하여,
Ethernet v2는 1536(0x0600)이상 설정하여 EtherType로 설정한다.


Ethernet frame differentiation
Frame typeEthertype or lengthPayload start two bytes
Ethernet II≥ 1536Any
Novell raw IEEE 802.3≤ 15000xFFFF
IEEE 802.2 LLC≤ 1500Other
IEEE 802.2 SNAP≤ 15000xAAAA


MTU 관련내용
  https://en.wikipedia.org/wiki/Maximum_transmission_unit


  • Ethernet Type 2 Frame 
EtherType : 0x0800  IPv4로 사용하면 Payload 역시 1500+14+4 = 1518이지만, 스니핑을 하게되면 CRC는 L2에서 제거되어 Max 1514로 표시




상세한 내용은 아래 WIKI 정보참고
  https://en.wikipedia.org/wiki/Ethernet_frame


2.1 MAC Address 

Layer2의 MAC Address는 기본구성은 6Bytes 이며 8x6=48bit이로 구성이 되었다.
이를 MAC-48 이라 불렀지만, 구식이되어 이를 EUI-48이라고 호칭하고 있다.
그리고 이에 나아가 2bytes를 추가한 EUI-64 사용을 장려한다고 한다.

  • MAC-48/EUI-48을 EUI-64 확장방법 
아래의 Wiki 사이트에 예제뿐만아니라 설명이 잘되어있다.


  • MAC-48 or EUI-48의 기본구조 파악 
이론상으로 2^48 즉 281,474,976,710,656 가진 경우의 수를 사용할 수 있지만, 다음과 같은 구조로 분리가 되어 제약이 있다.

우선 3Bytes 두개로 분리되어 다음과 같은 목적으로 사용이 된다.
  1. OUI(Organisationally Unique Identifier) : 기업/기관이 사용으로 번호를 구입
  2. NIC(Network Interface Controller): 구입한 기업/기관이 각각 사용할 있는 번호들 

앞의 3byte인 OUI를 보면 앞의 1 Byte의 7bit 정보로 UNICAST/MULTICAST이 알수있다.
  1. UNICAST(0)    : 일반적인 통신 
  2. MULTICAST(1) : Multicast 할때 사용 
  3. BROADCAST:  Destination MAC을 전부 (FF:FF:FF:FF:FF:FF)로 설정 
앞의 3byte인 OUI를 보면 앞의 1 Byte의 6bit 정보로 글로벌/개인용 분리
  1. Globally Unique Address (0)
  2. Locally administered Address(1) 






OUI
  https://en.wikipedia.org/wiki/Organizationally_unique_identifier

MAC
  https://en.wikipedia.org/wiki/MAC_address
  https://en.wikipedia.org/wiki/Medium_access_control


2.2 EtherType

다양한 EtherType을 정리하는 것이지만, 일반적으로 많이 사용되는 EtherType부터 알아보자.
  • 일반 LAN 관련사항 
  1. 0x0800   : IPv4
  2. 0x86DD  : IPv6
  3. 0x0806   : ARP

  • WLAN 관련사항 
  1. 0x888E  :  EAP over LAN (IEEE 802.1X)
  2. 0x88C7  :  Pre-Authentication

EtherType values for some notable protocols[8]
EtherTypeProtocol
0x0800Internet Protocol version 4 (IPv4)
0x0806Address Resolution Protocol (ARP)
0x0842Wake-on-LAN
0x22F3IETF TRILL Protocol
0x22EAStream Reservation Protocol
0x6003DECnet Phase IV
0x8035Reverse Address Resolution Protocol
0x809BAppleTalk (Ethertalk)
0x80F3AppleTalk Address Resolution Protocol (AARP)
0x8100VLAN-tagged frame (IEEE 802.1Q) and Shortest Path Bridging IEEE 802.1aq with NNI compatibility
0x8137IPX
0x8204QNX Qnet
0x86DDInternet Protocol Version 6 (IPv6)
0x8808Ethernet flow control
0x8809Ethernet Slow Protocols
0x8819CobraNet
0x8847MPLS unicast
0x8848MPLS multicast
0x8863PPPoE Discovery Stage
0x8864PPPoE Session Stage
0x886DIntel Advanced Networking Services 
0x8870Jumbo Frames (Obsoleted draft-ietf-isis-ext-eth-01)
0x887BHomePlug 1.0 MME
0x888EEAP over LAN (IEEE 802.1X)
0x8892PROFINET Protocol
0x889AHyperSCSI (SCSI over Ethernet)
0x88A2ATA over Ethernet
0x88A4EtherCAT Protocol
0x88A8Provider Bridging (IEEE 802.1ad) & Shortest Path Bridging IEEE 802.1aq
0x88ABEthernet Powerlink
0x88B8GOOSE (Generic Object Oriented Substation event)
0x88B9GSE (Generic Substation Events) Management Services
0x88BASV (Sampled Value Transmission)
0x88CCLink Layer Discovery Protocol (LLDP)
0x88CDSERCOS III
0x88DCWSMP, WAVE Short Message Protocol
0x88E1HomePlug AV MME
0x88E3Media Redundancy Protocol (IEC62439-2)
0x88E5MAC security (IEEE 802.1AE)
0x88E7Provider Backbone Bridges (PBB) (IEEE 802.1ah)
0x88F7Precision Time Protocol (PTP) over Ethernet (IEEE 1588)
0x88F8NC-SI
0x88FBParallel Redundancy Protocol (PRP)
0x8902IEEE 802.1ag Connectivity Fault Management (CFM) Protocol / ITU-T Recommendation Y.1731 (OAM)
0x8906Fibre Channel over Ethernet (FCoE)
0x8914FCoE Initialization Protocol
0x8915RDMA over Converged Ethernet (RoCE)
0x891DTTEthernet Protocol Control Frame (TTE)
0x892FHigh-availability Seamless Redundancy (HSR)
0x9000Ethernet Configuration Testing Protocol
0x9100VLAN-tagged (IEEE 802.1Q) frame with double tagging

다양한 EtherType 관련자료
  http://en.wikipedia.org/wiki/EtherType
  http://standards-oui.ieee.org/ethertype/eth.txt
  https://nmap.org/book/nping-man-ethernet-options.html
  https://www.iana.org/assignments/ieee-802-numbers/ieee-802-numbers.xhtml

2.3 Multicast 사용시 MAC Address 범위와 EtherType

MAC주소의 OUI에서 Multicast Bit정보를 알았으니, 그 기반으로 사용되어지는 Multicast MAC주소 범위를 알려준다. 

WLAN(802.11) 도 EtherType: 0x0800 (IPv4) ,EtherType: 0x86DD (IPv6) 동일하게 사용한다고한다.

Some well known Ethernet multicast addresses
Ethernet multicast addressType FieldUsage
01-00-0C-CC-CC-CCCDP (Cisco Discovery Protocol), VTP (VLAN Trunking Protocol), UDLD (Unidirectional Link Detection)
01-00-0C-CC-CC-CDCisco Shared Spanning Tree Protocol Address
01-80-C2-00-00-00Spanning Tree Protocol (for bridges) IEEE 802.1D
01-80-C2-00-00-00, or
01-80-C2-00-00-03, or 01-80-C2-00-00-0E
0x88CCLink Layer Discovery Protocol
01-80-C2-00-00-080x0802Spanning Tree Protocol (for provider bridges) IEEE 802.1ad
01-80-C2-00-00-010x8808Ethernet flow control (Pause frame) IEEE 802.3x
01-80-C2-00-00-020x8809Ethernet OAM Protocol IEEE 802.3ah (A.K.A. "slow protocols")
01-80-C2-00-00-30 - 01-80-C2-00-00-3F0x8902Ethernet CFM Protocol IEEE 802.1ag
01-00-5E-00-00-00 - 01-00-5E-7F-FF-FF0x0800IPv4 Multicast (RFC 1112), insert the low 23 Bits of the multicast IPv4 Address into the Ethernet Address (RFC 7042 2.1.1.)
33-33-xx-xx-xx-xx0x86DDIPv6 Multicast (RFC 2464), insert the low 32 Bits of the multicast IPv6 Address into the Ethernet Address (RFC 7042 2.3.1.)
01-0C-CD-01-00-00 -
01-0C-CD-01-01-FF
0x88B8IEC 61850-8-1 GOOSE Type 1/1A
01-0C-CD-02-00-00 -
01-0C-CD-02-01-FF
0x88B9GSSE (IEC 61850 8-1)
01-0C-CD-04-00-00 -
01-0C-CD-04-01-FF
0x88BAMulticast sampled values (IEC 61850 8-1)
01-1B-19-00-00-00, or
01-80-C2-00-00-0E
0x88F7Precision Time Protocol (PTP) version 2 over Ethernet (layer-2)

이더넷 멀티캐스트
  https://en.wikipedia.org/wiki/Multicast_address


멀티캐스트
  http://karhem.tistory.com/36