0207

학교

[컴퓨터 네트워크] Chapter 4. Networks Layer Data Plane (Part 2) - (2)

일자: 24-2 13주차 1차시**

[4] IP 주소 지정: 소개

  • IP 주소: 각 호스트 또는 라우터 인터페이스에 연결된 32비트 식별자

  • 인터페이스: 호스트/라우터와 물리적 링크 간의 연결

    • 라우터는 일반적으로 여러 인터페이스를 갖고 있음

    • 호스트는 일반적으로 하나 또는 두 개의 인터페이스를 가짐 (예: 유선 이더넷, 무선 802.11)

1) 점선 10진 IP 주소 표기법

2) 질문과 답변

Q: 인터페이스는 실제로 어떻게 연결되는가?
A: 그 부분은 6장에서 배우게 된다.
A: 유선 이더넷 인터페이스는 이더넷 스위치를 통해 연결된다.
A: 무선 WiFi 인터페이스는 WiFi 기지국을 통해 연결된다.

  • 지금은 한 인터페이스가 다른 인터페이스와 어떻게 연결되는지에 대해 걱정할 필요는 없다 (중간에 라우터가 없는 경우)

[5] 서브넷

: 3개의 서브넷으로 구성된 네트워크

1) 서브넷이란 무엇인가?

  • 물리적으로 서로 도달할 수 있는 장치 인터페이스들로, 중간 라우터를 통하지 않고 직접 연결된다.

2) IP 주소의 구조:

  • 서브넷 부분: 동일 서브넷에 속하는 장치들은 공통의 상위 비트를 가진다.

  • 호스트 부분: 나머지 하위 비트

3) 서브넷 정의 방법

: 서브넷 마스크 : /24 (상위 비트 : IP 주소의 서브넷 부분)

  • 각 인터페이스를 호스트나 라우터에서 분리하여 "섬"처럼 격리된 네트워크를 만든다.

  • 각 격리된 네트워크를 서브넷이라고 한다.

4) 질문

: 6개의 서브넷 존재

  • Q1. 서브넷들은 어디에 있는가?
    subnet 223.1.1/24 (상단)
    subnet 223.1.7/24 (우측)
    subnet 223.1.9/24 (좌측)
    subnet 223.1.2/24 (하단 좌측)
    subnet 223.1.8/24 (중앙)
    subnet 223.1.3/24 (하단 우측)

  • Q2. /24 서브넷 주소는 무엇인가?

223.1.1.0/24
223.1.7.0/24
223.1.9.0/24
223.1.2.0/24
223.1.8.0/24
223.1.3.0/24

[6] IP 주소 지정: CIDR

  • CIDR: Classless InterDomain Routing (발음: "사이더")

    • 주소의 서브넷 부분이 임의 길이를 가질 수 있음

    • 주소 형식: a.b.c.d/x, 여기서 x는 주소의 서브넷 부분에서 비트 수

[7] 연습문제

: 3개의 서브넷을 서로 연결하는 라우터를 고려하자: 서브넷 1, 서브넷 2, 서브넷 3. 각 서브넷의 모든 인터페이스는 223.1.17/24 접두어를 가져야 한다고 가정하자. 또한, 서브넷 1은 최대 62개의 인터페이스를 지원하고, 서브넷 2는 최대 106개의 인터페이스를 지원하며, 서브넷 3은 최대 15개의 인터페이스를 지원해야 한다고 가정하자. 이 제약을 만족하는 세 개의 네트워크 주소 (형식: a.b.c.d/x)를 제공하라.

1) 서브넷 2: 106개의 인터페이스 → 106 < 128=$2^7$ → 223.1.17.0 ~ 223.1.17.127
→ 하위 7비트 = 0000 00002 ~ 0111 1111 → 223.1.17.0/25
2) 서브넷 1: 62개의 인터페이스 → 62 < 64=$2^6$ → 223.1.17.128 ~ 223.1.17.191
→ 하위 6비트 = 1000 0002 ~ 1011 1111 → 223.1.17.128/26
3) 서브넷 3: 16개의 인터페이스 → 15 < 16=$2^4$ → 223.1.17.192 ~ 223.1.17.207
→ 하위 4비트 = 1100 00002 ~ 1100 1111 → 223.1.17.192/28

[8] IP 주소: 어떻게 얻을까?

1) 사실 이것은 두 가지 질문이다:

  1. Q: 호스트는 네트워크 내에서 어떻게 IP 주소를 얻는가? (주소의 호스트 부분)

  2. Q: 네트워크는 어떻게 자신을 위한 IP 주소를 얻는가? (주소의 네트워크 부분)

