DNS, Terminal,Routing ,Http, Ftp, Web, Application
23년 이전 글/네트워크

DNS, Terminal,Routing ,Http, Ftp, Web, Application

DNS

cache -> hosts(윈도우 파일) -> 지정된 DNS 외부서버 순으로 DNS 정보를 가져옴

1차 도메인

.com, .net, .kr, .jp, .org, .in 등의 대표적인 도메인

2차 도메인

.co.kr, go.kr, ac.kr, .pe 등

 

순환질의 예시

해당 사이트를 이용하면 그림과 함께 질의 과정 보기 가능

naver.com 질의하는 경우 -> 지정된 DNS(8.8.8.8) -> root.domain에게 질의(1차 domain name server 정보만 가짐) -> .com 을 연결시키는 네임 서버 정보를 확인하고 naver.com의 네임 서버에 질의 -> naver.com 네임서버에서 naver.com IN ip 정보 획득 

 

재귀질의

위 순환질의로 알게된 naver.com의 ip를 요청한 pc에게 다시 전달

  • 정방향조회 (domain -> ip 질의)
  • 역방향조회 (ip -> domain 질의)

 

리눅스를 활용해서 질의 과정 확인하기(8.8.8.8 dns 서버에, 네이버에 대한 정보를 질의하고 추적하는 명령어)

dig @8.8.8.8 naver.com +trace

DNS 루트 서버 리스트

root-servers에서 세계의 모든 질의를 받아주고 있음.(슈퍼컴들)

DNS서버는 라운드 로빈을 이용해서 로드 밸런싱을 함

모든 루트서버에 질문하는게 아닌, 아래쪽에 보면 어느 루트 서버에 답했는지 볼 수 있음

d 루트 서버의 응답
naver에 질의하는 과정, 아래쪽은 네이버의 답변

루트 서버에서 네이버에 질의하면, 네이버에게 다시 질의하며, 질의의 결과가 맨 아래처럼 나오게 된다.

cmd에서 nslookup을 사용하면 맨 아래 결과와 동일함을 알 수 있다

cmd nslookup(과정은 생략됨)

 

 

기업에서 DNS 서버를 두려는 이유?

기업 내부에  개발자가 많을 수록, 업무 상으로 발생하게 되는 질의가 필연적으로 증가함

이 과정에서 DNS 서버가 없으면 외부 DNS에 질의하는 과정을 거치게 되는데, 1번당 트래픽이 4회가 발생하게 되며, 숫자가 클수록 이 숫자는 급격하게 커지게 됨(네트워크 내에 피시끼리 서로 cache를 공유하지도 않기 때문)

 

내부에 DNS 서버를 둘 때 장점

1. 트래픽을 줄일 수 있다

CMD에서 ipconfig /displaydns를 확인하면 피시 내에서 2시간 정도 domain에 질의했던 내용을 가지고 있음. 이를 동적캐쉬라고 함.

DNS 서버에서는 좀 더 길게 보유하는데, 이를 정적캐쉬라고 하며 약 하루 정도 가지고 있음. 2시간 대비 질의의 트래픽을 획기적으로 줄일 수 있음(캐싱하기 때문)

 

2. 기업의 새로운 서브 도메인 생성 또는 내부 사용자에게만 할당하는 임의 도메인 생성까지 생산적으로 커스텀해서 사용할 수 있음

 

터미널 서비스

 

Telnet

  • TCP 23 port
  • 암호화가 되어 있지 않음
  • 서비스 동작 방식에도 문제가 있어 현재 사용하지 않는 추세
  • 기업에서 telnet 서비스를 오픈해서 제공한다면 신뢰할 수 있는 네트워크 환경에서 접속해야함
  • 사용방법은 제어판 -> 프로그램 및 기능 -> windows 기능 켜기/끄기 -> telnet 클라이언트 활성화

이 과정에서 Xshell 7 이라는 프로그램을 활용하면 다양한 환경의 터미널을 한번에 켜서 편하게 테스트 해볼 수 있음. 리눅스나 cmd 창을 자유롭게 다룰 수 있다면 굳이 설치할 필요는 없음

 

