6 minute read

개요

네트워크 계층은 네트워크에서 다른 네트워크로의 데이터 패킷을 송수신하는 데 중요한 역할을 하는 OSI(Open Systems Interconnection) 7계층 중 3계층에 속하는 계층이다.

네트워크 계층은 라우팅과 포워딩을 통해 네트워크간의 패킷 교환을 담당한다.

송신지 네트워크에서 수신지 네트워크로 최적의 경로를 찾는것을 라우팅이라 합니다. 라우팅 알고리즘을 통해 최적의 경로를 구해내고 이를 통해 하나의 라우팅 테이블을 만든다.

리우팅 테이블을 통해 입력 링크로 들어온 패킷을 출력 링크로 전달하는 행위를 포워딩이라고 부른다. OSI 7에서의 네트워크계층은 흐름제어를 통해 송신자는 수신자가 허용할수 있을만큼의 데이터만 보내도록 조절하는 역활도 담당하지만 인터넷 네트워크 계층에선 흐름제어를 제공하지 않는다.

Datagram 방식 (비연결형 서비스) 과 가상회선방식 (연결 지향형 서비스)

네트워크 계층의 간소화를 위해서 모든 패킷을 독립적으로 처리하는 패킷 교환 방식이다. 패킷들은 목적지까지 같은 경로나 혹은 다른경로로 전달된다. 포워딩은 목적지의 주소에 따라 결정된다.

라우팅 (Routing)

네트워크 계층은 패킷을 출발지에서 목적지로 안전하게 전달하는 경로를 선택하는 라우팅 기능을 수행한다. 이를 위해 라우팅 알고리즘을 사용하여 최적의 경로를 결정하며, 다양한 경로를 통해 패킷을 전달하는 라우팅 테이블을 관리한다.

라우팅 알고리즘

라우팅 알고리즘은 여러대의 라우터들속에서 그래프 자료구조를 사용해서 가장 좋은 경로를 찾는것이 목적이다. 한 네트워크 전역의 정보를 이용하여 최소 비용의 경로를 찾는 global routing algorithm, 인접한 노드들의 정보를 이용해 최소 비용의 경로를 찾는 decentralized routing algorithm으로 구분할수 있다. 또 네트워크 로드나 토플리지 변화에 동적으로 경로를 바꾸는지의 여부에 따라 static, dynamic으로 분류할수 있으며 혼잡의 정도를 cost에 얼마나 반영하는지의 여부에 따라 load-sensitive로 분류할수 있다.

유니캐스트 라우팅

데이터그램의 목적지가 단 하나이면 이것을 유니캐스트 라우팅이라고 한다. 최소비용으로 라우터들을 거쳐서 목적지에 도달하는것이 기본 원리이다.

멀티캐스트 라우팅

하나의 발신지에 목적지 그룹이 존재하는 라우팅이다. 다중 유니캐스팅이 총 목적지 수만큼 패킷을 생성하는것과는 다르다. 멀티캐스트는 분산 데이터베이스 접근이나, 원격회의및 원격교육에 유용하게 활용된다.

224.0.0.0/24 은 네트워크 내부에서 사용하기 위한 멀티캐스트 주소이다. 224.0.1.0/24은 서브블록보다 큰 네트워크에서 사용하기 위한 멀티캐스트주소이다. 232.0.0.0/8 소스 지정 멀티캐스트 라우팅으로 소스주소를 같이 지정하여 운용한다. 233.0.0.0/8은 GLOP블록으로 AS 내부에서 사용하기 위한 주소의 범위를 정의한다. 239.0.0.0/8은 관리 범위 블록으로, 인터넷의 특정한 범위에서 사용한다.

브로드캐스트 라우팅

하나의 호스트가 인터넷의 모든 호스트에게 패킷을 보내는 라우팅을 의미한다. 일반적으로 거대한 양의 트래픽을 발생시키기때문에 제한적인 범위 내에서 사용한다. RARP나 DHCP에 활용한다.

RARP

네트워크안에 패킷을 브로드캐스팅해서 맥주소를 파악해내는 프로토콜이다. RARP는 네트워크 관리자가 장치의 IP 주소를 중앙에서 관리하고 동적으로 할당할 수 있는 기능을 제공한다. 이를 통해 동일한 맥주소에 동일한 IP 주소를 할당해주는데 활용할수 있다. 그렇지만 DHCP는 RARP보다 더 많은 기능과 유연성을 제공하며 보안과 관리 측면에서 더 효과적이다.

DHCP (Dynamic Host Configuration Protocol)

DHCP는 클라이언트-서버 모델을 기반으로 동작하며, 클라이언트가 네트워크에 연결되었을 때 IP 주소를 요청하고 서버로부터 응답을 받는다.

