Limetime's TimeLine
article thumbnail
반응형

VLAN (Virtual LAN)

  • 한 대의 스위치를 마치 여러 대의 분리된 스위치처럼 사용하고, 여러 개의 네트워크 정보를 하나의 포트로 전송이 가능하다.

가상랜이 없는 구성
가상랜을 적용한 구성

① 가상랜을 구성하면 라우터 포트 절약, 스위치 절약을 할 수 있다.

② 스위치의 한 포트로 여러 네트워크 정보를 보낼 수 있다. (트렁킹)

③ 가상랜으로 여러 네트워크를 구성했을 때, 반드시 라우터를 거쳐야만 다른 VLAN 네트워크와 통신이 가능하다. (VLAN 간의 통신은 라우터를 거쳐야 가능하다.)

  • 라우터 없이 VLAN1 X VLAN2, VLAN2 X VLAN3 통신 불가

④ 하나의 스위치로 여러 네트워크를 구성할 수 있다. (= 브로드캐스트 도메인을 나눌 수 있다.)

⑤ 같은 VLAN 끼리는 스위치를 건너서 통신이 가능하다. (트렁킹 포트를 통해서)

  • ex) VLAN1 - VLAN1, VLAN2 - VLAN2

 

트렁크 포트 (Trunk Port)

  • 하나의 포트를 통해 서로 다른 여러 개의 VLAN을 전송
  • VLAN 정보 또한 전송 (어느 VLAN에 속한 패킷인지 목적지에서 구분 가능)

 

Static VLAN

  • 일반적인 방식.
  • 스위치의 각 포트들을 원한는 VLAN에 하나씩 배정해주면 된다.

 

Dynamic VLAN

  • 대형 스위치에서 기능 제공
  • 그 포트에 접속하는 맥 어드레스를 보고, 그 주소에 따라 VLAN을 배정

반응형

※ 장비가 스위치 포트에 접속하기 전까지는 스위치의 포트에 VLAN이 세팅되어 있지 않다.

※ VMPS (VLAN Membership Policy Server)

  • Primary : 주 서버
  • 백업 : 주 서버 사망 시 사용

※ TFTP 서버 : 맥 어드레스와 이에 해당하는 VLAN 정보를 가진 FTP 서버

① 장비가 스위치에 접속되면 맥 어드레스를 비운다.

② 배운 맥 어드레스를 VMPS 서버로 보낸다.

③ VMPS 서버는 DB(TFTP서버)를 뒤져서 맥 어드레스에 해당하는 VLAN 값을 찾은 후 해당 스위치에 넘겨준다.

④ 전달받은 스위치는 그 값으로 세팅한다.

 

VTP (VLAN Trunking Protocol)

트렁킹 (Trunking)

  • 각 스위치의 여러 개의 VLAN 정보를 하나의 포트(링크)를 통해 한 번에 전달. => VLAN 별로 이름표를 태깅하여 전달
  • VLAN 마다 각 링크를 만들어줘야 하지만 그렇게 되면 너무 많은 링크를 필요로 함

 

트렁킹 방식

IEEE 802.1Q (Dot1Q)

  • 트렁킹의 표준 프로토콜
  • 네이티브 VLAN (Native VLAN) 지원
    • 이름표를 붙이지 않음 (Untagged 트래픽)
    • 패킷에 VLAN 정보를 붙이지 않고 전송
    • 모든 스위치 네트워크에서 유일하게 한 개의 VLAN만을 세팅 가능

ISL (Inter-Switch Link)

  • 시스코 장비 전용, 비표준 프로토콜
  • 네이티브 VLAN 미지원 => 모든 패킷에 VLAN 정보 태깅

※ VTP Advertisement를 주고 받을 수 있는 트렁킹의 종류 : ISL 링크, IEEE 802.1Q 링크, LAN Emulation(LANE) 링크

 

VTP

  • 시스코 장비 전용 프로토콜
  • 스위치들 간에 VLAN 정보를 서로 주고 받아서 VLAN 정보를 항상 일치시켜줌

VTP가 없는 스위치들

