티스토리 뷰
보통 네트워크 엔지니어라면 VLAN을 접하는건 대부분이 스위치에서 configuration을 통해 접하게 됩니다.
자주 접하지만, 빼먹기 쉬운. 혹은 잘못 알고있는 VLAN 개념에 대해 정리해 봤습니다.
Ethernet Frame
이더넷 프레임의 상세 필드들의 형태입니다. ( 위키 참조 )
Untagged
- TAG가 붙어있지 않은 이더넷 프레임
Tagged
- TAG가 붙어있는 프레임
Native VLAN
- Tag Mode인 스위치 포트에 1개의 Untag 프레임을 허용. (Untag는 PVID)
Hybrid VLAN
- Tag Mode인 스위치 포트로 들어오는 Untag or Tag 프레임.
- Native VLAN도 프레임 자체는 Untag기 때문에 Hybrid VLAN으로 설정된 포트로 인입 가능.
응용
아래와 같은 구성에서 PC A -> PC B로 통신이 가능할까요??
정답은 O 입니다. 통신이 가능합니다.
PC A -> PC B로 ping을 보냈다고 가정하고, 스위치들의 ARP는 한번씩 학습했다는 가정하에 동작 과정은 아래와 같습니다.
1) PC A의 untag frame이 L3의 P1으로 인입
2) L3는 P1에 등록된 PVID를 인지.
3) L3는 목적지IP와 매칭되는 목적지 MAC를 확인하여 해당 목적지 MAC에 등록된 자신의 Port 정보를 확인.
4) 확인 결과, P2에 Tag Port로 확인되어 Unicast로 PC B에게 tag frame 전송( 이 때, 802.1q Header에 VID는 20만 달고 보냅니다)
5) L2 P1 포트로 받은 Tag Frame(VID20)은 마찬가지로 목적지 mac을 확인한 뒤, 동일 VLAN인 L2 P2로 확인.
6) Tag를 제거한 뒤, PC B에게 전송.
7) PC B는 동일한 과정으로 응답. ( 역순 )
여기서 중요한 것은 두 가지가 있습니다.
하나는 PC가 직접 통신하는 것이 아닌 L3 Gateway를 통하여 통신한다는 점입니다. 일종의 mac에 대한 proxy라고 볼 수 있습니다.
다른 하나는 PC A의 패킷을 받은 L3가 PC B로 자신의 src mac(L3의 P2 인터페이스, 벤더마다 다르며 장비 자체 mac일 수도 있습니다)을 달고 Unicast로 보낸 다는 점입니다.
추가로, 위 그림에서는 설명하지 못했지만, PC B가 PC A와 동일 대역일 경우에는 L2스위치는 Broadcast 도메인을 나누지 못하므로 5번 과정에서 L2스위치는 해당 프레임을 버리게 되어 통신이 되지 못합니다.
위 예제는 결국 L2스위치 입장에서는 L3로부터 VLAN 20번의 VID를 받았기 때문에 동일한 VLAN 20인 목적지 PC B로 프레임을 전달하여 통신이 가능했던 것입니다.
참고링크 :
https://community.ubnt.com/t5/EdgeRouter/PVID-VID-Trunk-Access-Ports/td-p/2011968
http://www.microhowto.info/tutorials/802.1q.html
https://networkdirection.net/articles/network-theory/taggeduntaggedandnativevlans/
'Network' 카테고리의 다른 글
[Network] 서브넷팅(Subnetting) 쉽게 이해하기 (0) | 2020.03.23 |
---|---|
스위치 interface discard 원인 요소들 (0) | 2020.02.28 |
VLAN (0) | 2019.07.20 |
서브넷마스크(Subnetmask) (0) | 2019.04.20 |
Transparent Bridge (0) | 2019.04.20 |
- Total
- Today
- Yesterday
- 802.1ax
- Switch
- date 과거
- dns 동작 방식
- ping multi
- Windows
- vtep
- HTTP
- dns 동작
- data plane
- vlan
- ssh
- http/1.0
- tag
- bash
- 윈도우
- http/0.9
- ping
- vni
- multiple ping
- iso8601
- VXLAN
- head end replication
- 802.3ad
- date 시간 변경
- date 시간 지정
- link aggregation
- date 미래
- docker logs
- HTTP/1.1
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |