VLAN을 간단하게 말하면 라우터가 생성하는 LAN과 유사하게 스위치가 생성하는 LAN을 VLAN이라고 한다. 스위치의 모든 포트(노드)는 디폴트로 VLAN 1으로 묶여 있다. 스위치는 브리지와 마찬가지로 충돌 도메인을 각 포트별로 한정시켜서 충돌 도메인을 포트별로 분리시킬 수 있지만 브로드캐스트와 멀티캐스트는 여전히 통과시킨다. 따라서 스위치에 붙어있는 모든 노드는 브로드캐스트 도메인이 동일하다. VLAN을 지원하는 스위치에서 일부 포트를 묶어 별도의 가상 네트워크로 만들면 브로드캐스트 도메인이 분리되고 브로드캐스트 트레픽이 축소된다. 이런 VLAN 설정을 ‘망 분리’라고도 한다. 보안 측면에서 보았을 때 네트워크가 분리되므로 허용된 대상만 접근하게 할 수 있다.
VLAN의 예로는 특정 프로토콜별(appletalk, ipx ...), IP 주소 대역별, 역할별, 서비스별로 나누어 구축할 수 있다.
!! TIP 브로드캐스트 도메인 분리 방법
1. VLAN 사용
2. IPv4 Subnetting 구성
- 브로드캐스트 도메인 분리해주면 서로 다른 네트워크이기 때문에
이들 간 통신은 모두 라우터를 통해서 통신해야한다.
스위치는 별도의 설정을 하지 않아도 전원을 연결하고 포트에 선만 꽂으면 잘 작동하지만, Telnet 또는 SSH 원격 접속이나 SNMP(Simple Network Management Protocol)를 이용한 관리를 하려면 IP 주소를 설정해야 한다. 스위치에서는 반드시 VLAN 1에 IP 주소를 할당해야 한다.
VLAN끼리의 통신은 VTP를 통한 그룹 안에서 가능한데 물리적으로 떨어져 있는 스위치들을 같은 VLAN에 속하는 그룹으로 묶는 역할을 하며 1900 시리즈에서 ISL이 하던 역할과 같다.
이 스위치 그룹 안의 스위치들이 Server, Client, Transparent 모드로 나뉜다.
스위치는 프레임을 받으면 CRC 에러체크와 헤더를 검사해서 그 포트가 속한 VLAN을 식별하기 위해 태그 붙여 사용한다. 프레임에 이런 정보를 넣는 것을 태깅(tagging)한다고 하는데 태그가 추가된 프레임이 스위치 간이나 스위치 라우터 간 이동 경로인 트렁크(trunk) 회선을 통해서 다른 VLAN 스위치나 라우터로 전송된다.
Server Mode
Transparent Mode
Transparent Mode는 중요한 서버가 부착된 스위치에 설정해준다.
DMZ의 중요 서버들이 물려있는 스위치에 설정하면 좋다.
Client Mode
트렁크는 여러 VLAN 트래픽을 단일 경로를 통해서 스위치와 스위치, 결국 라우터에 이르는 연결 회선으로써 주로 FastEthernet에 설정된다. 이 트렁크 설정이 적용된 스위치의 포트를 Trunk Port(트렁크 포트)라고 부른다. Cisco에서는 트렁크 포트라고 부르지만, 기타 벤더에서는 Tagged Port(태그드 포트)라고도 불린다.
OSI 층에서나 Novell 네트워크 등에서 각 프레임/패킷이 해야 할 정보를 데이터 헤더에 추가하는 것을 캡슐화라고 하는데, 여기서 스위치1과 스위치2 사이에서도 같은 VLAN 트래픽을 공유시키고 싶다면, 스위치 1900 시리즈에서는 ISL을 사용했지만 2600 시리즈 이상에서는 IEEE 802.1Q를 디폴트로 사용한다. Packet Tracer의 스위치(2500 이상)에서는 디폴트로 IEEE 802.1Q가 자동 지정된다.
위 그림처럼 스위치 1의 VLAN 1과 VLAN 2 모두 Trunk가 설정된 Trunk Port를 통해 서로 통신한다. 이렇게 다수의 VLAN이 통과할 수 있도록 하여 포트를 절약할 수 있다.
VLAN 1과 VLAN 2가 통신하기 위해서는 라우터를 통해야 하는데, 라우터는 서로 다른 네트워크를 연결하기 때문에 VLAN 1과 VLAN 2의 네트워크 주소가 달라야 한다. 라우터에는 내부 LAN으로 향하는 포트가 Fa0/0 하나밖에 없는데 이 포트로 두 네트워크가 지나가게 한다면 하나의 물리적 포트를 두 개 이상의 논리적 포트로 만들어 주는데 fa0/0.1, fa0/0.2, fa0/0.3, ....식의 서브 인터페이스를 만들어 준다.
# VTP & domain 설정
SW1(config)# vtp domain cisco
SW1(config)# vtp mode server
# 트렁크 설정
SW1(config)# int f1/1
SW1(config-if)# switchport mode trunk
SW1(config-if)# switchport trunk allowed vlan all
SW1(config)# int f0/1
SW1(config-if)# switchport mode trunk
SW1(config-if)# switchport trunk allowed vlan all
# VLAN 2 설정
SW1(config)# vlan 2
SW1(config-vlan)# name ser
SW1(config-vlan)# int fa3/1
SW1(config-if)# switchport access vlan 2
# 관리 목적 IP 할당
SW1(config-if)# int vlan 1
SW1(config-if)# ip addr 192.168.100.2 255.255.255.0
SW1(config-if)# no shut
SW1(config-if)# exit
SW1(config)# ip default-gateway 192.168.100.1
SW1(config-if)# switchport trunk allowed vlan all 설정은 모든 VLAN이 이 회선을 모두 통과할 수 있도록 해주며 특정 VLAN을 못 지나가도록 보안 설정을 해줄 수 있다.
Cisco Packet Tracer 에서는 포트에 알아서 encapsulation 802.1Q가 자동으로 설정되어 있지만 GNS3 에서는 SW1(config-if)# switchport trunk encapsulation dot1q 설정을 해주어야 한다.
# VTP & domain 설정
SW2(config)# vtp domain cisco
SW2(config)# vtp mode transparent
# VLAN 2 설정
SW2(config)# vlan 2
SW2(config-vlan)# name ser
SW2(config-vlan)# int fa1/1
SW2(config-if)# switchport access vlan 2
# Inter VLAN 설정
RT1(config)# int fa0/0
RT1(config-if)# no shut
RT1(config-if)# int fa0/0.1
RT1(config-subif)# encap dot1Q 1 native
RT1(config-subif)# ip addr 192.168.100.1 255.255.255.0
RT1(config)# int fa0/0.2
RT1(config-subif)#encapsulation dot1Q 2
RT1(config-subif)#ip addr 192.168.200.1 255.255.255.0
스위치에서는 모든 포트가 VLAN 1(default)에 가입된 것을 확인할 수 있고 1,005개 중 1,000개의 VLAN 설정이 가능하다. TRUNK 설정은 스위치에서 해주어야 하며 한 포트에만 해주면 된다. VLAN에서 호스트의 IP 주소는 자기가 속한 VLAN 네트워크의 주소를 사용해야 하고, 게이트웨이 주소는 물리적으로 물려있는 서브 인터페이스의 주소를 사용해야 한다.