IP 주소는 인터넷 프로토콜 주소(Internet Protocol Address)의 줄임말로, 인터넷에서 각 기기를 고유하게 식별하기 위한 주소 체계
인터넷에서 데이터를 전송할 때, 데이터를 패킷이라는 작은 조각으로 나누어 전송하게 되는데, TCP는 이 패킷들의 전송을 관리해주는 역할을 한다.
네트워크에서 IP 주소가 갖는 의미
주소 공간 크기: IPv4는 32비트 주소 체계로 총 2^32(약 43억)개의 주소를 생성할 수 있다. 반면, IPv6는 128비트 주소 체계로 2^128개의 주소를 생성할 수 있어, 인터넷 연결 기기의 급격한 증가에 대응할 수 있다.
주소 표현: IPv4 주소는 4개의 8비트 숫자로 구성되며, 점( . )으로 구분되어 표기된다. 예를 들어, 192.168.0.1 같은 형태이다. IPv6 주소는 8개의 16비트 숫자로 구성되며, 콜론( : )으로 구분되어 표기된다. 예를 들어, 2001:0db8:85a3:0000:0000:8a2e:0370:7334 같은 형태이다.
IP 헤더 구조: IPv4와 IPv6는 서로 다른 헤더 구조를 가지고 있다. IPv6는 헤더의 크기를 줄이고, 처리 속도를 높이기 위해 더 간소화된 형태로 설계되었다.
자동 구성: IPv6는 Stateless Address Autoconfiguration(SLAAC) 기능을 통해, 기기가 네트워크에 연결되면 자동으로 IP 주소를 구성할 수 있다. 반면, IPv4에서는 DHCP 서버를 통한 동적 IP 주소 할당 또는 수동으로 정적 IP 주소를 설정해야 한다.
보안 기능: IPv6는 기본적으로 IPsec를 지원하여, 기기 간의 통신을 암호화하고 인증할 수 있다. 반면, IPv4에서는 IPsec를 선택적으로 적용할 수 있으며, 별도의 구성이 필요하다.
멀티캐스트 지원: IPv6에서는 멀티캐스트를 향상시키고 확장한 기능을 제공하며, 브로드캐스트를 완전히 대체한다. IPv4에서는 브로드캐스트와 멀티캐스트를 모두 지원한다.
IPv6는 보안, 확장성, 효율성 측면에서 IPv4보다 발전된 인터넷 프로토콜로 인식되고 있다. 그러나 호환성 문제와 기존 인프라에 대한 업그레이드 비용 등으로 인해, 아직 전 세계적으로 완벽한 전환은 이루어지지 않고 있다. IPv4와 IPv6는 서로 호환되지 않기 때문에, 전환 기간 동안 이중 스택(Double Stack)과 같은 기술이 사용되어 두 가지 프로토콜을 동시에 지원하게 된다.
서브넷(Subnet)은 IP 네트워크를 더 작은 네트워크 단위로 분할하는 것을 의미한다. 이를 통해 IP 주소를 효율적으로 관리하고, 네트워크 트래픽을 줄이며, 보안을 강화할 수 있습니다.
서브넷 마스크(Subnet Mask)는 IP 주소와 함께 사용되어 네트워크의 어느 부분이 네트워크 주소이고 어느 부분이 호스트 주소인지 구분하는 데 도움을 준다.
IP 주소는 두 가지 부분으로 구성되어 있다.
네트워크 부분(Network part): 네트워크를 식별하는데 사용되며, 서로 다른 네트워크에 있는 기기 간의 통신을 가능하게 한다.
호스트 부분(Host part): 네트워크 내에서 개별 기기를 식별하는데 사용되며, 같은 네트워크 내의 기기들이 서로 통신할 수 있게 한다.
서브넷 마스크는 일반적으로 이진수로 표현되며, 1로 시작해서 연속된 0으로 끝난다. IPv4에서 서브넷 마스크는 4개의 8비트 숫자로 구성되어 점( . )으로 구분되어 표기된다. 예를 들어, 255.255.255.0과 같은 형태이다.
서브넷 마스크를 사용하여 IP 주소의 네트워크 부분과 호스트 부분을 구분하는 방법은 다음과 같습니다:
예를 들어, IP 주소가 192.168.1.10이고 서브넷 마스크가 255.255.255.0인 경우:
서브넷 마스크를 사용하면 네트워크를 더 세분화하여 관리할 수 있으며, 기업이나 대규모 조직에서 특히 유용합니다. 서브넷을 통해 네트워크를 작은 단위로 나누면 트래픽을 효율적으로 관리할 수 있고, 보안 문제를 최소화하며, IP 주소의 낭비를 줄일 수 있습니다.
라우팅(Routing)은 네트워크에서 데이터 패킷이 출발지에서 목적지까지 최적의 경로를 찾아 전달하는 과정을 의미한다.
라우터(Router)는 이러한 라우팅 과정을 수행하는 네트워크 장비로, 다양한 네트워크 간의 연결을 가능하게 하며 트래픽을 효율적으로 관리한다.
네트워크에서 패킷이 라우터를 통해 이동하는 과정
라우팅 알고리즘은 네트워크 상황에 따라 동적으로 최적의 경로를 찾을 수 있으며, 장애나 혼잡 상황에 유연하게 대처할 수 있다. 라우팅을 통해 인터넷에서 다양한 기기와 네트워크 간의 원활한 통신이 가능하게 된다.
공인 IP(Public IP)와 사설 IP(Private IP)는 인터넷 프로토콜 주소(IP 주소)의 두 가지 유형으로, 사용 목적과 범위에 따라 구분된다.
인터넷상에서 고유하게 할당되는 IP 주소로, 전 세계적으로 유일한 주소이다. 공인 IP 주소를 사용하면 인터넷에 연결된 모든 기기와 통신이 가능하다. 일반적으로 인터넷 서비스 공급자(ISP)에 의해 할당되며, 웹 서버, 이메일 서버 등 공개적으로 접근 가능한 서버 및 서비스에 사용된다.
는 특정 네트워크 내에서만 사용되는 IP 주소로, 인터넷상에서는 중복되어 사용될 수 있습니다. 사설 IP 주소는 특정 범위에 따라 할당되며, 일반적으로 가정이나 기업의 내부 네트워크에서 사용됩니다. 사설 IP 주소는 인터넷에 직접 연결되지 않기 때문에 외부에서 직접 접근할 수 없습니다. 이를 통해 내부 네트워크의 보안성을 높일 수 있습니다.
사설 IP 주소 범위는 다음과 같다:
10.0.0.0 - 10.255.255.255 (A 클래스)
172.16.0.0 - 172.31.255.255 (B 클래스)
192.168.0.0 - 192.168.255.255 (C 클래스)
공인 IP와 사설 IP 주소를 결합하여 사용하는 경우, 네트워크 주소 변환(Network Address Translation, NAT)이라는 기술이 적용된다. NAT를 사용하면 사설 IP 주소를 공인 IP 주소로 변환하여 인터넷에 연결할 수 있어, IP 주소의 효율적인 관리 및 보안성이 강화된다. 대표적으로 가정이나 기업에서 사용하는 공유기는 NAT를 통해 여러 기기가 하나의 공인 IP 주소를 공유하여 인터넷에 접속할 수 있다.
라우팅 프로토콜(Routing Protocol)은 네트워크에서 라우터 간의 정보 교환 및 최적의 경로를 찾기 위한 알고리즘과 규칙을 정의하는 통신 규약
우팅 프로토콜을 사용하면 라우터는 다른 라우터와 라우팅 정보를 주고받아 동적으로 최적의 경로를 결정하고, 장애나 혼잡 상황에 유연하게 대응할 수 있다. 라우팅 프로토콜은 크게 내부 게이트웨이 프로토콜(IGP)과 외부 게이트웨이 프로토콜(EGP)로 나뉜다.
IGP는 하나의 오토노머스 시스템(AS, Autonomous System) 내에서 라우터 간의 라우팅 정보를 교환하는 데 사용되는 프로토콜로, 주로 RIP과 OSPF가 사용된다.
RIP(Routing Information Protocol): 거리 벡터 라우팅 프로토콜로, 라우터 간의 거리(홉 수)를 기반으로 최단 경로를 결정한다. RIP는 단순하고 구현이 쉽지만, 네트워크 크기가 커지면 복잡해지고 수렴 시간이 길어질 수 있다. 최대 15 홉까지만 지원하며, 이를 초과하면 라우팅이 불가능하다.
OSPF(Open Shortest Path First): 링크 상태 라우팅 프로토콜로, 라우터 간의 링크 비용을 고려하여 최단 경로를 계산한다. 다익스트라 알고리즘을 사용하며, RIP에 비해 복잡하지만 네트워크 변화에 빠르게 대응할 수 있고, 대규모 네트워크에서도 효율적이다. OSPF는 계층적 구조를 사용하여 네트워크를 분할할 수 있어 확장성이 좋다.
EGP는 서로 다른 오토노머스 시스템 간의 라우팅 정보를 교환하는 데 사용되는 프로토콜이며, BGP(Border Gateway Protocol)가 대표적이다.
BGP(Border Gateway Protocol): 경로 벡터 라우팅 프로토콜로, 인터넷에서 사용되는 메인 라우팅 프로토콜이다. BGP는 AS 간의 연결 및 정책 기반 라우팅을 지원하며, 각 AS가 자체적으로 정책을 설정할 수 있다. BGP는 라우팅 정보에 경로 속성을 추가하여 전달하며, 이를 통해 라우터는 다양한 요소를 고려해 최적의 경로를 선택할 수 있다.
BGP의 주요 특징
이처럼 라우팅 프로토콜은 네트워크 상황, 규모 및 요구사항에 따라 선택하여 사용할 수 있으며, 각각의 프로토콜은 특성에 따라 장단점을 가지고 있다. 이들 프로토콜을 통해 라우터는 동적으로 최적의 경로를 찾고, 네트워크의 효율성과 안정성을 유지할 수 있다.
IP 주소는 기기에 할당되는데, 이 과정은 크게 정적 할당과 동적 할당으로 나뉜다.
IP 주소를 수동으로 설정하여 기기에 할당하는 방법이다. 네트워크 관리자가 각 기기의 네트워크 설정에서 IP 주소, 서브넷 마스크, 게이트웨이, DNS 서버 등의 정보를 직접 입력하여 할당한다.
IP 주소를 자동으로 설정하여 기기에 할당하는 방법이다. DHCP(Dynamic Host Configuration Protocol)를 사용하여 IP 주소를 자동으로 할당하며, 이는 대부분의 가정이나 기업 내부 네트워크에서 주로 사용된다. DHCP 서버는 일정 범위의 IP 주소 풀(Pool)에서 사용 가능한 IP 주소를 기기에 할당하며, IP 주소의 사용 기간(리스 시간)이 정해져 있다. 리스 시간이 만료되면, 기기는 새로운 IP 주소를 요청하거나 기존 IP 주소를 연장할 수 있다.
요약하면, 정적 할당은 수동으로 IP 주소를 설정하여 할당하는 방법으로, IP 주소가 고정되어 있어 원격 접속이나 서버 구축에 유리하지만 관리가 복잡하다. 동적 할당은 DHCP를 사용하여 자동으로 IP 주소를 할당하는 방법으로, IP 주소 관리가 편리하고 IP 주소의 재사용이 가능하지만, IP 주소가 자주 변경될 수 있어 일부 서버 구축에는 불편할 수 있다.
NAT(Network Address Translation)은 네트워크 주소 변환 기술로, 사설 IP 주소와 공인 IP 주소 간의 변환을 수행한다.
NAT를 사용하면 여러 개의 사설 IP 주소를 하나의 공인 IP 주소로 대표할 수 있으며, 이를 통해 IP 주소의 효율적인 관리 및 보안성이 강화된다. 일반적으로 NAT는 가정이나 기업 내부 네트워크에서 사용되는 공유기에서 주로 적용된다.
주소 변환이 필요한 예시:
가정에서 인터넷 사용: 가정에서 인터넷을 사용할 때 보통 여러 대의 기기가 있다. 각각의 기기는 사설 IP 주소를 사용하며, 인터넷 서비스 공급자(ISP)가 제공하는 공인 IP 주소를 통해 인터넷에 접속한다. 이때 공유기에서 NAT 기능이 활성화되어 있어, 여러 대의 기기가 하나의 공인 IP 주소를 사용하여 인터넷에 접속할 수 있다.
기업 내부 네트워크: 기업 내부에서도 비슷한 상황이 발생한다. 기업 내부에 있는 많은 기기들이 사설 IP 주소를 사용하여 통신하며, 외부 인터넷과의 연결을 위해 공인 IP 주소가 필요하다. 이때 NAT를 사용하여 사설 IP 주소를 공인 IP 주소로 변환하여 인터넷과 연결할 수 있다. 이를 통해 IP 주소 자원을 절약하고, 보안성을 높일 수 있다.
NAT의 주요 기능 중 하나는 포트 주소 변환(PAT, Port Address Translation)이다. PAT는 여러 개의 사설 IP 주소와 포트 번호를 하나의 공인 IP 주소와 포트 번호로 변환할 수 있다. 이를 통해 다수의 기기가 동시에 인터넷에 접속하거나 서비스를 이용할 수 있으며, IP 주소의 효율적인 활용이 가능하다.
이처럼 NAT는 사설 IP 주소와 공인 IP 주소 간의 변환을 통해 IP 주소를 효율적으로 관리하고, 보안성을 높이는 역할을 한다. 이 기술은 가정이나 기업 내부 네트워크에서 인터넷에 연결할 때 주로 사용된다.
ICMP(Internet Control Message Protocol)는 인터넷 제어 메시지 프로토콜로, IP(Internet Protocol)와 함께 사용되어 네트워크 상의 문제를 진단하고 통지하는데 사용된다.
ICMP는 IP 계층 위에서 작동하며, 에러 보고, 진단, 제어 메시지 등을 전송하기 위해 설계되었으며, 주로 네트워크 문제 해결에 도움이 되는 다양한 유틸리티와 함께 사용되며, 효율적인 네트워크 운영에 기여한다.
ICMP와 IP 간의 관계
IP는 데이터를 패킷 단위로 전송하는 프로토콜이며, 전송 중 발생할 수 있는 다양한 오류 상황을 처리하지 않습니다. 이러한 오류 상황에 대처하기 위해 ICMP가 사용된다.
ICMP는 IP와 함께 작동하여, IP 패킷 전송 중 발생하는 오류를 감지하고 관련 정보를 전달하는 역할을 한다. 예를 들어, 목적지 IP 주소가 도달할 수 없는 경우, ICMP를 사용하여 발신지에 해당 정보를 알린다.
ICMP는 IP 헤더 다음에 위치하며, IP 프로토콜의 일부로 취급되기도 하기에, ICMP 메시지도 IP 패킷으로 전송된다.
ICMP를 사용하는 대표적인 예시는 'ping' 명령어와 'traceroute' 명령어이다.
ping: ping은 호스트 간의 연결 상태와 응답 시간을 확인하는 데 사용되는 도구이다. ICMP 에코 요청 및 에코 응답 메시지를 사용하여 대상 호스트에 데이터를 전송하고 응답을 기다린다. 이를 통해 네트워크 연결 상태와 지연 시간을 파악할 수 있다.
traceroute: traceroute는 패킷이 목적지에 도달하기까지 거치는 라우터의 경로를 추적하는 도구이다. ICMP 시간 초과(Time Exceeded) 메시지를 사용하여 각 라우터의 위치를 파악하고, 전체 경로를 확인할 수 있다.
이처럼 ICMP는 IP와 함께 작동하여 네트워크 문제를 진단하고 통지하는 역할을 수행한다. 이를 통해 네트워크 운영자는 네트워크 상태를 모니터링하고, 오류를 신속하게 파악 및 해결할 수 있다.