2) 호스트는 어떻게 IP 주소를 얻는가?

  • 시스템 관리자가 설정 파일에 하드코딩 (예: UNIX의 /etc/rc.config)

  • DHCP(동적 호스트 구성 프로토콜): 네트워크 서버로부터 동적으로 주소를 받는다.

    • "플러그 앤 플레이"

[9] DHCP: 동적 호스트 구성 프로토콜

1) 목표

: 호스트는 네트워크에 "참여"할 때 네트워크 서버로부터 IP 주소를 동적으로 받는다.

  • 사용 중인 주소에 대한 임대 연장(renew)을 할 수 있다.

  • 주소 재사용을 허용 (연결되어 있는 동안만 주소를 유지)

  • 네트워크에 참여하고 떠나는 모바일 사용자를 지원

2) DHCP 개요 (4개의 step)

  • 호스트는 DHCP 발견(discover) 메시지브로드캐스트 한다 [선택 사항]

  • DHCP 서버는 DHCP 제안(offer) 메시지응답한다 [선택 사항]

  • 호스트는 IP 주소를 요청한다: DHCP 요청(request) 메시지

  • DHCP 서버는 주소를 보낸다: DHCP 확인(ack) 메시지

[10] DHCP 클라이언트-서버 시나리오

: 동일한 서브넷을 갖고 있다.

  • 일반적으로, DHCP 서버는 라우터에 위치하며, 라우터가 연결된 모든 서브넷에 서비스를 제공한다.

1) 서버, 클라이언트

(1) broadcast

  • Broadcast : is there a DHCP server out there?

  • Boradcast : I'm a DHCP server! Here's an IP address you can use

  • Broadcast : OK. I would like to use this Ip address!

  • Boradcast : Ok. Your've got that IP address

(2) 4단계 프로세스 (DHCP 메시지의 흐름)

  1. DHCP Discover (클라이언트 → 브로드캐스트)

    • 클라이언트는 네트워크에 연결되자마자 "사용 가능한 DHCP 서버가 있나요?"라는 브로드캐스트 메시지를 보낸다.

    • 목적: DHCP 서버를 찾기 위함.

  2. DHCP Offer (서버 → 브로드캐스트)

    • DHCP 서버는 "나는 DHCP 서버이고, 이 IP를 사용할 수 있습니다!"라는 메시지를 클라이언트에게 보낸다.

    • 클라이언트가 사용할 수 있는 임시 IP 주소와 네트워크 설정 정보를 제공한다.

  3. DHCP Request (클라이언트 → 브로드캐스트)

    • 클라이언트는 DHCP 서버로부터 받은 IP 중 하나를 선택하여 "이 IP를 사용하고 싶습니다!"라는 메시지를 보낸다.

    • 클라이언트는 자신의 MAC 주소를 포함해 요청을 보낸다.

  4. DHCP ACK (서버 → 브로드캐스트)

    • DHCP 서버는 요청을 확인하고 "이제 이 IP를 사용할 수 있습니 다"라는 확인 메시지를 보낸다.

    • 이후, 클라이언트는 해당 IP를 자신의 네트워크 설정에 적용한다.

“클라이언트가 이전에 할당된 네트워크 주소를 기억하고 재사용하고자 하는 경우” 위의 두 단계를 건너뛸 수 있습니다 [RFC 2131].

  • 클라이언트가 이전에 사용했던 IP 주소를 기억하고 있고, 여전히 그 IP 주소를 사용할 수 있는 상황이라면, 초기의 DHCP Discover와 DHCP Offer 단계를 생략할 수 있다.

  • 이 경우, 클라이언트는 바로 DHCP Request 메시지를 보내고, 서버가 DHCP ACK로 응답하면 과정을 완료한다.

  • 이 방식은 네트워크 부하를 줄이는 데 유용하다.

[11] DHCP: IP 주소 이상의 것

  • DHCP는 서브넷에서 할당된 IP 주소 외에도 더 많은 정보를 반환할 수 있다

    • 클라이언트의 첫 번째 홉 라우터 주소

    • DNS 서버의 이름과 IP 주소

    • 네트워크 마스크 (주소의 네트워크 부분과 호스트 부분을 구별)