=> 새로운 VLAN을 추가하거나 제거할 때, 각 스위치에 접속해서 하나하나 작업해야 한다.

VTP가 구성된 스위치들

=> VTP서버에서 한 번만 VLAN 정보를 설정해도 VTP 서버는 다른 스위치와의 트렁크 링크를 통해서 VLAN 정보를 자동으로 업데이트 한다.

 

* VTP 도메인 이름은 VLAN을 새로 만들거나 변경하기 전에 꼭 먼저 만들어줘야 함.

* VTP 메시지는 트렁크 포트로만 이동한다.

 

VTP 모드

VTP 서버 모드

  • VLAN 생성, 삭제, 이름변경 가능
  • VTP 도메인 내 스위치들에게 VTP 도메인 이름과 VLAN 구성, Configuration Revision 넘버를 전달해 줄 수 있다.
  • VTP 도메인에 대한 모든 VLAN 정보를 NVRAM에서 관리한다. (NVRAM : 비휘발성 RAM으로 전원이 꺼져도 저장된 정보를 잃지 않도록 설계된 메모리)

VTP 클라이언트 모드

  • VLAN 생성, 삭제, 이름변경 불가능
  • VTP 서버가 전달해준 VLAN 정보를 받고, 자기와 연결된 다른 쪽 스위치에 전달하는 것만 가능
  • NVRAM에 저장 안함. (스위치 리부팅 시 VLAN 정보를 잃고, VTP 서버로부터 다시 받아야함)

VTP 트랜스페어런트 모드 (Transparent Mode)

  • VTP 도메인 영역 안에 있지만 서버로부터 받은 정보를 자신의 VLAN을 업데이트 하거나 자신의 VLAN을 업데이트 한 정보를 다른 스위치에 전달하지 않는다.
  • 서버로부터 받은 메시지를 연결된 다른 스위치로 전달하거나 연결된 다른 스위치 쪽에서 서버쪽으로 가는 VTP 메시지를 전달만 해준다.
  • VLAN 생성 및 삭제 가능 (단, 자기만 알고 있음)
  • NVRAM에 저장
  • 주로 로컬 스위치에서만 사용할 VLAN을 가진 스위치에 사용

 

VTP 메시지

Summary Advertisement

  • VTP 서버가 연결되어 있는 스위치로 5분마다 한 번씩 전달한다.
  • 자신이 관리하는 VTP 도메인의 구성에 대한 Revision 넘버를 보낸다.
    • 스위치들은 Revision를 보고 자신의 VLAN 정보가 최신버전인지 판단한다.
  • VLAN 구성에 변화가 생겼을 때, 5분을 기다리지 않고 즉시 전달한다.

Subset Advertisement

  • VLAN의 구성이 변경되었을 때나 VTP 클라이언트로부터 Advertisement Request를 받았을 때, 전송된다.
  • 실제 VLAN 정보는 이 Subset Advertisement에 저장되어 전달된다.

Advertisement Reqeust

  • 클라이언트 VTP서버에 Summary Advertisement와 Subset Advertisement를 요청하는 용도로 사용된다.
  • 클라이언트는 자신의 Revision Number보다 더 높은 Revision Number를 가진 Summary Advertisement를 전달 받거나, VTP 도메인 이름이 바뀌거나, Subset Advertisement를 잃어버렸거나, 스위치가 리셋되었을 때, VTP 서버로 보낸다.

 

초기의 스위치 상태

=> VTP Domain Name X, VTP Mode = Server(Default), Revision Number = 0, VLAN = 1 (Default)

 

VTP 서버와 클라이언트

① 스위치 A는 VTP 서버 모드이고, 도메인을 Cisco로 주었다.

  • VLAN 2, 3, 4를 추가했다. (Config Revision이 3으로 변경됨)

*Config Revision 값은 VLAN이 새로 만들어지거나 지워질 경우 1씩 추가된다.

② VTP 서버인 스위치 A는 B와 C에게 Summary Advertisement 메시지를 보낸다.

③ B는 VTP 도메인 이름을 Cisco로 변경하고 Config Revision 넘버를 비교한다.

  • 자신의 Revision Number 0보다 높은 3이 들어 왔으니, A에게 Advertisement Request를 보낸다.

