1. IP
컴퓨터로 네트워크에서 장치를 식별하고 통신을 가능하게 하는 주소 체계
- 두 가지 주요한 IP 주소 형식 존재
- IPv4
- IPv6
- IPv6는 현재 주로 사용되는 Ipv4의 주소 고갈 문제를 해결하기 위한 새로운 주소 체계
- Ex) 2001:0db8:85a3:0000:0000:8a2e:0370:7334
- IP 프로토컬을 사용하여 캡슈화할 때 데이터에 IP 헤더가 추가됨
- 이것을 IP 패킷이라고 함
- 비트 -> 프레임 -> IP패킷 -> 세그먼트 -> 데이터
- IP 주소 고갈 문제를 해결하기 위한 방법
- Subnetting
- DHCP
Subnet
서브넷이란 네트워크를 작은 네트워크로 분할한 것
-
CIDR 설정
-
10.0.0.0/16
-
prefix를 16을 주어 16비트를 네트워크 ID로 고정하고 뒤에 16비트를 호스트 id로 사용
-
십진수로 보았을 때 10.0까지는 고정되며(네트워크 ID), 뒤에 0.0(호스트ID)는 자유롭게 값이 들어옴 (0~255)
-
prefix가 16일 때 실제 10.0.0.0은 네트워크 주소이고, 10.0.255.255 브로드캐스트 주소로 호스트 범위는 10.0.0.1~10.0.255.254
-
AWS에서 subnet 사용 예시


- 두 개의 가용 영역에 각각 public subnet, private subnet을 한 개씩 설정(고가용성)
- CIDR : 24
- 10.0.1(네트워크 ID) 고정, 마지막 옥텟은 1~254의 값을 자유롭게 가짐
- 기존 VPC에서 설정된 네트워크를 분할해서 사용하는 것
- 기존 VPC의 IP 범위는 10.0.0.1~10.0.255.254
- pub-sub1의 IP 범위는 10.0.1.1~10.0.1.254
- 하기와 같이 subnet 설정
- pub-sub1
- 가용 영역 : us-west-1a
- IPv4 : 10.0.1.0/24
- pri-sub1
- 가용 영역 : us-west-1a
- IPv4 : 10.0.2.0/24
- pub-sub2
- 가용 영역 : us-west-1c
- IPv4 : 10.0.3.0/24
- pri-sub2
- 가용 영역 : us-west-1c
- IPv4 : 10.0.4.0/24
DHCP
IP를 동적으로 할당하는데 사용되는 프로토콜

