우리는 한다, 개발을.

온프레미스 네트워크 개요

⌛ 5 mins

IP 주소

인터넷이 민간으로 상용화 되기 시작하면서, 국제인터넷주소관리기구(ICANN)에서 IPv4의 IP주소를 배포하기 시작했다. IP주소란 인터넷 상에서 PC의 고유 주소를 의미한다. IPv4의 형식은 아래와 같다.

93.184.216.34/32

위와 같은 주소를 “공인 IP주소”라고 부른다. 공인 IP주소가 전세계에 배포되었지만, 모든 PC나 전자기기에 할당하는 것은 매우 어려운 일이었다. 그래서 클래스라는 개념을 도입해서, 일정 대역을 배포하는 방법으로 변경하였지만, 이마저도 고갈되자, CIDR(사이더)를 활용하여 더욱 세분화하였다.

클래스는 A~D까지 분할하여, 지역 또는 국가별로 배포하였지만 현재는 일정 대역폭만을 이용하는 의미로 변화하였고, 사이더는 IP주소 뒤의 /XX 숫자를 의미한다. 각각 8비트, 총 32비트이며, 32일 경우 단일 주소를, 0일 경우 모든 주소를 의미한다.

이를 위해 추가로 로드밸런서(L4/L7), 라우터(L3), 스위치허브(L2)를 활용하여 제한된 IP 대역을 최대한 활용하고자 했다. 개인이 공유기를 처음 구매해서 통신사에서 제공하는 랜선을 연결하면,

192.168.0.1/32

공유기가 위의 주소가 할당될 것이다. 이와 같은 주소를 “사설 IP” 또는 “가상 IP”라고 부른다. 사설 IP 답게, 아래의 3가지 클래스(대역)내에서 자유롭게 변경할 수 있다.

A: 10.0.0.0 ~ 10.255.255.255(10.0.0.0/8)
B: 172.16.0.0 ~ 172.31.255.255(172.16.0.0/12)
C: 192.168.0.0 ~ 192.168.255.255(192.168.0.0/16)

이렇게 사설 IP주소를 사용하여 하나의 공인 IP주소를 여러대의 네트워크 장비에 사용할 수 있게 되어서, IP 주소 고갈 현상을 잠시나마 유예시켰다. 사설 IP는 공유기 내부의 네트워크 주소 변환(NAT) 기능을 통하여, 공인 IP 주소로 변환된 후에 인터넷에 접속한다. 물론 보안을 위해서 사설 IP주소를 부여한다. 모든 서버에 외부 IP 주소를 부여한다면 해커의 네트워킹 해킹 시도가 보다 간편해지기 때문이다. 이는 아래에 후술할 방화벽으로 제어할 수 있다.

하지만 아쉽게도. 사설 IP주소가 근본적인 해결책은 아니다. 위의 문제를 해결하기 위해서 IPv6를 도입했다. IPv4에 비하여 압도적으로 사용 가능한 주소와, 뛰어난 보안등으로 비약적인 개선을 이루었다. 그러나 IPv6의 보급률이 아직 미비하고, 우리나라에선 매우매우 적은, 0.82%의 사용률에 그치고 있다. IPv6가 제대로 도입된다면 이론적으로 모든 PC나 네트워크장비에 IP주소를 할당할 수 있게 된다. 우리나라에선 현재 약 200조개의 IPv6를 보유하고 있다. 이마저도 우리나라 정부가 ICANN에 따로 요청하지 않아서 최소 수준으로 부여받은 숫자다. IPv6의 형식은 아래와 같다.

2606:2800:0220:0001:0248:1893:25c8:1946


네트워크 장비

현재 네트워크는 일반적으로 ‘PC <-> L2 <-> L3 <-> (L4/L7) <-> 인터넷’순으로 연결되어 있다. 각 장비 별로 OSI 7계층에 대응된다. OSI 7계층이란 네트워크의 통신과정을 7단계로 나눠서 규정한 약속이다.

onnet01.png

네트워크 통신 초기 시절에는 L1 ~ L7 스위치를 모두 사용하여 네트워크를 구성했지만, 현대로 오면서 스위치 허브들의 사양들이 좋아졌기 때문에, 서로의 역할들이 통합되고 있다. 물론 전부 개별 구성으로 한다면, 신뢰성이 매우 높다. 근데 단점은 매우매우매우매우 비싸다. 캐비넷도 사야되고… 여러모로 복잡하다. 여기서 스위치 허브는 랜선으로 연결된 장비 간의 데이터 송수신을 도와주는 역할을 하는 장비다.

우선 L1 스위치는 “더미 스위치 허브”라고도 부른다. 단순한 전기적 신호로 데이터를 전송하게된다. L1 스위치에 연결된 모든 장비에게 같은 신호를 보내고, 받는다. 따라서 연결된 장비 숫자만큼 속도가 절반으로 떨어진다. 따라서 지금은 거의 사용되지 않으며, L2 스위치에 통합되었다.

L2 스위치는 “스위치 허브”라고도 부른다. MAC주소를 기반으로 네트워크를 연결하는데, MAC주소는 물리 주소를 의미하며 이 주소값은 각 기기들마다 고정되어있다. L1과 달리 속도 저하가 심하지 않는데, 왜냐하면 스위치의 대역폭만큼 패킷을 분할하여 전송하기 때문에, 대역폭 한계치 이전에는 속도가 어느정도 보장된다. 물론 외부에서 공급되는 속도가 최대 속도가 된다. 일반 가정에서 사용되는 공유기도 L2 스위치의 기능을 포함하고 있다.

