본문 바로가기

Web/웹 상식

네트워크 기초 1 (게이트웨이, SSH, Kerberos, 로드밸런서, OSI, VPN)

게이트웨이

개요

  • 서로 다른 프로토콜을 사용하는 서버간 통신을 가능하게 해주는 포탈
  • 클라이언트에서 전송한 요청의 타겟 서버가 HTTP 프로토콜이 아닐 경우, 클라이언트
    요청에 해당하는 프로토콜로 변환하여 대신 전송

종류

게이트웨이 Description
/HTTP * 클라이언트측 게이트웨이
* 타 프로토콜을 사용하는 클라이언트와 HTTP 프로토콜을 사용하는 서버간 통신 지원
HTTP/* * 서버측 웹 게이트웨이
* HTTP 프로토콜을 사용하는 클라이언트와 타 프로토콜을 사용하는 서버간 통신 지원
HTTP/HTTPS * 서버측 보안 게이트웨이
* 클라이언트의 HTTP 프로토콜 요청메시지 수신시, 자동으로 암호화 하여 타겟 서버에 전송
HTTPS/HTTP * 클라이언트측 보안 가속 게이트웨이 웹 서버 앞단에서 리버스 프락시 역할 수행
* 클라이언트로부터 HTTPS 프로토콜 요청메시지 수신시, 요청메시지를 복호화하여 평범한 HTTP 요청메시지로 웹서버에 전달
* 고성능 복호화 하드웨어를 게이트웨이로 사용하여 통신속도 향상
* 게이트웨이 - 서버간 통신의 안전성 전제

SSH (Secure Shell Protocol)

개요

  • 네트워크 프로토콜 중 하나로 public network 통신을 할 때 보안 통신을 하기 위한 프로토콜
  • 전신은 rsh로 로우패킷을 암호화하지 않고 전송하는 방식의 유틸로서 보안에 취약하다. 따라서 이를 보완하기 위해 나온것이 SSH
  • 데이터 전송과 원격 제어 등에 사용

보안 방식

  • 공개키 방식

사용 방법

ssh (원격 로그인)

$ ssh [옵션] <사용자@호스트> [명령]

scp (원격 파일 복사)

# 로컬 -> 원격으로 복사
$ scp <복사할파일> <사용자@호스트>:<복사될위치>   

# 원격 -> 로컬로 복사
$ scp <사용자@호스트>:<복사할파일> <복사될위치>

sftp

$ sftp <사용자명@호스트>

참고 링크

  1. 공개키 방식 설명
    https://www.binance.vision/ko/security/what-is-public-key-cryptography
  2. 리눅스 ssh 사용법
    https://jdm.kr/blog/212

Kerberos

개요

  • 대칭키 기반 인증 프로토콜
  • 신뢰하는 제 3의 컴퓨터가 서비스를 이용하려는 클라이언트의 사용자를 인증하는 방식

동작 원리

1. 텔넷(telnet)이나 기타 이와 비슷한 로그인 요청을 통해,
   다른 컴퓨터에서 서버(Server)에 액세스하기 원한다고 가정했을 때 이 서버는 로그인 요청을 받아들이기 전에, Kerberos "티켓"을 요구한다.

2. 티켓을 받기 위해, 접속자는 먼저 인증 서버에 인증을 요구한다. 
   인증 서버는 요구자가 입력한 패스워드에 기반하여 "세션 키"와, 서비스 요구를 나타내는 임의의 값을 만든다.
   세션 키는 사실상 "티켓을 부여하는 티켓"이다.

3. 그 다음에 세션 키를, 티켓 부여 서버, 즉 TGS (ticket-granting server)에 보낸다.
   TGS는 인증 서버와 물리적으로는 동일한 서버에 있을 수 있지만, 그러나 지금은 다른 서비스를 수행한다.
   TGS는 서비스를 요청할 때 서버에 보낼 수 있는 티켓을 돌려준다.

4. 그 서비스는 티켓을 거절하거나, 또는 받아들여서 서비스를 수행한다.

5. TGS로부터 받은 티켓은 발송일자와 시간이 적혀있기 때문에,
   일정 시간 동안 (대체로 8시간 동안) 내에는 재인증 없이도 동일한 티켓으로 다른 추가 서비스를 요청할 수 있다.
   티켓을 제한된 시간 동안에만 유효하게 만듦으로써, 후에 어떤 사람이 그것을 사용할 수 없도록 만든다.


로드밸런서 (Load balancer)

개요

  • 여러대의 서버에 traffic을 균등하게 분산시켜주는 역할

로드밸런서 종류

  • L2(Data Link Layer)

    • Mac Address Load Balancing
    • 브릿지, 허브 등
    • 장점 : 구조가 간단, 신뢰성이 높다, 가격저렴, 성능이 좋다.
    • 단점 : Broadcast 패킷에 의해 성능저하 발생, 라우팅 등 상위레이어 프로토콜 기반 스위칭 불가
  • L3(Network Layer)

    • IP Address Load Balancing
    • L2 + Routing
    • Router, ICMP 프로토콜, IP
    • 장점: Broadcast 트래픽으로 전체 성능 저하 방지, 트래픽체크
    • 단점: 특정 프로토콜을 이용해야 스위칭 가능
  • L4(Transport Layer)

    • Transport Layer(IP+Port) Load Balancing
    • TCP, UDP Protocol
    • 장점 : Port기반 스위칭 지원, VIP를 이용하여 여러대를 한대로 묶어 부하분산
    • 주로 Round Robin 방식 사용
  • L7(Application Layer)

    • Application Layer(사용자 Request) Load Balancing
    • HTTP, FTP, SMTP Protocol

로드밸런서 주요 기술

  • NAT(Network Address Translation)
    • 사설 ip주소를 공인 IP주소로 변경, 주소변경의 역할
  • DSR(Dynamic Source Routing protocol)
    • 서버에서 클라이언트로 되돌아가는 경우 목적지 주소를 스위치의 IP 주소가 아닌 클라이언트의 IP 주소로 전달해서 네트워크 스위치를 거치지 않고 바로 클라이언트를 찾아가는 개념
  • Tunneling
    • 인터넷상에서 눈에 보이지 않는 통로를 만들어 통신할 수 있게 하는 개념
    • 데이터를 캡슐화해서 연결된 상호 간에만 캡슐화된 패킷을 구별해 캡슐화를 해제

로드밸런서 알고리즘 종류

  • Round Robin(순차방식)

    • 요청을 순서대로 각 서버에 균등하게 분배하는 방식
    • 서버 커넥션 수나 응답시간에 상관없이 모든 서버를 동일하게 처리
    • 다른 알고리즘에 비해서 가장 빠르다
  • Least Connection(최소접속방식)

    • 서버에 연결되어 있는 Connection 개수만 갖고 단순비교하여 가장 적은곳에 연결
  • Weighted Least Connections(가중치 최소접속방식)

    • 서버에 부여된 Weight 값을 기반으로 Connection 수의 개수와 같이 고려하여 할당
  • Fastest Response Time(응답시간방식)

    • 가장 빨리 응답하는 서버에 이용자 요구를 연결하는 방법. 응답시간은 각 서버가 패킷 형태의 요구를 송수신하는데 걸리는 시간을 측정한 것이다.
  • Adaptive(최소대기방식)

    • Open또는 Pending(계류중인) 커넥션을 적게 가지고 있는 서버로 네트웍 커넥션 방향을 지정한다. Pending 커넥션은 Full TCP Handshake를 완성하지 않은 것으로, 이것은 초당 클라이언트 Thread의 수가 증가할 때 더욱 잘 수행된다.
  • Fixed, Hashing, Random, URL-based, Cookie 등 여러 알고리즘 존재

참고 링크

  1. 로드밸런서란
    https://medium.com/@pakss328/로드밸런서란-l4-l7-501fd904cf05

OSI 7계층

개요

  • 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것
  • 계층을 나눈 이유는 통신 과정을 단계별로 파악할 수 있고 단계중 특정한 곳에 이상이 생기면 해당 부분만 수정하면 해결할 수 있기 때문이다.
    각 계층 기능
레벨 PDU 프로토콜 기능
7 (Application) Data HTTP, FTP, DNS, DHCP, SMTP, NFS, RTSP * 사용자가 네트워크에 접근할 수 있도록 해주는 계층이다.
* 사용자 인터페이스, 전자우편, 데이터베이스 관리 등 서비스를 제공한다.
6 (Presentation) Data JPEG, MPEG, SMB, AFP * 데이터를 하나의 표현 형태로 변환한다.
* 필요한 번역을 수행하여 두 장치가 일관되게 전송 데이터를 이해할 수 있도록 한다.
5
(Session)
Data SSH, TLS, ISO8327, Apple talk, NetBIOS * 통신 세션을 구성하는 계층으로 포트(port) 연결이라고도 할 수 있다.
* 통신 장치 간의 상호 작용을 설정하고 유지하며 동기화한다.
* 사용자 간의 포트 연결(세션) 이 유효한지 확인하고 설정한다.
4
(Transport)
Segments TCP, UDP, ARP, RTP, SCTP, SPX * 전체메시지를 발신지 대 목적지 간 제어와 에러를 관리한다.
* 패킷들의 전송이 유효한지 확인하고 실패한 패킷은 다시 보내는 등
* 신뢰성 있는 통신을 보장하며 머리 말에는 Segment 가 포함된다.
3
(Network)
Packets IP, ICMP, IGMP, RIP, IPX, DDP * 다중 네트워크 링크에서 패킷을 목적지로 전달할 책임을 갖는다.
* 각 패킷이 시작지점에서 최종목적지까지 성공적으로 전달되도록한다.
2
(Data link)
Frames MAC, PPP, 무선랜 * 오류없이 한 장치에서 다른 장치로 프레임(비트의 모음)을 전달하는 역할로 스위치 같은 장비의 경우 MAC 주소를 이용하여 정확한 장치로 정보를 전달한다.
1
(Physical)
Bits Ethernet, RS-232C, Modem * 물리적 매체를 통해 비트 흐름을 전송하기 위해 요구되는 기능들을 조정한다.
* 케이블, 연결 장치 등과 같은 기본적인 물리적 연결기의 전기적 명세를 정하고 네트워크의 두 노드를 물리적으로 연결시켜준다.

참고 링크

  1. OSI 7계층 정리
    https://beankhan.tistory.com/68
  2. OSI model explained
    https://www.networkworld.com/article/3239677/the-osi-model-explained-how-to-understand-and-remember-the-7-layer-network-model.html

VPN (Virtual Private Network)

개요

  • public network에서 private network를 사용할 수 있도록 구성한 가상의 네트워크
  • 터널링 프로토콜을 사용하여 VPN 서버의 가상 포트를 가상으로 호출vpn 구성 유형
    1. L2L (LAN to LAN)
    2. L2C (LAN to Client)터널링 프로토콜
    3. PPTP (Point-to-Point Tunneling Protocol) (2계층)
      • PPP 기술을 확장하여 만든 프로토콜로 터널을 확립하고 MS-CHAP와 RC4를 합성하여 암호화를 진행한다.
      • 유지, 보수, 관리를 위하여 TCP연결을 사용하고 모바일에서 접속하기 용이하게 구성되어있다.
      • 높은 수준의 보안은 충족시키지 못한다.
    4. L2TP (Layer 2 Tunneling Protocol) (2계층)
      • PPTP와 L2F를 결합한 방법
      • PPTP는 IP기반의 네트워크만 지원하는 반면 L2TP는 패킷 중심의 지점 간 연결이기만 하면 통신이 가능
    5. IPsec (IP Security) (3계층)
      • AH (Authentication Header)와 ESP (Encapsulation Security Payload)를 통해 IP 데이터그램의 인증과 무결성, 기밀성을 제공
      • 전송모드 : IP 페이로드를 암호화하여 IP헤더로 캡슐화
      • 터널모드 : IP 패킷을 모두 암호화하여 전송하는 것
      • 2계층보다 보안에 우수하다.

참고 링크

1.VPN 구축 및 정리
https://rlarlgns.github.io/rlarlgns.github.io/2017-06-15/VPN/

 

 


 

반응형

'Web > 웹 상식' 카테고리의 다른 글

Http와 Rest API에 대한 간단한 정리  (0) 2021.03.05
Spring Retry에 대해서  (0) 2020.10.14
Vue.js 3.0 과 Vite  (0) 2020.09.23
Spring Webflux에 대하여  (0) 2020.09.14
Apache-Tomcat 설정 파일 정리  (0) 2020.09.11