net(4)

혼자공부하는 네트워크 3장 ( 128p ~ 190p)

OSI 7계층 복습

계층 계층 이름 PDU(데이터 단위)
1계층 물리 계층 (Physical Layer) Bits (비트)
2계층 데이터 링크 계층 (Data Link Layer) Frame (프레임)
3계층 네트워크 계층 (Network Layer) Packet (패킷)
4계층 전송 계층 (Transport Layer) Segment (세그먼트, TCP)
Datagram (UDP)
5계층 세션 계층 (Session Layer) Data (혹은 Message)
6계층 표현 계층 (Presentation Layer) Data (혹은 Message)
7계층 응용 계층 (Application Layer) Data (혹은 Message)

567을 뭉뚱그려 응용계층이라고도 함(인터넷 5계층)

03-1 LAN을 넘어서는 네트워크 계층

2장까지 내용은 LAN정도에서 동작한다.

데이터링크 계층의 한계

MAC주소까지의 2계층까지는 앞으로 LAN을 넘은 범위의 통신에 제약이 있다.

첫째, 물리 계층과 데이터링크 계층만으로는 다른 네트워크까지의 도달경로를 파악하기 어렵다.

LAN A-> LAN B 를 위해 통신할때 최적의 경로로 패킷 이동을 정하는 것을 라우팅이라고 한다. 1,2계층 장비로는 라우팅을 수행할수없지만, 3계층의 라우터 부터는 라우팅이 가능하다.

            전공과목에서 end-to-end를 하는 계층이 3계층부터이기 때문임.
            2계층 : Node-to-Node
            3계층 : HOst to Host
            4계층 : end to end(프로세스 to 프로세스)

둘째, MAC만으로는 모든 네트워크에 속한 호스트의 위치를 특정하기 어렵다.

모든 호스트가 모든 네트워크에 속한 모든 호스트의 MAC주소를 서로 알고있기란 현실적으로 어렵다.

택배의 수신인, 수신지에 대하여 수신인이 MAC주소고 수신지가 IP주소다.

MAC주소가 물리주소라면, IP주소는 논리 주소다. MAC은 NIC마다 할당된 고정주소지만 IP주소는 할당이 가능하다.

DHCP라는 포로토콜을 통해 자동으로 할당받거나 사용자가 할당할 수 있다. 한 호스트가 복수의 IP주소를 가질수도 있다.

인터넷 프로토콜 IP

IP주소 형태

IP주소는 32비트로 표현할 수 있고, 숫자당 8비트이므로 0~255를 4개 10진수로 표기한다.

점으로 구분된 8비트 범위의 10진수를 옥텟 이라고 한다.

IP의 기능

대표적으로 IP주소 지정IP단편화 이다.

IPv4를 정의한 RFC 791에 명시되어있다.

  • IP 주소 지정 : IP주소로 송수신 대상을 지정하는 것이다.
  • IP단편화는 전송하는 패킷이 MTU보다 크면 복수의 패킷으로 나누는 것이다.

MTU(Maximum Transmission Unit), 보통 1500Byte

IPv4

-1. 식별자

단편화로 나뉜 패킷들을 재조합 할때, 어떤 메세지에서부터 쪼개졌는지 보기위한 것.

-2. 플래그

총 3개의 비트로 구성된 필드. DF(Don’t Fragment) 단편화를 수행하지 말라. MF(More Fragment), 단편화된 패킷이 더 있는지. 0이면 이게 마지막. 나머지 하나는 미사용 0

-3. 단편화 오프셋

패킷이 단편화 되기 전에, 패킷의 초기 데이터에서 몇번째로 떨어진 패킷인지. 재조합할때 순서를 위한 것.

-4. TTL

TimeToLive, 라우터 하나를 거칠때마다 TTL이 1씩 감소한다.

패킷이 호스트에서 라우터에 한번 전달되는 것을 이라고 한다. 홉마다 1씩 감소하며, 무의미한 패킷이 네트워크를 떠도는 것을 방지.

-5. 프로토콜

상위 계층의 프로토콜이 뭔지 나타낸다. TCP면 6, UDP면 17번

