[IT Trend]/Network

[펌] 스위치의 동작원리와 기능 이해하기 [펌]

하늘을닮은호수M 2005. 6. 13. 11:59
반응형

스위치는 라우터와 더불어 네트워크 엔지니어라면 반드시 거쳐가야 하는 거대 관문 중 하나다. 입문자가 처음에 스위치를 만지는 것은 그리 어렵지는 않을 것이다. 하지만 경력이 쌓일수록, 대형 네트워크를 접하게 될수록 스위치를 제대로 이해하는 것과 기본기를 쌓는 것이 얼마나 중요한지를 뼈저리게 느끼게 될 것이다

2계층 스위치의 동작 원리
이제부터 이들 스위치들이 어떻게 동작하는지를 그림과 함께 알아보자. 이더넷에 전송되는 트래픽은 모두 MAC 주소를 기반으로 동작하는데, 2계층 스위치는 입력된 트래픽을 처리할 때 이 MAC 주소를 참조해 처리하는 장비다(그림 6).
어떤 포트에서 트래픽이 들어오면 출발지/목적지 MAC 주소를 확인해 목적지 MAC 주소는 어떤 포트로 보낼 것인가를 결정할 때 참조하고, 출발지 MAC 주소는 해당 MAC 주소가 있는 포트를 기억해 다른 포트에서 해당 MAC 주소를 찾는 트래픽이 들어오면 그 포트로 보내는데 사용한다. 어떤 포트로 보낼 것인가를 결정하기도 하고 MAC을 기억하기도 한다.

(화면 1)은 실제 네트워크에서 사용되는 스위치의 포트 7이 사용하는 MAC 주소를 확인한 것이다. 이 부분은 네트워크 관리자가 임의로 스위치에 입력하는게 아니라 특정 트래픽이 입력됐을 때 출발지 MAC 주소를 자신의 MAC 테이블에서 기억하는 것이다(이런 기능을 MAC이 저절로 배운다고 해서 'MAC Learning' 이라고 한다).

(화면 1) 스위치에서 참조하는 MAC 테이블

만약에 A라는 MAC 주소를 목적지로 하는 트래픽이 입력됐을때 자신의 MAC 테이블에 A라는 MAC 주소가 없을 경우는 어떻게 될까? 이 경우는 아무리 재주가 많은 스위치라고 해도 어쩔 수 없이 입력된 포트를 제외한 모든 포트로 패킷을 보낸다. 이렇게 스위치 임에도 불구하고 어디로 보낼지를 몰라 전체 포트로 보내는 것을 플러딩(Flooding)이라고 한다(flood는 말 그대로 '쇄도하다, 몰려들다'의 뜻으로 네트워크에서 종종 사용되니 기억해 두자).

(화면 2) 스위치 사양에서 기억할 수 있는 MAC 숫자를 나타내는 사양

여기서는 지면관계상 다루지는 않았지만 허브와 스위치의 가장 큰 차이는 스위치는 네트워크에 돌아다니는 MAC 주소들이 어떤 포트에 있는지를 기억해 플러딩(Flooding)처럼 입력 포트를 제외한 전 포트로 트래픽을 보내는 비효율을 줄일 수 있다는 점이다. (화면 2)는 어떤 스위치 회사에서 자사 스위치의 사양 중 일부를 표시한 것이다.
(화면 2)에서 'MAC Address : 8K'라는 의미는 전산에서 1K는 1024개이므로 8K는 8192개를 의미한다. 이 스위치는 MAC 주소를 최대 8192개를 기억할 수 있다는 것을 의미한다.

3계층 스위치의 동작 원리
2계층 스위치의 동작을 이해했다면 3계층 스위치를 이해하는 것은 그리 어렵지 않다. OSI 참조모델의 3계층에 있는 IP 주소를 참조하는 장비가 3계층 스위치다. (그림 7)만 보면 이미 3계층 스위치의 동작 설명은 끝났다고 해도 과언이 아니다.

일반적인 3계층 스위치는 입력된 패킷의 목적지 IP 주소를 보고 어떤 포트로 보낼 것인가를 결정한다. 그렇다면 3계층 스위치도 2계층 스위치처럼 무슨 테이블을 갖고 있다는 말인가. 그렇다. 3계층 스위치는 자신의 동작을 위해 '라우팅 테이블(Routing Table)'이라는 것을 기본적으로 갖고 있으며, 라우팅 테이블에 있는 정보들을 참조해 트래픽을 처리한다. (화면 3)을 보자.

(화면 3) 스위치가 갖고 있는 라우팅 테이블

