맥 주소 테이블이란?
스위치 내부에는 맥 주소 테이블(Mac Address Table)이 존재한다.
mac 주소 테이블은 스위치의 포트 번호와 해당 포트에 연결되어 있는 컴퓨터(호스트)의 mac 주소가 등록되는 데이터베이스라고 보면 된다.
컴퓨터에서 목적지의 Mac 주소가 추가된 프레임이 스위치로 전송이 되면
이 때, mac 주소 테이블을 확인하는데
여기서 아직 등록되지 않은 출발지의 mac 주소라면 해당 맥 주소를 컴퓨터(호스트)가 연결된 포트와 함께
맥 주소 테이블(Mac Address Table)에 등록한다.
이를 맥 주소 학습(Mac Address Learning) 이라고 이해하면 될 것 같다.
스위치는 MAC 주소 테이블에 있는 주소별로 타임아웃 매커니즘 을 적용한다.
여기서 특정 mac 주소와 포트 정보가 일정 시간 동안 사용되지 않는 경우 해당 주소는 테이블에서 삭제된다.
(timeout 주기는 스위치에서 임의로 조정 가능하다.)
이 때, 삭제된 장치가 다시 연결되어 데이터를 전송하면 스위치는 다시 그 mac 주소를 테이블에 등록한다.
맥 주소 학습 기능 작동 원리
스위치에 총 3대의 컴퓨터가 랜선을 통해 연결되어 있다.
스위치 전원은 켜져 있지만 네트워크 상에서 어떠한 데이터의 교류도 없는 상태이기 때문에
스위치의 맥 주소 테이블은 비어있다.
이 때 PC A
가 PC C
로 데이터(프레임)을 전송한다.
스위치 내의 맥 주소 테이블을 확인해보니, PC A
의 주소(=출발지 MAC 주소)가 등록되지 않은 상태이다.
그러니 PC A
의 맥 주소를 연결된 포트와 함께 주소 테이블에 등록한다.
하지만 목적지인 PC C
의 맥 주소 또한 테이블에 등록되어 있지 않은 상태이다.
이 경우, 스위치는 해당 프레임을 프레임이 들어온 포트를 제외하고 나머지 모든 포트로 전송한다.(Broadcast)
이 과정에서 PC C
뿐만 아니라, PC B
또한 해당 프레임을 전달 받는다.
이러한 데이터 전송을 플루딩(Flooding) 이라고 한다.
여기서 프레임의 목적지 mac 주소가 자신의 mac 주소와 일치하는 PC C
의 경우 해당 프레임을 처리하고,
나머지 컴퓨터 PC B
는 주소가 일치하지 않으니 해당 프레임을 무시하고 폐기한다.
그렇다면 프레임의 목적지 mac 주소인 PC C
의 맥 주소가 테이블에 등록되어 있었다면 어떻게 동작할까?
스위치 테이블에 PC C
의 맥 주소가 등록되어 있다면,
PC B
에는 프레임이 전송되지 않고 목적지인 PC C
에만 프레임이 전송된다.
이처럼 mac 주소를 기준으로 목적지를 선택하는 것을 맥 주소 필터링 이라고 한다.
이러한 기능 덕분에 불필요한 데이터를 네트워크에 전송하지 않을 수 있는 것이다!
L2 (데이터 링크 계층) L3 (네트워크 계층) 에서의 Mac Learning
이번에는 지금까지 배운 내용을 요약한다는 느낌으로
L2 계층과 L3 계층에서의 MAC address Learning을 과정을 다뤄보려고 한다.
L2
1. mac 주소 테이블 (CAM 테이블)
- L2 스위치는 각 포트와 연결된 장치의 mac 주소를 Content Addressable Memory (CAM) 에 저장한다.
- 이 테이블에는 mac 주소와 해당 mac 주소를 학습한 포트 정보가 저장된다.
2. 학습 프로세스
- 스위치로 들어오는 프레임의 소스 mac 주소 를 확인한다.
- 소스 mac 주소와 들어온 포트 번호 를 CAM 테이블에 기록한다.
- 소스 mac 주소가 테이블에 존재하면, 기존 항목의 타이머를 갱신한다. (
Aging Timer
)
- 소스 mac 주소가 테이블에 존재하면, 기존 항목의 타이머를 갱신한다. (
- 만약 해당 mac 주소가 CAM 테이블에 없는 경우, 새로운 항목을 추가한다.
3. 포워딩 프로세스
- 스위치는 프레임의 목적지 mac 주소를 CAM 테이블에서 검색한다.
- 목적지 mac 주소가 테이블에 존재하면
- 해당 포트로만 프레임 전달 (Unicast)
- 존재하지 않으면
- 모든 포트로 브로드캐스트 (Broadcast)
- 목적지 mac 주소가 테이블에 존재하면
4. 맥 주소의 Aging
- CAM 테이블은 메모리 자원이 제한적이므로 오래된 MAC 주소를 삭제한다.
- 일반적으로 "Aging Timer"가 설정되어, 일정 시간 동안 프레임이 없는 mac 주소는 테이블에서 삭제된다.
L3
L3 계층은 IP 주소를 기반으로 경로를 설정하지만,
L2 계층의 MAC 주소와의 상호작용이 필요하다.
MAC 주소 학습은 주로 다음과 같이 이루어진다.
1. ARP 프로세스
- L3 장치(라우터 등)는 IP 주소를 기반으로 목적지 네트워크를 결정한다.
- **ARP (Address Resolution Protocol)**을 사용하여, 해당 IP 주소에 매핑된 MAC 주소를 학습한다.
- 예:
192.168.1.1
의 MAC 주소가 필요하면 브로드캐스트 요청을 보내고, 응답에서 MAC 주소를 학습한다.
- 예:
- 학습한 MAC 주소는 ARP 캐시에 저장된다.
2. 인터페이스와 MAC 주소
- L3 장치는 여러 인터페이스를 가지며, 각 인터페이스는 고유의 MAC 주소를 가진다.
- 라우터는 패킷을 다음 홉(next hop)으로 전달하기 위해 자신의 인터페이스 MAC 주소를 소스로 설정하고, 대상 장치의 MAC 주소를 목적지로 설정한다.
3. 브릿지와 라우터의 차이
- 브릿지는 L2 스위치처럼 MAC 주소만 학습하며, L3 정보(IP 주소)에는 관여하지 않는다.
- 라우터는 L3 정보(IP 주소)에 기반하여 경로를 설정하며, L2 주소(MAC)를 목적지와 직접 통신하기 위해 사용한다.