# IP

# ARP

정의

ARP(Address Resolution Protocol)란 IP 주소로부터 MAC 주소를 구하는 IP와 MAC 주소의 다리 역할을 하는 프로토콜입니다.

image

  • 컴퓨터와 컴퓨터 간의 통신은 IP 주소에서 ARP를 통해 MAC 주소를 찾아 MAC 주소를 기반으로 통신합니다.
  • ARP를 통해 가상 주소인 IP 주소를 실제 주소인 MAC 주소로 변환합니다.
  • RARP를 통해 실제 주소인 MAC 주소를 가상 주소인 IP 주소로 변환합니다.

image

  • 장치 A가 ARP Request 브로드캐스트를 보내서 IP 주소인 120.70.80.3에 해당하는 MAC 주소를 찾습니다.
  • 해당 주소에 맞는 장치 B가 ‘ARP reply 유니캐스트’를 통해 MAC 주소를 반환하는 과정을 거쳐 IP 주소에 맞는 MAC 주소를 찾게 됩니다.

용어

브로드캐스트
송신 호스트가 전송한 데이터가 네트워크에 연결된 모든 호스트에 전송되는 방식

유니캐스트
고유 주소로 식별된 하나의 네트워크 목적지에 1:1로 데이터를 전송하는 방식

멀티캐스트
UDP 기반으로 하나 이상의 송신자들이 특정한 그룹에 속해있는 하나 이상의 수신자들에게 데이터를 전송하는 방식

# 홉바이홉 통신

정의

IP 주소를 통해 통신하는 과정을 홉바이홉(hop by hop) 통신이라고 합니다.

  • 홉(hop)이란 영어 뜻 자체로는 건너뛰는 모습을 의미합니다.
  • 이는 통신망에서 각 패킷이 여러 개의 라우터를 건너가는 모습을 비유적으로 표현한 것입니다.
  • 각각의 라우터에 있는 라우팅 테이블의 IP를 기반으로 패킷을 전달하고 다시 전달해나갑니다.

image

즉, 통신 장치에 있는 ‘라우팅 테이블’의 IP를 통해 시작 주소부터 시작하여 다음 IP로 계속해서 이동하는 ‘라우팅’ 과정을 거쳐 패킷이 최종 목적지까지 도달하는 통신을 말합니다.

# 라우팅

정의

한 네트워크에서 다른 네트워크로 패킷을 이동시키는 과정과 네트워크 안의 호스트에게 패킷들을 전달하는 과정

  • 즉, IP 주소를 찾아가는 과정을 말합니다.

# 정적 라우팅

정의

관리자가 수동으로 경로를 입력하는 것을 말합니다.

  • 수동으로 입력한 경로를 사용할 수 없는 경우 관리자가 다시 경로를 갱신해야 합니다.
  • 수동으로 우회로 변경을 수행하기에 언제 발생할지 모르는 장애를 대비하기가 어렵습니다.

# 동적 라우팅

정의

라우터끼리 자동으로 정보를 교환해서 경로를 알아내는 것을 말합니다.

  • 언제 발생할 지 모르는 장애를 자동으로 처리합니다.
  • 라우터끼리 정보를 교환하기에 회선 전송을 압박합니다. -> 실제 데이터 전송에 사용되는 분량이 줄어듭니다.
  • 서로 교환한 정보를 가지고 최적의 경로를 계산해야 합니다. -> 라우터의 처리능력이 필요해진다.
  • 모든 라우터가 동일한 정보를 가져야 한다는 제약조건이 발새합니다.

# 라우팅 테이블

정의

라우팅 테이블(routing table)은 송신지에서 수신지까지 도달하기 위해 사용되며, 라우터에 들어가 있는 목적지 정보들과 그 목적지로 가기 위한 방법이 들어 있는 리스트를 뜻합니다.

  • 라우팅 테이블에는 게이트웨이와 모든 목적지에 대해 해당 목적지에 도달하기 위해 거쳐야 할 다음 라우터의 정보를 가지고 있습니다.
  • 시간에 따라 주기적으로 업데이트하며 라우터기기의 손상이나 새로운 경로 생성이나 제거에 따라 변화합니다.

# 게이트웨이

정의

게이트웨이(gateway)는 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 관문 역할을 하는 컴퓨터나 소프트웨어를 두루 일컫는 용어입니다.

image

  • 사용자는 인터넷에 접속하기 위해 수많은 톨게이트인 게이트웨이를 거쳐야 합니다.
  • 게이트웨이는 서로 다른 네트워크상의 통신 프로토콜을 변환해주는 역할을 하기도 합니다.
  • 게이트웨이를 확인하는 방법은 라우팅 테이블을 통해 볼 수 있으며 라우팅 테이블은 윈도우의 명령 프롬프트에서 netstat -r 명령어를 실행하여 확인할 수 있습니다.

image

앞의 그림처럼 IPv4 경로 테이블, IPv6 경로 테이블이 있는데 이것이 바로 라우팅 테이블이며 게이트웨이, 인터페이스 등이 나오는 것을 볼 수 있습니다.

# 디폴트 게이트웨이(Default Gateway)

정의

디폴트 게이트웨이는 컴퓨터가 다음에 보낼 라우터이다.

  • 만약 호스트가 다른 네트워크로 데이터를 전송하고 싶다면 디폴트 게이트웨이로 데이터를 보내서 전송한다.
    • 즉, 컴퓨터가 최초로 데이터를 보내는 수신처이다.
  • 디폴트 게이트웨이의 IP 주소를 미리 수동이나 DHCP(동적으로 클라이언트가 IP 주소를 요청하면 서버가 그에 응해 IP 주소를 할당)로 설정한다.

