라우터의 기능과 라우팅 오류 예방 방법

일부 수업이 대면으로 전환되었음에도 불구하고, 교내의 많은 수업이 여전히 비대면으로 진행되고 있습니다. 지난 10 25일 발생한 KT의 라우팅 에러는 학교를 포함한 전국에 영향을 미쳐 4교시와 5교시 수업에 차질을 빚기도 했습니다. 이번 글에서는 KT의 라우팅 에러를 통해 라우터의 기능과 함께 이를 예방할 방법에 대해 고찰해보고자 합니다.

수업을 듣던 중 수업이 끊깁니다. 왜 그런 건지 검색을 하고자 해도 작동하지 않습니다.

왜 이번 사태는 종전의 전화 사태와 다르게 특정 지역에만 국한되지 않았을까요? 또 내 통신사가 KT가 아님에도 어떻게 이런 일이 일어났던 것일까요

Fig .1 네트워크 개요도 (https://www.blackhillsinfosec.com/home-network-design-part-1/)

인터넷은 전세계를 연결하는 네트워크로 구성되어 있습니다. 네트워크에서 개별 PC와 모바일 기기들은 무선 공유기 (AP)에 연결되고, 이는 다시 라우터에 연결이 됩니다. 라우터는 이렇게 좁게는 기기들을 연결하는 기능을 하며, 넓게는 라우터 라우터 연결을 통해 전체 네트워크가 구성되게 됩니다.

라우터는 단순하게 단말들을 연결하는 기능 뿐 아니라 연결 과정에서 최적 경로를 탐색하고 최적 경로를 따라 이동합니다. 이 때, 최적의 경로를 찾는 방법은 두 가지가 있습니다

  1. 정적 경로 설정

    정적 경로 설정은 관리자가 네트워크에서 최적의 경로를 미리 계산하고, 이를 수동으로 라우터에 설정하는 것을 말합니다. 경로의 수정이 쉬워 경로상에 위치한 라우터가 작동하지 않더라도 이를 피해 유지/보수하는 것이 용이합니다.
  1. 동적 경로 설정

    동적 경로 설정은 라우팅 프로토콜에 따라 자동으로 최적의 경로를 선택하고 이동하는 것을 말합니다. 동적 경로 설정은 또다시 거리 벡터 알고리즘과 링크 상태 알고리즘으로 나뉩니다. 거리 벡터 알고리즘은 벡터를 이용해 최소 거리를 구하고 이를 경로로 사용합니다. 링크 상태 알고리즘의 경우 각 링크 별로 이웃한 라우터에만 정보를 전달합니다. 이웃에 대한 연산만 수행하면 되기에 대규모 네트워크에 적합합니다.

KT의 경우도 대규모 네트워크인 만큼 링크 상태 알고리즘을 사용했습니다.

Fig.2 라우팅 테이블(https://enter.tistory.com/165)

라우팅 테이블이란 최적 라우팅 정보를 모두 나타낸 표로, 링크 상태 알고리즘에서는 모든 라우터가 동일한 라우팅 테이블을 공유합니다. 이는 인간의 세포가 각각 다른 기능을 하지만 모두 같은 DNA를 공유하는 것으로 이해할 수 있습니다.

Fig.3 KT 라우팅 오류 전파과정 (과기정통부 KT 네트워크 장애원인 분석 결과보고서)

과기정통부의 보고서에 따르면 부산 지역 라우터의 정비 과정에서 라우팅 테이블에 ‘exit’ 명령어를 오입력하게 되었고, 그 결과 라우팅 테이블의 값이 어긋난 채로 라우팅 테이블에 반영되게 되었습니다. 모두 같은 라우팅 테이블을 공유하는 Link-State algorithm의 특성 상 이 라우팅 테이블은 중앙 서버를 거쳐 단 3초 만에 전국의 모든 라우터로 확산되게 된 것입니다.

그렇다면 통신사가 KT가 아님에도 일부 장애가 일어난 까닭은 무엇일까요?

개인이 가입한 휴대폰과 인터넷의 ISP 외에도, 각 서비스 사업자들의 서버 또한 ISP에 가입되어 있습니다. 서버의 ISP KT인 경우 개인의 ISP KT 인 것과 마찬가지로 장애를 겪게 됩니다.

 

교내 뿐 아니라 전국에 장애를 빚은 KT의 라우팅 에러, 재발을 막으려면 어떤 방법이 있을까요?

 

굵은 손가락을 의미하는 ‘fat finger’ 는 사람의 키보드 오입력으로 발생하는 오류들을 말합니다.

한 연구(Comparative language fuzz testing: Programming languages vs. fat fingers. in : PLATEAU 2012)에 따르면, 코딩에 작은 오류 하나만 있어도 성공적으로 작동할 확률은 25% 미만이 됩니다.


Fig 4. Fat finger 오류와 사용 언어별 작동 확률

따라서 처음부터 코딩 과정에서 주의를 기울이는 것이 요구됩니다.

네트워크 측면에서는 Link-State 알고리즘은 모든 라우팅 테이블을 모든 라우터가 공유한다는 단점을 지니고 있습니다. 하지만 라우팅 테이블을 공유함으로써 Link-State 알고리즘의 높은 처리 속도가 유지되는 것이기에, 위상 수학을 도입한 이상적인 알고리즘의 상용화가 해결책이 될 수 있습니다

참고문헌

  1. https://www.blackhillsinfosec.com/home-network-design-part-1/
  2. https://enter.tistory.com/165
  3. 과기정통부 KT 네트워크 장애원인 분석 결과보고서
  4. Diomidis Spinellis, Vassilios Karakoidas, and Panagiotis Louridas. Comparative language fuzz testing: Programming languages vs. fat fingers. In PLATEAU 2012: 4th Annual International Workshop on Evaluation and Usability of Programming Languages and Tools—Systems, Programming, Languages and Applications: Software for Humanity (SPLASH 2012). ACM, October 2012.
  5. Haipeng Yao, Chao Fang, Yiru Guo, Chenglin Zhao, “An Optimal Routing Algorithm in Service Customized 5G Networks”, Mobile Information Systems, vol. 2016, Article ID 6146435, 7 pages, 2016. https://doi.org/10.1155/2016/6146435