본 포스팅은 네트워크 스터디를 기반으로 개인 정리를 위한 포스팅입니다.
잘못된 부분이 있다면 언제든 지적해주시면 감사하겠습니다!
위와 같은 사진 속 상황 속 URL 입력을 하게 되었을 때 이후를 묻는 면접질문은 Well Known!
이에 대한 답변으로 신입 개발자의 입장에서는 아래와 같은 답변을 하게 된다면 기본적인 대답은 OK.
- 주소창에 www.naver.com라는 특정 주소를 입력후 Enter 땅!
- 위 URL에 대한 IP번호를 수신
- DNS Cache를 찾아보거나
- hosts File을 찾아봐서 해당 정보가 없다면 ISP의 DNS 서버에 질의를 보냄.
- 여기서 추가로 DNS서버에 질의를 보낼때도 분기가 나뉨.
- 공유기를 사용하는 경우 : 공유기가 DNS 포워딩 기능을 수행.
- 혹은 ISP Internet(KT같은 통신사 서비스가 될 수 있음)을 통한 DNS 질의를 직접적으로 수행.
- 질의로 얻은 IP주소를 통해 해당 서버 쪽으로 TCP연결을 시도.
- HTTP Request 요청
- HTTP Response 응답
여기까지가 신입 개발자가 대답해야 할 수준
전체적인 흐름도
간혹 Google 및 Naver같은 대기업 지원의 경우에는 GSLB 또는 CDN 언급이 필수 아닌 필수가 됨.
GSLB (Global Server Load Balancing)
DNS서버에 의해 응답으로 오는 IP주소는 달라질 수 있음.
이는 네이버 같은 경우만 해도 전세계에 서버가 N대가 존재하기에 여러 IP를 가질 수 있고, 요청 측 IP주소와 거리가 가깝거나, 속도가 더 빠를 수 있는 IP를 주기위해 사용하는 개념.
Health Check를 통해 N개의 서버에 대한 상태를 기록할 수 있어서 사용할 수 있는 개념.
CDN (Content Delivery Network)
접속자의 IP와 위치 기반 가까운 곳에서 질의를 전송하므로써 전송 속도를 높이는 개념. (지연시간 감소)
정적 파일 복사본을 캐싱해놓고 있어서 바로바로 응답이 가능함.
사용자가 CDN 서버에 요청을 했는데 캐시에 없다면 원본 서버로부터 응답을 받아 사용자에게 IP 전송.
해당 응답을 유효기간과 함께 캐싱.
유효기간 만료 시 캐시에서 제거.
CDN 기술을 제공하는 대표적인 업체로는 Akamai, KT 등이 있음.
Question.
네이버를 이용 중에 서울에 있는 네이버 서버에서 로그인을 했는데 서울 웹서버가 다운되었다면, 근처에 있는 부산 서버로 요청이 넘어갈텐데 로그인 세션 유지는 어떻게 할 것인가?
>> 백업서버 접근 시 IP주소를 직접 지정하는 경우라면 해당되지 않는 문제가 되겠습니다. 무엇보다 세션유지와 아무런 관련 없을 가능성이 높겠습니다. 그리고 세션은 L4에서도 존재합니다. 어느 수준 세션인가에 따라 답변은 매우 달라짐.
DNS Spoofing Attack 혹은 DNS 캐시 포이즈닝 공격에 대한 대처는 어떻게 할건가?
>> 해당 공격은 DNS 서버에 있는 캐시에 유입되어 DNS가 유효하지 않은 결과 레코드를 반환하게 하는 공격입니다. (예를들어 네이버를 요청했는데 DNS 캐시에는 존재하지 않지만 공격에 의해 이상한 사이트의 IP를 응답으로 주게 되겠죠.)
대처라고 한다면 hosts 파일을 사용할 경우 DNS Cache보다 우선적으로 참조되는 특성이 있기 때문에 hosts파일 갱신을 통해 적어도 hosts파일에 올라와있는 DN에 대해서는 해당 공격에 대해서 어느정도 대처를 할 수 있습니다.
DDoS에 대한 공격 대처는 어떻게 할건가?
>> DDoS 공격을 간단하게 말하자면 서버에 대량으로 트래픽을 보내서 서버를 마비시켜 정상적인 트래픽이 못가게 하는 공격을 의미함.
AWS에서는 한마디로 서버 좋은거 쓰라는데 상술느낌 나긴 하네요 ㅋㅋ..
또다른 방법으로는 정상 및 비정상 트래픽을 파악할 수 있도록 개별 패킷 자체를 분석하여 합법적인 트래픽만 수용하는 방법입니다.
무중단 배포(Docker + 쿠버네티스) 환경에서의 장애대비(DR)가 가능할까?
Reference
웹 브라우저에 URL 입력하면 일어나는 일 - 인프라 위주 (youtube.com)
'CS > 네트워크' 카테고리의 다른 글
[네트워크] HTTP Status Code (1) | 2024.01.31 |
---|---|
[네트워크] HTTP Protocol (0) | 2024.01.12 |
[네트워크] 4계층 - TCP 프로토콜 (전송 과정 설명) (1) | 2024.01.02 |
[네트워크] 4계층 - TCP, UDP 프로토콜 (1) | 2024.01.02 |
[네트워크] 3계층 - IPv4 프로토콜, ICMP 프로토콜 (0) | 2024.01.02 |
개발 기술 블로그, Dev
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!