SSH(Secure Shell)

  • TCP 22 port
  • 암호화가 되어 있음
  • 원격 접속 보안을 위한 필수적인 요소로 자리 잡았음
  • 최근 클라우드 서비스 제공 서버에선 기본적으로 원격 접속으로 접근하게끔 하고 있음
  • 접속시 대칭키와 비대칭키를 사용하는게 큰 차이점

 

port 확인 팁

windows\system32\drivers\etc\services 파일을 메모장으로 열어보면 디폴트로 설정된 포트들을 확인할 수 있음. 단 포트 사용에 따라 달라질 수 있으므로 절대적인 설정이 아님을 참고

services 일부 내용

리눅스에서는 /etc/services에 지정되어 있음

services 일부 내용

 

파일 관련 서비스

 

NFS(Network File System)

네트워크에 파일을 저장하는 메커니즘으로, 원격 컴퓨터에 있는 파일 및 디렉토리에 액세스 할 수 있고, 해당 파일 및 디렉토리가 로컬에 있는 것 처럼 처리하도록 허용하는 분산 파일 시스템

NIS(Network Information Service)

  • 썬 마이크로시스템즈의 클라이언트 서버 디렉토리 서비스 프로토콜
  • 네트워크상 컴퓨터 사이에 사용자의 계정정보와 호스트이름 정보 등을 공유하고 배포하기 위한 시스템
  • 컴퓨터 네트워크 위의 컴퓨터들 사이에 있는 사용자와 호스트 이름과 같은 시스템 구성 데이터를 여러 곳에 제공
  • 호스트명 등 네트워크의 관리 및 이용에 필요한 정보 수록, 조회 서비스

 

NFS, NIS는 구글 드라이브 또는 원드라이브 등의 마운트 되는 시스템으로 이해하면 편할 것

 

AD(Active Directory)

액티브 디렉터리는 마이크로소프트가 윈도우용 환경에서 사용하기 위해 개발한 LDAP 디렉터리 서비스의 기능이다. 주 목적은 윈도우 기반의 컴퓨터들을 위한 인증 서비스를 제공하는 것이다. 주로 윈도우 환경에서 동일한 데이터베이스를 사용하여 다음을 비롯한 다양한 네트워크 서비스를 제공한다.

LDAP

경량 디렉터리 액세스 프로토콜은 TCP/IP 위에서 디렉터리 서비스를 조회하고 수정하는 응용 프로토콜이다. 디렉터리는 논리, 계급 방식 속에서 조직화된, 비슷한 특성을 가진 객체들의 모임

 

NFS, NIS와 다르게 자격증명 부분이 강화된 형태이며, 디렉토리 구조 문서 배열로 자원을 공유함. 기업의 중요 자원 이용시 권한 부여 과정을 거쳐 활용함

 

FTP(File Transfer Protocol)

파일 전송 프로토콜은 TCP/IP 프로토콜을 가지고 서버와 클라이언트 사이의 파일 전송을 하기 위한 프로토콜이다. 파일 전송 프로토콜은 TCP/IP 프로토콜 테이블의 응용 계층에 속하며, 역사는 오래 되었지만 지금도 인터넷에서 자주 사용된다.

  • 인증 port 21, data port(active mode 20, passive mode 지정된 범위의 port를 할당 받음)

Active mode

  • 장점 : data 전송 시 20 port 하나로만 진행 하기 때문에 port 낭비를 줄일 수 있다
  • 단점 : client의 네트워크 환경을 고려하지 않고 만든 방식이기 때문에 NAT 환경의 client는 21 port로 접속가능 하지만 데이터 전송이 되지 않는다

Passive mode

  • 장점 : client 네트워크 환경 제약 없이 데이터 전송을 할 수 있다.
  • 단점 : 접속하는 client 마다 데이터 전송 시 port를 할당 하기 때문에 다수가 접속 시 port 정보가 낭비된다.

 

출처 : https://medium.com/@yuanyifang/ftp-active-passive-and-nat-88a704a8451b

FTP는 인증과 데이터 전송을 위해 2가지 포트를 사용하며, 각 포트별로 담당하는 바가 다름

 

라우팅

 