-6 송수신지 IP주소

말그대로

IPv6

이론상 IPv4의 주소 개수는 43억개다. 고갈이 쉽게 되므로 도입되었다.

16Byte=128비트로 나타내며 2^128이므로 사실상 무한하다.

  1. 다음 헤더

상위 계층의 프로토콜을 가리키거나 확장 헤더를 가리킨다.

확장헤더란? 추가적인 헤더정보가 필요할 경우 추가 헤더를 가질 수 있다.

  1. 홉 제한

TTL과 비슷하다.

  1. 송수신지 IP주소

IPv4 헤더는 가변적이다.(옵션과 패딩 필드는 선택이라) IPv6는 40바이트로 고정적이다.

ARP

MAC주소와 IP주소는 함꼐 사용하지만, 기본적으로는 IP주소를 사용한다. 이 과정에서, 상대 IP주소는 알지만, MAC주소는 모르는 상황이 생긴다. 이때 ARP를 쓴다.

ARP(Address Resolution Protocol)는 IP주소를 통해 MAC주소를 알아내는 프로토콜이다. 동일 네트워크의 송수신대상의 IP주소를 통해 MAC주소를 알아낼 수 있다.

  1. ARP 요청

송신자가 나 수신자IP주소와 통신하고싶은데 아는사람? 하고 브로드 캐스팅 한다.

  1. ARP 응답

나머지는 무시하고 수신자는 유니캐스트로 송신자에게 자기 MAC주소를 보낸다.

  1. ARP 테이블 갱신

ARP를 활용할 수 잇는 모든 호스트는 ARP테이블을 유지한다. IP주소와 MAC을 대응하는 표다.


만약 다른 네트워크에 속해있으면 어떻게 될까

송신-라우터1 네트워크1 라우터1-라우터2 네트워크2 라우터2-수신 네트워크3

각 네트워크에서 ARP를 통해 알고, 송신->수신으로 전달한다. 물론 간략화된 예시고, 실제로는 ARP만 사용하지는 않는다.

    IP단편화를 피하는 방법

    IP단편화가 될수록 헤더가 증가. 따라서 불필요한 트래픽 증가와 대역폭 낭비. 따라서 안할수록 좋다.
    결국 전송경로상의 MTU의 최소값을 따라 결정되는데, 이걸 경로MTU라고 한다. 경로 MTU만큼의 데이터를 전송하면 단편화가 안생긴다.

03-2 IP주소

IP주소는 네트워크 주소와 호스트 주소로 나뉜다.

네트워크 주소와 호스트 주소

1.2.3.4라면, 1.2가 네트워크 주소, 3.4가 호스트 주소라면 호스트가 어디에 속했는지, 후자는 그 부분 네트워크 속에서 어디에 있는지.

이것들을 할당하는건 방법이 다르다.

이런 고민을 해결하기위해 생겨난게 Class다.

ClassFUL 주소 체계

A클래스, 1옥텟 0으로 시작 (2^7=128개의 네트워크, 2^24개의 호스트 주소, 첫 주소가 0~127) B클래스 2옥텟 10으로 시작,(2^14=16384개의 네트워크 주소, 첫 주소가 128~191) C클래스 3옥텟 110으로 시작(2^21=2097152개의 네트워크 주소)

ClassLESS 주소 체계

Classful의 한계는 클래스별로 네트워크 크기가 고정되어있어 다수의 IP주소가 낭비될 수 있다.

더 정교한게 Class Less

오늘날 주로 사용된다.

클래스 리스에서는 네트워크 주소와 호스트 주소를 구분하는게 임의의 지점이므로, 서브넷 마스크를 도입했다.

서브넷 마스크

IP주소상에서 네트워크는 1, 호스트 주소는 0으로 표기한 비트맵을 의미한다.

클래스풀 주소체계로 치면, A,B,C클래스의 기본 서브넷 마스크는 다음과 같다.

A-255.0.0.0 (11111111.00000000.00000000.00000000) B-255.255.0.0 (11111111.11111111.00000000.00000000)

서브네팅 : 비트 AND연산

