3계층: 네트워크 계층

특징

  • 자신이 속한 네트워크와 원격지 네트워크를 구분할 수 있고 원격지 네트워크를 가려면 어디로 가야 하는지 최적의 경로를 지정한다.

  • 호스트 간의 통신을 담당하여 IP 주소를 기반으로 패킷을 전달하는 계층이다.

IP

  • 사용자가 환경에 맞게 변경해 사용 가능하며, 네트워크 주소 부분과 호스트 주소 부분으로 나뉜다.

  • LAN 구간(라우터와 PC 의 연결구간)과 WAN 구간(라우터와 라우터 연결 구간)을 연결해준다.

  • 네트워크 계층의 프로토콜

    • IP: v4, v6 보유

    • ARP: IP 주소를 기반으로 MAC 주소 찾을 때 사용

    • RARP: MAC 주소 기반으로 IP 주소 찾을 때 사용

  • IP는 v4, v6 두 체계가 존재한다.

IPv4

  • 32비트의 10진수 4자리로 표현된다.

  • IPv4 주소 표기 시 4개의 옥텟(8비트) 단위로 나누고, 각 옥텟은 .으로 구분한다.

  • 아래 그림과 같이 네트워크 주소와 호스트 주소 부분으로 나뉜다. 하지만 나누는 경계 부분이 항상 고정되어 있지 않다. 즉, 아래는 16비트씩 나뉘었지만, 27비트와 5비트로 나뉠 수도 있다는 것이다.

    • 네트워크 주소: 호스트들을 모은 네트워크를 지칭한다. 네트워크 주소가 동일한 네트워크를 로컬으로 간주한다.

    • 호스트 주소: 한 네트워크에 존재하는 호스트를 구분하기 위한 주소이다.

클래스

  • 필요한 호스트 IP 개수에 따라 네트워크의 크기를 다르게 할당하기 위해 도입한 개념

  • 과거에 사용했던 개념이므로 현재는 클래스 기반으로 네트워크를 분할하지 않는다.

  • A 클래스

    • 가장 큰 주소 범위를 가지며, 첫 옥텟의 첫번째 비트가 0이어야 한다. (00000000 ~ 01111111 = 0 ~ 127 ⇒ 1 ~ 126)

      127은 루프백 주소로 사용하고, 0 역시 특별하게 미리 할당되어 있으므로 제외한다.

    • 첫 번째 옥텟에 네트워크 주소와 호스트 주소를 나누는 구분자가 있다.

    • 네트워크는 2^8 만큼 가질 수 있고, 각 네트워크마다 호스트는 2^24 만큼 가질 수 있다.

  • B 클래스

    • 첫 옥텟의 시작이 10이어야 한다. (10000000 ~ 10111111 = 128 ~ 191)

    • 두 번째 옥텟에 네트워크 주소와 호스트 주소를 나누는 구분자가 있다.

    • 네트워크는 2^16 만큼 가질 수 있고, 각 네트워크마다 호스트는 2^16 만큼 가질 수 있다.

  • C 클래스

    • 첫 옥텟의 시작이 110이어야 한다. (11000000 ~ 11011111 = 192 ~ 223)

    • 세 번째 옥텟에 네트워크 주소와 호스트 주소를 나누는 구분자가 있다.

    • 네트워크는 2^24 만큼 가질 수 있고, 각 네트워크마다 호스트는 2^8 만큼 가질 수 있다.

  • D 클래스

    • 멀티 캐스트

  • E 클래스

    • 예약된 클래스

클래스 풀

  • 클래스 기반의 IP 주소 체계

  • 네트워크 주소와 호스트 주소를 구분짓는 구분자인 서브넷 마스크 개념이 따로 필요 없다.

  • 맨 앞자리 주소만을 보고 어떤 클래스에 속하는지 확인 가능하다.

