10 min read

스위치와 레이어

네트워크 스위치를 구입할 때, L2 스위치니 L3 스위치니 하는 이야기를 들어보았을 것이다. 이에 대해 간단히 설명해 본다.

네트워크에서 가장 중요한 작업 중 하나가 "통신 상대방이 어디에 있는지 찾아가는 것"이다. 통신이란게 그렇지 않은가, 나 혼자 통신하는 경우는 거의 없다. 언제나 상대방이 있어야 한다. 상대방이 어디 있는지 알아내서 그 곳으로 패킷을 전송할 때, 얼마나 영리하게 패킷을 전송하는지에 따라 스위치의 레이어 종류가 달라진다.

OSI 7 Layer Model

시작하기 전에 OSI 7계층에 대해 알아야 하는데 귀찮으니까 위키피디아 설명을 읽어보자. 7계층중 하위 3개에 그런게 있구나 하는 정도만 이해하면 된다.

L1 스위치

L1 스위치, 흔히 더미 허브라고 하는 물건은 OSI 7계층 중 가장 바닥인 물리 계층(PHY)에 대응하는 물건이다. 조금 더 풀어 설명하면, 랜선을 그냥 잘라서 이어붙인 기능을 하는게 L1 스위치이다. 그래서 이름도 멍청한(dummy) 허브이다.

더미 허브는 각 포트에서 들어온 전기 신호, 구체적인 설명은 넘어가고 010101 하는 내용을 그대로 복사해서 다른 포트에 모조리 다 던져버린다. Flooding이라고 하는데, 이릍테면 시장바닥에서 서로 고함치고 있는 상황이 되는 것이다. 한두 사람만 이야기하고 있다면 문제가 없겠지만, 너도나도 모두 고함을 치고 있다면 모두가 제대로 된 대화를 할 수 없다. 더미 허브도 똑같다. 장비를 많이 연결할 수록 충돌(Collision)이 발생할 확률이 높아지고, 통신 속도는 현저하게 느려진다.

십수년 전에야 가격 문제 때문에 더미 허브를 사용하는 경우가 있었지만, 현재는 1만원도 안 되는 가격에 L2 스위치를 구매할 수 있다. 현재 더미 허브는 시장에서 완전히 퇴출된 상태다.

L2 스위치

L2 스위치, 흔히 스위치 허브라고 하는 물건은 OSI 7계층 중 두 번째인 데이터링크 계층에 대응하는 물건이다. 여기에서부터 비로소 스위치다운 기능을 하기 시작한다.

이더넷 네트워크에 연결되는 모든 장비는 MAC 주소라는 것을 가지고 있다. 이를테면 장비의 고유 시리얼 번호인데, 근거리 통신망에서 각 장비를 구분해 주는 역할을 한다. 스위치 허브는 각 포트에 연결된 장비의 MAC 주소를 기억하고, 프레임(데이터 조각)에 달려 있는 목적지 MAC 주소를 확인한 뒤 적절한 포트로 던져주는 기능을 한다. 경로를 바꿔줄 수 있으므로(switch) 스위치 허브인 것이다. 예를 들어, 1-4번 포트끼리 통신하고 2-3번 포트끼리 통신하는 상황이라면, 더미 허브는 충돌 때문에 속도가 반토막 이하로 떨어지지만, 스위치 허브는 각 프레임의 목적지 MAC 주소를 확인하고 "이 데이터는 4번 포트에 달린 장비로 가는 것이구나"를 이해하고 이를 적절히 처리하므로 충돌이 발생하지 않는다. 물론 모르는 MAC 주소라면 선택지가 없으므로, 프레임을 복사해서 모든 포트에 다 던져버리는 Flooding을 수행한다. 이를테면 더미허브처럼 동작할 수도 있는 것이다.

주로 IP로 통신하는 장비(컴퓨터)에서 상대방의 MAC 주소는 어떻게 알아낼 수 있을까. Address Resolution Protocol을 사용한다. ARP 패킷에 상대방 IP 주소를 적고, 상대방 MAC 주소는 FF:FF:FF:FF:FF:FF 이상한 값으로 채워서 네트워크 상에 뿌려버린다(Flooding). 스위치 허브는 FF:FF:FF:FF:FF:FF 주소를 받아들면 이를 연결된 모든 장비로 뿌려주고, 상대방 장비는 이를 확인한 뒤 나한테 회신함으로써 서로 MAC 주소를 확인할 수 있게 된다. 물론 스위치 허브 또한 중간에서 어느 포트에 어떤 MAC 주소가 달렸는지도 다 파악하게 되며, 효율적으로 데이터를 전달하게 된다.

가정이나 건물내 사무실 정도의 근거리 통신이라면 L2 스위치로도 충분할 것이다.

L3 스위치

L3 스위치, 흔히 라우터라고 하는 물건은 OSI 7계층 중 세 번째인 네트워크 계층에 대응하는 물건이다. 이를테면 IP 주소를 이해한다.