[12] DHCP: 예시

  • 랩탑을 연결하면 DHCP를 사용하여 IP 주소, 첫 번째 홉 라우터 주소, DNS 서버 주소를 받는다.

  • DHCP 요청 메시지는 UDP로 캡슐화되어 IP로 캡슐화되고, 이더넷으로 캡슐화된다.

  • 이더넷 프레임은 LAN에서 브로드캐스트 (목적지: FFFFFFFFFFFF) 되어 DHCP 서버가 실행 중인 라우터에서 수신된다.

  • 이더넷은 IP로, IP는 UDP로, UDP는 DHCP디멀티플렉스된다.

  • DHCP 서버는 DHCP 확인 메시지클라이언트의 IP 주소, 첫 번째 홉 라우터의 IP 주소, DNS 서버의 이름과 IP 주소를 포함시킨다.

  • 캡슐화된 DHCP 서버 응답은 클라이언트로 전달되고, 클라이언트는 DHCP를 통해 이를 디멀티플렉스한다.

  • 클라이언트는 이제 자신의 IP 주소, DNS 서버의 이름과 IP 주소, 첫 번째 홉 라우터의 IP 주소를 알게 된다.

[13] IP 주소: 어떻게 얻는가?

Q: 네트워크는 IP 주소의 서브넷 부분을 어떻게 얻는가?
A: 제공 ISP의 주소 공간 일부를 할당받는다.

1) ISP는 자신의 주소 공간을 8개의 블록으로 나눠 할당할 수 있다:

  • 우측 3개의 bit를 제외한 왼쪽의 모든 비트는 동일하다.: 8개의 블록으로 나누므로 $2^3 = 8$에 의해 3개의 비트를 사용한다.

  • subnet mask가 23인 이유는 3개의 비트가 추가되었기 때문에 20+3 = 23 이 된다.

[14-1] 계층적 주소 지정: 경로 통합

  • 계층적 주소 지정은 라우팅 정보의 효율적인 광고를 가능하게 한다:

  • 'Fly-By-Night-ISP'의 경우에는 8개의 broadcast로 되어 있고, 200.23.16.0/20의 주소를 따르게 된다.

  • 이를 통해서 Internet에 접근한다.

  • ISPs-R-US의 경우에는 199.31.0.0/16 주소를 따른다.

[14-2] 계층적 주소 지정: 더 구체적인 경로

  • 조직 1이 Fly-By-Night-ISP에서 ISPs-R-Us로 이동한다.

  • ISPs-R-Us는 이제 조직 1에 대한 더 구체적인 경로를 광고한다.

1) 조직 1의 ISP 변경

  1. 이전 상황
    : 조직 1은 Fly-By-Night-ISP에 연결되어 있었으며, Fly-By-Night-ISP가 조직 1의 IP 주소 대역을 처리했다.
    Fly-By-Night-ISP는 상위 ISP인 ISPs-R-Us에 조직 1의 IP 주소 대역에 대한 경로를 광고했을 것이다.
    따라서, ISPs-R-Us는 조직 1의 IP 주소 대역에 대해 알 필요가 없었으며, Fly-By-Night-ISP만 경로를 처리했다.

  2. ISP 변경
    조직 1이 Fly-By-Night-ISP에서 ISPs-R-Us로 직접 연결되면서 상황이 바뀌었다.
    조직 1은 더 이상 Fly-By-Night-ISP를 통해 라우팅되지 않는다.
    ISPs-R-Us는 조직 1의 IP 주소 대역을 직접 처리하게 되었다.

2) 요약

  • 조직 1이 ISPs-R-Us로 이전하면서, ISPs-R-Us는 이제 조직 1의 트래픽을 직접 처리해야 하므로 조직 1의 IP 주소 대역(더 구체적인 경로)을 알게 된다.

  • ISPs-R-Us는 이를 기반으로 상위 ISP 또는 다른 네트워크에 새로운 경로 광고를 하여 인터넷 상에서 올바른 라우팅이 이루어지도록 한다.

[14-3] 계층적 주소 지정: 더 구체적인 경로

  • 조직 1이 Fly-By-Night-ISP에서 ISPs-R-Us로 이동한다.

  • ISPs-R-Us는 이제 조직 1에 대한 더 구체적인 경로를 광고한다.

[15] IP 주소: 마지막 이야기...

