이 글은 전국 KT 네트워크 장애 사건을 이해하는데도 도움이 될 것이라고 생각됩니다.
즉 6시간 동안 페이스북 네트워크가 인터넷 세상에서 단절되어 사라졌습니다.
이 글은 위 사건에 대해 학습하는 과정에서 얻은 지식을 총 정리하는 글입니다.
3. AS와 BGP
파트를 추천합니다DNS는 인터넷에서 사용되는 주소 체계로 .com 또는 .net과 같은 특정 최상위 도메인(TLD)의 모든 도메인 네임 및 해당하는 IP주소, 및 관련 값들을 저장, 관리하는 분산 형 데이터베이스 또는 그에 해당하는 기능을 갖는 물리적인 서버 장치를 지칭합니다 - CODNS - DNS란 무엇입니까?
간단히 말하면 DNS는 우리가 브라우저에 주소를 입력하면 실제 IP 주소를 응답하는 서버.
www.naver.com
(요청) 에 대한 응답으로 125.209.222.141
를 반환위는 실제 DNS 쿼리 요청 흐름을 간략화한 이미지이다.
위 이미지 속 4개의 DNS 서비스 유형에 대한 설명을 첨부한다.
Recursive Resolver
Authoritative Nameserver
에 직접 쿼리를 수행하지 않는다.Recursive Resolver
에 먼저 질의하는 경우가 일반적.8.8.8.8
등 직접 선택 가능하다.Root Nameserver
Recursive Resolver
에 알려져 있으며 이들은 Recursive Resolver
가 DNS 레코드를 요청하는 과정의 첫 단계.Recursive Resolver
의 쿼리에 대해, 해당 도메인의 확장자(.com,. net, .org, etc.)에 따라 TLD 네임서버 정보를 포함해 응답.TLD Nameserver
.com
으로 끝나는 모든 웹사이트의 정보를 갖고 있다.Authoritiative Nameserver
Recursive Resolver
에 IP 주소 정보가 담긴 답을 제공할 책임이 있다.AWS - What is DNS?
캐싱 등의 과정이 제외 후, 간략화된 이미지
(2) 사용자가 www.google.com
을 검색하는 경우
(3) Recursive Resolver
는 루트 네임서버로부터 응답을 받는다
(4) TLD 네임서버는 해당 도메인의 Authoritative Nameserver
에 대한 정보를 응답
(6) Authoritative Nameserver
는 최종 결과로 IP를 응답
구글이 운영하는 8.8.8.8 DNS
에 쿼리를 요청하고 정상 응답을 받은 것이 확인된다.
참고로 명령어 해석은 아래와 같다.
> dig @dns-server dmain
위 캡쳐는 사건 당시, facebook.com에 대해 쿼리를 날린 결과.
ANSWER: 0
를 확인 가능하다.1. 어째서 전세계 어디에서든 8.8.8.8
DNS를 빠르게 이용 가능할까?
각 대륙별로 8.8.8.8 주소를 가지는 Google DNS 서버를 위치시키십니다.
Google DNS 소개
댓글에도 나와있지만, DNS를 운용하면 어떠한 장점(수익, 데이터 분석 등)이 있는지 궁금하다.
2. 과연 어떤 DNS를 써야 가장 빠르게 이용 가능할까?
DNS는 IP주소를 받아오는 역할을 할 뿐이다. 실제 인터넷 속도를 증가시키지 않는다.
따라서 일반적으로 인터넷을 설치하면 설정되는 통신사 DNS를 사용해도 무관하다.
라우터는 이름처럼 경로를 지정해주는 역할을 한다 (3계층에서 동작하는 장비)
다양한 방법으로 경로 수집 후, 라우팅 테이블
에 저장한다. 그 후 최적 경로로 패킷을 보낸다.
경로 수집 방법은 아래와 같다.
1. 다이렉트 커넥티드 (인접 네트워크 정보를 얻는 방법)
2. 스태틱 라우팅 (관리자가 직접 입력하는 방법)
3. 다이나믹 라우팅 (서로 경로를 자동 교환하는 방법)
특히 다이나믹 라우팅에 대해서는 아래에서, 자세히 살펴보겠다.
패킷의 목적지 주소가 라우팅 테이블에 없으면 패킷을 버린다.
그럼에도 과거나 현재도 LAN에서 사용하는 프로토콜과 WAN에서 사용하는 프로토콜이 전혀 다른 완전히 구분된 공간
위 이미지에서 보이듯, 출발점에서 목적지 단말까지 모든 경로를 한번에 이동하지 않는다.
이제 위에서 살펴봤던, 경로 수집 방식 중 '다이나믹 라우팅'에 대해 설명하겠다.
다이나믹 라우팅은 라우터끼리 자신이 알고 있는 경로 정보를 교환해 전체 네트워크 정보를 학습하는 경로 수집 방법이다.
Announce
) 네트워크를 선언해줘야 한다.라우터끼리 정보를 교환해 경로 정보를 최신으로 유지할 수 있는, 다이나믹 라우터는 다양한 프로토콜이 존재한다.
BGP 프로토콜
이 주로 사용된다.인터넷을 "네트워크의 네트워크"라고 한다.
이와 같은 하나의 네트워크 그룹을 자율 시스템(Autonomous System, AS)이라고 한다.
SKT, KT, LGU+같은 ISP(Internet Service Provider)가 한 개 이상의 AS를 운영.
BGP는 다른 AS 라우터간 최신 라우팅 정보를 교환하는 데 사용되는 EGP(External Gateway Protocol)
Dynamic Routing Protocol
다시 말해, AS들이 서로 라우팅 경로를 주고 받는 프로토콜이 바로 BGP
두개의 AS가 BGP에 의해 "라우팅 경로"를 교환하는 모습을 추상화한 이미지
IS-IS
등)참고로 AS는 서로 다른 사업자이고, 무작정 통신을 허용해서는 안된다. 인터넷 사업자 간에도 통신 비용을 지불해야 한다.
결국 사건은 네트워크 라우팅의 문제였다.
대부분의 기업은 이러한 문제를 경험할 일이 없지만, 페이스북 등 대규모 데이터센터를 운영하는 기업의 경우 직업 AS로써 인터넷 네트워크에 참여한다.
AS들의 라우터는 라우팅 테이블은 BGP 프로토콜에 의해 갱신, 유지된다.
Announce
해야 한다.(BGP advertisement
)Announce
를 중단Due to Facebook stopping announcing their DNS prefix routes through BGP
DNS resolvers had no way to connect to their nameservers.
다시말해, 페이스북은 인터넷이라는 세상 속에서 단절되어, 사라지게 된 것이다.
Facebook and its sites had effectively disconnected themselves from the Internet.
As a direct consequence of this,
DNS resolvers all over the world stopped resolving their domain names.
그 후, 다시 BGP Announce
를 시작하고 연결이 재개 되었다. (BGP Up)
Announce
후 인터넷에 참여결론은 아니다.
configuration changes on the backbone routers that coordinate network traffic between our data centers caused issues that interrupted this communication.
더 자세한 정보는 Facebook: More details about outage
한마디로 정리하면 "설정 변경 잘못"
BGP Announce
중단참고로 3번에서 언급하는 DNS는 페이스북의 지역 Authoritative NS라고 추측.
인터넷이 수백만 개의 시스템과 프로토콜이 함께 작동하는 매우 복잡하고 상호의존적인 시스템이라는 것을 상기시킨다. 기업 간의 신뢰, 표준화 및 협력이 전 세계 50억 명에 가까운 유저를 위해 작동되도록 한다.
Cloudflare
하나의 사건을 중심으로, 아래와 같이 학습했습니다.
1. 이해안되는 부분 검색
2. 검색 내용 학습
3. 다시 1번 반복
아무래도 글의 흐름이 중구난방한 부분이 느껴지실 것 같습니다.
참고로 이 글을 작성 한 이유 KT 네트워크 장애 사건(2021.10.25)이 발생했습니다.
더 자세한 학습은 아래 참고 부분의 각 링크에서 가능합니다.
DNS 파트
라우터, AS, BGP 파트
사건 분석 파트
또한 전체적인 흐름을 자세히 공부하고 싶다면 Why was Facebook down for five hours?