본문 바로가기
Develop/CS

페이스북이 멈췄다? (DNS와 BGP에 대해)

by 연로그 2021. 10. 5.
반응형

목차

1. 페이스북 네트워크 이슈

2. DNS의 개념과 작동 방식

3. BGP의 개념


 


1. 페이스북 네트워크 이슈

 

페이스북이랑 인스타가 먹통이라고?

 

오늘 새벽에 페이스북에서 운영하는 몇몇 서비스가 먹통됐다길래 궁금해서 찾아봤다. (페이스북 계열사의 모든 서비스가 중단됐던 모양이다. 페이스북, 인스타그램, 왓츠앱, ...) 많은 사람들이 DNS와 BGP에 대한 언급이 많았기 때문에 개념을 정리하기 위해 포스팅 한다.

 

페이스북이 먹통된 원인이 뭘까?

페이스북에서 공식적인 입장이 있지는 않았지만, Cloudflare 측에서 대규모 BGP 변경이 있었다는 트윗이 올라왔다.

DNS가 멈추기 전에 BGP 변경이 많았다는 트윗

이를 통해 BGP 설정 오류로 인해 네트워크가 통째로 내려갔다고 추측한다.

장애 5시간 반만에 BGP가 업데이트 되었고, 최소한의 서비스가 구동되기 시작했다고 하지만 '네트워크 전체가 죽었다' 라는건 정말 큰 사건이라고 생각한다.

 

 

 


2. DNS의 개념과 작동 방식

 

DNS란?

  • Domain Name System
  • 127.0.0.1 같은 숫자 형식의 IP 주소를 localhost.com 같은 문자열 형식의 도메인 네임으로 접근 가능하게
  • 사용자가 도메인에 접근하면, DNS에서 IP 주소를 찾음

 

DNS 등록 과정

🔻 사용자가 123.456.789를 example.com로 등록하는 과정

더보기
  1. 사용자는 등록 대행자에게 example.com NS a.iana-servers.net이라는 정보를 전달
    (example.com 이라는 도메인의 Name Server는 a.iana-servers.net 이라는 의미)
  2. 등록 대행자는 등록소에게 example.com NS a.iana-servers.net이라는 정보를 전달

  3. 등록소는 등록소의 Top-level domain에 2의 정보 저장
    (= 등록 대행자와 등록소는 서로 알고 있는 관계가 되었다. )

  4. 위와 유사한 방식으로 등록소와 ICANN를 연결
    (example.com NS a.gtld-servers.net를 Root name server에 저장)

  5. 사용자는 등록 대행자에게 example.com A 123.456.789라는 정보를 전달
    (example.com 이라는 도메인의 Address는 123.456.789 이라는 의미)

  6. 등록 대행자는 전달 받은 정보를 저장

 

ICANN은 등록소의 주소를 알고 있고, 등록소는 등록 대행자의 주소를 알고 있고, 등록 대행자는 사용자가 등록한 도메인과 이에 해당되는 주소를 알고 있다.

 

사용자의 접근 과정

사용자가 인터넷에 연결하면 DHCP를 통해 자동으로 DNS Server가 할당된다.

해당 서버에는 저장된 . NS a.root-servers.net을 이용해 ICANN, 등록소, 등록 대행자까지 차례로 접근할 수 있게 되고 최종적으로 접속하려는 도메인의 IP 주소를 받아올 수 있게 된다.

(위 문장이 이해되지 않는다면 DNS 등록 과정을 이해하지 못한 것이니 다시 볼 것!)

 

🔻 DHCP란?

더보기

DHCP; Dynamic Host Configuration Protocol

  • 호스트의 IP주소와 각종 TCP/IP 프로토콜의 기본 설정을 클라이언트에게 자동적으로 제공해주는 프로토콜
  • 사용자 PC에 자동으로 네임 서버 주소, IP 주소, 게이트웨이 주소 등을 할당
  • 사용자 PC의 OS는 DHCP 기능이 기본적으로 동작.
    일일이 인터넷 주소 설정을 하지 않아도 OS가 통신사의 DHCP 서버에 인터넷 주소 세트 할당을 요청

 

 

 


3. BGP의 개념

BGP란?

  • = Border Gateway Protocol
  • 서로 다른 조직 (AS)간 트래픽 연동을 위해 탄생
  • AS의 라우터 간에 라우팅 정보를 교환하는 데 사용하는 프로토콜
  • 어떠한 AS를 통해 목적지까지 가는지를 결정하기 위한 라우팅 프로토콜
  • 라우팅 정보를 사용해 다른 BGP 시스템과 교환하는 네트워크 정보 DB를 관리
  • 물리적으로 라우터 간의 라우팅이 아닌, AS 영역 간의 라우팅. (그림 참고)

    (같은 AS의 종단 라우터는 IBGF로, 다른 AS의 종단 라우터는 EBGP로 연결)

 

🔻 용어 설명

더보기

AS; Autonomous System

  • 동일한, 같은 관리 하에 있는 라우터 집합
  • 동일한 내부 게이트웨이 프로토콜과 공통 메트릭 세트를 사용해 라우터 세트 내에서 라우팅 정보 전파
  • 한 회사/단체에서 관리하는 라우터 집단으로 사업자 단위로 생각하면 편하다.

 

라우팅; Routing

  • 어떤 네트워크 안에서 통신 데이터를 보낼 때 최적의 경로를 선택하는 과정

 

라우터; Router

  • 라우팅 기능을 갖는 공유기
  • 패킷의 위치를 추출해, 그 위치에 대한 최적 경로를 지정
    위 경로를 따라 데이터 패킷을 다음 장치로 전향시키는 장치

 

종단 라우터; Edge Router

  • AS 내에서 가장 끄트머리에 존재하는 라우터
  • 통신망의 가장자리에 있는 라우터

 


참고 자료

  1. 페이스북이 먹통된 이유: 트위터 Kang Seonghoon님 트윗
  2. DNS: https://www.cloudflare.com/learning/dns/what-is-dns
  3. DNS 등록 과정: https://www.youtube.com/watch?v=hfj0IGgKAgU
  4. DHCP: https://it.donga.com/31810/
  5. BGP: https://www.juniper.net/documentation/us/en/software/junos/bgp/topics/topic-map/bgp-overview.html
  6. BGP: https://www.youtube.com/watch?v=lISiQ6ifeM0
반응형

'Develop > CS' 카테고리의 다른 글

What is Hosting? 호스팅이란?  (0) 2021.10.28
브라우저의 동작 원리  (0) 2021.10.07
[Oracle] SQL문으로 주말 구하기  (1) 2021.08.30
[Oracle] ORA-01476: 제수가 0 입니다.  (0) 2021.08.09
[Mybatis] ResultMap 이용하기  (6) 2021.08.02