Q: ISP는 주소 블록을 어떻게 얻는가?
A:ICANN: 인터넷 할당 이름 및 번호 관리 회사 (http://www.icann.org/ )

  • 5개 지역 등록 기관(RRs)을 통해 IP 주소를 할당함 (지역 등록 기관은 로컬 등록 기관에 다시 할당 가능)

  • 개별 TLD(.com, .edu 등) 관리를 포함해 DNS 루트 영역을 관리

Q: 32비트 IP 주소는 충분한가?

  • ICANN은 2011년에 IPv4 주소의 마지막 블록을 지역 등록 기관에 할당했음

  • NAT(다음 장에서 설명) 기술은 IPv4 주소 고갈 문제를 완화

  • IPv6는 128비트 주소 공간을 제공

"누가 우리가 얼마나 많은 주소 공간이 필요한지 알았겠는가?"

  • 빈트 서프 (IPv4 주소를 32비트로 결정한 것에 대한 회상)


3. IP: 인터넷 프로토콜

  • 데이터그램 포맷

  • 주소 지정

  • 네트워크 주소 변환(NAT)

  • IPv6

[1] NAT: 네트워크 주소 변환

  • NAT(Network Address Translation) : 로컬 네트워크 내의 모든 기기가 외부 세계에서 볼 때 하나의 IPv4 주소만 공유한다.

1) 인터넷 나머지 부분 - (Public)

: 로컬 네트워크를 떠나는 모든 데이터그램은 동일한 출발지 NAT IP 주소(138.76.29.7)를 가지지만, 서로 다른 출발지 포트 번호를 가진다.

2) 로컬 네트워크(예: 가정 네트워크) 10.0.0/24 - (Private)

: 이 네트워크에서 출발지 또는 목적지를 가지는 데이터그램은 출발지와 목적지로 10.0.0/24 주소를 사용한다(일반적인 방식처럼).

[2] NAT: 네트워크 주소 변환

  • 로컬 네트워크의 모든 기기는 로컬 네트워크에서만 사용 가능한 "사설" IP 주소 공간(10/8, 172.16/12, 192.168/16 프리픽스) 내에서 32비트 주소를 가진다.

    • 10.0.0.0/8

    • 172.16.0.0/12

    • 192.168.0.0/16

  • 장점:

    • 모든 기기를 위해 제공 ISP로부터 하나의 IP 주소만 필요하다.

    • 로컬 네트워크 내 호스트의 주소를 외부 세계에 알리지 않고 변경할 수 있다.

    • ISP를 변경해도 로컬 네트워크 내 기기의 주소를 바꿀 필요가 없다.

    • 보안: 로컬 네트워크 내부의 기기가 외부 세계에서 직접 주소 지정되거나 가시화되지 않는다.

[3-1] NAT: 네트워크 주소 변환

1) 구현: NAT 라우터는 (투명하게) 다음을 수행해야 한다:

  • 나가는 데이터그램: 모든 나가는 데이터그램의 (출발지 IP 주소, 포트 #)를 (NAT IP 주소, 새 포트 #)로 교체한다.

    • 원격 클라이언트/서버는 (NAT IP 주소, 새 포트 #)를 목적지 주소로 사용하여 응답한다.

  • (NAT 변환 테이블)에 모든 (출발지 IP 주소, 포트 #)에서 (NAT IP 주소, 새 포트 #)로의 변환 쌍을 기억한다.

  • 들어오는 데이터그램: 모든 들어오는 데이터그램의 목적지 필드에서 (NAT IP 주소, 새 포트 #)를 (NAT 변환 테이블에 저장된 해당 (출발지 IP 주소, 포트 #))로 교체한다. table

[3-2] NAT: network address translation

  • 3개의 host

    • 10.0.0.1

    • 10.0.0.2

    • 10.0.0.3

  • [1단계] 정보

    • S : 10.0.01, 3345

    • D : 128.119.40.186.80

  • [2단계] NAT traslation table에 의해서 router를 통해 전달된다.

    • S : 138.76.29.7, 5001 (table에 의해 지정된다.)

    • D : 128.119.40.186, 80

    • 138.76.29.7로 지정된다.

  • [3단계] replay arrives, destination address : 138.76.29.7, 5001

    • S : 128.119.40.186, 80

    • D : 138.76.29.7, 5001

  • [4단계]

    • S : 128.119.40.186, 80

    • D : 10.0.0.1, 3345

[3-3] NAT: 네트워크 주소 변환

  • NAT는 논란이 있었다:

    • 라우터는 "3계층"까지만 처리해야 한다.

    • 주소 "부족" 문제는 IPv6로 해결되어야 한다.

    • 엔드 투 엔드 논리를 위반한다 (네트워크 계층 장치에 의한 포트 번호 조작).

    • NAT 우회(traversa): 클라이언트가 NAT 뒤에 있는 서버에 연결하고자 하면 어떻게 해야 할까?

  • 그러나 NAT는 계속해서 사용된다:

    • 가정용 및 기관 네트워크, 4G/5G 셀룰러 네트워크에서 광범위하게 사용된다.


목차