500마일 이상 떨어진 곳으로 이메일을 보낼 수 없었던 이유 (2002)

1 week ago 8

  • 미국 한 대학의 통계학과 메일 서버가 500마일 이상 떨어진 곳으로 이메일을 보내지 못하는 이상 현상이 발생
  • 조사 결과, SunOS 업데이트 과정에서 Sendmail 버전이 다운그레이드되며 설정 파일이 호환되지 않은 것이 원인
  • Sendmail 5가 Sendmail 8용 설정 파일의 긴 옵션명을 인식하지 못해, 여러 기본값이 0으로 설정됨
  • 그중 SMTP 연결 타임아웃이 0으로 설정되어, 약 3밀리초 이상 걸리는 원격 연결이 모두 실패
  • 네트워크 지연이 거리와 비례해 발생하면서, 결과적으로 500마일 이상 떨어진 서버로의 메일 전송이 차단되는 현상이 나타남

문제의 시작

  • 통계학과에서 “500마일 이상 떨어진 곳으로 메일을 보낼 수 없다”는 신고가 접수됨
    • 520마일까지는 가능하지만 그 이상은 실패하는 현상
    • 학과장은 지오통계학자를 동원해 메일이 도달 가능한 반경 지도를 작성, 반경이 약 500마일로 확인됨
  • 시스템 관리자는 테스트 메일을 여러 지역으로 전송해 문제를 재현
    • 400마일 거리의 Princeton에는 성공, 600마일 거리의 Memphis에는 실패
    • New York(420마일) 은 성공, Providence(580마일) 은 실패

원인 분석

  • 서버의 sendmail.cf 설정 파일은 정상으로 보였으며, 작성자가 직접 만든 Sendmail 8용 설정 파일이었음
  • 그러나 SMTP 포트 배너를 확인하자 SunOS Sendmail 5가 실행 중이었음
    • 서버 패치 과정에서 운영체제가 업그레이드되며 Sendmail이 8에서 5로 다운그레이드
    • 기존 설정 파일은 그대로 남아 있었으나, Sendmail 5는 Sendmail 8의 긴 옵션명을 인식하지 못함
  • 인식되지 않은 옵션은 무시되었고, 해당 항목의 기본값이 0으로 초기화
    • 특히 원격 SMTP 서버 연결 타임아웃 값이 0으로 설정되어, 연결 시도가 약 3밀리초 후 중단됨

거리와 속도의 관계

  • 당시 캠퍼스 네트워크는 100% 스위치 기반 구조로, 라우터 지연이 거의 없었음
    • 따라서 연결 시간은 물리적 거리(빛의 속도) 에 의해 결정됨
  • 계산 결과, 3밀리초는 약 558마일 거리에 해당
    • 실제로 보고된 “500마일 또는 그보다 약간 더”라는 현상과 일치

결론

  • 문제의 근본 원인은 Sendmail 버전 불일치로 인한 설정 파싱 오류
  • 타임아웃이 0으로 설정되면서, 물리적 거리 제한이 생긴 것처럼 보이는 네트워크 현상이 발생
  • 사례는 시스템 관리에서 버전 호환성과 설정 검증의 중요성을 보여주는 고전적 일화로 남음

Read Entire Article