본문 바로가기
5. Network(2025년 OPEN 예정)/Network

[Network] 혼자 공부하는 네트워크 - 네트워크 심화

by cogito21_cpp 2024. 12. 15.
반응형

키워드

- 가용성, 이중화, 다중화, 로드 밸런싱, 포워드 프록시, 리버스 프록시

- 암호화, 인증서, 대칭키, 공개키, HTTPS, SSL, TLS

- 전파, 주파수, 와이파이, 802.11, AP, 서비스 셋

 

안정성을 위한 기술

- 가용성, 이중화, 다중화, 로드 밸런싱

- 가용성: 안정성을 수치로 표현

- 안정성을 높이기 위한 이중화, 다중화

- 로드 밸런싱: 트래픽을 고르게 분산하는 기술

 

- 안정성: 특정 기능이 언제든 균일한 성능으로 수행할 수 있는 특성

- 안전성의 정도를 나타내는 용어로 가용성, 고가용성

- 가용성(Availability): 컴퓨터 시스템이 특정 기능을 실제로 수행할 수 있는 시간의 비율.전체 사용 시간 중에서 정상적인 사용 시간

- 가용성 = 업타임/(업타임 + 다운타임). 업타임은 정상적인 사용 시간. 다운타임은 정상적인 사용이 불가능한 시간

- 고가용성(High Availability): 가용성이 높은 성질

- 일반적으로 안정적인 시스템은 99.999% 이상을 목표로 함. 다운 타임이 1년에 5.26분, 1개월에 26.3초. 1주에 10.08분

- 결함 감내(fault tolerance): 문제가 발생하더라도 기능할 수 있는 능력. 다운타임을 낮추고 가용성을 높이기 위함

 

- 이중화: 무언가를 이중으로 두는 기술. 결함을 감내하여 가용성을 높이기 위한 기본적인 방법

- 이중화할 수 있는 대상들은 SPOF

- 단일 장애점(SPOF): 문제가 발생할 경우 시스템 전체가 중단될 수 있는 대상

- 이중화 구성 방식: 액티브/스탠바이, 액티브/액티브

- 액티브: 가동 상태. 스탬바이: 액티브의 백업으로서 대기하는 상태

- 액티브/스탠바이: 한 시스템은 가동하고, 다른 시스템은 백업 용도로 대기 상태

- 액티브/액티브: 두 시스템 모두를 가동 상태로 두는 구성 방식

- 페일오버(fail over): 액티브 시스템에 문제가 생겼을 경우 예비된 스탠바이 시스템으로 자동 전환되는 기능

- 다중화: 무언가를 여러 개 두는 기술

- 티밍(teaming)/본딩(bonding): 티밍은 윈도우, 본딩은 리눅스에서 사용되는 용어. 여러 갯의 네트워크 인터페이스(NIC)를 이중화/다중화하여 더 뛰어나고 안정적인 성능을 보유한 하나의 인터페이스처럼 보이게 하는 기술

 

- 트래픽(traffic): 주어진 시점에 네트워크를 경유한 데이터의 양. 일반적으로 트래픽 측정은 노드에서 이루어짐

- 로드 밸런싱(load balancing): 트래픽의 고른 분배를 위해 사용되는 기술

- 로드 밸런서(load balance): 로드 밸런싱을 수행. L4 스위치, L7 스위치 장비 사용. HAProxy, Envoy, Nginx 소프트웨어 사용

- 로드 밸런서는 이중화나 다중화된 서버와 클라이언트 사이에 위치. 클라이언트는 로드 밸런서에 요청을 보내고, 로드 밸런서는 해당 요청을 각 서버에 균등하게 분배

+) L4 스위치는 주로 IP주소와 포트번호와 같은 전송 계층까지의 정보를 바탕으로 로드 밸렁싱을 수행

+) L7 스위치는 URI, HTTP 메시지 일부, 쿠키 등 응용 계층의 정보까지 활용하여 로드 밸런싱을 수행

+) 헬스 체크(Health Check): 서버들의 상태를 주기적으로 모니터링하고 검사하는 것. 주로 로드 밸런서에 의해 이루어지고 HTTP, ICMP 등 프로토콜을 활용할 수 있음

+) 서버끼리 하트비트(heartbeat)라는 메시지를 주기적으로 주고 받다가 신호가 끊어졌을 때 문제 발생을 감지하는 방법도 존재

- 로드 밸런싱 알고리즘: 부하가 균등하게 분산되도록 부하 대상을 선택하는 방법

- 라운드 로빈 알고리즘(round robin algorithm): 단순히 서버를 돌아가며 부하를 전달하는 방법

- 최소 연결 알고리즘(least connection algorithm): 연결이 적은 서버부터 우선적으로 부하를 전달하는 방법

- 단순히 무작위로 고르는 방법, hash를 이용한 방법, 응답 시간이 가장 짧은 서버를 선택하는 방법

