Network 15 . VLAN

2024. 3. 27. 21:14Network

VLAN은 스위치에서 활성화 할 수 있다.

예를 들어 위와같이 사내 네트워크가 이뤄져 있다고 생각해보자

개발 1팀과 영업 1팀은 다른 네트워크 상에 존재한다.

 

스위치의 MAC 테이블에 각 PC의 정보가 있다면 상관이 없지만

MAC 주소 테이블에 정보가 없다면

ACL이나 방화벽,라우터 등에서 트래픽의 이동을 막아두더라도

192.168.10.0, 192.168.20.0 의 두 네트워크로

브로드 캐스트가 플러딩 된다.

이는 막을 수 없고 2계층 공격에 취약해지는 것이다.

 

그럼  라우터, 스위치가 1대씩 존재하는 네트워크에선

네트워크의 분리가 불가능 할까??

 

이를 해결해주는 것이 VLAN 기술이다!

VLAN은

LAN을 2계층의 개별 브로드캐스트 영역으로 분할시켜 준다.

VLAN을 사용하면 위의 예시에서도 VLAN1,2 로 분리되며

스위치는 동일 VLAN 영역에서만 트래픽을 허용하게 된다.

 

즉, VLAN1의 브로드 캐스트 트래픽은 VLAN1 에서만 플러딩 된다!

 

 

 

VLAN

종단 호스트 ( PC, Server, 프린터 등)가 연결된 스위치 인터페이스에

VLAN Access Port가 설정되고

각 종단 호스트는 VLAN을 인식하지 못한다.

 

스위치는 동일한 VLAN에게만 트래픽을 허용한다.

하나의 VLAN내에는 반드시 같은 네트워크 대역들만 존재해야한다.

 

기본적으로 스위치의 모든 포트는 VLAN1 에 속해있다.

VLAN 생성 및 이름 지정
Switch(config)#vlan 10
Switch(config-vlan)#name develop
Switch(config-vlan)#int f0/1

개별 포트 VLAN설정
Switch(config-if)#switchport mode access 
Switch(config-if)#switchport access vlan 10

범위 지정후 VLAN설정도 가능하다
Switch(config-if)#int range f0/2-10
Switch(config-if-range)#switchport mode access 
Switch(config-if-range)#switchport access vlan 10

위의 명령어로 VLAN 지정이 가능하다.

 

Switch#show vlan

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Fa0/11, Fa0/12, Fa0/13, Fa0/14
                                                Fa0/15, Fa0/16, Fa0/17, Fa0/18
                                                Fa0/19, Fa0/20, Fa0/21, Fa0/22
                                                Fa0/23, Fa0/24, Gig0/1, Gig0/2
10   develop                          active    Fa0/1, Fa0/2, Fa0/3, Fa0/4
                                                Fa0/5, Fa0/6, Fa0/7, Fa0/8
                                                Fa0/9, Fa0/10
1002 fddi-default                     active    
1003 token-ring-default               active    
1004 fddinet-default                  active    
1005 trnet-default                    active

또한 위 명령어로 VLAN 목록과 해당되는 포트를 확인 가능하다!

 

 

 

 


Dot1Q Trunk

 

VLAN은 다른 네트워크 기기에선 인식하지 못한다.

이를 인식하기 위해선 Dot1Q Trunk가 필요하다.

 

이는 스위치가 트렁크 포트를 통해 트래픽을 다른 스위치로 전송할때

알맞은 VLAN의 2계층 Dot1Q 헤더를 태그 하는 것이다.

 

이런 헤더가 삽입된 프레임은 다른 스위치로 이동해도

해당 헤더를 읽고 해당하는 포트로만 트래픽을 전송한다.

종단 호스트에게 전송시에는 Dot1Q 태그를 제거한다.

 

 

이를 이해하기 위해선 2계층의 프레임을 살펴보아야한다!

 

일반적인 이더넷 프레임 ( 최대 1518 바이트 )

물리계층 프레임
프리앰블 SFD 목적지 MAC 주소 출발지 MAC 주소 길이/타입 데이터/ 페이로드 FCS/CRC
7byte 1 6byte 6byte 2byte 46 ~ 1500byte 4byte

 

프리앰블 : 이더넷 프레임의 첫번째 필드, 물리계층의 헤더이며

수신 시스템에게 프레임이 도착하는 걸 알려준다.

(송신자와 수신자의 동기화)

 