④ A는 B에게 Summary Advertisement와 Subset Advertisement를 보낸다.

⑤ B는 Subset Advertisement를 받고 VLAN 2,3,4를 추가하고 Configurartion Revision을 3으로 변경한다.

  • 스위치 B와 A간의 VLAN 정보 일치 (Syncronization, Sync(싱크))

결론

① VTP 서버는 트렁크로 연결된 스위치에 5분마다 Summary Advertisement를 보낸다.

② VTP 클라이언트는 VTP 서버로부터 받은 Configuration Revision Number를 보고 업데이트 체크.

③ VTP 서버와 VTP 클라이언트는 VLAN 정보를 일치시킨다. => 싱크

 

VTP 트랜스페어런트

① VTP 서버인 A는 B와 C에 Summary Advertisement를 전송한다.

② C는 트랜스페어런트 모드이기 때문에 VTP 도메인 이름과 Configuration Number를 받았지만, C는 이 메시지를 자신의 VLAN 정보에 반영하지 않는다. D로 보내준다.

③ C는 자신의 도메인 이름을 Cisco로 설정하고 VLAN 10과 20을 추가했다.

  • 이 정보는 어떤 스위치로도 전송하지 않는다.

* 트랜스페어런트 모드의 Configuration Revision Number는 언제나 0이다.

결론

① 트랜스페어런트 모드는 VTP 서버로부터 받은 Summary Advertisement 메시지는 자신의 VLAN 정보에 반영하지 않고 다른 스위치로 전달한다. (릴레이 역할)

② 트랜스페어런트 모드에서는 VTP Domain Name을 지정해줘야하고 VLAN 정보를 추가하거나 삭제할 수 있다. 다른 스위치에는 이 정보를 보내지 않는다.

 

VTP Pruning

  • 트렁크로 이동하는 VLAN 트래픽 중에서 갈 필요가 없는 트렁크 쪽으로 트래픽이 흘러갈 경우 그 부분을 가지친다.

* 스위치 A~G 모든 스위치는 VLAN으로 세팅되어 있고, 스위치들 끼리는 트렁크로 연결되어 있다. VLAN5는 A와 F만 설정되어 있다.

① 스위치 F에 연결된 PC에서 브로드캐스트 발생!

<VTP 프루닝이 설정되지 않은 경우>

  • 이 브로드캐스트는 트렁크를 통해서 모든 스위치로 전달된다.
  • 스위치 A를 제외한 모든 스위치는 VLAN5에 속한 포트가 없기 때문에, 이 브로드캐스트를 버리지만, 트렁크의 대역폭은 소비되었다.

<VTP 프루닝이 설정된 경우>

  • 트렁크로 전달되는 트래픽을 보고 해당 경로로 갈 필요가 있는지 확인한다.
  • VLAN5를 가지고 있는 스위치 쪽만 길을 열고, 아닌 길은 가지치기 한다.

결론

  • VTP Pruning은 가지고 있지 않은 VLAN 정보에 대한 트래픽은 비록 모든 VLAN을 전송해주는 트렁크라고 하더라도 받지 않는다. => 트렁크 대역폭 절약

 

VLAN 구성하기

* 스위치의 IP 세팅은 VLAN1에 한다. => VLAN1은 메니지먼트 VLAN 역할을 함.

Switch(config)# vtp domain cisco   // VTP Domain 설정 (VLAN을 만들거나 삭제하기 전 먼저 해야할 작업)
Changing VTP domain name from NULL to cisco
Switch(config)# vtp mode server    // VTP 서버모드 적용 (server, client, transparent)
Setting device to VTP SERVER mode
Switch(config)# do show vtp status // VTP 구성 확인 (Config모드에서 do를 사용하면 프리빌리지모드 명령어 사용 가능)
VTP Version: 2
Configure Revision: 0
...
VTP Operating Mode: Server
VTP Domain Name: cisco
...
Configuration last modified by 0.0.0.0 at 3-1-93 00:46:05
Switch(config)# int fa0/1
Switch(config-if)# switchport mode trunk // 트렁크 포트로 세팅 (서로 포트가 같아야 통신 가능)
-------Cat2550은 Dot1Q만 사용 가능---------------------------------------------------------
-------Cat3550은 encapsulation 명령어를 통해 dot1Q와 ISL을 설정 가능------------------------
Cat3550(config-if)# switchport trunk encapsulation [dot1q | isl | negotiate]
// dot1q : IEEE 802.1Q, isl : ISL, negotiate : 상대방 모드에 맞춤