전세계에는 숫자를 가늠하기도 힘든 정도로 네트워크 장비가 존재한다. 물론 각 장비들은 MAC 주소를 가지고 있지만, 문제는 이 MAC 주소에 어떤 규칙성이 없다는 점이다. 제조사에서 임의로 부여하는 값이기 때문이다. 따라서 일정 영역 내에 있는 장비들을 그룹으로 묶어서 사용하기가 매우 곤란하다. 이를 추상화하기 위해 IP 주소를 사용한다. 이를테면 KT 통신사는 IP대역 어디에서 어디까지, SKT 통신사는 어디에서 어디까지 쓸 수 있다고 할당해 주는 것이다. 이 주소 할당은 전세계에서는 IANA라고 하는 국제 기구에서 관리하며, 한국에서는 KRNIC, 그리고 각 통신사, 건물이나 회사 내의 전산 팀 등을 거쳐서 계층적으로 관리 할당된다. 여하튼, 대체로 물리적 위치와 IP주소는 연관성을 갖게 된다. 예를 들어 하나의 건물(건물이 좀 크다면 하나의 층, 또는 사무실 단위)에서는 끝자리만 조금씩 달라지는 유사한 IP를 사용하는 식이다.

라우터는 이 IP 주소를 이해하고, 근거리 통신망을 넘어가는 패킷 전달을 수행할 수 있는 장비이다. 인터넷 상에서 경로를 찾아주므로 Router, 인터넷으로 연결되는 관문 역할을 한다고 해서 Gateway라고 부르기도 한다.

그렇다면, 다른 IP대역을 갖는 장비로 어떻게 데이터를 전달할 수 있을까. 이를테면 옆 건물에 있는 컴퓨터와 통신을 하고 싶을 때이다. 건물마다 컴퓨터 수백 대가 연결되어 있는 상황에서, 옆 건물까지 Flooding으로 주소를 전달하는 것은 말이 안 된다. 따라서 상대방 IP 주소만 가지고 찾아가야 한다. 우선 컴퓨터는 IP주소가 같은 망인지 다른 망인지를 판단한다. 이 때 같은 네트워크에 붙어 있어서 ARP를 사용할지, 아니면 다른 망에 붙어 있는지 판단은 IP 서브넷 마스크, 또는 CIDR을 이용해서 판단하게 된다. 다른 망에 붙어있다면 IP주소를 기재한 뒤, MAC주소는 게이트웨이를 적어서 패킷을 쏴 주게 된다.

게이트웨이는 패킷을 수신하면 거기에 적힌 IP 주소를 보고, 그 IP주소에 적합한 게이트웨이로 전달해 준다. 자신이 모르는 주소면 더 위쪽에 달린 게이트웨이로 다시 던진다. 마치 주소를 보고 우편을 날라주는 방식과 같다. 같은 동이면 동네 우체국에서 처리하지만, 다른 시나 도로 넘어간다면 집중국까지 올라가서 재분배되고, 다른 나라로 간다면 서울국제우체국까지 실려서 올라가게 되는 것이다. 이러한 과정은 일반적으로 최종 사용자에게는 보여지지 않는다. 네트워크 전문가들이 알아서 관리하고 통신이 잘 되도록 관리하는 것이다. 그렇게 게이트웨이끼리 전달 전달 해서 옆 건물까지 전달된 패킷은 어떻게 될까. 게이트웨이가 외부로부터 패킷을 수신하면, 목적지 IP 주소를 확인할 것이다. 게이트웨이는 자신과 연결된 장비들의 IP주소와 MAC주소, 그리고 포트번호를 기억하고 있으므로 패킷에 적합한 MAC주소를 적어서 수신 장비(컴퓨터)로 전달할 수 있게 된다.

물론 라우터는 스위칭 허브의 기능도 가지고 있으므로, 동일 네트워크 내에서 전달되는 패킷이라면 스위칭 허브처럼 빠르고 간결하게 패킷 전달을 끝낼 수 있다.

라우터를 제대로 사용하려면 게이트웨이끼리 어떻게 경로를 찾아내는지, 네트워크가 어떻게 관리되는지에 대해서 알아야 하며, 네트워크 전문가 코스를 수강하는 것을 권한다.

L4 스위치

L4 스위치 부터는 어플리케이션 계층과 연동되므로 딱히 레이어 구분을 하지 않는다. 서버에서 처리해야 하는 기능을 일부 떼어서 스위치 장비에서 처리하도록 하는 것이다. 예를 들면 로드밸런싱(여러 서버군에 균등하게 연결을 분배하는 장비)이나 방화벽 등 다양한 목적으로 사용되며, 사용 목적에 따라 그 이름이 달라진다.

인터넷 공유기

가정에서 흔히 사용하는 인터넷 공유기는 자동화된 L3 스위치 + L2 스위치 + 무선AP를 일체화 하고, NAT, DHCP 같은 각종 부가기능을 추가하여 사용하기 쉽게 만든 물건이다. 이런 장비들을 모두 따로 구매하여 관리하려면 비용도 비쌀 뿐더러, 지식과 노력도 많이 필요하기 때문에 사용하기 쉽지 않다. 이런 장비를 많이 사용하는 값으로 미리 세팅하고 일체화하여 판매하는게 인터넷 공유기이다. L3 스위치의 기능까지 일부 담당하므로 외국에서는 인터넷 공유기를 라우터라고 부른다.