NAT

  • SNAT(사설 네트워크 -> 리얼 ip주소로 포팅), 사설에서 공용으로
  • MASQUERADE (가변 주소는 포워딩) (사설 네트워크 -> 가변 리얼 ip주소로 포팅)
  • DNAT ( 외부에서 유입되는 port 요청 -> 사설 네트워크 port) 대표적으로 사용되는 경우 load balancing
  • port forwarding 80 ==> 8080, 내부로 포트 포워딩 하면 그게 DNAT

DMZ(De-Militarized Zone)

외부에서 접근하는 어떤 포트라도 1개의 특정 사설IP/내부IP로 통과되도록 하는 특수한 기능으로 불특정 PORT(TCP/UDP)에 대해 총체적인 모든 신호를 열어 놓는 방식으로 DMZ 설정 호스트는 보안에 취약함.

 

HTTP

출처 : https://stackify.com/web-application-architecture/

 

Web Server(iis, apache, nginx)

웹 서버는 웹 브라우저 같은 클라이언트로부터 HTTP 요청을 받아 HTML 문서와 같은 웹 페이지를 반환하는 프로그램이나, 이러한 기능을 수행하는 컴퓨터를 말한다.

 

IIS(Internet Information Services)

마이크로소프트 윈도우를 사용하는 서버들을 위한 인터넷 기반 서비스들의 모임으로, 아파치에 이어 두번째로 잘 알려진 웹서버입니다. 윈도우 OS에서 사용이 가능하며 ASP 스크립트 언어를 사용합니다

 

Apache

아파치 HTTP 서버는 아파치 소프트웨어 재단에서 관리하는 오픈 소스, 크로스 플랫폼 HTTP 웹 서버 소프트웨어다. BSD, 리눅스 등 유닉스 계열 뿐 아니라 마이크로소프트 윈도우나 노벨 넷웨어 같은 기종에서도 무료로 운용할 수 있다

 

Nginx

Nginx는 웹 서버 소프트웨어로, 가벼움과 높은 성능을 목표로 한다. 웹 서버, 리버스 프록시 및 메일 프록시 기능을 가진다

 

 

Web Application

다운로드 받지 않고, 인터넷을 통해 웹 브라우저 위에서 이용할 수 있는 응용 소프트웨어(app)

 

ASP(Active Server Page)

동적으로 서버에서 작동하는 페이지

 

JSP(Java Server Pages)

HTML 코드에 JAVA 코드를 넣어 동적웹페이지를 생성하는 웹 어플리케이션 도구

 

PHP(Hypertext Preprocessor)

PHP는 프로그래밍 언어의 일종이다. 원래는 동적 웹 페이지를 만들기 위해 설계되었으며 이를 구현하기 위해 PHP로 작성된 코드를 HTML 소스 문서 안에 넣으면 PHP 처리 기능이 있는 웹 서버에서 해당 코드를 인식하여 작성자가 원하는 웹 페이지를 생성한다.

 

 

WAS(Web Application Server)

웹 애플리케이션 서버는 웹 애플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공하는 소프트웨어 프레임워크이다. 인터넷 상에서 HTTP를 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해 주는 미들웨어로 볼 수 있다.

 

Tomcat

아파치 톰캣은 아파치 소프트웨어 재단에서 개발한 서블릿 컨테이너만 있는 웹 애플리케이션 서버이다. 톰캣은 웹 서버와 연동하여 실행할 수 있는 자바 환경을 제공하여 자바서버 페이지와 자바 서블릿이 실행할 수 있는 환경을 제공하고 있다.

 

Weblogic

오라클사의 웹 애플리케이션 서버.  온프레미스 및 클라우드에서 JAVA 같은 엔터프라이즈 애플리케이션 개발, 배포, 실행하기 위한 통합되고 확장 가능한 플랫폼.

 

Jeus

제우스는 티맥스소프트사에서 제작한 한국산 웹 애플리케이션 서버이다. 현재 기업에서 사용하는 웹 시스템에 사용되고 있으며, 웹 서버인 웹투비와 같이 사용되고 있다.

 

 

 

 

 

반응형

'23년 이전 글 > 네트워크' 카테고리의 다른 글

HTTP  (0) 2022.07.15
프로토콜, TCP, UDP  (0) 2022.07.13
Information Protocol, IP  (0) 2022.07.12
OSI 7계층, 프로토콜, 캡슐레이션  (0) 2022.07.11