# IP 주소 체계

IP 주소는 IPv4와 IPv6로 나뉩니다.

image

  • IPv4는 32비트를 8비트 단위로 점을 찍어 표기하며, 123.45.67.89 같은 방식으로 IP 주소를 나타냅니다.
  • IPv6는 64비트를 16비트 단위로 점을 찍어 표기하며, 2001:db8::ff00:42:8329 같은 방식으로 IP 주소를 나타냅니다.

# 클래스 기반 할당 방식

  • 초기에는 A, B, C, D, E 다섯 개의 클래스로 구분하는 클래스 기반 할당 방식(CIDR)을 사용했습니다.

image

  • 앞에 있는 부분을 네트워크 주소, 그 뒤에 있는 부분을 컴퓨터에 부여하는 주소인 호스트 주소로 놓아서 사용합니다.
  • 클래스 A·B·C는 일대일 통신으로 사용되고 클래스 D는 멀티캐스트 통신, 클래스 E는 앞으로 사용할 예비용으로 쓰는 방식입니다.
  • 예를 들어 클래스 A의 경우 0.0.0.0부터 127.255.255.255까지 범위를 갖습니다.

image

  • 맨 왼쪽에 있는 비트를 ‘구분 비트’라고 합니다.
  • 클래스 A의 경우 맨 왼쪽에 있는 비트가 0입니다. 클래스 B는 10입니다. 클래스 C는 110입니다. 이를 통해 클래스 간의 IP가 나눠집니다.
  • 클래스 A에서 가질 수 있는 IP 범위는 00000000.00000000.00000000.00000000 ~ 01111111.11111111.11111111.11111111입니다.
    • 이를 십진수로 표현하면 0.0.0.0~127.255.255.255이죠. 다른 네트워크도 이런 식의 주소 범위를 가진다고 생각하면 됩니다.
  • 네트워크의 첫 번째 주소는 네트워크 주소로 사용되고 가장 마지막 주소는 브로드캐스트용 주소로 네트워크에 속해 있는 모든 컴퓨터에 데이터를 보낼 때 사용됩니다.

image

  • 클래스 A로 12.0.0.0이란 네트워크를 부여받았다고 해봅시다. 그렇다면 12.0.0.1 ~ 12.255.255.254의 호스트 주소를 부여받은 것입니다.
  • 이때 첫 번째 주소인 12.0.0.0은 네트워크구별 주소로 사용하면 안 되고 가장 마지막 주소인 12.255.255.255의 경우 브로드캐스트용으로 남겨두어야 하니 이 또한 사용하면 안 됩니다.
  • 그렇기 때문에 그 사이에 있는 12.0.0.1 ~ 12.255.255.254를 컴퓨터에 부여할 수 있는 호스트 주소로 사용할 수 있습니다.

결론

하지만 이 방식은 사용하는 주소보다 버리는 주소가 많은 단점이 있었고 이를 해소하기 위해 DHCP와 IPv6, NAT가 나옵니다.

# DHCP

정의

DHCP(Dynamic Host Configuration Protocol)는 IP 주소 및 기타 통신 매개변수를 자동으로 할당하기 위한 네트워크 관리 프로토콜입니다.

  • 이 기술을 통해 네트워크 장치의 IP 주소를 수동으로 설정할 필요 없이 인터넷에 접속할 때마다 자동으로 IP 주소를 할당할 수 있습니다.
  • 많은 라우터와 게이트웨이 장비에 DHCP 기능이 있으며 이를 통해 대부분의 가정용 네트워크에서 IP 주소를 할당합니다.

# NAT

정의

NAT(Network Address Translation)는 패킷이 라우팅 장치를 통해 전송되는 동안 패킷의 IP 주소 정보를 수정하여 IP 주소를 다른 주소로 매핑하는 방법입니다.

  • IPv4 주소 체계만으로는 많은 주소들을 모두 감당하지 못하는 단점이 있는데, 이를 해결하기 위해 NAT로 공인 IP와 사설 IP로 나눠서 많은 주소를 처리합니다.
  • NAT를 가능하게 하는 소프트웨어는 ICS, RRAS, Netfilter 등이 있습니다.

image

  • 홍철 팀장, 가영 대리는 192.168.0.xxx를 기반으로 각각의 다른 IP를 가지고 있습니다.
    • 이는 사설 IP라고 합니다. 그리고 NAT 장치를 통해 하나의 공인 IP인 121.165.151.200으로 외부 인터넷에 요청할 수 있습니다.
  • NAT 장치를 통해 사설 IP를 공인 IP로 변환하거나 공인 IP를 사설 IP로 변환하는 데 쓰입니다.

# 공유기와 NAT

  • NAT를 쓰는 이유는 주로 여러 대의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위함입니다.
    • 인터넷 회선 하나를 개통하고 인터넷 공유기를 달아서 여러 PC를 연결하여 사용할 수 있는데, 인터넷 공유기에 NAT 기능이 탑재되어 있기에 가능합니다.

# NAT를 이용한 보안

  • NAT를 이용하면 내부 네트워크에서 사용하는 IP 주소와 외부에 드러나는 IP 주소를 다르게 유지할 수 있기 때문에 내부 네트워크에 대한 어느 정도의 보안이 가능해집니다.

# NAT의 단점

  • NAT는 여러 명이 동시에 인터넷을 접속하게 되므로 실제로 접속하는 호스트 숫자에 따라서 접속 속도가 느려질 수 있다는 단점이 있습니다.

# 참고자료