DHCP 프로세스에서 브로드캐스팅이 사용되는 주요 단계는 다음과 같다:

  • DHCP Discover: 클라이언트가 네트워크에 연결되었을 때 IP 주소를 요청하기 위해 DHCP Discover 메시지를 브로드캐스트로 전송한다. 이 메시지는 네트워크 상의 모든 장치에게 전달되며, DHCP 서버를 찾기 위한 요청입니다.

  • DHCP Offer: DHCP 서버가 DHCP Discover 메시지를 받으면 사용 가능한 IP 주소 중 하나를 선택하여 DHCP Offer 메시지를 클라이언트에게 전송한다. 이 Offer 메시지는 클라이언트의 MAC 주소와 선택된 IP 주소를 포함한다.

  • DHCP Request: 클라이언트는 여러 DHCP 서버로부터 Offer 메시지를 받으면 그 중 하나의 서버와 통신을 선택합니다. 선택한 DHCP 서버에게 DHCP Request 메시지를 보내어 해당 IP 주소를 실제로 사용하겠다고 요청합니다. 이 메시지 역시 브로드캐스트로 전송된다.

  • DHCP Acknowledgement: DHCP 서버는 클라이언트의 요청을 받으면 DHCP Acknowledgement 메시지를 해당 클라이언트에게 전송하여 선택된 IP 주소를 할당한다는 사실을 알린다. 이후 클라이언트는 할당받은 IP 주소와 함께 네트워크 설정을 사용하게 된다.

DHCP는 RARP와 다르게 마지막단계에서 브로드캐스팅을 사용하지 않고 유니캐스팅을 통해 정해진 클라이언트에만 보내어 보안 측면에서 좋다.

라우터

네트워크를 논리적으로 구분해주며 LAN과 WAN의 경계의 역활과 수신한 패킷을 적절한 경로(네트워크)로 전송하는 네트워크계층의 핵심장비이다 . 라우터는 패킷을 받으면, 패킷에 있는 목적지의 IP주소를 보고 미리 설정된 라우팅 테이블을 참조하여 적절한 라우터로 전송한다. 만약 네트워크 외부에 있는 라우터로 전송이 필요하면 라우터의 기본 게이트웨이로 전송한후 다른 네트워크의 라우터로 전파한다.

라우팅 테이블을 관리하는 방법에는 static routing, dynamic routing 기법이 있다. 기업에서는 보통 외부라우터와 접속할때 ISP나 데이터센터 내부의 라우터일뿐이기 때문에 주로 static routing 을 사용한다. dynamic routing은 BGP, OSPF, RIP 등의 기법이 있는데, 외부 라우터와의 접속이 자주 변화할때 사용하면 좋다.

라우터를 고를때는 상위 회선의 인터페이스와 일치하는 WAN 인터페이스를 가지는것이 중요하다. 그리고 상위 회선의 대역폭보다 높은 인터페이스는 오버스펙이다. throughput은 단위시간당 데이터 전송량을 가리키는데 라우터에 어느정도의 전송속도를 요구할지 결정하며 통신량이 많지 않으면 throughput이 낮은 저가의 라우터로도 충분하다.

최근의 라우터에는 보안기능(특정ip주소나 TCP/UDP 포트번호 이외의 통신 차단)이 탑재되는 경우가 많다. 중간 규모 이하의 사이트에서는 이런 라우터를 사용하는것이 좋지만 대형 규모의 사이트에선 보안장치를 분리하여 운용하는것이 좋다.

라우터는 입력포트, 출력포트, 라우팅 프로세서, 스위칭 패브릭으로 구성되어있다. 입력포트는 라우터의 물리계층과 링크계층의 기능을 담당하며, 프레임을 역캡슐화하여 패킷을 추출하고, 오류검사, 패킷들의 큐를 담당한다. 출력포트는 입력포트와 같은 기능을 역순으로 수행한다.

호스트에 직접 연결되어있는 라우터를 default 라우터 (first-hop router)라고 부른다. source host의 default router를 source router라고 부르며, destination host의 default router를 destination router라고 부른다.

라우팅프로세서는 네트워크계층의 기능을 수행하는 핵심적인 장치로, 패킷의 주소를 참조하며 패킷을 전송할 출력 포트번호와 다음 홉(네트워크) 주소를 찾는다(테이블 검색). 최신 라우터는 이를 입력포트에서 작동하도록 하여 신속히 처리하기도 한다. 스위칭 패브릭은 패킷을 입력 큐에서 출력 큐로 전달하는 과정을 말한다. 크로스바 스위치, 반얀 스위치 방식, 배처-반얀 스위치 방식 으로 구성되어있다.

패킷 분할 및 조립 (Packet Fragmentation and Reassembly)

네트워크 계층은 데이터 링크 계층에서 전송할 수 있는 최대 크기의 패킷보다 큰 데이터를 작은 패킷들로 분할하는 기능을 수행한다. 수신 측에서는 이러한 작은 패킷들을 다시 원래의 크기로 조립하여 상위 계층에서 원래의 데이터를 복원한다.

주소 할당 (Addressing)