- 가중치 라운드 로빈 알고리즘(weighted round robin algorithm): 가중치가 부여된 라운드로빈

- 가중치 최소 연결 알고리즘(weighted least connection algorithm): 가중치가 부여된 최소 연결 알고리즘

 

- 오리진 서버(origin server): 자원을 생성하고 클라이언트에게 권한 있는 응답을 보낼 수 있는 HTTP 서버

- 클라이언트와 오리진 서버 사이에는 많은 중간 서버 존재

- 인바운드 메시지(inbound message): 오리진 서버를 향하는 메시지

- 아웃바운드 메시지(outbound message): 클라이언트를 향하는 메시지

- HTTP 중간 서버의 유형으로 프록시와 게이트웨이가 존재. 프록시는 포워드 프록시, 게이트웨이를 리버스 프록시라 부름

- 프록시(proxy): 클라이언트가 선택한 메시지 전달 대리자(RFC 9110 참고). 어떤 프록시를 언제 사용할지 클라이언트가 선택

- 프록시는 주로 캐시 저장, 클라이언트 암호화 및 접근 제한 등의 기능을 제공. 오리진 서버보다 클라이언트에 더 가까이 위치

- 게이트웨이(gateway): 아웃바운드 연결에 대해 오리진 서버 역할을 하지만 수신된 요청을 변환하여 다른 인바운드 서버들로 전달하는 중개자 역할. 일반적으로 네트워크 간의 통신을 가능케 하는 입구 역할을 하는 하드웨어 혹은 소프트웨어

- 게이트웨이는 캐시 저장, 로드 밸런서로 동작 가능. 클라이언트보다 오리진 서버에 더 가까이 위치

 

안전성을 위한 기술

- 대칭 키 암화화 방식, 공개 키 암호화 방식, 공개 키 인증서, 디지털 서명, SSL, TLS, HTTPS, TLS 핸드세이크

- 암호화(encryption): 원문 데이터를 알아볼 수 없는 형태로 변경하는 것

- 복호화(decryption): 암호화된 데이터를 원문 데이터로 되돌리는 과정

- 암호화와 복호화는 안전한 데이터 송신뿐만 아니라 인증서 기반의 검증도 가능

 

- 키(key): 무작위해 보이는 문자열 형태.

- 키와 원문 데이터에 수학적 연산 과정(암호화 알고리즘)을 거치면 암호문을 생성

- 암호화/복호화 방식: 대칭 키 암호화, 비대칭 키 암호화

- 대칭 키 암호화(symmetric key cryptography): 암호화와 복호화에 동일한 키 사용

- 비대칭 키 암호화(asymmetric key cryptography): 공개 키 암호화(public key cryptography)이라고 함. 암호화를 위한 키와 복호화를 위한 키가 다름. 각각의 키를 공개 키(public key)와 개인 키(private key)라고 부름

- 대칭 키 암호화는 적은 부하와 빠른 암호화/복호화 수행. 공개 키 암호화는 암호화/복호화는 시간이 걸리지만 키를 안전하게 공유

- 주로 대칭 키 암호화와 공개 키 암호화를 함께 사용.

- 세션 키(session key): 공개 키로 대칭 키를 암호화하고 개인 키로 암호화된 대칭키를 복호화하여 사용

 

- 인증서(certificate)는 무언가를 증명하기 위한 문서. 네트워크에서 사용될 때는 공개 키 인증서를 의미

- 공개 키 인증서(public key certificate): 공개 키와 공개 키의 유효성을 입증하기 위한 전자 문서

- 인증 기관(CA: Certification Authority): 인증서를 발급하는 기관. 인증서의 발급, 검증, 저장과 같은 역할을 수행할 수 있는 공인 기관. 대표적으로 IdenTrust, DigiCert, GlobalSign이 있음

- 서명값(signature): CA가 발급한 인증서에 담긴 보증 내용. 클라이언트에서 해당 서명값을 통하여 인증서 검증

- 서명값은 1) 인증서 내용에 대한 해시 값 2)CA의 개인 키로 암호화하는 방식으로 생성됨

+) 대표적인 해시함수: MD5, SHA-1, SHA-2(SHA-256, SHA-384, SHA-512)

- 인증서 검증과정: 1)서명값과 인증서 분리 2)서명 값을 CA의 공개 키로 복호화 3)인증서 데이터 해시값 계산 4)복호화 값과 해시값 비교

- 디지털 서명(digital signature): 개인 키로 암호화된 메시지를 공개 키로 복호화함으로써 신원을 증명하는 절차

 

- SSL(Secure Sockets Layer)과 TLS(Transport Layer Security)는 인증과 암호화를 수행하는 프로토콜. TLS는 SSL을 계승한 프로토콜

- SSL 2.0과 SSL 3.0을 거쳐 TLS 1.0, TLS 1.1, TLS 1.2, TLS 1.3이 순차적으로 출시

