Network/Routing

Static Routing (2) Load balancing

billy0529 2014. 3. 9. 21:59
728x90

<>Load balancing



라우터가 패킷을 라우팅테이블 혹은 캐쉬를 참조해 특정 출구로 내보내는 행위를 패킷 스위칭, 줄여서 스위칭이라고 한다.

시스코는 3가지의 패킷 스위칭 방식을 지원하는데, 복수의 회선을 사용할경우 스위칭 방식에 따라 로드밸런싱 알고리듬

에 차이가 발생한다. 현재는 CEF외에 다른 방식은 거의 사용되지 않는다.

각 동적 라우팅 프로토콜(OSPF, EIGRP등)은 자체적인 메트릭 연산을 통해 라우팅 테이블을 구축하고 로드밸런싱 경로

역시 자체적으로 결정하므로 여기서의 패킷 스위칭방식별 로드밸런싱은 정적경로(static routing)에 한한다.




1. Process Switching


router(config-if)# no ip route-cache


프로세스 스위칭은 가장 전통적인 스위칭 방식으로, 근래의 장비들이 기본으로 스위칭에 캐싱 방식을 사용하는것이 아닌 라우팅 테이블에 의거하여 패킷을 하나하나 확인후에 출구 인터페이스를 결정하도록 한다.

여기서의 로드밸런싱 방식은 per-packet, 이른바 라운드 로빈 방식인데, 복수의 출구로 한개씩의 패킷을 번갈아 보내게 된다.

프로세스 스위칭 방식의 가장 큰 단점은 역시 시스템 점유율이 크게 오르는 문제와, 스위칭 속도의 현저한 저하에 있다.

그리고 per-packet방식자체는 목적지 호스트 입장에서는 출발지 IP가 패킷마다 계속 바뀌는 것처럼 보이기 때문에, 현재와 같은 복잡한 어플리케이션간의 세션(예로 온라인결재, 기타 IP로 출발지 신원을 확인하는 경우)에서 100% 정확한 연결을 기대하기 어렵다. 물론 회선 이용 효율자체는 패킷별 분배방식이 가장 좋다. 


설정은 캐시방식을 비활성함(no ip route-cache)으로써 프로세스 스위칭을 활성화한다. 

(ip cef 명령도 disable되어있다고 가정할시)





3. Fast Switching


router#(config-if)# ip route cache


프로세스 스위칭 방식의 단점을 보완하여, 제일 처음 패킷은 라우팅 테이블을 참조하고 그후에는 캐시를 이용해 스위칭한다.

프로세스 스위칭에 비교해 월등한 속도 향상을 이룩하였고, 장비 부하도 줄게 되었다.

로드밸런싱 방식은 목적지 주소별 스위칭이다. (per-destination)

목적지별 분배방식의 가장 큰 단점은 종단 목적지 장비가 한대일경우엔,  복수회선을 구성하더라도 단 한개의 회선만을 사용하게 된다는 점이다. 목적지 장비가 한대일경우 목적지 IP주소도 한개이기 때문에 이런현상이 발생한다.

서버 이중화를 구성하거나, 가상화등을 이용한 다수의 서버를 구축할경우를 생각해봐도 패스트 스위칭 로드밸런싱의 문제점을

바로 예상해볼수 있다.


router(config)#show ip cache


첫 패킷을 보낸후 캐시에 저장된 정보를 확인하는 명령어이다.






2. Cisco Express Forwarding


router(config)# ip cef


시스코 익스프레스 포워딩은 시스코에서 개발한 패킷 스위칭 방식으로써 기본적으로 패스트 스위칭의 캐싱방식을 사용하지만 좀더 개선된 기능을 발휘한다. 먼저 패스트 스위칭은 첫 패킷은 라우팅 테이블을 참조하지만 CEF는 처음부터 캐싱정보를

참조한다. 이는 애초에 CEF활성화시 라우팅테이블을 미리 캐시에 복사해놓기 때문이다. 따라서 좀더 향상된 스위칭 속도를

제공한다. 그리고 기존의 목적지별 패킷분배방식을 개선하여, 출발지-목적지를 한개의 페어로 자체적인 해싱(hashing) 

알고리듬을 통해 로드밸런싱한다. 그리고 아래의 추가적인 설정을 통해 기존 스위칭 알고리듬 패킷별 분배(per-packet)

그리고 목적지별 분배(per-destination) 모두 지원한다.


router(config-if)# ip load-sharing per-packet

router(config-if)# ip load-sharing per-destination


만약 목적지-출발지 페어 별로 로드밸런싱할 경우, 포인트 투 포인트 연결을 multi-link로 연결할 경우엔 로드밸런싱이 되지 않는다. 이는 포인트 투 포인트 말그대로 출발/목적 종단 호스트가 단 한대씩이므로 한개의 회선만을 사용하도록 캐싱 정보가

고정되어 버리기 때문이다.

이를 위해 다른 로드밸런싱 방식도 선택할수 있도록한 개발자의 배려가 아닌가 싶다.


router(config-if)# show ip cef


위 명령어로 CEF 캐싱 테이블을 확인할수 있다. 



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

RIP (3) RIPv2  (0) 2014.04.15
RIP (2) Configuration  (0) 2014.04.15
RIP (1)  (0) 2014.04.13
Static Routing (3) 세부설정  (0) 2014.03.18
Static Routing (1)  (0) 2014.03.08