라우터(Router)가 해주는 일은 크게 네가지로 나눴었습니다. 각각 DHCP, NAT, VPN, FireWall 이 있었고, 다음은 DHCP와 NAT, VPN에 대한 정리 입니다.
DHCP(Dynamic Host Configuration Protocol)는 네트워크에 연결된 호스트들에게 동적으로 IP주소와 관련된 네트워크 설정 및 정보들을 할당해주는 프로토콜 입니다.
DHCP를 사용하면, 네크워크 관리자가 수동으로 각 장비에 IP를 할당할 필요 없이, 하나의 서버가 연결된 장치의 IP주소를 관리 및 자동화 할 수 있습니다.
DHCP 범위에 들어온 서브넷 장치들은 다음 다섯 가지를 DHCP 서버로 부터 자동으로 할당 받습니다.
1. 사설 IP 주소
DHCP 서버 하에 있는 장치가 DHCP 서버를 통해서 통신하기 위한 사설 주소 입니다.
2. 서브넷 마스크(Subnet Mask)
IP 주소와 논리 게이트를 하여 서브넷 범위를 알리기 위한 마스크 값입니다.
3. 기본 게이트웨이(Default Gateway)주소
즉, DHCP 호스트의 라우터(홈) 접속 주소 입니다.
4. 로컬 DNS 서버 주소
DHCP 서버의 주소입니다. 보통은 DHCP가 라우터 단에서 해주는 경우가 많지만, 라우터 내부의 특정 서버가 DHCP 서버를 행할 수도 있기 때문에 해당 주소도 필요합니다.
5. IP 임대 시간
사설 IP 주소는 해당 임대 시간(만료 시간)을 가지고 사용하다가 임대 시간이 지나면 새로운 IP를 요청 받도록 할 수 있습니다.
DHCP는 UDP 통신을 사용하고, DHCP 서버를 사용하지만 수동으로 IP를 주거나 IP를 변경할 수 있습니다.
수동 할당(Manual allocation) 동적 할당(Dynamic Allocation), 자동 할당(Automatic allocation)
Nat(Network Address Translate)은 사설 IP 주소를 공인 IP 주소로 변환하거나 역으로 변환하는 장치입니다.
오늘날 NAT을 쓰는 이유는 대부분 하나의 공인 IPv4를 나누어서 쓰는 구조일 때 자주 쓰는데, 아파트 및 주택, 회사에서 쓰는 이더넷 방식이나 사설망을 구성한다면, 위에 언급한 방식으로 통식하기 때문에, NAT이 필수적이라 볼 수 있습니다.
NAT의 종류는 공식적으로 세 가지가 있지만, Type이라는 용어로 비공식적으로 네 가지도 있습니다.
공식적인 3가지 종류
1. 정적 NAT (Static NAT)
사설 IP 주소와 공인 IP 주소 간 1:1로 고정된 관계를 설정하는 NAT 방식입니다.
2. 동적 NAT (Dynamic NAT)
사설 IP 주소와 공인 IP 주소를 동적으로 변환하는 방식으로, 주로 특정 IP 주소 풀에 대해 동적 NAT 규칙이 설정됩니다.
3. 포트 주소 변환 (PAT, Port Address Translation)
사설 IP 주소와 포트 번호를 두 개를 가지고, 공인 IP 주소와 포트 번호로 변환하는 방식입니다.
4가지 Type
Type A
이 타입은 네트워크에 자유롭게 접근할 수 있음을 의미합니다(모든 형태의 통신이 가능합니다)
Type B
이 타입은 일부 제한이 있지만 대부분의 시스템과 통신할 수 있습니다(예를 들어 Type C, D와는 통신이 불가합니다)
Type C
이 타입은 네트워크 접근에 많은 제한이 있습니다(Type A인 시스템만 통신이 가능합니다)
Type D
이 타입은 거의 모든 연결이 불가능한 상태를 의미합니다(모든 형태의 통신이 불가합니다)
VPN(Virtual Private Network)은 가상 사설망으로 외부의 거대한 인터넷 망과 직접적인 연결이 아닌, 특정 사설을 만들어 그들끼리 통신하는 인트라넷을 통칭합니다.
넓은 의미로는 DHCP나 사설 IP를 쓰는 시스템, 사내 망, 군대 인트라넷 등의 모든 사설망을 지칭하지만, 오늘날 VPN은 IP를 우회하고 정보은닉을 위해 사용하는 사람도 많을 정도로 다양하게 쓰입니다.
VPN은 소프트웨어로도 동작 가능하지만, VPN 클라이언트 라우터를 사용해서 모든 패킷을 VPN으로 받을 수도 있습니다.
PPTP (Point to Point Tunneling Protocol)
PPP(Point-to-Point Protocol)기술을 확장해서 만든 규격으로 터널링만 해주는 프로토콜입니다
L2TP (Layer 2 Tunneling Protocol)
L2F와 PPTP 프로토콜을 결합하여 만든 규격이기 때문에 PPP를 지원하고, 동일하게 터널링만 해주는 프로토콜입니다.
OpenVPN
오픈소스VPN으로 L2TP를 기초로 하지만 세 단계의 Layer를 만들어 사용할 수 있습니다
또한, VPN추가 장비 없이 모든 과정을 소프트웨어 단에서 사용 가능합니다(오늘날 VPN프로그램의 원조 격)
WireGuard
무료 오픈소스VPN으로 터널링 구조는 굉장히 깔끔하면서 최신 타원곡선계열 암호 등을 사용하고,
OpenVPN의 단점인 싱글 쓰레드 기반을 깨고, 멀티 쓰레드 기반을 채택하여 성능이 최대 40% 향상된 VPN으로 평가 받습니다