Layer 2 단계에서 사용하는 Virtual LAN , 한 마디로 논리적으로 분할된 LAN 네트워크. 90년대 초반 CISCO 상용화
사용하는 이유? 브로드 캐스트 도메인을 나누어(=브로드 캐스트 범위를 제한하여) 보안성과 네트워크 성능을 높힌다.(정보보안기사 빈출 내용)
VLAN을 사용하면 브로드 캐스트 도메인을 나눌 수 있기 때문에, L2 Switch 1대를 여러 대처럼 사용할 수 있다! 비용도 절감!
VLAN을 사용하지 못하는 스위치도 있다. 예를 들어 iptime H8005 같은 허브형 스위치(Unmanaged Switch)같은 경우, MAC 주소를 보고 Forwarding을 하는 분명 스위치인데, 설정을 변경할 수 없는 스위치이다.(L2 프로토콜들을 설정할 수 없다.) 이런 스위치를 언매니지드 스위치라고 한다. 이 경우 정석대로라면 브로드캐스트 도메인 개수만큼 스위치가 필요하다.
왜 정석대로라는 조건을 붙이냐 하면, 사실 스위치는 VLAN으로 나누지 않는 이상 브로드 캐스트 도메인 개념이 없기 때문에 여러 NI를 넣어도 통신은 정상적으로 된다! 다만, Flooding이 쓸데 없이 많아진다. → 실습 2-1과 2-2에서 통신이 가능한 것을 확인할 것이다.
허브
Unmanaged Switch
스위치 (managed Switch)
가격
낮다
중간
높다
Collision 도메인
나눌 수 없다.
나눌 수 있다.
나눌 수 있다.
Broadcast 도메인
나눌 수 없다.
나눌 수 없다.
VLAN으로 나눌 수 있다.
상품
현재는 찾아보기 어려움
IPTIEM H계열, 콘솔 입력이 불가능한 제품
대략 24~48포트 이면서 콘솔 line이 있는 제품들
● VLAN의 표준화 → IEEE 802.1Q [닷원큐] = VLAN 태깅 기능 그런데 VLAN을 쓴다고 항상 태깅하는 것은 아니다. Native VLAN은 태깅하지 않는다. 트렁크 포트로 지정하거나 encapsulation dot1q를 설정하면 태깅한다.
1998년 IEEE 802.1Q로 표준 제정
[닷원큐]라고하는 기술은 프레임에 VLAN ID를 태그한다. = 이건 VLAN 10번이야! 라는 꼬리표를 프레임에 붙인다. (태깅한다)
다만 VLAN이라고 항상 태깅하는 것은 아니다. 기본적으로 모든 포트가 VLAN 1번으로 세팅되어 있음에도 프레임에는 VLAN 1번이라고 태깅되어 있지 않다. VLAN 2번으로 바꾼다고 하더라도 트렁크 포트를 지정하거나 encapsulation dot1q를 하지 않으면 마찬가지로 태깅 하지 않는다.
Native VLAN : 트렁크 포트에서 수신된 VLAN 번호 태그가 없는 프레임을 자동으로 해당 VLAN으로 간주하는 설정이다. 기본적으로 VLAN 1번이 설정되어있다.
그러면 태깅을 하는 경우는? 다른 스위치와도 VLAN 번호를 공유해야하는 경우, InterVLAN을 사용할 경우 필요. 이 경우, 한 포트에 여러 VLAN 태깅을 사용하려면 트렁크 포트 지정해야 한다. 스위치↔스위치, 스위치↔라우터 간 트렁크 포트 설정 필요.
● InterVLAN routing 개념 : 서로 다른 VLAN 끼리 통신을 할 수 있도록 해주는 기술
원래 VLAN을 나누면 서로 통신이 불가능하다. VLAN끼리 통신을 하기위해 InterVLAN routing을 사용한다. InterVLAN routing은 "routing"이라는 표현이 들어가는 것 처럼 Layer 3 기술이다. L3스위치나 라우터에서 설정한다. 편의상 InterVlan이라고 부른다.
VLAN 태깅 설정이 필요하다. 즉, L3 인터페이스에 encapsulation dot1q {vlan번호 숫자} 명령어가 들어간다. 이렇게 태깅 기능은 스위치 ↔ 스위치, 스위치 ↔ 라우터간에 필요한 기술이다. 스위치에서는 여러 번호의 VLAN을 태깅해서 보내기 위해서 인터페이스에 trunk 포트로 설정한다. 스위치 ↔ PC 의 경우 태깅한다고 트렁크포트로 설정하면 PC의 NIC는 VLAN 설정을 특별히 설정하지 않는 이상 VLAN 정보를 못알아 듣기 때문에 통신이 안된다.(설정이 가능하긴하다. ncpa.cpl - NIC 속성 - 구성 - 고급에 보면 VLAN ID 설정이 존재하긴하다.
PC의 NIC에도 VLAN 세팅이 가능하긴 하답니다. 하지만 일반적으로 단말기 쪽에 이렇게 네트워크 세팅을 넣지는 않습니다. 네트워크 장비가아니고 언제든지 세팅을 바꿀수도 있고 포맷할수도 있는 호스트이기 때문이죠.
2. 실습
첫 번째 - 하나의 스위치 ESW1에 2개의 NI를 통신해보자 (통신이 가능하지만 권장하지는 않는 구성이다. VLAN을 쓰는게 정석이다.) 단, GateWay가 없기 때문에 1.1.1.0/24 대역에서 1.1.2.0/24 대역으로 ping을 입력하면 Gateway가 없다고 못간다고 한다.
주의) C3745의 F0/0, F0/1 인터페이스는 L3 계층에서 사용하므로 여기서는 사용하지 않습니다.
<입력 명령어>
PC11
ip 1.1.1.11/24
PC12
ip 1.1.1.12/24
PC13
ip 1.1.2.13/24
PC14
ip 1.1.2.14/24
PC11에서 PC12, PC13으로 ping을 전송해보자 PC11에서 PC12로 보내는 ICMP 패킷은 처음 한, 두개는 timeout이 뜰 수도 있지만 통신이 잘 될 것이다.
반면 PC13으로 보내려면 게이트웨이가 없다면서 가지 않는다.
PC 13에서 보내도 예상되는 결과를 얻을 수 있다.
이 때, ESW1의 mac-address-table을 확인해보면 모두 VLAN1으로 잘되어 있다. 혹시 나오지 않는다면 시간이 지나서 aging된 것이니 핑을 보낸 직후 확인하면 된다.
두 번째 - VLAN을 쓰지 않고 Gateway를 추가하여 억지로 통신까지 해보기 (권장하는 방법 아님!)
이번엔 게이트웨이까지 추가해서 결국 VLAN을 사용하지 않고 1대의 SW에 2개의 NI 통신이 가능하게 해보자.(이 또한 정석적인 방법은 아니다.)
<입력 명령어>
PC11
ip 1.1.1.11/24 1.1.1.1
PC12
ip 1.1.1.12/24 1.1.1.1
PC13
ip 1.1.2.13/24 1.1.2.1
PC14
ip 1.1.2.14/24 1.1.2.1
R1
conf t
int e2/0
ip address 1.1.1.1 255.255.255.0
no sh
int e2/1
ip address 1.1.2.1 255.255.255.0
no sh
end
PC도 게이트웨이를 추가해야하기 때문에 명령어를 재입력해주고, 라우터는 새로만들었으니 명령어를 넣어준다.
주의 사항 : ESW를 켠채로 f1/10 f1/11 포트에 선을 꽂으면 버그로 제대로 작동하지 않을 것이다. 이럴 경우 인터페이스를 shutdown 후 no shutdown 하거나, 선을 꽂은채로 ESW1을 재부팅 해야한다. 경험상 재부팅을 추천한다. 약간 기다려준다.
PC11에서 게이트웨이까지 핑이 잘 가는지 한 번 확인해주고 PC13으로 핑을 보내본다. 안되면 ESW 부팅이 늦어서 그런 것 일수도 있으니 10~20초 정도 잠시 기다려주자
이렇게 VLAN을 사용하지 않고 2개의 네트워크 ID (NI)를 통신하게 되었다. 거듭 말하지만 통신은 가능하지만 이렇게 쓰는건 권장하지 않는다.
권장하지 않는 이유는 대략 아래와 같다. 브로드 캐스트 도메인을 나누지 않았기 때문에 다른 NI 영역까지 플러딩, 브로드 캐스팅이 된다. (ARP spoofing이나 브로드캐스트 공격에 취약하다 → 보안 취약) 트래픽이 섞이기 때문에 QoS(품질)에 문제가 생길 수 있다. VLAN을 도입한 다른 장비와 붙일 때 호환성이 떨어질 수도 있다.
세 번째, 이제 VLAN을 써보자 단 GW가 없어서 패킷이 브로드캐스트 도메인을 넘어가지는 못한다.
명령어를 다시 입력하여 PC의 게이트웨이 설정을 날린다.
<입력 명령어>
PC11
ip 1.1.1.11/24
PC1
ip 1.1.1.12/24
PC13
ip 1.1.2.13/24
PC14
ip 1.1.2.14/24
ESW1
vlan d
vlan 10
vlan 20
exit
conf t
int range f1/0 - 1
switchport mode access
switchport access vlan 10
int range f1/2 -3
switchport mode access
switchport access vlan 20
end
이렇게 VLAN 내부에서 잘 작동하는 것을 확인했다.
show vlan 또는 show vlan brief를 입력하면 vlan 현황을 볼 수 있다.
이제 PC11과 PC13이 통신하려면 어떻게 해야할까? 그렇다 게이트웨이가 필요하다. 아래처럼 2회선을 연결하는 방법이 있을 수 있지만, inter VLAN을 할 수 있다면 굳이 이렇게 할 필요가 없다.
이렇게 해도 되지만, interVLAN을 할 줄 알면 굳이 이더넷 케이블을 2개 쓸 필요가 없다.
네 번째, 드디어 대망의 interVLAN이다. 가장 정석적인 구성 방법이다. interVLAN은 단어그대로 VLAN간의 통신을 의미한다. L2스위치는 라우터가 아니므로 VLAN을 넘어서 통신할 수 있도록 설정할 수 없다. (VLAN이 다르면 브로드캐스트 도메인이 다르기 때문에 NI도 다르다. VLAN이 다른데 실수로 NI를 같게 설정해버리면 일부 패킷이 제대로 갈 수가 없다.) L3 장비인 L3스위치나 L3 라우터에서 설정하게된다.
또한, 여러개의 VLAN 번호를 보내려면 스위치에서 Trunk Port 설정이 필요하다.
ESW는 선을 꽂은 채로 재부팅 하는 것을 추천한다.(버그 방지) 아래와 같이 명령어 입력.
<입력 명령어>
PC11
ip 1.1.1.11/24 1.1.1.1
PC1
ip 1.1.1.12/24 1.1.1.1
PC13
ip 1.1.2.13/24 1.1.2.1
PC14
ip 1.1.2.14/24 1.1.2.1
ESW1
vlan d
vlan 10
vlan 20
exit
conf t
int range f1/0 - 1
switchport mode access
switchport access vlan 10
int range f1/2 -3
switchport mode access
switchport access vlan 20
int f1/11
switchport mode trunk
switchport trunk allowed vlan all
end
<입력 명령어>
R1
conf t
int e2/1
no sh
int e2/1.1
encapsulation dot1q 10
ip address 1.1.1.1 255.255.255.0
int e2/1.2
encapsulation dot1q 20
ip address 1.1.2.1 255.255.255.0
end
명령어를 읽다보면 ESW1에서 encapsulation dot1q를 명시적으로 선언해줘야 하지 않을까 하는 생각이 들었다면 훌륭하다. 해당 C3745 버전에서는 switchport mode trunk 만 해줘도 된다. 즉, 선언하지 않아도 기본값이다. 또한 swichport trunk allowed vlan all도 입력하지 않아도 정상 작동한다. 다만 다른 버전이나 스위치 IOU 장비에서는 살짝 다를 수도 있으니 항상 생각하자.
3. 패킷 분석
패킷을 분석하여 VLAN ID 태깅 번호를 확인해보자 PC11에서 1.1.2.13으로 ping을 보내보자.
Ethernet II 헤더 뒤에 802.1Q Virtual LAN이라고 꼬리표를 달아준다. Ethernet II 헤더에도 열어보면 type 802.1Q Virtual LAN(0x8100) 이라고 표시가 된다.
Ethernet II 헤더 뒤에 VLAN 10번이 기록되고 있다.Ethernet II 헤더 뒤에 추가로 생겼다. .VLAN 20번Ethernet II 헤더에도 있다.802.1Q를 사용하지 않는 경우 참고용
(중요) VLAN 10번과 20번이 태깅되는 이유가 헷갈린다면 아래와 그림과 같은 순서이다. VLAN 태깅이 어디어 어떻게 일어나는지 이해하는 것이 중요하다. 이 것이 헷갈린다면 나중에 어디에 트렁크 포트를 설정해야하는지 헷갈리고 스위치끼리 VTP를 구현할 때도 헷갈린다. 아래 그림을 보면서 어디서 태깅을하고, 어디서 태그를 제거하는지 기억하자.
PC와 스위치 간의 연결은 스위치에서 VLAN만 설정했고, encapsulation dot1q 또는 trunk 포트로 설정하지 않았다. 그렇기 때문에 해당 구간에는 VLAN ID 태깅이 존재하지 않는다.
스위치 f1/11포트는 Trunk 포트로 지정했다. 태깅을 하는 것이다. (encapsulation dot1q를 입력하지는 않았지만 trunk 포트로 설정하면서 자동으로 되었다.)
라우터의 물리 인터페이스는 e2/1 하나지만, 서브 인터페이스로 e2/1.1 과 e2/1.2가 존재한다. 각각 VLAN10, VLAN20을 담당하고 각 인터페이스에서 encapsulation dot1q 10, encapsulation dot1q 20를 입력했었다. 라우터 입장에서 패킷이 들어오면 VLAN 태그를 떼고, 나갈 때 VLAN 태그를 붙인다.
01234567
순서 슬라이드순서 한번에 표시
같은 그림인데 동영상으로 표신해보았다. 다 찍고나니 'reqly' 오타를 발견했다. 'reply'