engineering/Network Eng.2006. 11. 29. 01:05

출처 - http://www.alov.co.kr/trackback/87

Load balancing은 Destination까지 가는데 다중 경로가 있을 경우 Router 가 이를 이용할 수 있도록 하자는 생각에서 출발했다. 이러한 경로는 RIP, EIGRP, OSPF, IGRP와 같은 동적인 라우팅 프로토콜이나 정적인 라우팅 프로토콜인 static(Default Routing 포함)을 통해 구성 할 수 있다. Load Balancing은 동일한 Cost 값을 갖는 경로(equal cost path)와 서로 다른 코스트 값을 갖는 경로(unequal cost path) 모두 고려할 수 있다. IGRP나 EIGRP와 같은 특정한 Routing Protocol은 unequal cost Load Balancing과 equal cost Load Balancing 모두를 지원한다. IGRP와 EIGRP에서 unequal cost Load Balancing을 작동시키기 위해서는 variance Command을 사용할 수 있다.

Router#
Ex>Router# conf t
Router# router igrp 1237
Router# variance <1-128>

equal cost 경로가 있는 지 확인하는 것은 보통 show ip route 명령어를 사용한다. 예를 들어, 아래에 보이는 것은 show ip route를 사용해서 여러 경로를 갖는 특정한 Subnet의 정보를 나타낸 것이다. 두 개의 routing descriptor block이 있다는 것을 주의해라. 각 블록이 하나의 경로가 된다. 그리고 하나의 block entry에는 asterisk(*)가 있다. 이것은 다음번 새로운 트래픽은 이 경로를 사용하게 되는 것을 의미한다.

Router#
M2515-B#show ip route 1.0.0.0
Routing entry for 1.0.0.0/8
Known via "rip", distance 120, metric 1
Redistributing via rip
Advertised by rip (self originated)
Last update from 192.168.75.7 on Serial1, 00:00:00 ago
Routing Descriptor Blocks:
* 192.168.57.7, from 192.168.57.7, 00:00:18 ago, via Serial0
Route metric is 1, traffic share count is 1
192.168.75.7, from 192.168.75.7, 00:00:00 ago, via Serial1
Route metric is 1, traffic share count is 1

equal cost 경로는 6개 까지만 가능하다.(이러한 제한은 Cisco IOS에 의해 정해진다. ) 그러나 어떤 Interior Gateway Protocols(IGPs)는 프로토콜 자체에 의해 더 작은 경로로 제한한다. 예를 들어, EIGRP는 네 개까지 equal cost 루트를 가질 수 있다.

목적지 단위로 Load balancing을 할 것인지 아니면 Packet 단위로 Load balancing을 할 것인지를 Router에서 설정할 수 있다. 목적지 단위 Load Balancing은 Router가 목적지 주소를 근거로 하여 Packet을 전달하는 것을 의미한다. 같은 Network로 가는 두 가지 경로가 주어졌을 때, 그 네트워크에 있는 목적지1로 가는 모든 Packet들은 첫 번째 경로를 통해서 가게 되고, 목적지2로 가는 Packet들은 모두 두 번째 경로를 통해서 가게 된다.

IP packet의 경우, 목적지 단위로 Load Balancing을 할지 또는 Packet 단위의 Load Balancing을 할지는 Switch 형태에 따라 결정된다. 대부분의 Cisco Router는 기본값으로 fast switching을 Interface에서 설정되어 있다. fast switching을 위한 Caching 구조는 목적지 단위 Load Balancing을 하도록 설정되어 있다. Packet 단위 Load Balancing으로 수정하려면, 다음과 같은 명령어를 사용한다.

Router#
Router# config t
Router(config)# interface Ethernet 0
Router(config-if)# no ip route-cache
Router(config-if)# ^Z

위와 같이 설정하게 되면, Router의 CPU는 모든 하나 하나의 Packet을 조사하고 목적지 네트워크에 대한 Routing Table 상에 나타나는 경로에 따른 수만큼 Load Balancing하게 한다. 이것은 CPU가 모든 Packet에 대해서 처리를 해야 하기 때문에 Low-End급의 Router(예를 들면 Cisco 2501 정도)에서 위험해질 수 있다. Fast switching을 다시 설정 하기 위해서는 아래와 같은 명령어를 사용한다.

Router#
Router# config t
Router(config)# interface Ethernet 0
Router(config-if)# ip route-cache
Router(config-if)# ^Z

Cisco Express Forwarding(CEF)을 사용하면 보다 빠른 Packet 단위 Load Balancing과 목적지 단위 Load Balancing을 할 수 있다. 하지만 그것은 CEF entry와 adjacency를 유지하기 위해 추가적인 자원을 가지고 있어야 한다는 것을 의미한다.

Posted by theYoungman