본문으로 바로가기
반응형
Trunk Port와 Access Port

Trunk Port는 여러 개의 VLAN에 소속된 포트이다. 앞에서의 Topology에서는 VLAN 10과 20에 소속되어있는 Router들은 맨 위의 라우터의 f0/0포트에 연결되어있는 Trunk 포트를 사용[각주:1]하였다. 이처럼 10, 20 이외의 여러 복수 개의 VLAN에 소속된 포트Trunk Port라고 한다.

  • 참고 Topology
  • 기본 설정, 및 IP 설정은 생략. (https://www.net-study.club/13 확인)



    • Topology Setting - VLAN Setting
위에서 구성한 Default Network에 VLAN을 Setting하는 작업을 거친다. VLAN 10, 20, 999를 지정해주며, 이름은 VLAN 999에만 Native_VLAN으로 구성해준다. 그림에 따라 SW1 e1/1, SW2 e1/3은 VLAN 10SW1 e1/2, SW2 e2/0에는 VLAN 20을 세팅해준다.
SW1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
SW1(config)#vlan 10
SW1(config-vlan)#vlan 20
SW1(config-vlan)#vlan 999
SW1(config-vlan)#name Native_VLAN
SW1(config-vlan)#exit
SW1(config)#
SW1(config)#int e1/1
SW1(config-if)#switchport mode access
SW1(config-if)#switchport access vlan 10
SW1(config-if)#int e1/2
SW1(config-if)#switchport mode access
SW1(config-if)#switchport access vlan 20
SW1(config-if)#exit
SW1(config)#

SW2#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
SW2(config)#
SW2(config)#vlan 10
SW2(config-vlan)#vlan 20
SW2(config-vlan)#vlan 999
SW2(config-vlan)#name Native_VLAN
SW2(config-vlan)#exit
SW2(config)#
SW2(config)#int e1/3  
SW2(config-if)#switchport mode access
SW2(config-if)#switchport access vlan 10
SW2(config-if)#int e2/0
SW2(config-if)#switchport mode access
SW2(config-if)#switchport access vlan 20
SW2(config-if)#exit
SW2(config)#

Setting 후 show vlan brief 명렁어로 설정을 확인한다.



Trunking Protocol - Summary

왼쪽 브로드캐스트 도메인에 소속되어있는 PC가 Broadcast Frame을 전송할 때 Trunking Port를 통과하면서 목적지 MAC Address 뒤에 VLAN 정보를 표시하게 된다.

PC-1이 보낸 Frame이 Access Port인 SW1에 도착하면서 Trunk에 들어가기 전 SW1은 VLAN 10이라는 VLAN 표시붙여서 SW2로 보내게 되고, SW2는 VLAN 10이라는 VLAN 표시를 확인하게 되면서 VLAN 표시 떼어서 Access Port인 e0/0을 통해 목적지인 PC-2로 Frame을 전달하게 된다. 

※ 즉, Access Port에 접속된 장비들은 VLAN의 존재를 인식하지 못하게 된다.

전달 방법 중에 기재된 'VLAN 표시' 방법은 Trunking Protocol에 따라 다르다. Trunking Protocol을 Trunking Encapsulation이라고도 한다. Cisco에서는 대표적으로 ISL802.1Q가 사용되는데, ISL은 확장 VLAN을 지원하지 않으므로 802.1Q를 가장 많이 사용한다.


Trunking Protocol - 802.1Q

IEEE 802.1Q에서 정의된 표준 Trunking Protocol이며 Ethernet Frame의 출발지 주소 다음에 4Byte 길이의 802.1Q Tag(꼬리표)를 추가하여 VLAN 정보와 기타 정보를 표시한다.

이더타입 (TPID)

(16bytes)

우선순위 (PCP)

(3bits)

CFI (DEI)

(1bits)

VLAN 번호 (VID)

(12bits)

1. 이더타입 (Ethertype)

현재의 Frame이 802.1Q 프레임이라는 것을 표시한다. 항상 값은 0x8100이다.

2. 우선순위(Priority) (Priority Code Point)

우선순위를 표시하며, 802.1P 우선순위 필드 or CoS(Cost of Service)필드라고도 한다. 0~7사이 값을 가지며, 값이 클수록 우선순위가 높다.

3. CFI (DEI - Drop Eligible Indecator)[각주:2]

PCP와는 별도로, 또는 결합해서 쓰이며 트래픽이 혼잡해질 때 제거되기 적합한 프레임들을 가리키는데 사용된다.

4. VLAN 번호(VLAN Number)

프레임의 VLAN 번호를 표시할 수 있다. 0x000, 0xFFF값이 예비로 보존되며, 최대 4,094개(4,096-예비 2개)까지 허용된다.


Trunking Protocol(Encapsulation)을 802.1Q 방식으로 지정하려면 인터페이스에 switchport trunk encapsulation dot1q명령어를 입력해주고 switchport mode trunk로 포트를 트렁크로 동작시켜주면 802.1Q로 동작하게된다.


Trunking Protocol - Native VLAN

'Trunk Port로 전송 시 VLAN 표시를 하지 않는 VLAN'을 말한다. 802.1Q Trunking에서는 Native VLAN을 지원하는데, 기본 Native VLAN은 1번이며, 보안상 다른 번호로 바꿔주는 것이 좋다.

Trunking Protocol - ISL(Inter-Switch Link)

Cisco社에서 개발한 Trunking Protocol이다. 그러나 ISL은 Extended VLAN(확장 VLAN)을 지원하지 못하여 Cisco에서도 ISL보다는 802.1Q로 대체되고있다. Ethernet Frame 앞에 26Byte의 ISL Header, 뒤에 4Byte의 ISL FCS(Frame Check Sequence)를 추가한다.

ISL Header

(26bytes)

Ethernet Header

(14bytes)

Data

(46-1500bytes)

Ethernet FCS

(4bytes)

ISL FCS

(4bytes)

1. DA(Destination Address)

이 Frame이 ISL Frame이라는 것을 나타낸다.

2. Type

L2 Protocol을 알려준다. Ethernet이 기본 0000이다.

3. User

Ethernet Frame의 우선 순위를 알려준다.

4. VLAN 번호(VLAN Number)

VLAN의 번호를 표시하는 필드다. 

5. BPDU (Bridge Port Data Unit)

BPDU, VTP or CDP Frame을 전송할 때 이 필드를 1로 표시한다. BPDU Bit가 1로 설정된 프레임을 받으면, 스위치는 받은 프레임의 최종 목적지가 자신임을 알고 내용을 해독하고, 적절한 행동을 취한다.


Trunking Protocol(Encapsulation)을 ISL 방식으로 지정하려면 인터페이스에 switchport trunk encapsulation isl 명령어를 입력해주고 switchport mode trunk로 포트를 트렁크로 동작시켜주면 ISL로 동작하게된다.


Trunking Protocol - Topology VLAN Setting
이제 Topology에 위에서 정리한 내용을 바탕으로 dot1Q Encapsulation방식의 Trunking과 Native VLAN을 구성해보자.
SW1(config)#int e5/0
SW1(config-if)#switchport trunk encapsulation dot1q
SW1(config-if)#switchport mode trunk
SW1(config-if)#switchport trunk native vlan 999

SW2(config)#int e5/0 
SW2(config-if)#switchport trunk encapsulation dot1q
SW2(config-if)#switchport mode trunk
SW2(config-if)#switchport trunk native vlan 999

구성 후 show interface trunk, show interface status로 Trunking이 제대로 구성됐는지, Native VLAN, Port들이 VLAN에 제대로 입력됐는지 확인할 수 있다.



이제 R1에서 R3로, R2에서 R4로 정상적으로 ping이 가는지 ping을 때려보면 정상적으로 ping이 가는 것을 확인할 수 있다.

R1#ping 1.1.10.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.1.10.3, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 20/34/48 ms

R2#ping 1.1.20.4
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.1.20.4, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 16/24/32 ms


DTP (Dynamic Trunking Protocol)

Cisco Switch에서 상대 스위치와 트렁크 관련 내용을 협상할 때 사용되는 Protocol이다. 트렁크 포트 전환여부, 트렁크 포트로 동작시 사용할 Protocol, 총 2가지를 협상하며 Switch의 DTP 모드에는 4가지가 있다.

DTP 모드

동작 방식

드 형태

액세스(Access)

항상 액세스 포트로 동작

정적(Static) Port

트렁크(Trunk)

항상 트렁크 포트로 동작

다이내믹 디자이어러블

(Dynamic Desirable)

상대가 Access Port일때만 Access Port로 동작

나머지 경우에는 모두 Trunk Port로 동작

동적(Dynamic) Port

다이내믹 오토

(Dynamic Auto)

상대가 Access Port or Dynamic Auto일때만 Access Port로 동작

나머지 경우에는 모두 Trunk Port로 동작

    • Access Port 설정하기
SW1(config-if)#switchport mode access
    • Trunk Port 설정하기
SW1(config-if)#switchport trunk encapsulation dot1q // or isl
SW1(config-if)#switchport mode trunk
    • Dynamic Desirable Port 설정하기
SW1(config-if)#switchport mode dynamic desirable
    • Dynamic Auto Port 설정하기
SW1(config-if)#switchport mode dynamic auto

 

VTP (VLAN Trunking Protocol)

하나의 스위치에 설정된 VLAN 번호와 이름다른 스위치에게 알려줄 때 사용하는 프로토콜로써, VTP를 사용하면 VLAN 설정 작업이 매우 편리하다.


VTP의 동작원리는 다음과 같다.


1. Switch에 VLAN을 추가, 수정 또는 삭제를 하면 VLAN 설정 정보가 변경되어 새로운 VLAN 설정 정보를 다른 스위치에게 전송해야한다.

2. Switch는 VTP 설정 번호(VTP Configuration Revision)를 기존값에서 1 증가시켜 다른 스위치에게 변경된 VLAN 정보와 함께 전달한다.

3. VTP 정보를 수신한 Switch는 자신의 VTP 설정 번호와 수신한 VTP 설정 번호를 비교한다.

1. 수신한 VTP 설정 번호가 자신의 번호보다 더 높으면 VLAN 정보를 새로운 정보로 교체한다.

2. 수신한 VTP 설정 번호가 자신의 번호보다 동일하면 VLAN 정보를 유지한다. (새로운 정보를 폐기한다.)

3. 수신한 VTP 설정 번호가 자신의 번호보다 더 낮으면 자신의 VLAN 정보를 보낸다.


vtp domain [NAME] 명령어로 VTP 도메인을 만들 수 있다. 위에 있는 Topology를 기반으로 SW1과 SW2 사이에 Trunking이 설정되어 있으므로 바로 VTP가 동작하게 된다.

SW1(config)#vtp domain MyVTP
Changing VTP domain name from NULL to MyVTP
SW1(config)#
*Oct 26 16:27:14.958: %SW_VLAN-6-VTP_DOMAIN_NAME_CHG: VTP domain name changed to MyVTP.

show vtp status 명령어를 통해서 현재 만들어진 VTP를 확인할 수 있다.

SW1#show vtp status VTP Version capable : 1 to 3 VTP version running : 1 ④VTP Domain Name : MyVTP ⑤VTP Pruning Mode : Disabled VTP Traps Generation : Disabled Device ID : aabb.cc00.0100 Configuration last modified by 0.0.0.0 at 10-26-18 15:14:48 Local updater ID is 0.0.0.0 (no valid interface found) Feature VLAN: -------------- ③VTP Operating Mode : Server Maximum VLANs supported locally : 1005 ②Number of existing VLANs : 8 ①Configuration Revision : 3 MD5 digest : 0xD6 0x5E 0x50 0x5C 0x6C 0xAA 0x51 0x5F 0xF7 0x64 0xCF 0x43 0xD5 0xF0 0x04 0xC6  

Configuration Revision : VTP 설정번호를 나타내며, VLAN을 추가, 수정, 삭제할 때 마다 이 번호가 1씩 증가한다.

Number of existing VLANs : 현재 생성된 VLAN의 수를 알려준다.

VTP Operating Mode : VTP의 동작 모드를 알려주며, 현재 Server로 동작하는 것을 확인할 수 있다.

VTP Domain Name : 설정되어있는 VTP Domain의 이름이다.

VTP Pruning Mode : 인접 스위치에 VLAN [Number]이 설정된 포트가 없으면 VLAN [Number]에서 만든 브로드캐스트 프레임을 인접 스위치쪽으로 전송하게 하지 않는 것이 VTP Pruning Mode이다. vtp pruning 명령어를 사용하면 VTP Pruning이 동작하게 된다.


SW2에서 show vtp status 명령어로 확인한 결과 SW1에서 설정한 VTP Name이 자동으로 설정되어 있는 것을 확인할 수 있다.

결론적으로 Switch가 Trunk로 연결되어있고, 기존에 VTP Domain이 설정되어있지 않으면 자동으로 설정된 VTP Domain을 따라가게 된다.

SW2#show vtp status
VTP Version capable             : 1 to 3
VTP version running             : 1
VTP Domain Name                 : MyVTP
VTP Pruning Mode                : Disabled
VTP Traps Generation            : Disabled
Device ID                       : aabb.cc00.0200
Configuration last modified by 0.0.0.0 at 10-26-18 15:14:48
Local updater ID is 0.0.0.0 (no valid interface found)

Feature VLAN:
--------------
VTP Operating Mode                : Server
Maximum VLANs supported locally   : 1005
Number of existing VLANs          : 8
Configuration Revision            : 3
MD5 digest                        : 0xD6 0x5E 0x50 0x5C 0x6C 0xAA 0x51 0x5F 
                                    0xF7 0x64 0xCF 0x43 0xD5 0xF0 0x04 0xC6

SW1에서 VLAN 100을 만든 뒤에 SW2에서 show vlan status로 VLAN을 확인해보면 VTP를 통해서 SW2에게도 VLAN 100이 전파가 된 것을 확인할 수 있다.

SW1(config)#vlan 100
SW1(config-vlan)#exit

SW2#show vlan status

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Et0/0, Et0/1, Et0/2, Et0/3
                                                Et1/0, Et1/1, Et1/2, Et2/1
                                                Et2/2, Et2/3, Et3/0, Et3/1
                                                Et3/2, Et3/3, Et4/0, Et4/1
                                                Et4/2, Et4/3, Et5/1, Et5/2
                                                Et5/3
10   VLAN0010                         active    Et1/3
20   VLAN0020                         active    Et2/0
999  Native_VLAN                      active    
100  VLAN0100                         active
1002 fddi-default                     act/unsup 
1003 token-ring-default               act/unsup 
1004 fddinet-default                  act/unsup 
1005 trnet-default                    act/unsup 
그 후 VLAN 100을 SW1에서 제거한 후 SW2에서 show vlan id 100으로 VLAN 100의 여부를 확인해보면 not found로 지워진 것을 확인할 수 있다.
SW1(config)#no vlan 100
SW1(config)#exit

SW2#sh vlan id 100
VLAN id 100 not found in current VLAN database
SW2에서 show vtp status로 VTP Configuration Revision, 설정 번호를 확인해보면 VLAN 추가, 제거2가 증가해서 5로 된 것을 확인할 수 있다.
SW2#show vtp status
VTP Version capable             : 1 to 3
VTP version running             : 1
VTP Domain Name                 : MyVTP
VTP Pruning Mode                : Disabled
VTP Traps Generation            : Disabled
Device ID                       : aabb.cc00.0200
Configuration last modified by 0.0.0.0 at 10-29-18 13:21:46
Local updater ID is 0.0.0.0 (no valid interface found)

Feature VLAN:
--------------
VTP Operating Mode                : Server
Maximum VLANs supported locally   : 1005
Number of existing VLANs          : 8
Configuration Revision            : 5
MD5 digest                        : 0xAA 0xAF 0x5A 0x7E 0xCA 0xF1 0x93 0x75 
                                    0xAF 0x79 0xFF 0xA3 0x03 0xE5 0x4D 0xC3 


VTP Mode

VTP Mode에는 Server, Client, Transparent, 세 종류가 있다.

1. Server

VLAN 생성, 변경, 삭제, VLAN 이름 변경이 가능하다. 자신의 VLAN 설정 정보를 전파할 수 있다. 자신의 정보와 다른 Switch에서 받은 정보를 일치시키고 다른 Switch에게 중계한다. 기본 VLAN 모드다.

2. Client

VLAN 생성, 변경, 삭제, VLAN 이름 변경가능하다. 자신의 VLAN 설정 정보를 전파할 수 있다. 자신의 정보와 다른 Switch에서 받은 정보를 일치시키고 다른 Switch에게 중계한다.

3. Transparent

개인적으로 VLAN 생성, 변경, 삭제, VLAN 이름 변경이 가능하다. VTP 정보를 전파하지 않는다. 다른 Switch에서 받은 정보를 중계한다.

※ Transparent Mode는 개인적으로 사용할 VLAN을 생성, 변경, 삭제 할 수 있다. 또한 확장 VLAN을 만들 때에도 Transparent Mode에서 설정이 가능하다.

vtp mode client 명령어로 VTP Mode를 Client로 바꿀 수 있으며, Client Mode 변경 후 VLAN 생성 시도시 CLIENT라는 오류와 함께 생성되지 않는다(Not allowed).

SW1(config)#vtp mode client
Setting device to VTP Client mode for VLANS.
SW1(config)#vlan 200
VTP VLAN configuration not allowed when device is in CLIENT mode.
vtp mode transparent 명령어로 VTP Mode를 Transparent로 바꿀 수 있다.
SW1(config)#vtp mode transparent 
Setting device to VTP Transparent mode for VLANS.

새로운 Switch를 추가할 때는 VTP 설정 번호, Configuration Revision Number를 초기화해야한다.


새로운 공장 초기화 되어있는 Switch라면 상관 없겠지만, 공장 초기화가 되어있지 않는 VTP가 설정되어있는 Switch라면 VLAN등을 다 삭제 후 연결 시 Revision Number가 설치되어있는 Switch들 보다 높아지므로 기존에 있던 VLAN들이 전부 삭제되어 다른 설정되어있는 VLAN이 초기화가 되어버리는 사태가 발생할 수 있다. 고로 Revision Number을 초기화시켜줘야 하는데 다음 방법으로 초기화를 할 수 있다.


1. VTP Domain Name을 다른 Name으로 변경한다.

2. VTP Mode를 Transparent Mode로 변경한다.

3. VLAN Database를 삭제하고 재부팅한다.


delete vlan.dat 명령어를 통해서 삭제할 수 있다.

SW1#delete vlan.dat
Delete filename [vlan.dat]? 
Delete unix:/vlan.dat? [confirm]
SW1#reload


  1. https://cisco-study.tistory.com/entry/VLANVirtual-LAN-2-Inter-VLAN-Routing [본문으로]
  2. 현재는 CFI대신 DEI로 사용되고 있다.IEEE 802.1Q-2005 clause 9.6 // https://ko.wikipedia.org/wiki/IEEE_802.1Q#cite_note-4 [본문으로]
반응형