1. 개요
LAN(Local Area Network)은 라우터를 거치지 않고 MAC 주소만으로 프레임이 오가는 범위다. 한 기기가 브로드캐스트를 보내면 LAN 안의 모든 기기에 닿고, 라우터에서 멈춘다. 그래서 LAN 은 브로드캐스트 도메인과 같은 말로 쓰인다.
집에서는 공유기에 유선이나 와이파이로 붙은 기기 전체가 LAN 하나다.
2. 구성 요소
LAN 을 이루는 장치는 셋이다. 기기의 네트워크 카드(MAC 주소를 가진 쪽), 기기들을 잇는 스위치, 무선 기기를 유선 쪽에 붙이는 AP(액세스 포인트). 라우터는 LAN 의 안쪽이 아니라 경계에 선다.
집 공유기는 이 셋과 라우터를 한 상자에 담은 장치다. 와이파이 이름이 하나여도, 유선 포트가 네 개여도 안쪽은 같은 스위치로 이어져 있어 LAN 은 하나다.
3. 스위치의 MAC 학습
스위치는 처음부터 누가 어느 포트에 있는지 알지 못한다. 프레임이 들어올 때마다 출발지 MAC 과 들어온 포트를 MAC 표에 적고, 목적지 MAC 을 표에서 찾아 나갈 포트를 고른다. 표에 없으면 들어온 포트를 뺀 모든 포트로 내보낸다(flooding).
MAC 표의 줄은 한동안 쓰이지 않으면 지워진다(보통 5분). 기기가 다른 포트로 옮겨 가도 다음 프레임에서 새 포트로 다시 적힌다.
4. 브로드캐스트 도메인
받는 MAC 이 ff:ff:ff:ff:ff:ff 인 프레임은 스위치가 언제나 모든 포트로 내보낸다. 이 프레임이 닿는 범위가 브로드캐스트 도메인이고, 곧 LAN 이다.
LAN 안에서 브로드캐스트를 쓰는 대표적인 경우는 둘이다. 상대의 MAC 을 모를 때 묻는 ARP 요청, 아직 IP 가 없는 기기가 주소를 구하는 DHCP Discover. 둘 다 “누가 답할지 모르니 모두에게 묻는다” 는 구조라 LAN 밖으로는 나갈 수 없다. 라우터는 브로드캐스트를 다른 쪽으로 넘기지 않는다.
4.1. 크기의 한계
LAN 을 크게 만들면 브로드캐스트가 닿는 기기도 함께 늘어난다. 그래서 LAN 은 일부러 작게 나눈다.
5. VLAN
VLAN 은 스위치 한 대를 설정만으로 여러 LAN 으로 나누는 기술이다. 포트마다 VLAN 번호를 정하면 같은 번호의 포트끼리만 하나의 LAN 이 되고, 브로드캐스트도 그 안에서만 퍼진다. VLAN 사이는 라우터를 거쳐야 한다.
반대로 라우터 너머로 떨어진 LAN 을 이어 붙이는 기술이 VXLAN 이다.
6. 서브넷과의 관계
LAN 은 선이 정하는 범위이고, 서브넷은 주소가 정하는 범위다. 보통 LAN 하나에 서브넷 하나를 짝지어 둘이 같은 범위가 되게 한다. VLAN 을 나누면 VLAN 마다 서브넷도 따로 둔다.
7. 집 사이의 경계
이웃집도 대개 192.168.0.0/24 같은 흔한 사설 대역을 쓴다. 주소가 같아도 두 집은 서로 다른 LAN 이다. 선이 각자의 공유기에서 끝나고, 공유기가 브로드캐스트를 밖으로 넘기지 않기 때문이다. 집 밖으로 나가는 패킷은 공유기가 NAT 로 공인 주소를 붙여 내보낸다.
8. 쿠버네티스의 LAN
노드 안에서는 리눅스 브리지(cni0 등)가 가상 스위치 역할을 한다. 각 Pod 는 veth 라는 가상 선으로 이 브리지에 붙고, 같은 노드의 Pod 끼리는 한 LAN 안에서 MAC 으로 프레임을 주고받는다.
노드가 다르면 Pod 서브넷도 다르다(노드 A 10.244.1.0/24, 노드 B 10.244.2.0/24). 노드 사이는 flannel 같은 CNI 가 VXLAN 터널을 만들어, Pod 의 프레임을 UDP 패킷에 넣어 노드 네트워크 위로 나른다.
9. 확인 명령
# macOS
arp -a # 같은 LAN 에서 최근 주고받은 기기의 IP 와 MAC
ifconfig en0 | grep ether # 내 네트워크 카드의 MAC
networksetup -listallhardwareports # Wi-Fi, 유선 등 인터페이스 이름과 MAC
# Linux
ip neigh # arp -a 와 같은 이웃 표
ip link show type bridge # 브리지(가상 스위치) 목록 — 쿠버네티스 노드면 cni0 이 보인다
bridge fdb show br cni0 # 그 브리지의 MAC 표
ip -d link show type vlan # VLAN 인터페이스와 번호 (vlan id 10)
ip -d link show flannel.1 # flannel 의 VXLAN 장치 (vxlan id 1)
10. 관련 문서
- Subnet — 주소가 정하는 범위. LAN 과 짝을 이룬다
- ARP — LAN 안에서 IP 로 MAC 을 찾는 브로드캐스트
- DHCP — IP 가 없는 기기가 LAN 에 브로드캐스트로 주소를 묻는다
- CNI — 노드 안의 브리지와 veth 를 만드는 플러그인 규격
- VLAN — 스위치 하나를 여러 LAN 으로 나눈다
- VXLAN — 프레임을 UDP 에 넣어 LAN 을 멀리 잇는다
- Network & K8s.01-2 Across the Network — Ethernet 프레임, VLAN 과 VXLAN
11. 출처
VLAN 태그는 IEEE 802.1Q 에, 스위치의 MAC 학습과 표 유지는 IEEE 802.1D(브리지) 에 정의되어 있다. VXLAN 을 정의한 RFC 7348 이 VLAN 의 역할과 한계, MAC 표가 넘칠 때의 flooding 을 정리하고 있다.
“A key characteristic of Layer 2 data center networks is their use of Virtual LANs (VLANs) to provide broadcast isolation. A 12-bit VLAN ID is used in the Ethernet data frames to divide the larger Layer 2 network into multiple broadcast domains.”
“If the table overflows, the switch may stop learning new addresses until idle entries age out, leading to significant flooding of subsequent unknown destination frames.”