Switch(config-if)# exit
Switch(config)# do show interface fa0/1 switchport // 포트 설정 상태
Name: Fa0/1
Switchport: Enabled
Administrative mode: trunk    // trunk 모드 세팅
Operational Trunking Encapsulation: dot1q  // IEEE 802.1Q
...
Trunking Native Mode VLAN: 1(default)   // Native VLAN 1
...
Switch(config)# do show interface trunk   // 스위치 전체에서 트렁크로 세팅된 포트에 대한 상태
Port        Mode        Encapsulation       Status        Native     Vlan
Fa0/1       on          802.1q              trunking        1
Switch(config)# do show vlan   // VLAN 구성 상태
VLAN              Name                Status                  Ports
------------------------------------------------------------------------
1                 default             active                  Fa0/2, Fa0/3, Fa0/4, Fa0/5, // 디폴트 상태(모든 포트는 VLAN 1 소속)
                                                              ...
                                                              Fa0/22, Fa0/23, Fa0/24  // Fa0/1은 트렁크로 세팅되어 보이지 않음
1002              fddi-default        active
...
1005              trnet-default       active

VLAN  Type  SAID    MTU   parent RingNo BrdigeNo stp BridgeMode Trans1 Trans2  
-----------------------------------------------------------------------------
1     enet  100001  1500    -      -       -      -     -          0      0
...
1005  trnet 101005  1500    -      -       -      -     -          0      0

Switch(config)# do show interface status  // 각 포트의 상태
port    Name    Status      Vlan     Duplex     Speed     Type
----------------------------------------------------------------
Fa0/1           Connected   trunk    Half       10        100BaseTx/FX  // Duplex와 Speed는 전에 세팅한 값이다.
Fa0/2           Connected     1      A-Full     A-100     100BaseTx/FX
Fa0/3           notConnect    1      Auto       Auto      100BaseTx/FX
...
Fa0/24          notConnect    1      Auto       Auto      100BaseTx/FX
Switch(config)# do show vtp status 
...
Maximum VLANs Supported locally: 64  //2950 VLAN을 64개 구성할 수 있고, 3550은 최대 1,005개의 VLAN을 만들 수 있다.
Number of existing VLANs: 6
Switch(config)# vlan 2  // (config-VLAN 모드) 2번 VLAN 추가 및 설정
--------------설정 방법 #1----------------------------------------
Switch(config-vlan)# name CCNA
Switch(config-vlan)# exit
--------------설정 방법 #2(VLAN Configuration 모드 CatOS시절 방법 Catalyst 2900)--------
Switch# vlan database
Switch(vlan)# vlan 2 name CCNA
VLAN 2 added:
     Name: CCNA
Switch(vlan)# exit
APPLY Completed
Exiting....
---------------------------------------------------------------------------------------
Switch(config)# do show vlan
VLAN              Name                Status                  Ports
------------------------------------------------------------------------
1                 default             active                  Fa0/2, Fa0/3, Fa0/4, Fa0/5,
                                                              ...
                                                              Fa0/22, Fa0/23, Fa0/24
2                 CCNA                active   // 새로운 VLAN 2 CCNA 생성확인
...
-------------VLAN 삭제 방법 #1-----------------------------------------------------------
Switch(config)# no vlan 2  // VLAN 2 삭제
-------------VLAN 삭제 방법 #2 (VLAN Configuration 모드 CatOS시절 방법 Catalyst 2900)-----
Switch# vlan database
Switch(vlan)# no vlan 2
Deleting VLAN 2 ...
Switch(vlan)# exit
APPLY Completed
Exiting....
----------------------------------------------------------------------------------------