네트워크 초보자들일 경우 자신이 다뤄본 장비가 아닐 경우에는 아주 간단한 정보라도 잘 모르겠다는 생각을 많이 가지는데, 이런 악습관은 지양해야 할 것 중 하나다. (화면 3)은 여러분이 어떤 입장에 있건 간에 충분히 이해할 수 있는 정보들이며, 앞으로 네트워크와 관련된 일을 하는 동안은 지겹게 봐야 하는 아주 기본적인 사항이라는 것을 잊지 말라. (화면 3)을 맨 윗줄부터 해석하면 다음과 같다.
"192.168.0.0/255.255.255.0 네트워크는 vlan1에, 192.168.2.0/255.255.255.0 네트워크는 vlan2 에, 192.168.3.0/255.255.255.0 네트워크는 vlan3에, 그리고 그것들을 제외한 나머지는 모두 192.168.3.254 (Default Gateway)로 보내면 된다"
이 스위치는 트래픽이 입력되면 목적지 IP 주소를 확인하기 위해 ""에서 말한 기준을 적용해 패킷 처리를 하는 것이다.

<라우팅 정보 이해를 위한 퀴즈> ==========================================================
퀴즈 1> (화면 3)에서 192.168.0.5라는 컴퓨터가 192.168.3.100이라는 컴퓨터와 통신을 할 때의 경로는?
정답 > 192.168.0.5라는 컴퓨터가 어디에 있는지는 이미 라우팅 테이블이 말해 주고 있다. 192.168.0.0/255.255.255.0이 vlan1에 있다고 했으니 잘못된 네트워크가 아니라면 패킷은 vlan1에서 시작하게 될 것이고, 스위치에 도착하면 라우팅 정보를 확인해 192.168.3.100이 있는 vlan3으로 보내진다. 순서대로 하자면 192.168.0.5 → vlan1(스위치) → vlan3(스위치) → 192.168.3.100이 된다.

퀴즈 2> 그렇다면 (화면 3)에서 192.168.0.5라는 컴퓨터가 168.126.63.1라는 컴퓨터와 통신을 할 때의 경로는?
정답 > 어, 라우팅 정보를 뚫어져라 봐도 168.126.63.1은 없는데..... 걱정할 것 없다. 일반적인 네트워크 장비들은 모든 네트워크에 대한 라우팅 테이블을 알고 있을 수가 없으므로 이럴 때를 대비해서 '디폴트 게이트웨이(Default Gateway)'라는 것을 갖고 있다. 그래서 이 경우에는 입력된 패킷을 vlan3에 있는 192.168.3.254라는 곳으로 보낸다. 일반적으로 3계층 스위치가 갖고 있는 디폴트 게이트웨이는 외부로 나가는 관문에 위치한 라우터를 말하는 경우가 대부분이므로, 192.168.3.254도 라우터일 가능성이 크다.

=====================================================================================

3계층 스위치가 라우팅 테이블을 참조해 동작하는 것만 알면 다 되는 걸까? 물론 아니다. 다음과 같이 간단하게 몇 가지 사항만 짚고 넘어가도록 하자.

∨ 라우팅 테이블은 관리자가 매번 입력해야만 하는가
아니다. 다음호에서 다룰 라우터는 '동적 라우팅 테이블(Dynamic Routing Table)'이라는 기능을 갖고 있다. 이것은 대형 네트워크에서 모든 장비의 라우팅 테이블을 하나씩 관리하는 것이 어렵고, 사용자 오류가 발생할 가능성을 고려해 장비들 간에 정보를 주고받을 수 있도록 자동으로 라우팅 정보를 관리하는 기능이다. 3계층 스위치나 라우터를 잘 다루는 엔지니어들은 수동 라우팅 테이블을 관리하기도 하지만, 동적 라우팅 프로토콜에 익숙하는 것이 좋다. 잘못된 라우팅 테이블 또는 비효율적인 라우팅 테이블이 전체 네트워크를 비효율적으로 만들 수 있기 때문에 아주 중요한 부분이다.

∨ 3계층 스위치는 '목적지 IP'만 참조하나요?
아니다. 일반적인 라우팅 정보는 목적지 IP를 기준으로 하지만 드물게 출발지 주소를 이용해야만 하는 경우도 있다. 흔히들 '소스 라우팅(Source Routing)'이라고 한다.

∨ 라우팅 캐시(Routing Cache)
일반적으로 장비에서 보여지는 라우팅 테이블은 네트워크 기반으로 돼 있는데, 이 테이블이 많을 경우 매번 입력되는 패킷마다 라우팅 테이블을 참조하느라 장비의 성능저하를 가져올 수가 있다. 그래서 라우팅 처리를 하는 장비들은 자신이 라우팅 테이블을 참조해 처리한 패킷의 경로를 기억하는 기능이 있는데, 이를 라우팅 캐시라고 한다. 패킷이 입력되면 부하가 많은 라우팅 테이블을 매번 참조하지 않고, 메모리에 있는 라우팅 캐시 테이블에서 해당하는 패킷 정보가 있는지를 먼저 확인한다. 보통 이런 정보들은 일정시간(일반적으로 수십초) 동안 참조되지 않으면 삭제되며, 장비들마다 이 정보들을 보여주거나 삭제(Clear)하는 기능을 갖고 있다. 라우팅 테이블에서(수동이던, 동적이던) 목적지 네트워크로 가는 경로가 여러 개일 때 동일 패킷(출발지 IP + 목적지 IP)이 하나의 경로를 계속해서 이용하는 경우가 있는데, 바로 이 캐시를 참조했을 경우이기도 하다.

반응형