Switch Load Balancing

Posted 2008. 9. 29. 07:12

출처 : Tong - 날으는오리님의 개발자통통



스위치 로드 밸런싱

이번에는 스위치간의 로드 밸런싱에 대해서 알아보겠습니다. (어쩌다 보니 강좌에
로드 밸런싱 이야기가 많이 나오네요. ^^  스위치 로드 밸런싱 문제는 최근 질문을
많이 받아서 한 번 정리합니다.)

스위치간의 로드 밸런싱은 STP 프로토콜의 특성을 이용해야 합니다.
STP가 타이를 깰 때 (tie breaking) 차례로 비교하는 값이 다음처럼
4가지가 있습니다.

1) 루트 스위치 ID
2) 경로값 (Path Cost)
3) 브리지 ID
4) 포트값 (Port Cost)

 

이중에서 현재의 스위치에서 조정 가능한 값은 경로값이며,
나머지는 모두 상대측 스위치에서 조정해 주어야 합니다.

 

스위치 네트워크의 토폴로지에 따라 위의 값 중에서 적당한 것을 이용하여
로드 밸런싱시키면 됩니다. 실제 각 경우별로 로드 밸런싱시켜보겠습니다.

1. 루트 스위치 ID를 이용하여 로드 밸런싱시키는 경우

이 방식은 주로 다음처럼 분배계층의 스위치가 레이어 3 기능이 있는
지역 VLAN 환경에서 많이 사용합니다.

>
다음처럼 스위치 S1을 VLAN 10의 루트 스위치로 설정하고 S2를
VLAN 20의 루트 스위치로 설정해 주면 됩니다.

S1(config)#spanning-tree vlan 10 priority 0

S2(config)#spanning-tree vlan 20 priority 0


그러면, 다음 그림처럼 스위치 S3의 F0/23을 통해서 VLAN 10 트래픽이 전송되고,
F0/24를 통해서 VLAN 20의 트래픽이 전송되므로 로드밸런싱이 일어납니다.
 

>

만약 스위치 S3의 링크중 하나가 다운되면 다음 그림처럼 나머지 링크를 통하여
모든 통신이 이루어지므로 백업 기능도 제공합니다.

>


2. 브리지 ID 조정을 이용한 로드 밸런싱

이번에는 다음처럼 분배계층의 스위치가 레이어 2이어서 하나의 VLAN이
전체 스위치 네트워크에 걸쳐있는 엔드 투 엔드 (end-to-end) VLAN이 설정되어
있는 경우를 생각해 봅시다.

>

스위치 S1과 S2에서 별도의 조정을 하지 않고, S1의 MAC 주소가 낮다면
앞의 그림처럼 VLAN 10, 20 모두 스위치 S1을 통하여 프레임이 전송됩니다.
여기서 로드 밸런싱을 시키려면 다음처럼 VLAN 20에 대해서는 스위치 S3과
S2를 연결하는 포트가 차단상태에 있는 NDP (Non-Designated Port,
또는 대체 포트)가 아니라 전송상태인 루트 포트 (RP)로 변경되어야 합니다.
이렇게 하기위해서는 스위치 S2의 우선순위값을 루트 스위치인 S4보다는
크지만 S1보다는 낮게 설정해주면 됩니다.

S4(config)#spanning-tree vlan 20 priority 0

S2(config)#spanning-tree vlan 20 priority 4096

그러면, 스위치 S3에서 루트 스위치로 전송되는 트래픽중 VLAN 20에 속하는 것은
스위치 S2를 통하여 전송되고, VLAN 10에 속하는 것은 스위치 S1을 통하므로
로드 밸런싱이 일어납니다.

3. 경로값 조정을 이용한 로드 밸런싱

