학교
[컴퓨터 네트워크] 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) 사실 이것은 두 가지 질문이다:
Q:
호스트는 네트워크 내에서 어떻게 IP 주소를 얻는가? (주소의 호스트 부분)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 메시지의 흐름)
DHCP Discover (클라이언트 → 브로드캐스트)
클라이언트는 네트워크에 연결되자마자 "사용 가능한 DHCP 서버가 있나요?"라는 브로드캐스트 메시지를 보낸다.
목적: DHCP 서버를 찾기 위함.
DHCP Offer (서버 → 브로드캐스트)
DHCP 서버는 "나는 DHCP 서버이고, 이 IP를 사용할 수 있습니다!"라는 메시지를 클라이언트에게 보낸다.
클라이언트가 사용할 수 있는 임시 IP 주소와 네트워크 설정 정보를 제공한다.
DHCP Request (클라이언트 → 브로드캐스트)
클라이언트는 DHCP 서버로부터 받은 IP 중 하나를 선택하여 "이 IP를 사용하고 싶습니다!"라는 메시지를 보낸다.
클라이언트는 자신의 MAC 주소를 포함해 요청을 보낸다.
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은 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만 경로를 처리했다.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 셀룰러 네트워크에서 광범위하게 사용된다.