-
호스트가 네트워크에 연결되면 DCHP 서버에게 요청을 보내고, DHCP 서버는 사용 가능한 IP 주소 중 하나를 동적으로 할당
-
DHCP는 호스트가 네트워크를 떠날 때 해당 IP 주소를 반환하고, 다른 호스트에게 재할당 가능
-
동작 방식
- DHCP Discover
- DHCP 클라이언트는 DHCP 서버를 찾기 위해 DHCP Discover 메시지를 브로드캐스트로 전달
- IP가 아직 없으므로 출발지는 Zero IP 주소(0.0.0.0), 목적지는 브로드캐스트 주소(255.255.255.255)
- 출발지 UDP : 68, 도착지 UDP : 67
- DHCP Offer
- DHCP Discover를 수신한 DHCP 서버는 클라이언트에 할당할 IP 주소와 서브넷, 게이트웨이 등의 정보를 포함한 DHCP 메시지를 클라이언트로 전송
- DHCP Request
- DHCP 서버로부터 제안받은 IP 주소와 DHCP 서버 정보를 포함한 DHCP 요청 메시지를 브로드캐스트로 전송
- DHCP Acknowledgement
- 클라이언트로부터 IP 주소를 사용하겠다는 요청을 받으면 DHCP 서버에 해당 IP를 어떤 클라이언트가 언제부터 사용하기 시작했는지 정보를 기록하고 DHCP Request 메시지를 정상적으로 수신했다는 응답 전송
- IP 임대
- 클라이언트가 IP를 사용하는 도중에 임대 시간이 만료되면 사용하던 IP는 다시 수거되고 클라이언트는 다이 처음부터 DHCP Discover부터 시작해 IP를 재할당 받음
- 갱신 과정으로 거쳐 IP주소가 IP 풀에 다시 반환되지 않고 계속 사용하는 경우도 있음
- 임대 시간의 50%가 지나면 DHCP 갱신 과정을 수행
- 이미 사용 중인 IP 정보가 있어 DHCP Discover와 DHCP Offer 과정을 생략하고 DHCP Request를 DHCP로 곧바로 전송하고DHCP 서버에서는 DHCK ACK를 보내면서 갱신 과정 진행
- 만약 50%가 지난 시점에서 갱신을 실패하면 남은 시간의 50% 지점에서 다시 갱신을 시도하고, 이때도 실패하면 추가 갱신 없이 임대 시간이 모두 지난 후에 IP 반납하고 처음부터 IP를 할당 받음
- DHCP 릴레이 에이전트
- DHCP 서버 한 대로 여러 네트워크 대역에서 IP 풀을 관리하는 기능
- DHCP 클라이언트와 DHCP 서버가 서로 다른 대역에 있는 경우, DHCP 패킷을 중간에서 중계하는 역할을 수행
2. TCP와 UDP(전송 계층)
- 인터넷 계층은 데이터를 어디로 전송하는지
- 전송 계층은 데이터를 제대로 전달하는 역할
TCP
-
연결형 통신 : 신뢰할 수 있고 정확한 데이터를 전달하는 통신
-
3-way 핸드셰이크
-
연결 요청 : SYN - SYN + ACK - ACK
-
연결 종료 : FIN - ACK + FIN - ACK
-
연결 요청 후에는 일련 번호와 확인 응답 번호 사용
- 일련 번호 : 보낸 데이터의 순서를 알려줌
- 확인 응답 번호 : 몇 번 데이터를 수신했는지 알려줌
-
통신을 할 때마다 확인 응답을 반환하는 방식이어서 효율이 낮음
-
응답을 기다리는 대신 세그먼트를 연속해서 보내고 한 번에 확인하여 효율을 높일 수 있음
-
윈도우 크기 : 얼마나 많은 세그먼트를 저장해놓을 수 있는지
UDP
- 비연결형 통신 : 효율성을 중요시하는 방식
- 일방적으로 데이터를 전달하며, 연결을 맺지 않고 전달
- 요청 - 응답 + 응답 + 응답 ... (브로드캐스트 방식)
DNS
도메인 주소를 IP주소로 변환하는 역할
- 네트워크 프로토컬
- 데이터 프로토콜
- 컨트롤 프로토콜 : 통신에 직접 관여하지 않지만 처음 통신 관계를 맺거나 유지하는데 역할을 함
DNS란
DNS 서버의 구조와 명명 규칙
-
역트리 구조
www.naver.com.
- root : .
- Top-Level : com
- Second-Level : naver
- Thrid-Level www
-
루트 도메인
- 도메인을 구성하는 최상위 영역
- DNS 서버는 사용자가 쿼리한 도메인에 대한 값을 직접 갖고 있거나 캐시에 저장된 정보를 이용해 응답
- DNS 서버에 해당 도메인 정보가 없으면 루트 DNS에 쿼리
-
Top-Level Domain(TLD)
TLD는 IANA(Internet Assigned Numbers Authority)에서 구분한 6가지 유형으로 구분
- Generic(gTLD)
- 특별한 제한 없이 일반적으로 사용되는 최상위 도메인
- 세 글자 이상으로 구성
- com : 일반 기업체
- edu : 4년제 이상 교육기관
- gov : 미국 연방정부기관
- int : 국제기구, 기관
- mil : 미국 연방군사기관
- net : 네트워크 관련 기관
- org : 비영리기관
- country-code(ccTLD)
- 국가 최상위 도메인
- ISO 3166 표준에 의해 규정된 두 글자의 국가 코드 사용 (우리나라 : kr)
- sponsored(sTLD)
- 특정 목적을 위한 스폰서를 두고 있는 최상위 도메인
- 특정 민족공동체, 전문가 집단, 지리적 위치 등
- ['.aero', '.asia', '.edu', '.museum']
- infrastructure
- 운용상 중요한 인프라 식별자 공간을 지원하기 위해 전용으로 사용되는 최상위 도메인
- generic-restricted(grTLD)
- 특정 기준을 충족하는 사람이나 단체가 사용할 수 있는 최상위 도메인
- test(tTLD)
- 개발 프로세스에서 테스트 목적으로 사용하는 최상위 도메인
DNS 동장 방식
재귀적 쿼리 : 쿼리를 보낸 클라이언트에 서버가 최종 결괏값을 반환하는 서버 중심 쿼리
반복적 쿼리 : 최종값을 받을 때까지 클라이언트에서 쿼리를 계속 진행하는 방식
마스터와 슬레이브
DNS 서버는 마스터(Master, Primary) 서버와 슬레이브(Slave, Secondary) 서버로 나눌 수 있음
- 마스터 서버가 우선 순위가 더 높지 않고 두 서버 모두 도메인 쿼리에 응답
- 도메인에 대한 존(zone) 파일을 직접 관리하는지 여부
- 마스터 : 존 파일을 직접 생성해 도메인 관련 정보를 관리
- 슬레이브 : 마스터에 만들어진 존파일을 복제 (영역 전송)
GSLB
DNS에서 동일한 레코드 이름으로 서로 다른 IP 주소를 동시에 설정할 수 있음. 이렇게 설정하면 도메인 질의에 따라 응답받는 IP 주소를 나누어 로드밸런싱 할 수 있음. 이것을 DNS 로드 밸런싱이라고 함
- DNS 서버는 특정 서비스에 문제가 있을 때 이것을 감지하지 못함
- GSLB는 이런 문제점을 해결해 도메인을 이용한 로드밸런싱 구현
- 도메인 질의에 응답 + 연결된 서비스가 정상적인지 헬스 체크 수행