다음처럼 두개의 스위치가 복수개의 링크로 연결된 경우에는 앞서 설명한
루트 스위치 ID나 브리지 ID 조정으로는 로드 밸런싱시킬 수가 없습니다.
이 때에는 포트의 경로값이나 포트 ID를 조정하면 됩니다.
물론, PAgP나 LACP를 이용하여 이더채널을 구성하는 것이 가장 이상적이지만
이런 프로토콜을 지원하지 못하는 스위치를 사용하는 경우에는
로드 밸런싱을 시키면 좀 불만스럽기는 하지만 그래도 약간은 위안이 됩니다.

아무런 설정을 하지 않으면 다음처럼 스위치 S2의 F0/24 포트가
모든 VLAN에 대해서 차단상태에 놓이게 되에 모든 트래픽이 F0/23 포트를
통하게 됩니다.

>

경로값을 조정하여 VLAN 20에 대해서 스위치 S2의 F0/24 포트가 루트 포트가 되어
전송상태로 변경시키면 됩니다. 이렇게 하기 위해서는 스위치 S2의 F0/23 포트에서
VLAN 20에 대한 경로값을 F0/24보다 높게 설정하거나, F0/24 포트에서 VLAN 20에
대한 경로값을 F0/23보다 낮게 설정하면 됩니다.

다음중 아무 방법이나 사용하면 됩니다.

S2(config)#int f0/23

S2(config-if)#spanning-tree vlan 20 cost 100

또는

S2(config)#int f0/24

S2(config-if)#spanning-tree vlan 20 cost 1

스위치 S2에서 결과를 확인해 보면 VLAN 10에 대해서는 F0/23이 전송상태가 됩니다.

S2#sh spann vlan 10


VLAN0010 

  Spanning tree enabled protocol ieee 

  Root ID    Priority    10 

             Address     000d.6507.3500 

             Cost        19 

             Port        23 (FastEthernet0/23) 

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec 


  Bridge ID  Priority    32778  (priority 32768 sys-id-ext 10) 

             Address     000d.edd4.2000 

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec 

             Aging Time 300 


Interface        Role Sts Cost      Prio.Nbr Type 

-------       -------- -------  -------------------

Fa0/23         Root FWD 19        128.23   P2p

Fa0/24          Altn BLK  19         128.24   P2p


또, VLAN 20에 대해서는 F0/24가 전송상태가 되어 로드 밸런싱이 이루어집니다.

S2#sh spann vlan 20


VLAN0020 

  Spanning tree enabled protocol ieee 

  Root ID    Priority    20 

             Address     000d.6507.3500 

             Cost        1 

             Port        24 (FastEthernet0/24) 

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec 


  Bridge ID  Priority    4116   (priority 4096 sys-id-ext 20) 

             Address     000d.edd4.2000 

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec 

             Aging Time 300 


Interface        Role Sts Cost      Prio.Nbr Type 

---------      --- ---------    --------------------------------

Fa0/23          Altn BLK 19        128.23   P2p

Fa0/24         Root FWD 1        128.24   P2p

>

 

4. 포트 ID 조정을 이용한 로드 밸런싱

마지막으로 포트 ID 조정을 이용한 로드 밸런싱에 대해서 알아보겠습니다.
바로 앞에서 사용한 동일한 네트워크에서 포트 ID를 조정하여도
로드 밸런싱을 구현할 수 있습니다.
그러나, 설정하는 스위치가 S1인 점이 다릅니다.

다음과 같이 S1의 F0/23에서 VLAN 20에 대한 포트 우선순위 값을 크게 하거나,

F0/24에서 VLAN 20에 대한 포트 우선순위 값을 낮게 하면 됩니다.

S1(config)#int f0/23

S1(config-if)#spanning-tree vlan 20 port-priority 240

또는

S1(config)#int f0/24

S1(config-if)#spanning-tree vlan 20 port-priority 16


그러나, 가능하다면 포트 우선순위 조정보다는 경로값을 조정하는 것이
더 편리하고 직관적입니다.

 


'Network > Cisco' 카테고리의 다른 글

Cisco TFTP 다운  (0) 2008.09.29
Cisco 3750 기본 셋팅  (0) 2008.09.22
라우터 관리를 위한 명령어  (0) 2008.09.22