IP주소와 서브넷마스크를 AND해서 네트워크 주소를 찾는다.

서브넷 마스크 표기 : CIDR 표기법

표기법이 2가지다.

  1. 서브넷 마스크를 255.255.255.0과 같이 표기
  2. IP주소/(1의 개수)로 표기 2번 표기법을 CIDR 표기법 이라고 한다.

255.255.255.0이면 1.23.3.4/24

공인 IP주소와 사설 IP주소

IP주소는 유일한 주소가 아니다. 근데 반만 그렇고, 고유한 IP주소도 있고 아닌 주소도 있다.

공인 IP 주소

전세계에서 고유한 IP주소. 네트워크간의 통신, 예를들어 인터넷을 이용할때 사용하는 IP주소가 공인 IP주소다. ISP나 공인 IP주소 할당기관을 통해 할당받을 수 있다.

사설 IP주소와 NAT

사설 네트워크에서 쓰는 IP주소.

할당주체는 보통 라우터

그래서 사설 IP주소를 쓰는 호스트가 외부 네트워크와 통신하려면 NAT(Network Address Translation)로 IP주소를 변환해야 한다.

대부분의 라우터와 공유기는 NAT기능을 내장하고있다.

정적 IP주소와 동적 IP주소

호스트에 IP주소를 할당하는 방법이 2가지다. 정적할당은 수동으로 하고, 동적할당은 DHCP프로토콜로 한다.

정적 할당

일반적으로 부여하고자 하는 IP주소, 서브넷 마스크, 게이트웨이(라우터) 주소, DNS 주소를 입력한다.

    여기서 잠깐, 기본 게이트웨이

    호스트가 속한 네트워크 외부로 나가기 위한 기본적인 첫 경로(첫번째 홉)을 의미한다.
    그래서 기본 게이트웨이는 네트워크 외부와 연결된 라우터의 주소를 의미하는 경우가 많다.

동적 할당과 DHCP

정적으로만 할당하면 호스트 수가 많아질경우 관리가 곤란하다.

동적 IP주소는 안쓰면 회수하고, 할당마다 다른 주소를 받을 수 있다.

대표적으로 DHCP(Dynamic Host Configuration Protocol)이다. 사실 응용-7계층 이다.

DHCP를 통한 IP 주소할당은 IP주소를 받고자 하는 호스트(클라이언트)와 해당 호스트에게 주소를 제공하는 DHCP서버간에 통신으로 진행된다.

DHCP서버 역할은 일반적으로 라우터가 수행하지만, 특정 호스트에 DHCP 기능을 추가할 수 있다.

DHCP서버는 할당가능한 IP주소목록을 관리하다가 클라이언트 요청시 할당한다.

DHCP IP주소는 수 시간~ 수일간의 임대기간이 있다.

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

  1. DHCP Discover(클라이언트->DHCP서버)
  • 클라이언트가 브로드캐스트로 DHCP 서버를 찾는다. 이때 송신지 주소는 0.0.0.0으로 보내진다.
  1. DHCP Offer(DHCP서버 -> 클라이언트)
  • DHCP서버는 클라이언트에게 DHCP Offer 메세지를 보낸다. 클라이언트에게 IP주소를 제안한다. (+ 서브넷마스크, 임댁기간)
  1. DHCP Request(클라이언트->DHCP서버)
  • Offer에 대한 응답으로, 브로드 캐스트로 보내진다. 이거 써도 되지? 의미다.
  1. DHCP ACK(DHCP서버->클라이언트)
  • 최종 승인, 이제 클라이언트는 할당된 IP주소를 사용한다.

임대기간이 끝나서 IP주소가 반납되면 원칙적으로 다시 해서 재할당 해야한다. 그런데 임대기간을 갱신할 수도 있다. 기본적으로 두 차례 자동으로 수행되고, 이게 둘 다 실패하면 반납된다.

*** 질문

IP주소를 할당받는 과정에서 클라이언트와 DHCP 서버간의 메세지를 주고받고 있다. 다음 물음에 답하시오

