VLAN
VLAN은 불필요한 브로드캐스트를 차단하고, 보안성 강화를 위해 논리적으로 LAN을 분할한것입니다.
또한, 부하분산을 위해서 사용합니다. VLAN을 사용하지 않으면, STP에 의해서 한쪽으로만 트래픽이 송수신되기 때문입니다. 고로, VLAN은 Layer 2 Load balancing을 가능하게 해줍니다.
VLAN 번호들은 아래와 같습니다.
1~1001 = 이더넷에서 사용합니다.
1006~4094 = 확장(extended) VLAN이라고합니다.
"사용 가능한 VLAN의 수량은 스위치 모델에 따라 다릅니다"
그러나, VLAN 당 하나씩의 스패닝 트리가 지원되는 수량은 128개입니다.
이처럼, VLAN 별로 다른 STP를 사용하는 것을 PVST라고 합니다.
129번째부터 설정하는 VLAN은 스패닝 트리가 지원되지 않습니다.
VLAN 수량이 많아지면 MSTP(Multiple Spanning Tree Protocol)을 사용하거나, 루프가 없는 네트워크를 구성하면 되기 때문에 STP를 128개만 설정할 수 있는 것은 별 제약사항이 되지 않습니다.
VLAN이 다르면 ARP 요청이 전송되지 않습니다.
고로, 하나의 VLAN당 하나의 서브넷을 할당하는 것이 가장 바람직한 방법입니다.
★ trunk port (cisco) = tagged port
트렁크 프로토콜 동작 방식
1. 액세스 포트를 통해 프레임을 수신하면 스위치(1)는 해당 프레임이 소속된 VLAN 번호를 알 수 있다.
2. 스위치(1)가 트렁크 포트롤 통해 해당 프레임을 전송하면서 VLAN 번호를 목적지 MAC 주소 뒤에 붙입니다.
트렁크 포트를 통해 프레임을 수신한 스위치(2)는 VLAN 표시를 확인하고, 이 프레임이 소속된 VLAN 번호를 알게 됩니다.
3. 스위치(2)는 VLAN 1에 소속된 모든 포트로 프레임을 전송합니다(플러딩)
802.1Q 트렁킹
DA | SA | 802.1Q tag | type/lengh | data+padding | FCS |
↓
이더타입(16 bits) 항상 값이 0x8100 |
우선순위(3 bits) | CFI(1 bit) | VLAN번호(12 bits) 4096개 VLAN이 지원됨. |
Native VLAN
네이티브 vlan은 802.1Q 방식의 트렁킹에서만 사용됩니다.
인캡슐레이션 되지 않은 프레임도 송수신하기 때문에, VLAN 번호를 표시하지 않는 VLAN이라고 합니다.
VTP
sw9에서 VLAN 13을 생성하면 자동으로 SW10,11에 이 VLAN 정보를 전달해 위와 같이 특정 스위치에 VLAN이 없어 통신이 불가능한 상황이 초래되지 않게 하는 것이 "VTP(Vlan Trunking Protocol)" 입니다.
STP
종단 VLAN & 지역 VLAN
하나의 VLAN이 전체 스위치 네트워크에 걸쳐 있는 것을 종단 VLAN 네트워크라하며, 하나의 VLAN이 스위치 네트워크중 일부분에만 존재하는 것을 "지역 VLAN 네트워크" 라 합니다.
지역 VLAN이 설정 및 조정이 편하고 유지보수 및 장애처리도 간단합니다.
왜냐면 루트 스위치를 조정할 필요가 없기 때문입니다. 루트 스위치 조정이 필요한 경우는 동일한 VLAN에 의해 물리적인 루프가 만들어지는 경우입니다. 보통 게이트웨이 이중화 프로토콜의 부하분산이나 Routed port와 SVI를 활용해 STP를 조정할 필요가 없이 만듭니다.
컨버전스 시간 조정
Convergence 시간이란 토폴로지 변화가 일어났을 때, 이를 반영하여 네트워크가 재구성될 때 까지의 소요 시간입니다.
별도의 조정이 없을 시 STP는 30초 또는 50초동안 스위치 네트워크의 다운 상태가 지속됩니다.
컨버전스 시간을 줄이는 방법(포트 상태 단계를 SKIP 하여, 빠른 Forwarding을 가져가는 기술들)
1. portfast
- 포트가 활성화되면 바로 전송상태(Forwarding)가 되게 하는 것입니다. (30초 절약)
- 기본적으로 portfast는 access 포트에서만 동작하지만, 트렁크에도 동작시킬 수 있음.
- 전체 설정 (권장 x, 일시적인 프레임 루프가 발생할 수 있음)
SW3(config)#spanning-tree portfast default
- 인터페이스에 포트 설정
SW3(config)#int e0/0
SW3(config-if)#spanning-tree portfast
%Warning: portfast should only be enabled on ports connected to a single
host. Connecting hubs, concentrators, switches, bridges, etc... to this
interface when portfast is enabled, can cause temporary bridging loops.
Use with CAUTION
- 트렁크 포트에 포트패스트 동작시키기
SW3(config)#spanning-tree portfast trunk
2. uplinkfast
- 직접 연결된 링크가 다운되었을 때 차단상태(Block)에 있는 포트를 즉시 전송상태(Forwarding)로 변경시키는 역할을 합니다. (30초 절약)
SW3(config)#spanning-tree uplinkfast
SW3(config)#
*Dec 26 05:58:57.706: setting bridge id (which=1) prio 49153 prio cfg 49152 sysid 1 (on) id C001.aabb.cc00.a000
SW3(config)#int e 0/1
SW3(config-if)#no sh
SW3(config-if)#sh
SW3(config-if)#
*Dec 26 06:01:44.436: STP: VLAN0001 new root port Et0/2, cost 3200
*Dec 26 06:01:44.436: %SPANTREE_FAST-7-PORT_FWD_UPLINK: VLAN0001 Ethernet0/2 moved to Forwarding (UplinkFast).
SW3(config-if)#no sh
SW3(config-if)#
*Dec 26 06:01:55.655: set portid: VLAN0001 Et0/1: new port id 8002
*Dec 26 06:01:55.655: STP: VLAN0001 Et0/1 -> listening
*Dec 26 06:01:56.442: STP: VLAN0001 Et0/1: root port delay timer active
*Dec 26 06:01:56.442: STP: VLAN0001 Et0/1 -> blocking
3. backbonefast
- 직접 접속되어 있지 않은 간접 링크가 다운되었을 때, 차단상태의 포트에서 맥스 에이지(기본 20초)를 생략하고 청취상태로 변경 시킵니다. 결과적으로 간접 링크 다운시의 기본적인 스패닝 트리 컨버전스 시간 50초를 30초로 단축시킵니다.
- 백본패스트가 설정되지 않았을 때의 동작 확인.
- 백본패스트 설정 후 동작 확인
모드 | 설정 위치 | 명령어 | 효과 |
포트패스트 | 인터페이스 | spanning-tree portfast | 즉시 전송상태, 30초 절약 |
업링크패스트 | 액세스 스위치 | spanning-tree uplinkfast | 즉시 전송상태, 30초 절약 |
백본패스트 | 모든 스위치 | spanning-tree backbonefast | 맥스 에이지 생략, 20초 절약 |
4. Hello 주기, Max age 및 전송 지연시간 직접 조정
SW1(config)#spanning-tree vlan 1 hello-time ?
<1-10> number of seconds between generation of config BPDUs
SW1(config)#spanning-tree vlan 1 hello-time 1
SW1(config)#spanning-tree vlan 1 max-age ?
<6-40> maximum number of seconds the information in a BPDU is valid
SW1(config)#spanning-tree vlan 1 max-age 15
SW1(config)#spanning-tree vlan 1 forward-time 10
5. RSTP
6. MSTP
STP 네트워크 보호 기술
1. BPDU 가드
포트를 통해서 BPDU를 수신했을 때 해당 포트를 자동으로 셧다운 시키는 기능입니다. 관리자가 인터페이스에서 no sh을 해야만 포트가 살아나게 됩니다.
보통 BPDU가드는 PC나 서버 등 종단장치가 접속된 포트가 BPDU를 수신했을 때 해당 포트를 차단합니다. 왜냐면 종단장치가 접속된 포트가 BPDU를 수신한다는 것은 무단으로 침입당하거나 해킹 공격을 받는다는 의미가 많기 때문입니다.
2. BPDU 필터링
특정 포트로 BPDU를 보내거나 받지 않게 하는 기능을 말합니다. 종단 장치에 불필요한 부하가 걸리는 것을 방지할 수 있습니다. (비권장)
3. 루프 가드
차단상태에 있는 포트가 상태 포트에서 BPDU를 받지 못했을 때 전송상태로 변경되는 것을 방지하는 기능입니다.
즉, 대체포트가 BPDU를 수신하지 못해도 차단상태를 전송상태로 변경하지 못하게 하면 되고, 이런 기능을 하는 것이 루프가드입니다.
4. 루트 가드
- 이미 구성되어 있는 망에, 추가로 스위치가 붙었을 경우에 STP 토폴로지의 변화를 막는 기술입니다.
- Root Guard를 enable한 포트에 새로운 스위치가 붙었을 때 새로운 스위치가 Root Bridge-ID 보다 좋은 BID을 가지고 있으면, 해당 포트를 shutdown을 실시 한다.
- 차후, 기존의 Root Bridge-ID보다 안 좋은 조건의 BPDU를 수신하면, 해당 포트를 다시 활성화를 실시 한다.
- spanning-tree guard root
VLAN 부하분산
load balancing이란 복수개의 경로로 트래픽을 분산시키는 것을 말합니다.
VLAN 부하분산을 구현하려면 반드시 VLAN이 2개 이상이어야하고, 스위치가 물리적으로 루프 구조를 가져야 합니다.
**네트워크가 모두 레이어 3스위치로 구성되어 있다면 레이어 2 부하분산 기능은 신경 쓸 필요가 없습니다.
왜냐하면 레이어 3 부하분산이 훨씬 더 정교하고 효율적이기 때문입니다.
VLAN 부하분산에 영향을 미치는 네가지 요소
(루트ID, 경로값, 브리지ID, 포트ID)
1. 경로값을 이용한 부하분산
- 경로값을 기본값인 19보다 더 줄여주면 됨.
- 직접 조정할 수 있어 직관적이고 편리함.
SW4(config-if)#spanning-tree vlan 20 cost 5
2. 브리지 ID를 이용한 부하분산
SW2(config)#spanning-tree vlan 10 prioirty 4096
3. 포트 ID를 이용한 부하분산
- 포트 우선순위를 기본값인 128보다 낮추면 됨.
SW1(config-if)#spanning-tree vlan 20 port-priority 16
** 두 대의 스위치가 복수개의 링크로 연결되어 있는 경우에는 포트 ID를 이용한 부하분산보다는 이더채널로 구성하는 것이 효율적입니다.
이더채널
두 스위치간에 연결된 복수개의 포트를 하나의 포트처럼 동작시키는것입니다.
시스코가 아닌 다른 벤더에서는 트렁크라고 부르기도 합니다. 종류에 따라 패스트 이더채널, 기가비트 이더채널, 10G 이더채널이라고도 합니다. 이더채널 포트 종류를 물리적인 인터페이스에서 지정하는 것이 편리하기 때문에 라우티드 포트로 동작시키는게 좋습니다.
**PAgP(Port AGgregation Protocol) : 최대 8개 포트까지 구성
**LACP(Link Aggregation Control Protocol) : 최대 16개 구성(8개사용/8개백업)
active | 무조건 LACP를 사용 |
auto | PAgP를 사용할 경우에만 PAgP를 활성화 |
desirable | 무조건 PAgP를 사용 |
on | 협상 없이 이더채널 멤버 포트를 모두 활성화 (상대 스위치 설정을 확인하지 않아 패킷손실발생 위험) |
passive | LACP를 사용할 경우에만 LACP 사용 |
'기초 물방울 > 네트워크' 카테고리의 다른 글
킹오브랜스위칭 공부기록 #8 (STP 공격차단) (1) | 2023.01.04 |
---|---|
킹오브랜스위칭 공부기록#4 (0) | 2022.12.28 |
ip라우팅 공부기록#2 (0) | 2022.12.20 |
IP라우팅 공부기록 #1 (0) | 2022.12.19 |
킹오브랜스위칭 공부 기록 (+명령어)#2 (0) | 2022.12.19 |