컴퓨터 네트워크 - 네트워크 계층

Raccoon·2025년 3월 14일
post-thumbnail

데이터 링크 계층의 한계

이전에 배운 물리 계층과 데이터 링크 계층만으로는 LAN을 넘어서 통신하는데 어려움이 있다.

그 이유로는 첫째, 서로 다른 LAN에 속한 호스트가 통신할 때, 수 많은 네트워크 장비를 거치며 다양한 경로를 통해 이동해야 하기 때문이다.
패킷이 이동할 최적의 경로를 결정하는 것을 라우팅 이라고 하며, 물리 계층과 데이터 링크 계층의 장비로는 라우팅을 수행할 수 없지만, 네트워크 계층의 장비로는 가능하다.

둘째, MAC 주소만으로는 모든 네트워크에 속한 호스트의 위치를 특정하기 어렵기 때문이다.
모든 호스트가 모든 네트워크에 속한 모든 호스트의 MAC 주소를 서로 알고 있기는 사실상 어렵다.
택배를 예시로, MAC 주소가 수신인 역할을 한다면 수신지 역할을 하는 정보가 필요한데, 이 정보가 바로 네트워크 계층의 IP 이다.
IP 주소는 논리 주소 라고도 부르는데, MAC 주소가 일반적으로 NIC마다 할당되는 고정된 주소라면 IP 주소는 호스트에 직접 할당이 가능하기 때문이다.
DHCP(Dynamic Host Configuration Protocol) 이라는 특정 프로토콜을 통해 자동으로 IP 주소를 자동으로 할당받거나 사용자가 직접 할당할 수도 있고, 한 호스트가 여러 IP 주소를 가질 수도 있다.

인터넷 프로토콜

네트워크 계층의 가장 핵심적인 프로토콜 하나를 꼽자면 단연 인터넷 프로토콜(IP; Internet Protocol) 이다.
IP에는 IPv4IPv6 버전 두 가지가 존재한다.

IP의 주요 기능

IP의 기능은 다양하지만 대표적으로 크게 두 가지가 있다.
IP주소 지정IP 단편화 가 이에 해당한다.

IP주소 지정

  • IP 주소를 바탕으로 송수신 대상을 지정하는 것을 의미

IP 단편화

  • 전송하고자 하는 패킷의 크기 > MTU(최대 전송 단위; Maximum Transmission Unit) 일 경우, MTU 크기 이하의 복수의 패킷으로 나누는 것을 의미
  • MTU : 한 번에 전송 가능한 IP 패킷의 최대 크기.
    일반적으로 1500바이트이고, MTU 크기 이하로 나누어진 패킷은 수신지에 도착하면 다시 재조합됨

IPv4

IP 주소의 형태

  • 4바이트(32비트) 표현 가능
  • 192.168.1.1 처럼 표현됨
  • 옥텟 으로 표현됨
  • 옥텟 : 점으로 구분된 8비트(0 ~ 255 범위의 10진수)를 의미함
  • 192 168 1 1 은 전부 옥텟

IPv4 패킷

  • 프레임의 페이로드로 데이터 필드에 명시됨

이 중에서, 특히 중요한 식별자 플래그 단편화 오프셋 TTL 프로토콜 송신지 IP 주소 수신지 IP 주소 에 대해 살펴보자.

식별자

  • 패킷에 할당된 번호
  • IPv4 패킷이 여러 조각으로 쪼개졌다면, 어떤 메시지에서부터 쪼개졌는지 인식하기 위해 사용

