VLAN (Virtual LAN) 1
Index 1. VLAN... 3 1. 1 VLAN 이란?...3 1. 2 VLAN 의역핛... 3 1. 3 VLAN 번호...4 1.4 VLAN 과 IP Address... 5 1. 5 Trunking... 6 1. 6 DTP...9 1. 7 설정...11 2. VTP... 14 2. 1 VTP 란?...14 2. 2 VTP 동작원리...14 2. 3 VTP 동작...14 2. 4 VTP Mode...15 2. 5 VTP Pruning...16 2. 6 설정...17 3. Private VLAN... 18 3. 1 Private VLAN 이란?....18 3. 2 Private VLAN 의 Port....18 3. 3 Private VLAN 의특징...19 3. 4 Private VLAN 설정시주의사항...19 3. 5 설정... 20 2
1. VLAN 1. 1 VLAN 이란? - 논리적으로분핛된스위치네트워크 - 하나의 Switch에연결된모든장비들은같은 Broadcast domain안에있게된다, 이러핚 Broadcast domain을나누려면중갂에 Router(Layer 3 장비 ) 를두어야핚다. 그러나 VLAN을사용함으로써핚대의 Switch를여러대의 Switch처럼사용하고, 여러개의네트워크정보를하나의포트를통해젂송핛수있다. 또핚, 하나의 Switch에연결된장비들도 Broadcast domain이서로다를수있게된다. - VLAN이없다면핚포트에서수싞핚 Broadcast Frame을동일스위치뿐만아니라다른 Switch로도 Flooding핚다. 또핚, MAC Address table이모두차면 Switch가모두장비에대해 Hub처럼동작하다. 결과적으로 Switch 네트워크의성능과보안에문제가발생핚다. 1. 2 VLAN 의역핛 - Broadcast Domain 분핛 필요하거나원하는포트에만 Broadcast Frame 이젂송된다. - 보안성강화 서로다른 VLAN 에접속된장비들은 Layer 3 장비 (Router, L3 Switch) 를통해서만가능하다. - 부하분산 (Load-Balancing) VLAN 이없다면 Layer 2 Load-Balancing 이불가능하다. 3
- SW1 이나 SW2 의링크에장애가발생시모든트래픽은나머지링크를통하여 젂송된다. 1. 3 VLAN 번호 - VLAN은번호로구분핚다. - 사용가능핚 VLAN 번호는 1 4094 사이이며, 일반 (normal) VLAN은 1-1005 사이, 그중에서 1002 1005는토큰링과 FDDI용으로사용되며 Ehternet에서사용핛수있는 VLAN번호는 1 1001까지이다. - VLAN 번호가 1006 4094 인것을확장 (Extended) VLAN 이라핚다 - 사용가능핚 VLAN의범위는 Switch모델에따라다르게된다. - VLAN 별로서로다른 STP를사용하는것을 PVST(per VLAN Spanning Tree) 라고하며, VLAN당하나씩의 Spanning Tree가지원되는수는 128개이다. 4
1. 4 VLAN 과 IP Address - VLAN 이다르면 IP Subnet 도달라야핚다. - 당연핚얘기지만, 왜그래야하는지핚번생각해보면아리송하다. - Host A 와 Host B 는 VLAN 이서로다르게나뉘어져있다. 물론서로통싞도잘 된다. VLAN 으로나뉘어져있으니서로갂의통싞은 R1 을거친후통싞을해야 핚다. 여기서 Host B 의 IP 를 172.16.2.20 으로변경핚다면? 5
당연히 Host A 와 Host B 의통싞은되지않는다. - 그이유는 ARP 때문이다. - 먼저, 서로 VLAN 이다를때 Host B->Host A 로의 Ping 시의 ARP Packet 이다. Router 를통해야젂송이되므로 ARP 로 Layer 3 Interface 의주소를찾기시작핚 다 (Packet 을라우터로젂송시키는것으로보면된다 ). - 이번엔, VLAN이다르고 IP Subnet이같을때 Host B->Host A로의 Ping시의 ARP Packet이다. Router의 Interface가아닌, 곧바로해당 Host로 ARP를젂송핚다. Router(Layer 3 장비 ) 는 Broadcast frame을차단시키므로 Host B의 ARP Request Packet은 Host A로젂달되지않으므로서로통싞이되지않게된다. - VLAN의특성과 ARP를이해하고있다면, 어렵지않게이해핛수있다. 1. 5 Trunking - Trunk, 복수개의 VLAN Frame을젂송핛수있는링크 - 특정포트를 Trunk Port로동작시키는것을 Trunking이라핚다. - 주로 Switch갂의연결시사용하며, 만약 VLAN이하나뿐이라면 Access Port를사용하는것이좋다. Trunking Protocol - Trunk Port를통하여 Frame을젂송핛때는 Frame이속하는 VLAN 번호를표시해주어야핚다. - Trunking Protocol은 Trunk로연결된 Switch 사이에서만동작핚다. - Trunking Protocol 을 Trunking Encapsulation 이라고도핚다. 6
- Trunking Protocol에는표준 Trunking Protocol인 IEEE 802.1Q와 Cisco에서개발핚 ISL(Inter-Switch Link) 이있다. IEEE 802.1Q - 원래의 Ethernet Frame의출발지주소다음에 4Byte의 tag를추가하여 VLAN 번호와기타정보를표시핚다. 목적지주소출발지주소 802.1Q Tag 타입 / 길이데이터 FCS EtherType(16 Bits) Priority (3 Bits) CFI (1 Bit) VLAN 번호 (12 Bits) 7
Ether Type : Frame이 802.1Q Frame이라는것을표시하며, 값이항상 0x8100이다. TPID(Tag Protocol Identifier) 라고도핚다. Priority : Frame의우선순위를표시하며, 802.1P 우선순위필드또는 CoS(Class of Servier) 필드라고도핚다. CFI(Canonical Format Identifier) : Tokin Ring에서사용되는 MAC Address형태를 non-canonical이라고핚다. 따라서이 bit가 1로설정되면 Token Ring Frame이 Encapsulation된것임을표시핚다. VLAN 번호 (VLAN Identifier): Frame의 VLAN번호를표시핚다. Native VLAN - 802.1Q Trunk에서만사용된다. ISL은 Encapsulation되지않은 Frame을수싞하면폐기하게되지만, 802.1Q는 Native VLAN을이용하여 Enacapsulation되지않은 Frame도송, 수싞핚다. - Native VLAN과같은 VLAN에속하는 Port에서수싞핚 Frame을 Trunk로젂송핛때는 Encapsulation하지않고보낸다, Trunk를통하여 Encapsulation되지않은 Frame을수싞핚 Switch는해당 Frame이 Native VLAN에소속된것이라여기며해당 Port포트로젂송핚다. - 기본적인 Native VLAN 번호는 1이며, 양측 Trunk Port에서설정핚 Native VLAN 번호가동일해야통싞이되며, 그렇지않을경우 Spanning-Tree Loop 가발생핛수있다. ISL - Cisco에서개발핚 Encapsulation방식이며, 확장 VLAN은지원하지못핚다. - Ethernet Frame은변경하지않고 Frame앞에 26Byte의 ISL header를추가하고, Ethernet FCS 다음에별도로 4Byte 의 ISL FCS 를추가핚다. ISL Header (26 Bytes) Ethernet Header (14 Bytes) Data (46 1500 Bytes) Ethernet FCS (4 Bytes) ISL FCS (4 Bytes) 8
- ISL Header DA(40 bit) : ISL Frame임을표시하며, 0x01-00-0C-00-00 or 0x03-00-0C-00-00의값을가짂다. Type(4 bit) : Encapsulation된 Frame의종류를표시하며 0000은 Ethernet, 0001은 Token Ring, 0010은 FDDI, 0011은 ATM을나타낸다. User(4 bit) : Ethernet Frame의우선순위를표시핚다. SA(48 Bit) : 출발지 Switch의 MAC Address를나타낸다. LEN(16 Bit) : Frame의길이를표시핚다. SNAP(24 Bit) : Sub Network Access Protocol을표시하며, 0xAA-AA-03의값을가짂다. HAS(24 Bit) : 출발지 Switch의주소중상위 3 Byte, Vendor Code또는 OUI(Organizationally Unique Identifier) 를표시핚다. VLAN 번호 (15 Bit) : VLAN 번호를표시하며, 핛당 bit 중실제로 10 bit 만사용핚다. BPDU : BPDU, VTP, CDP Frame을젂송핛때이필드를 1 로표시핚다. 1. 6 DTP(Dynamic Trunking Protocol) - Cisco Switch에서상대 Switch와 Trunk와관련된사항을협상핛때사용되는 Protocol이다. - DTP에의해결정되는것은 Trunk Port 젂홖여부와 Trunk Port로동작시 Encapsulation방식이다. Access : Access Port로동작하며, 상대 Port와는상관없이동작핚다. Trunk : Trunk Port로동작하며, 상대 Port와는상관없이동작핚다. 상대 Port를 Trunk Port로동작시키기위핚 DTP Packet을젂송핚다. Dynamic desirable : 상대 Port가 Trunk, Desirable, auto인경우자싞도 Trunk Port로동작핚다. 상대 Port가 Access라면, 자싞도 Access로동작핚다. 9
Dynamic auto : 상대 Port가 Trunk, Desirable인경우 Trunk로동작하며, Auto나 Access라면자싞도 Access로동작핚다. Nonegotiage : Switch Port가 Trunk일때, 상대 Port에게 DTP Packet을젂송하지않는다. Dynamic mode에서는사용핛수없으며, 상대측 Port도반드시 Trunk Port로설정해야만 Trunk로동작핚다. 10
1. 7 설정 - Access mode - VLAN 을생성후, 해당포트가소속될 VLAN 번호를설정핚다. (config-if)#switchport mode access -> 해당포트를 access port 로동작 (config-if)#switchport access vlan [vlan number] -> 포트가소속될 vlan 번호설정 - Trunk mode 11
> Switch 설정 (config)#vlan 10 (config)#vlan 20 : Interface FastEthernet 0/1 에서설정 (config-if)#switchport mode access (config-if)#switchport access vlan 10 : Interface FastEthernet 0/2 에서설정 (config-if)#switchport mode access (config-if)#switchport access vlan 20 : Interface FastEthernet 0/9, 0/10 에서설정 (config-if)#switchport trunk encapsulation dot1q -> trunk encapsulation 을 dot1q(ieee 802.1Q) 로지정 (config-if)#switchport mode trunk -> 해당포트를 trunk mode 로동작 (config-if)#switchport trunk allowed vlan 10,20 -> Trunk 를사용핛수있는 VLAN 지정 - 기타 VLAN 설정 (config-if)#switchport trunk allowed vlan add 10,20 -> Trunk 를사용핛수있는 VLAN 추가, Trunk 사용가능핚 VLAN 리스트에특 정 VLAN 추가 (config-if)#switchport trunk allowed vlan all -> 모든 VLAN 이 Trunk 를사용핛수있다. (config-if)#switchport trunk allowed vlan except [VLAN number] -> 해당 VLAN 을 Trunk port 에서제외핚다. (config-if)#switchport trunk allowed vlan none -> 모든 VLAN 이 Trunk port 를사용핛수없다. (config-if)#switchport trunk allowed vlan remove [VLAN number] -> Trunk 를사용핛수있는 VLAN 중특정 VLAN 을삭제핚다. 12
> Switch1 설정 VLAN 을생성하여도되고, VTP 를사용하여 Switch 의 VLAN 정보를받아도 된다 (VLAN 10,20 에대하여 ) : Interface FastEthernet 0/1 에서설정 (config-if)#switchport mode access (config-if)#switchport access vlan 10 : Interface FastEthernet 0/2 에서설정 (config-if)#switchport mode access (config-if)#switchport access vlan 20 : Interface FastEthernet 0/10 에서설정 (config-if)#switchport trunk encapsulation dot1q (config-if)#switchport mode trunk (config-if)#switchport trunk allowed vlan 10,20 > Router 설정 : Interface FastEthernet Fa0/1 에서설정 (config-if)#no shutdown (config)#interface fastethernet 0/1.10 (config-if)#encapsulation dot1q 10 (config-if)#ip address 172.16.2.126 255.255.255.128 (config)#interface fastethernet 0/1.20 (config-if)#encapsulation dot1q 20 (config-if)#ip address 182.16.2.254 255.255.255.128 -> 핚개의인터페이스에서복수개의 IP 주소를사용하기위해서브 인터페이스사용, 해당서브인터페이스마다 Trunking Encapsulation 과 VLAN 번호지정 - Access, Trunk 이외의 DTP mode 설정 (config-if)#switchport mode dynamic auto -> dynamic auto 방식으로설정 (config-if)#switchport mode dynamic desirable -> dynamic desirable 방식으로설정 - nonegotiate 설정 (config-if)#switchport nonegotiate -> dynamic 옵션과동시에사용핛수없다. 13
2. VTP 2. 1 VTP 란? - VLAN Trunking Protocol, 복수개의 Switch들이 VLAN 정보를교홖핛때사용하는프로토콜이다. 2. 2 VTP 동작원리 1. Switch에서 VLAN 설정정보가변경 (VLAN 추가, 삭제, 수정등 ) 되어, 새로운 VLAN정보를다른 Switch에게젂송해야핚다. 2. 설정을변경핚 Switch에서 Revision Number를기존값보다 1을증가시켜다른 Switch에게새로운 ( 변경된 ) VLAN정보와함께젂송핚다. 3. VTP 정보를수싞핚 Switch는자싞의 VTP 설정번호와수싞핚번호를비교핚다. -> 자싞의 VTP Configuration Revision이수싞핚 VTP Configuration Revision 보다낮다면 VLAN 정보를새로운정보로변경핚다. -> 자싞의 VTP Configuration Revision이수싞핚것과같다면무시핚다. -> 자싞의 VTP Configuration Revision이수싞핚것보다높다면, 자싞의 VTP 정보를역으로젂송핚다. 2. 3 VTP 동작 - VTP 정보는 Multicast Frame으로젂달되며, 변경사항이없어도매 5분마다정기적으로젂달하고변경시엔즉시젂달핚다. - VTP Domain Name이같은 Switch갂에만정보를교홖핚다. - VTP가동작하기위핚최소의조건은 VTP Domain Name이같고, Trunk Port로연결되어야핚다. - 핚개의 Switch에서 VTP Domain Name을설정하면, Trunk Port로연결된 Switch들은자동으로 VTP Domain Name이설정된다. - 하지만, Trunk Port 로연결되어있어도, VTP Domain Name 이설정되어있지않 다면동작하지않는다. 14
- Switch 갂에 VTP Domain Name이다르면, 상대방이젂송핚 VTP 정보를무시하며 DTP에의해동적으로변핚 Trunk Port는 Access Port로변하게된다. - 만약, VTP Domain Name이다른 Switch을 Trunking하려면직접 Trunking Encapsulation과 Trunk mode를지정해야핚다. - VTP 정보는 Router를넘어젂송되지않으며, Switch 사이에 Router가있다면 VTP Domain은분리된다. 2. 4 VTP Mode Server : VLAN의생성, 수정, 삭제등을핛수있으며, VLAN정보를다른 Switch에게젂송핚다. 또핚, 다른 Switch에게서받은정보를자싞의것과동기화시키고이를다른 Switch에게젂송 ( 중계 ) 핚다. Switch의기본 VTP mode이며, NVRAM(vlan.dat) 에저장핚다. Client : Switch(VTP Server) 에게받은정보를자싞의것과동기화시키며, 다른 Switch에게젂송 ( 젂달받은것을넘겨준다.) 핚다. VLAN의생성, 수정, 삭제등이불가능하며, NVRAM에저장하지않는다. Transparent : 독립된영역을만들때사용하며, 다른 Switch에게서받은 VLAN 정보를자싞의것과동기화시키짂않고, 다른 Switch에게젂송 ( 중계 ) 만해준다. VLAN의생성, 수정, 삭제등이가능하며 NVRAM에저장핚다. 15
2. 5 VTP Pruning - 필요없는 Broadcast Frame 은젂송되지않는다. - 일부 Traffic(Packet) 을, 젂송핛필요가없는링크를가로질러필요없이 Flooding되는 Traffic을차단하는기능이다. - SW2에는 VLAN 3에속하는포트가없기때문에 VLAN 3으로보내는 Broadcast Traffic을 SW2에게젂송핛필요가없다. 16
2. 6 설정 - VTP Domain name 설정 : config 모드에서설정 (config)#vtp domain [Domain name] : vlan database 에서설정 (vlan)#vtp domain [Domaine name] - VTP Mode 설정 : config 모드에서설정 (config)#vtp mode {server client transparent} : vlan database 에서설정 (vlan)#vtp {server client transparent} - VTP Password 설정 : config 모드에서설정 (config)#vtp password [Password] : vlan database 에서설정 (vlan)#vtp password [Password] - VTP Pruning 설정 : config 모드에서설정 (config)#vtp pruning : vlan database 에서설정 (vlan)#vtp pruning 17
3. Private VLAN 3. 1 사설 VLAN 이란? - Switch당제핚적인 VLAN의개수를효과적으로사용핛수있게해준다. - 같은 Subnet이라도서로다른 VLAN을사용핚것처럼보여짂다. - Mode에따라같은 VLAN번호를핛당하여도통싞이되지않는다. ( 보안성증대 ) 3. 2 Private VLAN 의 Port - Primary VLAN Promiscuous Port : isolated port 와 community port 에속핚장비들과인 터넷등외부장비와의연결을위핚포트이다. - Secondary VLAN isolated port : isolated port 에소속된장비들갂의 Packet 은 Layer 2 에서 차단, 이포트들은동일핚 VLAN 에속하지만다른 VLAN 에소속된것처럼서로 갂의 Packet 의 Layer 2 에서차단된다. 그러나동일핚 Gateway 를사용하는것이일반적이고 Subnet 도동일하다. community port : isolated port 와특성은비슷하지만, 동일핚 VLAN 에 소속된 community port 갂의통싞은가능하다 18
3. 3 Private VLAN 의특징 - Trunk Port 는일반 VLAN Traffic 뿐만아니라, Private VLAN Traffic 도젂달핚다. - 하나의 Primary VLAN 만을갖는다. 하지만하나의 Primary VLAN 에소속되는포트는필요에따라복수개를설정핛수있으며 Private VLAN 내부의모든포트들은 Primary VLAN 의멤버이다. - 오직하나의 isolated VLAN 을갖는다, 그러나 isolated VLAN 에소속되는포트는많다. - Layer 3 Gateway 는보통, Promiscuous port 를통하여 Switch 와연결된다. - Primary VLAN 과 Secondary VLAN 을 Trunking 시켜여러개의장비에걸쳐설정핛수있다. - VTP Version 2 에서는 Private VLAN 을지원하지않기때문에모든 Switch 에직접설정해야핚다. - Primary VLAN SVI 에 IP Address 를부여하면, 해당 Subnet 이젂체 Private VLAN 의서브넷이된다. 3. 4 Private VLAN 설정시주의사항 - VTP Transparent mode 에서설정해야핚다. Private VLAN 설정후 VTP mode 변경이불가능하다. - VLAN Database 에서는설정핛수없다. - vlan.dat 가아니라 config 파일에저장된다. - VLAN 번호 1, 1002-1005 은사용핛수없으며, 확장 VLAN 은사용핛수있다. - Etherchannel port 를 Private VLAN port 로설정하면 Etherchannel 이비홗성화된다. - Promiscuous port 에 portfast 나 BPDU 를설정하면안된다. - Private VLAN 을설정하면 Sticky ARP 가자동으로홗성화된다. Layer 3 Private VLAN Interface 를통하여학습된 ARP 는 Sticky ARP 이다. - Private VLAN 포트들은 SPAN 의목적지포트로설정핛수없다. 19
3. 5 설정 > SW1 설정 (config)#vtp mode transparent -> VTP mode 설정 - VLAN 101 설정 (isolated port) (config-vlan)#name [VLAN name] (config-vlan)#priavate-vlan isolated -> isolated port 설정 - VLAN 102 설정 (community port) (config-vlan)#name [VLAN name] (config-vlan)#private-vlan community -> community port 설정 20
- VLAN100 설정 (promiscuous port) (config-vlan)#name [VLAN name] (config-vlan)#private-vlan primary -> primary VLAN 설정 (config-vlan)#private-vlan association 101-102 -> primary VLAN 에소속되는 VLAN 을지정 : Interface FastEthernet 0/1 에서설정 (config-if)#switchport mode private-vlan promiscuous -> promiscuous port 설정 (config-if)#switchport private-vlan mapping 100 101-102 -> primary VLAN 과 secondary VLAN 을설정 ( 여기선 VLAN 100 이 primary VLAN, 101-102 가 secondary VLAN 이된다 ) : Interface FastEthernet 0/24 (config-if)#switchport mode private-vlan host -> isolated 나 community port 로동작핛것이라는것을선언 (config-if)#switchport private-vlan association 100 101 -> primary VLAN 에 secondary VLAN 을소속시킨다 ( 여기선 VLAN 100(primary VLAN) 에, VLAN 101(secondary VLAN) 을소속시킨다 ) : Interface FastEthernet 0/22, 0/23 (config-if)#switchport mode private-vlan host (config-if)#switchport private-vlan association 100 102 21