클래스리스

  • 인터넷에 연결되는 호스트 숫자가 늘어나면서 기존 클래스 체계로는 IP 주소가 부족해졌다.

  • 한 클래스 네트워크가 특정 회사에 할당되면, 사용하지 않는 IP가 있더라도 다른 네트워크에서 사용할 수 없다.

  • IP 주소 부족과 낭비 문제를 해결하기 위해 3가지 보존, 전환전략을 만들어냈다.

    • 클래스리스, CIDR(Classless Inter-Domain Routing) 기반의 주소 체계

    • NAT와 사설 IP 주소

    • IPv6

  • 클래스 개념을 없애고 네트워크와 호스트 주소를 나누는 구분자인 서브넷 마스크를 사용한다.

  • 서브넷 마스크

    • 네트워크 주소 부분을 1로, 호스트 주소 부분을 0으로 표현한다.

    • 예를 들어 IP가 103.9.32.146이고 255.255.255.0이 서브넷 마스크라면, 네트워크 주소는 103.9.32.0 이고, 호스트 주소는 0.0.0.146이 된다.

    • 비트 단위로 표현하는 방법이 있는데, 1 부분이 연속된 자릿수를 표현하면 된다. A 클래스를 서브넷 마스크로 나타내면 첫 번째 옥텟이 1, 나머지 옥텟이 0이므로 /8이고, B 클래스는 /16, C 클래스는 /24이다.

    • 서브넷 마스크는 특정 IP가 자신이 속한 네트워크 내에 있는지 확인할 때에 사용된다.

서브넷팅

  • 원래 부여된 클래스의 기준을 무시하고 새로운 네트워크-호스트 구분 기준을 사용자가 정해 원래 클래스풀 단위의 네트워크보다 더 쪼개 사용하는 방식이다.

  • 네트워크 설계자가 네트워크를 효율적으로 어떻게 분할할 것인지 계획하는 경우, 이미 분할된 네트워크에서 사용자가 자신의 네트워크와 원격지 네트워크를 구분해야 하는 경우 서브넷팅에 대한 고려가 필요하다.

  • 네트워크 사용자 입장

    • 해당 네트워크에서 사용할 수 있는 IP 주소 범위를 파악하여 자신이 속한 네트워크와 원격 네트워크를 구분하는 용도로 서브넷팅을 사용할 수 있다.

    • 자신이 속한 네트워크의 유효 범위를 파악하려면 내 IP와 서브넷 마스크를 이진수로 만들고 AND 연산을 통해 서브네팅된 네트워크 주소를 알아낸다. 호스트 주소 부분의 이진수를 모두 1로 변경하여 브로드캐스트 주소를 알 수 있다.

    • 혹은 현재 서브넷이 가질 수 있는 최대 IP 개수를 파악하고, 해당 IP 개수를 배수로 나열해 기준이 되는 네트워크 주소를 파악할 수 있다.

      • 예를 들어 103.9.32.146/26이면, 2^6만큼 IP를 가질 수 있다. 64씩 범위를 나누면 0~63 / 64~127 / 128~191 / 192~255 중 146은 128~191 범위에 속하므로, 해당 네트워크는 103.9.32.128~ 103.9.32.191 범위를 가진다.

  • 네트워크 설계자 입장

    • 서브넷된 하나의 네트워크에 IP를 몇 개나 할당해야 하는지, 서브넷된 네트워크가 몇 개 필요한지에 따라 서브넷 마스크를 결정해야 한다.

    • 네트워크 크기가 달라지는 공인 IP 대신 사설 IP를 사용하여 일정 크기로 대역을 잡고, 10진수로 표현해도 쉽게 이해할 수 있는 C 클래스 단위인 24비트로 쪼개 할당하는 것이 좋다.

    • 네트워크를 잘 설계하면 관리도 쉽고 성능도 향상된다. 라우터가 관리하는 경로가 적고 관리하기 쉽게 설계해야 한다.