SFD ( Start of Frame Delimeter): 시작 프레임 지시기로 프리앰블이 끝나고 프레임의 시작을 알려주는 역할

 

목적지 MAC : 목적지의 MAC 주소다.( 알지 못하면 FF-FF-FF-FF-FF-FF로 입력됨)

 

출발지 MAC : 출발하는 지점의 MAC 주소이다.

 

길이/타입 : 데이터에 담긴 네트워크 프로토콜의 타입을 식별해주거나 바로 뒤의 데이터 필드의 길이를 정의하는 역할

 

데이터/페이로드 : 상위 계층에서 캡슐화된 데이터가 들어있다( 최소길이 46bytes 보다 작으면 padding 0 으로 채워진다)

 

FCS/CRC : Frame Check Sequence(FCS)는 수신된 전체 프레임에서 손상된 데이터를 탐지한다.

Cyclic Redundancy Check (CRC)를 추가하여 보내 탐지한다

 

 

 

다시 이더넷 프레임 표로 돌아와서

Dot1Q 태그가 삽입된 프레임을 비교해보자

목적지 MAC 주소 출발지 MAC 주소 길이/타입 데이터/ 페이로드 FCS  
목적지 MAC 주소 출발지 MAC 주소 Dot1Q 태그 길이/타입 데이터/페이로드 FCS

4Byte의 Dot1Q 태그가 사이에 삽입 된 것이 보인다.

 

 Dot1Q 태그를 자세히 살펴보면

Dot1Q 태그 4byte
TPID / 16bit  priority / 3bit CFI / 1bit VID / 12bit

TPID (태그 프토로콜 식별자) : Dot1Q 태그가 있는 프레임을 식별하기 위해 설정

Priority : 트래픽의 우선순위 수준을 나타낸다 

CFI : MAC 주소의 비정규 형식 여부를 나타내는 값

VID : 프레임이 속한 고유 VLAN을 식별하는 값

 

 

위의 구성으로 다른 스위치에서도 VLAN을 인식하고 통신할 수 있게 된다.

switch(config)#int f0/1
switch(config-if)#switchport trunk encapsulation dot1q
switch(config-if)#switchport mode trunk
이후 반대편에서도 똑같이 설정해주자

위의 명령어로 트렁크 모드 및 dot1q 활성화,

이후에 반대편 인터페이스에도 똑같이 설정해주자!

 

 

위처럼 설정하면 모든 VLAN이 해당 포트를 통해 전송 가능한데

자신이 원하는 VLAN만 전송되게 지정할 수 있다.

switch(config)#int f0/2
switch(config-if)#switchport trunk allowed vlan 10, 20

VLAN 10,20만 전송

switch(config)#int f0/3
switch(config-if)#switchport trunk allowed vlan 30-50

VLAN 30~50 까지 전송

각각 원하는 방식으로 설정해주자

 

 

Native VLAN

Native VLAN은

예전에 허브와 스위치를 함께 사용하던 환경에서

호환성을 위해 만들어졌는데

허브는 VLAN을 구분하지 못해서

Tag가 붙지 않은 프레임도 통신될 수 있게 만든 기능이다.

Tag가 없는 프레임을 모두 native vlan으로 취급하여 해당 VLAN으로 전송한다!

 

이전에 말했든 모든 인터페이스는 기본적으로

VLAN1에 속해있다.

Native VLAN도 마찬가지다!

 

이를 그대로 사용하면 보안상의 문제가 있기 때문에

사용할 일이 없다면

반드시 사용하지 않는 VLAN을 만들어 Native VLAN을 지정해주자

 

Switch(config)#vlan 119 >>>>> 사용하지 않는 vlan 임의생성
Switch(config-vlan)#name native
Switch(config-vlan)#int f0/10
Switch(config-if)#switchport trunk encapsulation dot1q
Switch(config-if)#switchport mode trunk
Switch(config-if)#switchport trunk native vlan 119

해당 포트에 switchport access vlan 119 설정을 주지 않았기 때문에
실제 vlan 119는 비활성화 상태이다.

 

'Network' 카테고리의 다른 글

Network 17. HSRP  (0) 2024.03.29
Network 16. VTP  (0) 2024.03.28
Network 14. OSPF 심화  (0) 2024.03.19
Network 13. Routing protocol  (0) 2024.03.18
Network 12. Access Control List  (0) 2024.03.17