네트워크 계층은 데이터 패킷에 출발지와 목적지의 주소 정보를 부여한다. 이 주소는 IP 주소를 통해 구분되며, IP 주소는 각 호스트 및 라우터에 할당된다.

서비스 품질 (Quality of Service, QoS):

네트워크 계층은 서비스 품질을 유지하기 위해 트래픽 우선순위, 대역폭 제한 등을 관리한다. 이를 통해 실시간 응용 프로그램에 우선권을 부여하거나 서비스 품질이 중요한 응용 프로그램들에게 최적의 경로를 할당할 수 있다.

IP 주소

IP 주소는 인터넷 프로토콜(Internet Protocol)을 사용하는 네트워크에서 각 호스트(컴퓨터 또는 네트워크 장치)와 라우터에 할당되는 고유한 주소이다. IP 주소는 데이터를 출발지에서 목적지로 전송하는 데 사용되며, 패킷을 라우팅하는 데에도 중요한 역할을 한다. IPv4와 IPv6가 가장 널리 사용되는 두 가지 버전의 IP 주소가 있다.

IP 주소는 네트워크부분과 호스트부분으로 구성된다.

네트워크 부분은 IP 주소의 네트워크를 식별하는 부분으로, 같은 네트워크에 속한 장치들은 이 부분이 동일하다. 라우터는 이 부분을 사용하여 패킷을 라우팅한다. 호스트 부분은 네트워크 상의 개별 호스트(컴퓨터 또는 장치)를 식별하는 부분이다. 같은 네트워크 내에서도 호스트 부분은 서로 달라야 한다.

IPv4 와 IPv6

IPv4 (Internet Protocol version 4): IPv4 주소는 32비트로 구성되며, 일반적으로 4개의 8비트 숫자로 표현된다. 예를 들면, 192.168.1.1과 같이 표기된다. 총 4,294,967,296(2^32)개의 주소가 존재합니다. 하지만 인터넷의 폭발적인 성장으로 인해 주소 고갈이 발생하고 있다.

IPv6 (Internet Protocol version 6): IPv6 주소는 128비트로 구성되며, 16비트 숫자를 콜론(:)으로 구분하여 표기한다. 예를 들면, 2001:0db8:85a3:0000:0000:8a2e:0370:7334와 같이 표기된다. 총 340,282,366,920,938,463,463,374,607,431,768,211,456(2^128)개의 주소가 존재한다. 주소 고갈 문제를 해결하기 위해 도입되었으며, 더 많은 고유한 주소를 제공한다.

네트워크 계층의 흐름 제어

  • 라우팅 알고리즘 네트워크 계층은 라우팅 알고리즘을 사용하여 패킷이 출발지에서 목적지로 가는 최적의 경로를 결정한다. 이를 통해 패킷이 최적의 경로로 전송되어 전체 네트워크의 효율성을 향상시킨다.

  • TTL(Time to Live) 패킷이 라우터를 통해 전달될 때마다 TTL 필드를 감소시킨다. TTL 값이 0이 되면 패킷은 버려지고, 이를 통해 라우팅 루프와 같은 문제를 방지한다.

  • Fragmentation (패킷 분할): 데이터 링크 계층에서 전송할 수 있는 최대 크기의 패킷보다 큰 데이터를 작은 패킷으로 분할합니다. 이를 통해 큰 데이터도 전송할 수 있으며, 네트워크 상황에 맞게 패킷을 전송합니다.

네트워크 계층에서는 오류가 발생한 패킷을 검출하고, 필요에 따라 오류 복구를 수행한다.

라우팅 루프

라우팅 루프는 네트워크 상에서 라우팅 경로 정보가 잘못되거나 라우팅 프로토콜이 제대로 작동하지 않을 때 발생한다. 이로 인해 패킷이 무한히 네트워크를 순환하며 목적지에 도달하지 못하게 되는 상황을 의미한다.

라우팅 루프가 발생하는 주요 원인은 다음과 같다

  • 잘못된 라우팅 테이블 엔트리: 라우터의 라우팅 테이블에 잘못된 경로 정보가 들어가면 패킷이 올바른 경로를 찾지 못하고 무한히 루프를 돌 수 있다.

  • 동적 라우팅 프로토콜 문제: 네트워크에서 사용하는 동적 라우팅 프로토콜들(예: OSPF, RIP 등)이 잘못 구성되거나 정확한 라우팅 정보를 서로 교환하지 못하면 라우팅 루프가 발생할 수 있다.

  • 링크 상태 문제: 라우터 간의 링크 상태가 변경되거나 링크에 문제가 발생하면 라우팅 경로 정보가 올바르게 전달되지 않아 루프가 발생할 수 있다.

  • 라우팅 프로토콜 수렴 시간: 라우팅 프로토콜은 네트워크 상태가 변경되면 해당 정보를 전파하고 수렴하는 시간이 필요하다. 이러한 수렴 시간 동안 잘못된 경로 정보가 사용될 수 있어 라우팅 루프가 발생할 수 있다.

Leave a comment