공인 IP / 사설 IP

  • 공인 IP

    • 통신사업자로부터 IP 주소를 할당받거나

    • 인터넷에서 유일하게 사용되므로 사용할 수 있는 IP 수가 제한되어 있다.

    • 할당받은 IP를 사용하지 않는 경우 IP 할당기관이 회수한다.

  • 사설 IP

    • 인터넷 연결 없이 개인적으로 네트워크를 구성할 때 사용된다.

    • 내부적으로만 사용하므로 제한 없이 큰 네트워크를 사용할 수 있다.

    • 인터넷에 연결하려면 NAT 장비를 통해 공인 IP로 변경해 통신해야 한다.

    • 사설 IP 대역으로는 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16을 사용할 수 있다. 즉, A 클래스는 1개 네트워크, B 클래스는 16개 네트워크, C 클래스는 256개 네트워크를 사용 가능하다.

    • 모바일 디바이스는 B 클래스를 이용해 테더링 기능을 제공한다.

  • Bogon IP

    • IP 주소를 할당하는 최상위 기구인 IANA가 여러 가지 목적으로 예약해놓아 공인 IP로 할당하지 않는 주소

    • Bogon IP 대역의 주소를 사용한 통신 시도가 있었다면 해킹을 목적으로 IP를 스푸핑하거나 실수로 할당된 것이므로 적절히 필터링해야 한다.

장비

라우터

  • IP 주소를 사용해 최적의 경로를 찾아 패킷을 전송하는 역할을 하는 장비이다.

  • 최적의 경로는 라우터 프로토콜에 따라 정해진다.

  • 라우터는 LAN 구간의 통신을 위해 MAC 주소를 보유한다.

  • 논리적 링크와 물리적 링크를 함께 사용한다.

  • 원격지로 쓸데없는 패킷이 전송되지 않도록 브로드캐스트와 멀티캐스트를 컨트롤하고 불분명한 주소로 통신을 시도할 경우, 이를 버린다. 정확한 방향으로 패킷이 전송되도록 경로를 지정하고 최적의 경로로 패킷을 포워딩한다.

동작 방식

  • 경로 지정

    • 다양한 경로 정보를 수집해 최적의 경로를 라우팅 테이블에 저장한 후, 패킷이 라우터로 들어오면 도착지 IP 주소와 라우팅 테이블을 비교해 최선의 경로로 패킷을 내보낸다.

    • IP 주소를 확인해 원격지에 있는 적절한 경로로 패킷을 포워딩한다.

  • 브로드캐스트 컨트롤

    • 스위치는 패킷의 도착지 주소를 모르는 경우 패킷을 모든 포트로 플러딩해 전송한다.

    • LAN은 네트워크 크기가 작아 플러딩에 대한 영향이 적고 도착지 NIC에서 자신의 주소와 패킷의 도착지 주소가 다르면 패킷을 버리므로 네트워크에 큰 무리를 주지 않는다.

    • 인터넷 연결은 대부분 지정된 대역폭만 빌려 사용하므로 쓸모없는 통신이 네트워크를 차지하는 것을 최대한 막기 위해 분명한 도착지가 있는 경우에만 통신을 허락한다. LAN 처럼 플러딩하다보면 인터넷에 쓸모 없는 패킷이 가득찰 수 있다.

    • 라우터는 바로 연결되어 있는

    • 들어온 패킷의 목적지 주소가 라우팅 테이블에 없으면 패킷을 버린다.

  • 프로토콜 변환

    • 기존 2계층 헤더 정보를 제거한 후 새로운 2계층 헤더를 만들어낸다.

L3 스위치

  • 라우터처럼 3계층에서 동작하는 스위치

  • 기존에 라우터는 소프트웨어로 구현되고 스위치는 하드웨어로 구현되는 형태였거나, 라우터는 다양한 기능을 갖고 스위치는 패킷을 빨리 보내는 형태였지만, 현재는 기술 발달로 구분하기 어려워진 상태이다.

경로 지정

게이트웨이

  • 로컬 네트워크 사이의 통신을 넘어 원격 네트워크와 통신을 가능하게 해주기 위한 장비이다.

  • 여러 네트워크와 연결되면서 적절한 경로를 지정해주는 역할을 한다.

  • 원격지 통신을 수행할 경우 도착지 MAC 주소와 도착지 IP 주소가 동일하지 않다. 도착지 IP 주소는 통신의 실제 도착지이고 도착지 MAC 주소는 디폴트 게이트웨이의 MAC 주소가 사용된다.

Last updated