L3 스위치는 “라우터”라고도 부른다. 네트워크 계층으로 IP주소를 기반으로 네트워크를 연결해준다. 일반적으로 사용하는 공유기가 L3 스위치에 해당된다. NAT 기능이 포함되어있어, WAN포트에 외부망을 연결하면, 인터넷 접속이 가능하다. 연결된 장비들에게 IP주소를 유동 또는 고정적으로 부여할 수 있다.

L4/L7 스위치는 “로드밸런서”라고도 부른다. 네트워크의 부하, 쏠림현상을 줄여주는 역할을 한다. L4는 IP주소와 포트번호를 기준으로 나누며, 80이 http 포트, 443이 https 포트등 약속된 포트 번호가 있고, 유동적으로 사용할 수 있는 포트가 있다. L7은 네트워크 최상위 계층에서 작동되기 때문에, 웹페이지 별 분류나 각 서버별 분류, 예를들면 동영상 서버나 메신저 서버등으로 분할하여 부하를 줄일 수 있다. 주로 서버컴퓨터를 다수 사용하는 기업에서 활용되며, 웹서비스를 하지 않는 일반 가정에선 사용되지 않는다. 애초에 장비가격이 또 매우매우매우매우 비싸다.


방화벽

인터넷을 사용하다보면, 바이러스 공격이나 해킹, 무단 침입등이 발생하는 경우가 있다. 이를 막기위해서 방화벽이라는 장비를 추가로 설치한다. 방화벽 원리는 특정 IP주소 혹은 포트를 조사하여, 사용자가 만든 규칙에 따라 허용/차단의 역할을 수행한다. 이렇게 허용된 IP를 접근하게 하거나, 허용하지 않는 IP를 차단한다. 마찬가지로 특정 트래픽/패킷을 검사하여 응용프로램/웹사이트 별 허용/차단 역할도 수행한다.

여기에 L2/L3 ~ L7 기능을 모두 탑재하는 경우도 있다. 이를 통합위협관리시스템(UTM)이라고 부르며, 제조사에 따라 VPN이나 해킹 시도 차단 역할도 수행한다. 한 단계 더 나아가서, 방화벽 스스로 자가진단을 수행하거나 손쉽게 관리할 수 있는 장비를 차세대방화벽(NGF)이라고 부른다. 방화벽 설정을 제대로 하지않으면, 필요한 서비스를 위한 모든 접근을 차단하게 되어 외부와의 송수신이 불가능 하게되거나, 선별 없이, 모든 접근을 허용해 해킹의 위험성이 증가할 수 있기 때문에 신중하게 설정해야 한다.


개인 네트워크 구성도 예시

참고용 그림이기 때문에, 절대적인 규칙이 있는 것은 아니다.

가장 일반적인 개인 네트워크 구성이다. 여기에 한해서, L3는 통신사(ISP)의 모뎀을 의미한다.

onnet02.png

인터넷 상에서는 정상 사용자가 있듯이, 개인의 정보를 노리는 해커들도 존재한다. 따라서 해당 침입을 막아줘야 한다.

onnet03.png

해커의 침입을 막기 위해서 방화벽을 추가로 설치한다. 방화벽 규칙으로 해킹 시도를 차단하고, 정상적인 데이터 수신이 가능하도록 설정한다.

onnet04.png

그리고 가정에서는 PC 한 대만 사용하는 개인은 드물 것이다.(네트워크에서는 스마트폰도 하나의 PC로 간주한다.) 그래서 다중 연결을 지원해야할 필요가 있다.

아래처럼 L2 스위치를 활용한다면, 여러 대의 장비를 연결할 수 있게 된다.

onnet05.png

위의 L2/L3/방화벽을 포함하고 있는 장비가 시중에서 판매되는 공유기다. 하나의 공유기로 다중 역할을 수행하기 때문에 편리하고 경제적이다. 물론, 인터넷 사용량이 많다면 네트워크 속도를 높이거나 장비를 증설할 필요가 있다.

onnet06.png


기업 네트워크 구성도 예시

개인 네트워크와의 차이점은, 웹 서비스를 제공하기 때문에 기업용 방화벽 또는 UTM/NGF 장비와 서버가 추가된 점이다.

사용자의 요청을 받아, 서버로 접근하여 데이터를 송수신하는 아주 기초적인 구성이다. onnet07.png

물론 서버를 단일 서버로 운용한다면, 서버에 부담이 높아져 부하가 가중될 수 있다. onnet08.png

위 문제점을 해결하기위하여 L4/L7 스위치(로드밸런서)를 도입하여 부하를 분산한다. onnet09.png

실제로 대규모 웹 서비스를 제공하는 기업에서는, 로드밸런서 기능을 활용하여 서버를 이중화해 운영한다. 이렇게 되면 한쪽 서버가 멈출 경우, 다른 서버로 연결하여 서비스를 지속적으로 제공할 수 있어서 신뢰성을 높일 수 있다는 장점이 있다. 대신 똑같은 구성을 2개 이상씩 구성해야되기 때문에, 가격적으로 비싼 편이다.


참조 사이트