Switch(config)# do show vlan
VLAN      Name         Status     Ports
----------------------------------------------
1         default      active     Fa0/2...
...
1002      fddi-default active
...
Switch(config)# do show vtp status
Configuration Revision: 3   // vlan을 만들고 지우는 횟수 (2번 VLAN 생성, 이름 변경 및 삭제)
Switch(config)# int fa0/5
-----------VLAN 2를 생성하고 이름을 CCNA로 지정한 후 진행----------------------------------
Switch(config-if)# switchport access vlan 2 //switchport access vlan [vlan number | dynamic] // vlan number를 주면 static VLAN 아니면 Dynamic VLAN
Switch(config-if)#^Z  // Ctrl + z
Switch# show vlan brief
VLAN              Name                Status                  Ports
------------------------------------------------------------------------
1                 default             active                  Fa0/2, Fa0/3, Fa0/4, Fa0/6,
                                                              ...
                                                              Fa0/22, Fa0/23, Fa0/24
2                 CCNA                active                  Fa0/5  // VLAN 2에 Fa0/5 등록
...
Switch# show vlan id 2  // vlan 2의 상태만 표시
VLAN              Name                Status                  Ports
------------------------------------------------------------------------
2                 CCNA                active                  Fa0/5
VLAN    Type     SAID    MTU   parent RingNo BridgeNo stp BridgeMode ...
------------------------------------------------------------------------
2       enet     100002  1500    -       -      -      -      -
Switch# configuration terminal
Switch(config)# int fa0/5
Switch(config-if)# no switchport access vlan 2 // fa0/5 포트를 vlan 2에서 제외
Switch(config-if)# exit
Switch(config)# do show vlan brief // fa0/5는 디폴트 VLAN인 VLAN1로 돌아간다.
VLAN              Name                Status                  Ports
------------------------------------------------------------------------
1                 default             active                  Fa0/2, Fa0/3, Fa0/4, Fa0/5,
                                                              ...
                                                              Fa0/22, Fa0/23, Fa0/24
2                 CCNA                active                  
...
1005              trnet-default       active

 

VLAN 응용

<스위치 설정>

Switch(config)# hostname Cat2950   //스위치의 호스트 이름 변경
Cat2950(config)# enable password cisco  // enable 패스워드 지정
Cat2950(config)# interface vlan 1
Cat2950(config-if)# ip address 10.10.10.2 255.255.255.0
Cat2950(config-if)# no shutdown
Cat2950(config-if)# exit
Cat2950(config)# vtp mode transparent
Cat2950(config)# vtp domain cisco
Cat2950(config)# vlan 2
Cat2950(config-vlan)# name CCNA
Cat2950(config-vlan)# exit
Cat2950(config)# int fa0/1
Cat2950(config-if)# switchport mode trunk
Cat2950(config-if)# switchport trunk allowed vlan all
Cat2950(config-if)# exit
Cat2950(config)# int fa0/5
Cat2950(config-if)# switchport access vlan 2
Cat2950(config-if)# exit
Cat2950(config)# do show vtp status
VTP Version: 2
...
VTP operating Mode: Transparent
VTP domain Name: cisco

 

<라우터 설정>

Router(config)# hostname Router01
Router01(config)# enable password cisco
Router01(config)# int fa0/0
Router01(config-if)# no shutdown
Router01(config-if)# exit
Router01(config)# int fa0/0.1
Router01(config-subif)# encapsulation dot1q 1 native
// IOS 버전이 12.1(3)T 버전 이하이고 IEEE 802.1Q를 세팅해야 한다면 생략해도 되는 구문
// 이유는 VLAN 1은 Native가 기본이라서
Router01(config-subif)# ip address 10.10.10.1 255.255.255.0
Router01(config-subif)# exit
Router01(config)# int fa0/0.2
Router01(config-subif)# encapsulation dot1q 2
Router01(config-subif)#exit

 

반응형
profile

Limetime's TimeLine

@Limetime

포스팅이 좋았다면 "공감❤️" 또는 "구독👍🏻" 해주세요!