- HTTPS(HTTP over TLS)는 SSL/TLS을 사용하는 프로토콜. HTTP 메시지의 안전한 송수신을 위해 개발된 프로토콜. 주로 TLS1.3 기반

- HTTPS 메시지 송수신 단계: 1)TCP 쓰리웨이 핸드셰이크 2)TLS 핸드셰이크 3) 암호화된 메시지 송수신

- TCP 쓰리웨이 핸드셰이크: SYN, SYN+ACK, ACK 플래그가 설정된 TCP 세그먼트를 주고 받음

- TLS 핸드셰이크: 암호화된 통신을 위한 키 교환. 인증서 송수신과 검증이 이루어짐

    - 1) 클라이언트는 CilentHello 메시지(암호화된 통신을 위해 서로 맞춰 봐야할 정보들을 제시하는 메시지) 전송.

    - +)cipher suite는 사용 가능한 암호화 방식과 해시 함수를 담은 정보

    - 2) 서버는 ClientHello 메시지에 대한 응답으로 ServerHello 메시지(제시된 정보들을 선택하는 메시지)를 전송

    - 3) 서버는 Certificate 메시지와 CertificateVerify 메시지를 전송. 각각 인증서와 검증을 위한 디지털 서명을 의미. 클라이언트는 메시지를 토대로 서버의 공개 키를 검증

    - 4) 서버오와 클라이언트가TLS 핸드셰이크의 마지막을 의미하는 Finished 메시지를 주고 받음

    - 5) TLS 핸드셰이크를 통해 얻어낸 키를 기반으로 암호화된 데이터(Application Data)를 주고 받음

 

무선 네트워크

- 전파, 주파수 대역, 802.11, 와이파이, 채널, AP, 서비스 셋, SSID, 비컨 프레임

- 무선 네트워크에도 전파(연결 매체), 802.11(표준), Wi-Fi(기술), AP(장비)가 존재

 

- 전파(radio wave): 무선 통신의 기반. 약 3kHz부터 3THz 사이의 진동수를 갖는 전자기파

- 통신에 사용되는 전파에는 주파수 대역이 미리 정해져 있음. 나라마다 주파수 대역 사용 용도가 다름

 

- LAN 환경에서의 무선 통신은 IEEE 802.11로 표준화. 대부분 2.4GHz, 5GHz 대역을 사용

- IEEE 802.11 버전에 따라 사용되는 주파수뿐만이 아니라 전송 속도, 대역폭, 전송 가능한 거리, 변조 방식 등 많은 것이 달라짐

- 변조(modulation): 정보를 원하는 형태의 신호로 변환하는 것

- 복조(demodulation): 변조된 신호를 원래의 정보로 다시 변환하는 것

- Wi-Fi: IEEE 802.11 표준을 따르는 무선 LAN 기술. 와이파이는 세대 별로 표준 규격이 다름. 일종의 인증 마크 역할

+) 5GHz 와이파이는 2.4GHz 와이파이에 비해 일반적으로 송수신 속도가 빠르지만 장애물의 영향을 크게 받음

+) 주파수의 회절성: 파동이 장애물이나 좁은 틈을 통과할 때, 파동이 그 뒤편까지 전파되는 현상. 주파수가 낮을수록 회절성이 좋음

- 2.4GHz, 5GHz 주파수 대역은 채널이라 불리는 하위 주파수 대역으로 세분화되고 해당 채널 대역에서 통신이 이루어짐

- 채널은 자동으로 설정되지만 수동으로도 설정 가능. 가급적 중첩되지 않은 채널 이용

 

- AP(Access Point): 무선 통신 기기들을 연결하여 무선 네트워크를 구성하는 장치. 무선 LAN에서 통신을 중개하는 역할

- 무선 LAN의 기기들은 AP를 경유해 인터넷에 접속하거나 서로 메시지를 주고 받음

- 인프라스트럭처 모드(infrastructure mode): AP를 경유하여 통신이 이루어지는 무선 네트워크 통신 방식

- 애드 혹 모드(Ad Hoc mode): AP의 간섭 없이 호스트 간에 일대일로 통신하는 무선 통신 모드

- 서비스 셋(Service Set): 무선 네트워크를 이루는 AP와 여러 장치들의 집합

- 서비스 셋 식별자(SSID: Service Set Identifier): SSID는 무선 네트워크를 구분짓는 수단이자 무선 네트워크를 지칭하는 고유한 이름. 와이파이의 이름이 SSID

+) BSS(Basic Service Set): 하나의 AP로 구성된 무선 LAN

+) ESS(Extended Service Set): 여러 AP로 구성된 무선 LAN

- AP는 beacon frame을 주기적으로 전송

- 비컨 프레임(beacon frame): 불특정 다수 모두에게 자신을 알리는 브로드캐스트 메시지.

- 비컴 프레임 안에는 SSID와 AP의 MAC 주소 등이 포함

 

 

반응형