꼬리질문

  1. DHCP는 몇계층 프로토콜일까? 애매하면 n 계층 이상이라고 답변

    정답 : 7계층

IP주소를 다루니까 적어도 2~3 쯤이란건 알겠는데, 왜 4계층 이상인가.

비슷한 시도로 RARP라는게 있었다. 2.5계층에서 이더넷 프레임으로 동작했는데, 아래와 같은 단점

  1. 서브넷마스크, 게이트웨이 주소, DNS서버 주소도 필요한데 헤더가 제한적임.
  2. 라우터 못벗어나서 LAN마다 RARP 따로 설정해야했음
  3. 커널영역이라 너무 고정적이고 구현이 어렵다.

-> 2계층이 아닌 이유 : 라우터를 넘어갈 수 없음. 따라서 각 서브네트워크의 라우터마다 DHCP서버를 둬야 하는데 이러면 상당한 비효율이므로 2계층에 두도록 설계하지 않았다.

-> 3계층이 아닌 이유 : DHCP가 하는일은 결국 클라이언트 호스트에게 IP주소할당, 서브넷마스크, 임대기간을 주는 서비스 업무. 그래서 3계층으로 구현하게 되면 커널단에 구현되고 어려워짐. 근데 그냥 하나의 프로세스 데몬처럼 생각하게 되면 구현이 쉬워진다. 그리고 애초에 3계층 자체가 host to host라서 이런 서비스와는 관심사가 다르다.

-> 그럼 왜 4계층 UDP인가 : port번호가 도입되어 DHCP 프로그램인지 다른 카톡 프로그램인지 구분이 된다. 그리고 브로드캐스트가 TCP는 안되고 UDP는 된다. 속도가 중요하므로 TCP는 더 안된다.

하여튼 질문

  1. DHCP는 몇계층 프로토콜일까
  2. DHCP가 데이터 전송시 사용하는 것은 뭘까. -1. 1계층 비트 -2. 2계층 프레임 -3. 3계층 IP 패킷 -4. 4계층 TCP -5. 4계층 UDP

그 이유도.

    예약주소

03-3 라우팅

패킷이 이동할 최적의 경로를 설정한 뒤 해당 경로로 패킷을 이동시키는 것을 라우팅 이라고 한다.

라우터

L3 스위치라고 부르는 장치는 네트워크-3계층의 대표장치지만, 라우터와 상당부분 유사하므로 굳이 구분하지 않는다.

라우터는 허브나 스위치보다 높은 계층이므로, 기능적으로 일반 컴퓨터와 유사하다.

가정환경에서는 공유기가 라우터의 역할을 대신한다. 공유기는 라우터기능 + DHCP서버기능 + NAT기능 + 보안을 위한 방화벽 기능도 한다.

라우팅 테이블

라우팅의 핵심이다. 라우팅 테이블에 있는 정보는 라우팅 방식에 따라, 호스트 환경에 따라 달라진다.

공통적인 핵심 정보는 다음과 같다.

  1. 수신지 IP주소와 서브넷 마스크 : 최종적으로 패킷을 전달할 대상
  2. 다음 홉 : 다음 호스트의 IP주소나 인터페이스, 게이트웨이 라고 명시되기도 하낟.
  3. 네트워크 인터페이스 : 패킷을 내보낼 통로, NIC이름이 명시되거나 인터페이스에 대응하는 IP주소
  4. 메트릭 : 해당 경로로 이동하는데 드는 비용. 메트릭이 낮은게 선호된다.

라우팅 테이블에 없는 경로로 보내야 할 경우, 디폴트 라우트 로 보낸다.

정적라우팅과 동적라우팅

라우팅 테이블을 만드는 방법에 따라 정적, 동적으로 나뉜다.

정적라우팅

사용자가 수동으로 직접 채워넣은 라우팅 테이블의 항목을 토대로 라우팅 되는 방식.

동적라우팅

