VLAN이 무엇인가?

  • Virtual Local Area Network.

  • 가상 LAN이란 의미

    • 참고 : LAN 은 ARP Request가 닿는 범위를 말함.
    • 참고 : 스위치가 달라도 같은 가상 LAN으로 구축할 수 있음
  • 브로드캐스트 도메인을 분리함

    • 각 vlan은 서로의 네트워크에 브로드캐스트 할 수 없음.
    • ex. vlan 10은 vlan 20에 도달할 수 없음 (2 계층 내에서는)

망 분리의 이점

  • 보통 따로 설정을 않는 이상 마지막 자리의 가장 큰 번호는 브로드캐스트용 주소임
    • ex. 192.168.1.0/24 네트워크의 브로드캐스트 IP는 192.168.1.255 이다.
  • 브로드캐스트를 애초에 근데 왜 할까?
    • 목적지의 MAC 주소를 몰라서 그럼

예시 상황

  • 우리 집 컴퓨터 네트워크는 192.168.64.0/24 로 구성됨
  • 브로드캐스트 주소 : 192.168.64.255
  • 게이트웨이 주소 : 192.168.64.1
  • 내 주소 : 192.168.64.3
  • 뭔가 패킷을 보낼 것임

1. 목적지가 내 네트워크 내부임

  • 일단 목적지 주소 보면 192.168.64.0/24 범위 내에 들어오는게 있고, 아닌게 있음
  • 목적지가 192.168.64.5 라고 가정했을 때, 우리 네트워크 안에 있다는건 보내는 쪽에서도 알고있음
  • 근데, 문제는 목적지의 MAC 주소를 모름
  • 그래서 혹시 본인이 192.168.64.5 인 사람? (ARP Request) 하고 소리지름 (브로드캐스트)
  • 해당하는 사람만 응답하고, 나머지는 무시함
  • 그럼 해당하는 사람의 MAC 주소를 OS의 ARP Cache에 저장해두고 한동안 잘 연결함

2. 목적지가 내 네트워크 외부임

  • 이번에는 목적지가 192.172.24.5 라고 가정함. 우리 네트워크 외부라는걸 알아챘음
  • 그럼 default 정책 (게이트웨이로 일단 보냄) 을 따름
  • 근데, 이번에는 게이트웨이의 MAC 주소를 모름
  • 본인이 게이트웨이(여기서는 192.168.64.1) 인 사람? (ARP Request) 하고 소리지름 (브로드캐스트)
  • 게이트웨이만 응답하고, 나머지는 무시함
  • 그럼 게이트웨이의 MAC 주소를 캐시로 저장하고 연결하겠지

갑자기 브로드캐스트/ARP Request 를 설명한 이유

  • 만약에 한 네트워크에 컴퓨터가 10대 있음

  • 모든 컴퓨터가 ARP Cache가 비어있다 가정함

  • 10대가 각자 뭔가를 보내려고 함

  • 그러면 브로드캐스트 패킷만 10개 생김

  • 본인 IP가 어쩌구저쩌구… 인 사람!! 만 한 컴퓨터 당 10번을 듣는거임

  • 그래도 이때까지는 괜찮음

  • 근데 한 네트워크에 컴퓨터가 1000대 있음…

  • 그럼 브로드캐스트 패킷으로 트래픽이 가득 찰거임

  • 정작 중요한 데이터가 갈 길이 안나는거임. 과장하면 평생 주소 물어보기만 하고 제대로 데이터를 보내질 못할수도 있음

  • 따라서 적절히 네트워크를 분리하는게 트래픽 관리 입장에서도 좋고, 보안 차원에서도 좋음

  • 근데 그렇다고 매번 스위치를 사고 또 사고 세팅하고 사고 세팅하고 하면 돈이랑 시간이랑 너무 듬

  • 그래서 가상으로 나누는게 VLAN!

VLAN Trunk

  • 그러면 이런 생각이 들 수 있음.

  • 스위치의 포트마다 이 포트는 vlan 10이고, 저 포트는 vlan 20이다 라고 설정하는걸까?

  • 근데 그러면 만약에 포트 고장나서 바꾸면 또 다른 포트 이것저것 설정해줘야 되고 어쩌구저쩌구…

  • 그래서 나온게 VLAN Trunk임

  • 하나의 포트에 여러 개의 VLAN 이 지나갈 수 있도록 만든 링크를 Trunk라고 함

  • 그리고 그 Trunk 설정이 완료된 두 스위치의 포트를 Trunk(Tagged) Port 라고 함

    • 참고 : 하나의 vlan만 통과할 수 있는 포트를 Access Port 라고 함
  • 이 방법 덕분에 여러 개의 스위치도 하나의 VLAN으로 묶을 수 있는 것임

  • 근데 그러면 해당 트렁크 포트에서 나온 데이터가 어떤 vlan에서 나온건지 어떻게 알까?

  • 이 때 IEEE 802.1Q 태그가 사용됨

(잠깐 꺼내보는) OSI 7계층 데이터 구조

  • 이미지 출처
  • vlan은 OSI 7계층에서 2계층(데이터링크)에 속함
  • 그래서 데이터링크 헤더가 붙고 빠지고 하는데,
  • 방금 말한 IEEE 802.1Q 태그는 데이터링크 헤더를 확장해서 사용함
  • 아래 사진에서 밑에 있는게 그 확장된 태그 부분

  • 이미지 출처
  • 조금 자세히 들여다보면, 802.1Q 헤더는 TPID 와 TCI(PCP/DEI/VID) 로 나뉜다.
  • TPID : Tag Protocol ID. 태그 프로토콜 아이디. 태그 자체가 없는 프레임과 태그가 있는 프레임을 구별할 수 있음
  • TCI : Tag Controll Information. 태그 제어 정보.
    • PCP : Priority Code Point. 해당 프레임의 우선순위를 알려줌. 숫자 작을수록 우선순위 낮음
    • DEI : Drop Eligible Indicator. PCP랑 같이 쓰이는데, 트래픽 혼잡해질 때 버려도 되는지 아닌지 구분
    • VID : VLAN ID. !!중요!! 이 ID가 어디 VLAN 에 속하는지 알려줌!!
  • 그래서 이 태그 덕분에 트렁크 포트를 통과하면서도 원하는 vlan까지 안전하게 도달할 수 있음

참고

  • 근데 만약에 pc 1 - 스위치 1 - 스위치 2 - pc 2 가 있고
  • pc 1 - 스위치 1 까지는 vlan 10,
  • 스위치 2 - pc 2 까지는 vlan 20 으로 구성되어 있을 때
  • trunk 아니고 그냥 액세스 포트로 이어두면
  • vlan 10이랑 vlan 20인데도 두 pc는 연결이 됨!!
  • 왜냐면 액세스 포트는 vlan에 대한 정보를 애초에 안봄 그냥 그 포트에 맞겠거니 하는거임
  • 정보 출처