플래그

  • 총 세 개의 비트로 구성된 필드
  • 첫 번째 비트 : 항상 0으로 예약된 비트. 사용 X
  • 두 번째 비트 : DF(Don't Fragment) 라는 이름을 가짐. 0이라면 IP단편화가 가능하고, 1이라면 IP 단편화를 수행하지 말라는 의미
  • 세 번째 비트 : MF(More Fragment) 라는 이름을 가짐. 0이라면 이 패킷이 마지막 패킷임을 의미하고, 1이라면 쪼개진 패킷이 더 있음을 의미함.

단편화 오프셋

  • 단편화되기 전에 패킷의 초기 데이터에서 몇 번째로 떨어진 패킷인지를 나타냄
  • 단편화되어 전송되는 패킷들이 수신지에 순서대로 도착하지 않을 수도 있기 때문에, 자신이 몇 번째 데이터에 속하는지 알아야하기 때문에 사용

TTL(Time to Live)

  • 패킷의 수명을 의미
  • : 패킷이 호스트 또는 라우터에 한 번 전달되는 것
  • TTL은 홉 마다 1씩 감소하고, 0으로 떨어진 패킷은 폐기함
  • 무의미한 패킷이 네트워크 상에 지속적으로 남아있는 것을 방지

프로토콜

  • 상위 계층의 프로토콜이 무엇인지를 나타냄
  • 예시로 TCP는 6번, UDP는 17번

송신지 IP 주소와 수신지 IP 주소

  • 송수신지의 IPv4 주소를 나타냄

IPv6

  • 16바이트(128비트)로 표현 가능
  • 2001:0230:abcd:ffff:0000:0000:ffff:1111 처럼 표현됨.
  • IPv4 주소는 약 43억개로, 주소의 총량이 쉽게 고갈될 수 있기 때문에 등장함

IPv6 패킷

  • 기본 헤더가 IPv4에 비해 간소화 된 형태

이 중에서 다음 헤더 홉 제한 송신지 IP 주소 수신지 IP 주소에 대해 살펴보자.

다음 헤더(next header)

  • 상위 계층의 프로토콜 혹은 확장 헤더를 가리킴
  • 확장 헤더 : 추가적인 헤더 정보가 필요할 경우에 추가 헤더를 가질 수 있는데, 이를 의미
    기본 헤더와 페이로드 데이터 사이에 위치함

홉 제한(hot limit)

  • IPv4의 TTL 필드와 비슷하게 패킷의 수명을 나타냄

송신지 IP주소와 수신지 IP 주소

  • IPv6 주소 지정을 가능하게 해줌
IPv6의 단편화

  • IPv6는 단편화 관련 필드가 없어서, 확장 헤더에 포함된 단편화 확장 헤더 를 통해 단편화가 이루어짐(위 사진 참고)
  • 단편화 오프셋 : IPv4의 단편화 오프셋과 같은 역할
  • M 플래그 : IPv4의 MF 플래그와 같은 역할
  • 식별자 : IPv4의 식별자 필드와 같은 역할

ARP(Address Resolution Protocol)

  • IP 주소를 통해 MAC 주소를 알아내는 프로토콜
  • 동일 네트워크 내에 있는 송수신 대상의 IP 주소를 통해 MAC 주소를 알아낼 수 있음

ARP의 동작 과정

  1. ARP 요청
  2. ARP 응답
  3. ARP 테이블 갱신
1. ARP 요청

A가 B에게 패킷을 보내고 싶다고 가정하자.
A는 네트워크 내의 모든 호스트에게 브로드캐스트 메시지를 보낸다.
이 메시지는 ARP 요청 이라는 ARP 패킷이다.

2. ARP 응답

네트워크 내의 모든 호스트가 ARP 요청 메시지를 수신하지만, B를 제외한 나머지 호스트는 자신의 IP 주소가 아니므로 이를 무시한다.
그리고 B는 자신의 MAC 주소를 담은 메시지를 A에게 전송한다.
이 유니캐스트 메시지는 ARP 응답이라는 ARP 패킷이다.
B의 MAC 주소가 포함된 메시지를 수신한 A는 B의 MAC 주소를 알게 된다.

3. ARP 테이블 갱신

ARP를 활용할 수 있는 모든 호스트는 ARP 테이블 이라는 정보를 유지하는데, 이는 IP 주소와 그에 맞는 MAC 주소 테이블을 대응하는 표이다.
ARP 테이블은 일정 시간이 지나면 삭제되고, 임의로 삭제할 수도 있다.
앞으로 A는 B와 통신할 때 굳이 브로드캐스트로 ARP 요청을 보낼 필요가 없어진다.

IP 단편화를 피하는 방법

데이터가 여러 패킷으로 쪼개지면 전송해야할 패킷의 헤더가 늘어나 불필요한 트래픽 증가와 대역폭 낭비로 이어진다.
또한, 쪼개진 IP 패킷을 합치는 과정에서 발생하는 부하도 성능 저하를 야기함
이와 같은 이유로 IP 단편화는 되도록 하지 않는 것이 좋다.

IP 단편화를 피하기 위해서는 IP 단편화 없이 주고 받을 수 있는 최대 크기 만큼만 전송해야 한다. 이 크기를 경로 MTU 라고 한다.
경로 MTU를 구하고 해당 크기만큼만 송수신하여 IP 단편화를 회피하는 기술을 경로 MTU 발견 이라고 한다.

만약, 어떤 호스트로부터 처리 가능한 MTU 크기를 넘어선 IP 패킷을 전달 받았고, DF 플래그가 1로 설정(단편화를 수행하지 말라) 어 있다고 가정해보자.
이 때는 IP 패킷을 전달한 호스트에게 DF 플래그가 설정되어 있는데, 이걸 단편화 없이 처리할 수 없습니다 라는 특정 오류 메시지를 전달한다.

이걸 이용해 이 오류 메시지를 받지 않을 때까지 전달하는 데이터 크기를 점차 줄여나가면서, 서로의 경로 MTU를 알아갈 수 있다.

IP 주소

하나의 IP 주소는 네트워크 주소호스트 주소로 이루어진다.
네트워크 주소 는 호스트가 속한 특정 네트워크를 식별하는 역할 을 하며
호스트 주소 는 네트워크 내에서 특정 호스트를 식별하는 역할 을 한다.

IP 주소에서 네트워크 주수와 호스트 주소를 구분하는 범위는 유동적일 수 있다.
만약, 호스트 주소 공간을 크게 할당했는데, 가정 내에서만 사용한다면 낭비되는 IP 주소가 많을 것이고,
호스트 주소 공간을 작게 할당했는데, 대규모 인원이 사용하는 회사에서 사용한다면 IP주소가 부족할 것이다.
이런 고민을 해결하기 위해 생겨난 개념이 바로 IP 주소의 클래스 이다.

클래스풀 주소 체계(Classful addressing)

클래스 는 네트워크 크기에 따라 IP 주소를 분류하는 기준이다.
클래스를 이용하면 필요한 호스트 IP 개수에 따라 네트워크 크기를 가변적으로 조정해 네트워크 주소와 호스트 주소를 구획할 수 있게된다.
클래스를 기반으로 IP 주소를 관리하는 주소 체계를 클래스풀 주소 체계라고 한다.

클래스의 종류는 A, B, C, D, E 가 있고, D는 멀티캐스트를 위한 클래스, E는 특수한 목적을 위한 클래스로, 예약된 클래스이다.
따라서 네트워크 크기를 나누는데 실질적으로 사용되는 클래스는 A, B, C 이다.

호스트 주소가 전부 0인 IP 주소는 해당 네트워크 주소를 의미하는 네트워크 주소,
호스트 주소가 전부 1인 IP 주소는 브로드캐스트를 위한 주소 로, 실제 호스트에게 할당 가능한 주소는 이론상의 주소보다 2개가 적음을 인지하자.

A 클래스

  • 비트 '0' 으로 시작함
  • 네트워크 주소는 1옥텟, 호스트 주소는 3옥텟으로 구성
  • 이론상 272^7 개의 네트워크, 2²⁴2²⁴ 개의 호스트 주소를 가짐
  • 고정된 비트('0')를 제외하고 나머지 7자리가 네트워크 주소를 구성한다고 이해하면 됨

B 클래스

  • 비트 '10' 으로 시작함
  • 네트워크 주소는 2옥텟, 호스트 주소는 2옥텟으로 구성
  • 이론상 2¹⁴2¹⁴ 개의 네트워크, 2¹⁶2¹⁶ 개의 호스트 주소를 가짐
  • 고정된 비트('10')를 제외하고 나머지 14자리가 네트워크 주소를 구성한다고 이해하면 됨

C 클래스

  • 비트 '110' 으로 시작함
  • 네트워크 주소는 3옥텟, 호스트 주소는 1옥텟으로 구성
  • 이론상 2²¹2²¹ 개의 네트워크, 282^8 개의 호스트 주소를 가짐
  • 고정된 비트('110')를 제외하고 나머지 21자리가 네트워크 주소를 구성한다고 이해하면 됨

클래스리스 주소 체계(Classless addressing)

클래스풀 주소 체계를 이용하면 할당 가능한 호스트의 주소 공간을 유동적으로 관리할 수 있지만, 결국 고정된 크기기 때문에, IP 주소의 낭비가 생기는 상황이 존재한다.
만약, 300명의 직원이 사용할 컴퓨터를 동일 네트워크로 구성할 때, C 클래스는 호스트에게 할당할 수 있는 IP 주소가 254개 뿐이기 때문에, B 클래스를 이용해야 하고, 이는 결국 IP 주소의 낭비로 이어진다.

그래서 클래스풀 주소 체계보다 더 유동적이고, 정교하게 네트워크를 구획할 수 있는 클래스리스 주소 체계가 등장했다.
이름 그대로, 클래스에 구애받지 않고 네트워크의 영역을 나누어 호스트에게 IP 주소를 할당하는 방식이다.

서브넷 마스크

클래스풀 주소 체계는 클래스를 통해 네트워크 주소와 호스트 주소를 구분했다.
그렇다면 클래스리스 주소 체계는 뭘로 두 주소를 구분할까?
그것은 바로 서브넷 마스크 이다.
서브넷 마스크는 IP 주소에서 네트워크 부분을 1, 호스트 부분은 0으로 표기한 비트열 이다.
서브넷 마스크를 이용해 클래스를 원하는 크기로 더 잘게 쪼개어 사용하는 것을 서브네팅 이라고 한다.

서브넷 마스크와 IP 주소를 AND 연산하는 방식 을 통해 네트워크 주소와 호스트 주소를 구분짓는다.

만약, 서브넷 마스크가 255.255.255.0 이라면, 서브넷 마스크의 0이 8개라는 의미고, 호스트 주소는 8비트로 표현이 가능하다는 의미이다.
네트워크 주소를 구한 뒤, 그 주소를 기점으로 282^8 개의 호스트를 할당할 수 있다.

아래 예시를 보자.

  1. IP 주소와 서브넷 마스크를 AND 연산해서 네트워크 주소 를 구할 수 있다.
    (192.1658.219.0)
  2. 서브넷 마스크에서 0이 8개이므로, 호스트 주소를 8비트로 표현이 가능하고, 이를 통해 실제로 할당 가능한 호스트 IP 주소의 범위를 구할 수 있다.
    (네트워크 주소, 브로트 캐스트를 제외하면 192.168.219.1 ~ 192.168.219.254)

CIDR 표기법

서브넷 마스크를 표기하는 방법은 두 가지가 있다.

  • 255.255.255.0 과 같이 10진수로 직접 표기 (앞의 예시가 이에 해당)
  • IP 주소/서브넷 마스크 상의 1의 개수 형식 으로 표기

두 번째 방식을 CIDR 표기법(Classless Inter-Domain Routing notation) 이라고 부르고, 자주 활용된다.

IP 주소 192.168.219.103 과 서브넷 마스크 255.255.255.0
-> 192.168.219.103/24 (CIDR 표기 방식)

공인 IP 주소와 사설 IP 주소

IP는 고유한 IP 주소를 의미하는 공인 IP 주소 와 고유하지 않은 IP 주소인 사설 IP 주소 로 나뉠 수 있다.

공인 IP 주소(public IP address)

  • 전 세계에서 고유한 IP 주소
  • ISP나 공인 IP 주소 할당 기관을 통해 할당받을 수 있음

사설 IP 주소(private IP address)

사설 IP 주소란 사설 네트워크에서 사용하기 위한 IP 주소이다.
사설 네트워크란 인터넷, 외부 네트워크에 공개되지 않은 네트워크를 의미한다.
실제로 우리가 사용하는 네트워크 기기의 IP 주소를 별도로 신청해서 할당받지는 않았을 텐데, 그 이유가 바로 LAN 내의 호스트는 사설 IP 주소를 사용하기 때문이다.

IP 주소 공간 중에서 사설 IP 주소로 사용하도록 특별히 예약된 IP 주소 공간이 있고, 이는 다음과 같다.

  • 10.0.0.0/8 (10.0.0.0 - 10.255.255.255)
  • 172.16.0.0/12 (172.16.0.0 - 172.31.255.255)
  • 192.168.0.0/16 (192.168.0.0 - 192.168.255.255)

사설 IP 주소의 할당 주체는 일반적으로 라우터 이고, 할당받은 사설 IP 주소는 해당 호스트가 속한 사설 네트워크에서만 유효하므로, 다른 네트워크 상의 사설 IP 주소와 중복될 수 있음을 인지하자.

사설 IP가 사설 네트워크에서만 유효하다면, 사설 IP 주소를 사용하는 호스트가 외부 네트워크와 통신하려면 어떻게 해야할까?
NAT 이라는 기술을 사용하면 된다.

NAT(Network Address Translation)

NAT 이란, 네트워크 내부에서 사용되는 사설 IP 주소와 네트워크 외부에서 사용되는 공인 IP 주소를 변환하는데 사용된다.

대부분의 라우터와 공유기는 NAT 기능을 내장하고 있기 때문에, 사설 IP 주소가 공유기를 거쳐 공인 IP로 변경되고, 외부 네트워크로 전송되거나 반대로 외부 네트워크로부터 받은 패킷 속 공인 IP 주소가 공유기를 거쳐 사설 IP 주소로 변경되어 사설 네트워크 속 호스트에 이르게 된다.

NAT의 정확한 동작 방식은 다음 장에서 살펴보겠다.

정적 IP 주소와 동적 IP 주소

호스트에 IP 주소를 할당하는 방식은 정적 할당동적 할당 이 있다.
정적 할당 은 수작업을 통해 이루어지고, 동적 할당 은 DHCP라는 프로토콜을 통해 이루어진다.

정적 할당

호스트에 직접 수작업으로 IP 주소를 부여하는 방식이다.
이렇게 할당된 주소를 정적 IP 주소 라고 부른다.

동적 할당

IP 주소를 정적으로만 할당하다 보면, 의도치 않게 잘못된 IP 주소를 입력할 수도 있고, 중복된 IP 주소를 입력할 수도 있다.

이럴 때 사용 가능한 방식이 바로 동적 할당 이다.
IP 동적 할당 사용되는 대표적인 프로토콜이 바로 DHCP(Dynamic Host Configuration Protocol 이다.
DHCP는 응용 계층에 속하지만, 네트워크 계층의 개념을 이해하기 위해 살펴보자.

DHCP

DHCP를 통한 IP 주소 할당은 IP 주소를 할당받고자 하는 호스트(클라이언트)해당 호스트에게 IP 주소를 제공하는 DHCP 서버 간에 메시지를 주고받음으로써 이루어진다.

DHCP 서버는 클라이언트에게 할당 가능한 IP 주소 목록을 관리하고, 클라이언트가 요청할 때 IP 주소를 할당한다.

DCHP로 할당받은 IP 주소는 사용할 기간(임대 기간)이 정해져 있는데, 일반적으로 수 시간에서 수일로 설정한다.
윈도우 사용자는 ipconfig /all 명령어를 통해 임대 시작 날짜임대 만료 날짜 를 확인할 수 있다.

DHCP 메시지 전달 과정

IP 주소를 할당 받는 과정에서 클라이언트와 DHCP 서버 간에 주고받는 메시지의 종류는 크게 네가지가 있다.

1. DHCP Discover
2. DHCP Offer
3. DHCP Request
4. DHCP Acknowledgment(이하 DHCP ACK)

1. DHCP Discover(클라이언트 -> DHCP 서버)
  • Discover : 발견하다
  • 클라이언트가 브로드캐스트 전송을 통해 DHCP Discover 메시지를 전송해 DHCP 서버를 찾는 과정
  • 전송시점에 클라이언트는 IP 주소를 할당받지 못했으므로, 송신지 IP 주소는 0.0.0.0
  • 브로드 캐스트 전송이므로 목적지 IP 주소는 255.255.255.255
2. DHCP Offer(DHCP 서버 -> 클라이언트)
  • Offer : 제안하다
  • DHCP 서버가 DHCP Discover 메시지를 받은 뒤, 클라이언트에게 DHCP Offer 메시지를 보냄
  • DHCP Offer 메시지는 클라이언트에게 할당해 줄 IP 주소를 제안하는 메시지로, 서브넷 마스크, 임대 기간 등의 정보가 포함됨
3. DHCP Request(클라이언트 -> DHCP 서버)
  • DHCP Offer 메시지에 대한 응답. 브로드 캐스트로 전송됨
  • DHCP Offer 메시지 잘 받았고, 네가 전송해준 IP 주소를 써도 되지? 라고 묻는 재확인 절차
3. DHCP ACK(DHCP 서버 -> 클라이언트)
  • DHCP 서버가 클라이언트에게 DHCP ACK 메시지를 보내 최종 승인
  • 클라이언트가 DHCP ACK 메시지를 받으면 네트워크 설정을 완료한 후, 임대 기간 동안 IP 주소를 사용
  • 임대 기간이 끝나기 전에 임대 기간을 연장할 수 있는데, 이를 임대 갱신 이라 함.
  • IP 주소의 임대 기간이 끝나기 전에 기본적으로 두 차례 자동 수행되고, 임대 갱신 과정이 모두 실패하면 IP 주소가 DHCP 서버로 반납됨.
    • 1차 갱신(T1) : 임대 기간의 50% 시점에 갱신 요청
    • 2차 갱신(T2) : 임대 기간의 87.5% 시점에 다시 갱신 요청

라우팅

라우터의 핵심 기능은 패킷이 이동할 최적의 경로를 설정한 뒤 해당 경로로 패킷을 이동시키는 것 이다.
이를 라우팅 이라 한다.

라우팅 테이블 이 만들어지는 방법과 프로토콜에 따라 라우팅을 분류하면 다음 그림과 같이 표현할 수 있다.

라우터

멀리 떨어진 호스트 간의 통신 과정에서 패킷은 서로에게 도달하기 까지 여러 라우터를 거쳐서 다양한 경로로 이동할 수 있다.
이처럼 라우팅 도중 패킷이 호스트와 라우터 간에, 혹은 라우터와 라우터 간에 이동하는 하나의 과정을 이라고 부른다.
즉, 패킷은 여러 홉을 거쳐 라우팅될 수 있다.

그렇다면 라우터는 패킷을 전달할 다음 홉이 어디인지 어떻게 알까?
그것은 라우팅 테이블 덕분이다.

라우팅 테이블

라우팅 테이블 은 특정 수신지까지 도달하기 위한 정보를 명시한 일종의 표와 같은 정보다.
라우터는 라우팅 테이블을 참고하여 수신지까지의 도달 경로를 판단한다.
라우팅 테이블에 포함된 정보는 라우팅 방식에 따라, 호스트의 환경에 따라 달라지지만, 공통적인 정보이자 핵심적인 정보로는 수신지 IP 주소와 서브넷 마스크, 다음 홉, 네트워크 인터페이스 메트릭 이 있다.

수신지 IP 주소와 서브넷 마스크

  • 최정적으로 패킷을 전달할 대상을 의미함

다음 홉(next hop)

  • 최종 수신지까지 가기 위해 다음으로 거쳐야 할 호스트의 IP 주소나 인터페이스를 의미
  • 게이트웨이 라고 명시되기도 함

네트워크 인터페이스

  • 패킷을 내보낼 통로

메트릭(metric)

  • 해당 경로로 이동하는 데에 드는 비용을 의미
  • 라우터는 메트릭이 낮은 경로를 선호함

디폴트 라우트

패킷 내의 수신지 IP 주소가 라우팅 테이블에 있는 수신지 IP 주소, 서브넷 마스크 항목과 완벽하게 합치되는 경우가 있지만, 그렇지 않은 경우가 있다.
즉, 라우팅 테이블에 없는 경로로 패킷을 전송해야 할 때가 있는데, 이 경우에는 기본적으로 패킷을 내보낼 경로 를 설정하여 해당 경로로 패킷을 내보낸다.
이를 디폴트 라우트 라 한다.

정적 라우팅과 동적 라우팅

라우팅 테이블이 만들어지는 방식은 크게 두 가지로, 정적 라우팅동적 라우팅 이 있다.

정적 라우팅

  • 사용자가 수동으로 직접 채워 넣은 라우팅 테이블의 항목을 토대로 라우팅되는 방식
  • 네트워크의 규모가 커지고 관리해야 할 라우터가 늘어날 경우, 이 방식에는 한계가 있음
  • 입력 실수가 발생할 가능성이 존재
  • 해당 경로 상에 문제가 발생했을 경우, 경로를 우회하지 못하고 문제가 발생한 경로로 패킷을 전송할 수 밖에 없다는 한계점이 존재

동적 라우팅

  • 정적 라우팅의 단점을 보완할 수 있는 라우팅 방식
  • 자동으로 라우팅 테이블 항목을 만들고, 이를 이용하여 라우팅 하는 방식
  • 라우팅 테이블 항목이 수시로 변할 수 있음
  • 네트워크 경로상에 문제가 발생했을 때, 이를 우회할 수 있게 경로를 자동으로 갱신
  • (동적) 라우팅 프로토콜 을 사용해 자동으로 라우팅 테이블 항목을 생성

AS(Autonomous System)

  • 동일한 라우팅 정책으로 운영되는 라우터들의 집단 네트워크
  • 한 회사나 단체에서 관리하는 라우터 집단이 그 예시
  • 한 AS 내에는 다수의 라우터가 있고, 라우터들은 AS 내부에서 통신하거나 AS 외부와 통신할 수 있음
  • AS 경계에서 AS 내외로 통신을 주고 받는 라우터를 AS 경계 라우터(ASBR; Autonomous System Boundary Router) 라고 함

(동적) 라우팅 프로토콜

모든 라우터는 특정 수신지까지 도달하기 위한 최적의 경로를 찾아 라우팅 테이블에 추가하려 노력한다. 이를 위해 라우터끼리 서로 자신의 정보를 교환하게 되는데, 이 과정에서 사용되는 프로토콜이 바로 (동적) 라우팅 프로토콜 이다.
라우팅 프로토콜 이란 라우터끼리 정보를 교환하며 패킷이 이동할 최적의 경로를 찾기 위한 프로토콜 이다.

라우팅 프로토콜은 크게 AS 내부에서 수행되느냐, AS 외부에서 수행되느냐에 따라 종류를 나눌 수 있다.
AS 내부에서 수행되는 라우팅 프로토콜을 IGP (Interior Gateway Protocol) 이라 한다.
AS 외부에서 수행되는 라우팅 프로토콜은 EGP (Exterior Gateway Protocol) 이라 한다.

대표적인 IGP로는 RIP와 OSPF가 있고, 대표적인 EGP로는 BGP가 있다.

IGP: RIP와 OSPF

RIP(Routing Information Protocol)

RIP는 최적의 경로를 선정하는 과정에서 거리 벡터 기반의 라우팅 프로토콜이다. 이는 이름 그대로 거리를 기반으로 최적의 경로를 찾는 라우팅 프로토콜을 의미한다. 이 때의 거리홉의 수 (패킷이 경유한 라우터의 수) 를 의미한다.

RIP는 인접한 라우터끼리 경로 정보를 주기적으로 교환하며 라우팅 테이블을 갱신하고, 이를 통해 라우터는 특정 수신지에 도달하기까지의 홉 수를 알 수 있다.
그리고 홉 수가 가장 적은 경로 를 최적의 경로라고 판단한다.
따라서, 홉 수가 적을수록 라우팅 테이블상의 메트릭 값도 작아진다.

OSPF(Open Shortest Path First)

OSPF는 링크 상태 라우팅 프로토콜이다.

OSPF는 노드와 간선의 이루어진 링크 정보를 비롯한 현재 네트워크의 상태를 그래프의 형태로 링크 상태 데이터베이스 에 저장한다.

링크 상태 데이터베이스에는 라우터들의 연결 관계, 연결 비용 등 현재 네트워크의 상태를 그래프로 표현하기 위한 데이터가 저장되어 있다.

라우터는 링크 상태 데이터베이스를 기반으로 현재 네트워크 구성을 마치 지도처럼 그린 뒤 최적의 경로를 선택한다.

OSPF에서는 최적의 경로를 결정하기 위해 대역폭 을 기반을 메트릭을 계산한다.
대역폭이 높은 링크일 수록 메트릭이 낮은 경로로 인식한다.

라우터 간에 경로 정보를 주기적으로 교환하며 라우팅 테이블을 갱신하는 RIP와 달리, OSPF는 네트워크 구성이 변경되었을 때 라우팅 테이블이 갱신된다.

그런데 만약, 네트워크 구성이 변경될 때마다 라우팅 테이블이 변경된다면, 네트워크의 규모가 매우 커졌을 때 링크 상태 데이터베이스에 모든 정보를 저장하기 어려울 것이다.

이에 OSPF에서는 AS를 에어리어 라는 단위로 나누고, 구분된 에어리어 내에서만 링크 상태를 공유한다.

에어리어에는 다음 그림 처럼 번호가 부여되어 있으며, 에어리어 경계에 있는 ABR (Area Border Router) 이라는 라우터가 에어리어의 연결을 담당한다.

EGP : BGP

대표적인 EGP로는 BGP(Border Gateway Protocol)이 있다.

AS 간의 통신에서 사용되는 대표적인 프로토콜이지만, 사실 BGP로 AS 내 라우터 간 통신도 가능하다.

AS 간 통신을 위한 BGP는 eBGP, AS 내의 통신을 위한 BGP는 iBGP 라고 정의한다.

BGP

AS 간에 정보를 주고받기 위해서는 AS 내에서 두 개 이상의 eBGP를 사용하는 라우터가 서로 간에 연결되어야 한다.

이 연결은 BGP 라우터 간에 BGP 메시지를 주고받음으로써 이루어지는데, BGP 메시지를 주고받을 수 있도록 연결된 BGP 라우터를 피어 라고 정의한다.

즉, 다른 AS와 BGP 연결을 유지하기 위해서 BGP 라우터끼리 연결되어 피어가 되어야 하고, 이렇게 피어 관계가 되도록 연결하는 과정을 피어링 이라 한다.

BGP는 RIP와 OSPF에 비해 최적의 경로를 결정하는 과정이 복잡하고, 일정하지 않은 경우가 많다.
경로 결정 과정에서 수신지 주소 뿐만 아니라, 속성정책 이 고려되기 때문이다.

1. AS-PATH 속성

메시지가 수신지에 이르는 과정에서 통과하는 AS의 목록을 의미한다.
만약, AS1 -> AS2로 곧장 간다면 PATH는 AS2,
AS1 -> AS3 -> AS2 로 간다면 PATH는 AS3 AS2 가 된다.

이를 통해 BGP의 특징을 알 수 있다.

  • BGP는 AS 간 라우팅을 할 때, 거치게 될 라우터 의 수가 아닌 AS 의 수를 고려한다.
    • 따라서, AS-PATH 길이가 더 짧은 경로라 할지라도, 거치게 될 라우터의 홉 수가 더 많을 수 있음
  • 둘 째, BGP는 거리가 아닌 경로를 고려한다.
    • 메시지가 같은 경로를 무한히 반복하며 이동하는 순환을 방지하기 위해 경로를 고려함 만약, 자신의 AS가 AS-PATH에 포함되어 있을 경우, 순환 으로 간주해 해당 메시지를 폐기함.
2. NEXT_HOP 속성

다음으로 거칠 라우터의 IP 주소를 나타낸다.
AS1 -> AS3 -> AS2에 도달하는 경로의 NEXT-HOP은 AS1과 연결된 라우터 의 IP 주소이다.

3. LOCAL_PREF 속성

LOCAL PREFerence의 약자이다.
이는 AS 외부 경로에 있어 AS 내부에서 어떤 경로를 선호할지에 대한 척도를 나타내는 속성이다.
AS-PATH나 NEXT-HOP 속성보다 우선시 되며, 이 값이 클수록 우선으로 선택된다.
정책적인 이유로 이 경로를 우선시 하겠다, 설령 이 경로가 다른 경로에 비해 비교적 비효율적일지라도 이 경로를 우선시하겠다 라는 의미와도 같다.

IPV4와 IPV6는 어떤 차이점이 있을까요?
IPv4에서는 주소를 4바이트로 표현하고, IPv6에서는 주소를 16바이트로 표현합니다.
IPv4에서 제공되는 주소 개수의 한계 때문에 IPv6가 등장했습니다.
IPv6는 보편화 단계에 있으며 IPv4와 혼용해서 사용하기 위해 터널링 기법을 사용합니다.

서브넷과 서브넷 마스크에 대해 설명해주세요.
서브넷은 하나의 큰 네트워크를 더 작은 네트워크로 나눈 부분을 의미합니다.
서브넷 마스크는 IP 주소상에서 네트워크 부분을 1, 호스트 부분은 0으로 표기한 비트열입니다.

라우팅이 뭘까요?
라우팅이란 패킷이 이동할 최적의 경로를 설정한 뒤 해당 경로로 패킷을 이동시키는 것입니다.

라우터에 대해서 설명해주세요.
라우터는 네트워크 계층에서 동작하는 네트워크 장비로, 수신한 데이터 패킷의 목적지까지의 최적 경로를 판단하여 데이터를 전송합니다. 이를 위해 라우터는 라우팅 테이블을 참고하여 도달 경로를 결정합니다. 여러 라우터를 거쳐 데이터가 전달되기 때문에, 서로 멀리 떨어져 있는 호스트 간에도 원활하게 통신할 수 있습니다.

Public IP와 Private IP 차이는 뭘까요?
공인 IP 주소는 전 세계에서 고유한 IP 주소로, ISP나 공인 IP 주소 할당 기관을 통해 할당받을 수 있습니다.
사설 IP 주소란 사설 네트워크에서 사용하기 위한 IP 주소로, 고유하지 않을 수 있으며, 특정 범위 내에서 자유롭게 할당 가능합니다.

라우팅 프로토콜에 대해서 설명해주세요.
라우팅 프로토콜이란 라우터끼리 정보를 교환하며 패킷이 이동할 최적의 경로를 찾기 위한 프로토콜 입니다.
AS 내부에서 수행되는 IGP와 AS 외부에서 수행되는 EGP로 나눌 수 있습니다.
IGP의 RIP는 거리 벡터 라우팅 프로토콜로, 경로의 "거리"를 기준으로 최적의 경로를 찾습니다. 거리 벡터 프로토콜은 각 라우터가 인접 라우터와의 거리를 교환하여 경로를 계산합니다.
IGP의 OSPF는 링크 상태 라우팅 프로토콜로, 각 라우터가 네트워크의 전체 링크 상태 정보를 교환하여 최적의 경로를 계산합니다. OSPF는 경로의 "비용"을 기준으로 경로를 선택합니다.
EGP의 BGP는 AS 간 경로 교환을 담당하는 프로토콜로, AS-PATH, NEXT-HOP, LOCAL-PREF 등 다양한 속성을 고려하여 최적의 경로를 찾습니다.

IP는 어떻게 할당될까요?
IP를 할당하는 방식에는 정적할당과 동적할당이 있습니다.
정적 할당은 호스트에 직접 수작업으로 IP 주소를 부여하는 방식입니다.
동적 할당은 DHCP와 같은 프로토콜을 통해 자동으로 호스트에 IP주소를 할당해주는 방식입니다.

NAT가 뭘까요?.
NAT은 네트워크 내부에서 사용되는 사설 IP 주소와 네트워크 외부에서 사용되는 공인 IP 주소를 변환하는데 사용되는 기술입니다.
사설 IP 주소가 공유기를 거쳐 공인 IP로 변경되고 외부 네트워크로 전송되거나 반대로 외부 네트워크로부터 받은 패킷 속 공인 IP 주소가 공유기를 거쳐 사설 IP 주소로 변경되어 사설 네트워크 속 호스트에 이르게 됩니다.

profile
꾸준함을 목표로 합니다.

0개의 댓글