자동으로 라우팅 테이블 항목을 만들고, 라우팅 하는 방식. 우회경로도 자동 갱신된다.

    여기서 잠깐, 라우터들의 집단 네트워크 AS

    동일한 라우팅 정책으로 운용되는 라우터들의 집단 네트워크를 AS(Autonomus System)이라고 한다.
    한 회사나 단체에서 관리하는 라우터 집단이라고 봐도 된다.

    AS경계에서 AS내외로 통신을 주고받을 수 있는 AS경계라우터(ASBR:Autonomous System Boundary Router)

라우팅 프로토콜

라우터끼리 자신들의 정보를 교환하여 패킷 최적경로를 찾기위한 프로토콜이다.

AS내부에서 수행되느냐 외부에서 수행되느냐에 따라 IGP, EGP로 나뉜다.

IGP:RIP와 OSPF

RIP : 거리벡터 기반의 라우팅 프로토콜, 거리 = 홉의 수.

인접한 라우터끼리 경로정보를 주기적으로 교환하며 라우팅 테이블을 갱신한다.

OSPF : 링크상태 라우팅 프로토콜, 현재 네트워크의 상태를 그래프의 형태로 링크 상태 데이터베이스(LSDB)에 저장한다.

대역폭을 기반으로 메트릭을 계산한다. 대역폭이 높은 링크일수록 메트릭이 낮다. 주기적으로 교환하는 RIP와 달리 네트워크 구성이 변경되면 라우팅 테이블이 갱신된다.

-> 네트워크 규모가 매우 커질경우 LSDB에 정보를 저장하기가 어렵다. -> AS를 Area라는 단위로 나누고, 구분된 Area내에서만 링크 상태를 공유한다. Area에는 번호가 부여되어 있으며, Area 경계에 있는 ABR(Area Border Router) 라는 라우터가 에어리어 간의 연결을 담당한다.

RIP와 OSPF를 모두 사용하는 고급 거리 벡터 라우팅 프로토콜 혹은 하이브리드 라우팅 프로토콜이 존재한다. EIGRP(Enhanced Interior Gateway Routing Protocol)

EGP:BGP

BGP(Border Gateway Protocol) AS간의 통신이 가능한 프로토콜. 따라서 BGP로 AS내 라우터간 통신도 가능하다.

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

AS간 정보를 주고받기 위해서는 AS 내에 eBGP를 사용하는 라우터가 하나 이상 있어야 하고, 또다른 AS의 eBGP 라우터와 연결되어야 한다. BGP 메시지를 주고받을 수 있도록 연결된 BGP라우터를 피어 Peer 라고 정의한다.

즉, 다른 AS와의 BGP연결을 위해서는 BGP라우터끼리 연결되어 피어가 되야 한다.

BGP는 RIP와 OSPF에 비해 경로 결정이 복잡하고 일정하지 않은 경우가 많다. 다양한 속성과 정책이 고려되기 떄문이다.

대표적인 속성으로 아래 3가지가 있다.

  1. AS-PATH 속성 메세지가 수신지에 이르는 과정에서 통과하는 AS들의 목록을 의미한다.

이 속성을 통해 엿볼수잇는 BGP(eBGP)의 특징이 2가지가 있다.

첫째, BGP는 AS간 라우팅을 할때 거치게 될 ‘라우터’의 수가 아닌 ‘AS’의 수를 고려한다.

그래서 AS-PATH가 짧더라도 라우터가 더 많을 수도 있다.

둘째, BGP는 RIP처럼 단순히 수신지에 이르는 ‘거리’가 아닌 메시지가 어디를 거쳐 어디로 이동하는지를 나타내는 ‘경로’를 고려한다.

이런점에서 BGP를 경로 벡터 라우팅 프로토콜의 일종이라 하기도 한다. 특히 경로를 고려하는 이유중 하나는 순환을 방지하기 위함이다. 순환이 감지되면 그 패킷을 버린다.

  1. NEXT-HOP 속성

다음 홉의 IP주소를 나타낸다.

  1. LOCAL-PREF 속성

지역 선호도. AS 외부 경로에 있어 AS 내부에서 어떤 경로를 선호할지에 대한 속성.

일반적으로 1, 2 보다 우선시된다. “비효율적일지라도 이 경로를 우선시 하겠다”

results matching ""

    No results matching ""