2 điểm bởi GN⁺ 2023-09-20 | 1 bình luận | Chia sẻ qua WhatsApp
  • Máy chủ thư của khoa thống kê tại một trường đại học từ một thời điểm nào đó đã không thể gửi email tới các đích xa hơn khoảng 500~520 dặm, và lỗi này có thể được tái hiện theo đúng bán kính địa lý
  • Trưởng khoa đã gom dữ liệu trong vài ngày rồi nhờ một nhà địa thống kê phân tích, lập bản đồ bán kính có thể tới được và các đích ngoại lệ nằm trong bán kính đó
  • Kết quả kiểm thử của quản trị viên cho thấy từ Research Triangle, North Carolina, việc gửi tới Richmond, Atlanta, Washington, Princeton, New York đều thành công, nhưng Memphis, Boston, Detroit, Providence thì thất bại, qua đó lộ ra rằng tiêu chí là vị trí của máy chủ thư chứ không phải vị trí của người nhận
  • Nguyên nhân là trong lúc vá máy chủ, SunOS được nâng cấp và Sendmail 8 trên thực tế bị hạ xuống Sendmail 5, trong khi Sendmail 5 bỏ qua các tên cấu hình dài trong sendmail.cf vốn dành cho Sendmail 8
  • Kết quả là thời gian chờ kết nối bị đặt thành 0, và trên máy đó kết nối bị ngắt sau khoảng 3 mili giây, khớp với giá trị quan sát khoảng 559 dặm theo phép tính của units

Báo cáo “email không đi quá 500 dặm”

  • Trong lúc vận hành hệ thống email của khuôn viên trường, quản trị viên nhận được liên hệ từ trưởng khoa thống kê rằng “có vấn đề khi gửi email ra ngoài khoa”
  • Cốt lõi của vấn đề là “không thể gửi thư tới nơi nào xa hơn 500 dặm từ đây”, và trưởng khoa nói thêm rằng ranh giới thực tế là “hơn một chút, khoảng 520 dặm
  • Quản trị viên trả lời rằng email bình thường không hoạt động theo kiểu đó, nhưng trưởng khoa đã chỉ liên hệ sau khi thu thập đủ dữ liệu trong vài ngày
  • Khoa thống kê đã nhờ một nhà địa thống kê kiểm tra và tạo ra một bản đồ cho thấy phạm vi có thể gửi thư là một bán kính hơi lớn hơn 500 dặm
    • Ngay cả trong bán kính đó vẫn có những đích không tới được hoặc chỉ tới được thất thường
    • Ra ngoài bán kính đó thì email hoàn toàn không bao giờ được chuyển đi
  • Cũng trong thời gian đó, một tư vấn viên đã vá máy chủ và khởi động lại, nhưng nói rằng không hề đụng vào hệ thống thư

Kiểm thử tái hiện và ranh giới địa lý

  • Quản trị viên đăng nhập vào máy chủ của khoa và gửi thư thử, và vấn đề thực sự có thể tái hiện
  • Khi đó vị trí là Research Triangle ở North Carolina, và các đích gần đều hoạt động bình thường
    • Thư thử gửi tới chính tài khoản của mình được chuyển thành công
    • Thư gửi tới Richmond, Atlanta, Washington cũng thành công
    • Bài kiểm tra tới Princeton ở khoảng 400 dặm cũng vượt qua
  • Các đích xa hơn tiếp tục thất bại
    • Memphis khoảng 600 dặm thất bại
    • Boston thất bại
    • Detroit thất bại
    • New York khoảng 420 dặm thành công
    • Providence khoảng 580 dặm thất bại
  • Thư gửi tới tài khoản của một người bạn sống ở North Carolina lại thất bại, vì ISP của tài khoản đó đặt ở Seattle
    • Điều này xác nhận rằng vấn đề liên quan tới vị trí địa lý của máy chủ thư, chứ không phải vị trí thực tế của con người

Cấu hình Sendmail trông có vẻ bình thường

  • Tệp sendmail.cf nhìn chung có vẻ bình thường, và giống hệt tệp mà quản trị viên đã tự viết trước đó
  • Quản trị viên cho rằng mình chưa từng bật tùy chọn kiểu FAIL_MAIL_OVER_500_MILES
  • Khi kết nối vào cổng SMTP bằng telnet, máy chủ trả về banner SunOS sendmail
  • Khi đó Sun phân phối Sendmail 5 kèm theo hệ điều hành, dù Sendmail 8 đã ở trạng thái khá hoàn thiện
  • Quản trị viên đã chuẩn hóa lên Sendmail 8 và đang dùng sendmail.cf được viết với các tên tùy chọn và biến dài, tự mô tả của Sendmail 8
    • Sendmail 5 cũ hơn dùng loại mã cấu hình bí hiểm, nặng về dấu câu

Bản nâng cấp tạo ra một lần hạ cấp

  • Khi “vá” máy chủ, tư vấn viên đã nâng phiên bản SunOS, và trong quá trình đó Sendmail bị kéo xuống Sendmail 5
  • Bản nâng cấp hệ điều hành giữ nguyên sendmail.cf cũ, nhưng giờ nó trở thành tệp không còn khớp với phiên bản Sendmail đang chạy
  • Phiên bản Sendmail 5 do Sun phân phối vẫn xử lý được nhiều quy tắc trong sendmail.cf dành cho Sendmail 8
    • Lúc đó phần lớn các quy tắc vẫn chưa thay đổi nhiều
  • Vấn đề nằm ở các tùy chọn cấu hình dài của Sendmail 8, và Sendmail 5 coi chúng như rác rồi bỏ qua
  • Trong binary của Sendmail, phần lớn giá trị mặc định cho các tùy chọn này không được biên dịch sẵn; mà trong tệp cấu hình cũng không tìm thấy giá trị, nên kết quả là chúng bị đặt thành 0

Timeout 3 mili giây và 558 dặm

  • Một trong các giá trị bị đặt thành 0 là thời gian chờ kết nối dùng khi kết nối tới máy chủ SMTP từ xa
  • Thí nghiệm cho thấy trên máy đó và dưới điều kiện tải thông thường, timeout bằng 0 sẽ hủy lời gọi connect sau khoảng hơn 3 mili giây một chút
  • Mạng của khuôn viên trường khi đó được chuyển mạch 100%
    • Các gói đi ra ngoài không gặp độ trễ router cho đến khi tới POP và chạm router ở phía bên kia
    • Thời gian kết nối tới máy từ xa có tải thấp trên mạng gần chịu ảnh hưởng từ khoảng cách theo tốc độ ánh sáng nhiều hơn là từ độ trễ router phụ thêm
  • Khi quản trị viên dùng units để đổi 3 millilightseconds sang miles, kết quả là 558.84719 dặm
  • Con số tính được gần như khớp với quan sát của trưởng khoa rằng “500 dặm, hoặc hơn một chút”

1 bình luận

 
GN⁺ 2023-09-20
Ý kiến trên Hacker News
  • Vào năm 1998, khi tôi làm hỗ trợ IT cho một công ty nhỏ ở Úc, một nhân viên ở văn phòng từ xa gọi điện nói rằng “trình bảo vệ màn hình đã rơi khỏi màn hình, đè lên phím trên bàn phím và làm terminal bị khóa”
    Ban đầu tôi nghĩ chuyện đó thật vô lý, nhưng hóa ra thứ mà họ gọi là “trình bảo vệ màn hình” thực ra là tấm lọc chống chói CRT dạng vật lý rất phổ biến thời đó, và tấm lọc đó đã rơi xuống, đè giữ phím Scroll Lock
    https://dylbs6e8mhm2w.cloudfront.net/productimages/500x500/E...

  • Tôi thích những chuyện kiểu này. Có những khoảnh khắc ta phát hiện ra rằng một hiện tượng mình chắc chắn là không thể xảy ra lại thật sự xảy ra vì các định luật vật lý như tốc độ ánh sáng
    Ở một trong những công việc đầu tiên, tôi gặp vấn đề màn hình CRT nhấp nháy rất nhẹ; dù đã thay màn hình, cáp, dây nguồn, thậm chí cả máy tính thì vẫn y như cũ
    Cuối cùng, khi đẩy cả máy tính và màn hình ra hành lang bằng xe đẩy thì vấn đề biến mất; nguyên nhân là khả năng che chắn điện kém của văn phòng đó

    • Chiếc Commodore 64 bắt đầu tự “gõ phím”, nên đã được gửi đi sửa hai lần, nhưng ở tiệm sửa lúc nào cũng hoạt động bình thường
      Về sau mới phát hiện do mua một chiếc TV lớn hơn và đặt quá gần, khiến tĩnh điện tích tụ và gây ra hiệu ứng đó. Có vẻ đến lúc tới tiệm sửa thì nó đã xả điện đủ nhiều nên lại ổn trong một thời gian
    • Tôi nhớ đến một người dùng “bị nguyền rủa” mà mình từng hỗ trợ vào giữa thập niên 90
      Chúng tôi bán cho người đó một chiếc máy tính, nhưng họ nói cứ dùng là bị màn hình xanh; mang về kiểm tra thì không có vấn đề gì, dùng cùng họ trong văn phòng suốt 30 phút cũng vẫn ổn
      Nhưng ngay khoảnh khắc người đó chạm vào chuột, máy tính hiện màn hình xanh, và vấn đề biến mất sau khi thay chuột
    • Trong một phòng thí nghiệm, mỗi máy tính đều có ổn áp đi kèm, nhưng chất lượng quá tệ nên nhiều khả năng còn gây hại hơn
      Mỗi khi ai đó bật ổn áp, các màn hình CRT gần đó lại méo hình, nhấp nháy và xuống màu trong chốc lát. Chỗ ngồi sát tường ít bị ảnh hưởng hơn, nhưng đau đầu rất nặng; tôi chỉ trụ được 6 tháng ở công ty đó
    • Nhớ đến công tắc “ma thuật” của MIT AI Lab: http://www.catb.org/jargon/html/magic-story.html
  • Phần hay nhất của câu chuyện này là vị tư vấn viên đã vá máy chủ cũng có mặt trên Hacker News
    Người đó đã để lại bình luận về phần việc mình phụ trách tại đây: https://news.ycombinator.com/item?id=23775404

    • Tôi đã quên mất chuyện đó. Phần liên quan của thread đó bắt đầu ở đây: https://news.ycombinator.com/item?id=23777700
      Tôi cũng đã đưa vào /highlights cho những ai quan tâm: https://news.ycombinator.com/highlights
    • Bài viết nói rằng tư vấn viên đã vá và khởi động lại máy chủ nhưng không động đến hệ thống mail, còn trong bình luận thì nói rằng “vì phương án khởi tạo lại rồi cài lại không được chấp nhận, nên dĩ nhiên là đã cập nhật sendmail
      Có lẽ đoạn “đã thay đổi câu chuyện đôi chút để bảo vệ người có tội” chính là phần này
  • Cứ vài năm câu chuyện này lại được đăng lên, và lần nào cũng khiến tôi mỉm cười

    • Nó làm tôi nhớ đến câu chuyện chiếc xe không nổ máy sau khi mua “kem vani
    • Tôi nghĩ câu chuyện này sẽ hay hơn nếu giữ nguyên các con số thật. Có vẻ về sau người ta đã gắn vào những con số giả, có thể vì không ghi lại hoặc đã quên số thực
      Con số 3 mili-giây ánh sáng ở cuối không thể đúng, vì đó là khoảng cách một chiều
    • Có lẽ ai đó có thể đặt nhắc lịch hằng năm để đăng lại chuyện này và kiếm karma. Biết đâu thực tế đã có người đang làm vậy
    • Có vẻ lại đến lúc kể câu chuyện này cho thế hệ tiếp theo
  • Năm 2007, khi làm kỹ thuật hỗ trợ cấp 2 cho nhiều dịch vụ tại một ISP lớn, ADSL vẫn còn rất phổ biến, và vì dựa trên dây đồng nên có một khoảng cách tối đa để có thể hoạt động ổn định
    Một số khách hàng dùng gói cước đặc biệt nhằm kéo dài khoảng cách đó thêm khoảng 2–3 km, nhưng trên thực tế khá không ổn định và chỉ vừa đủ để lướt web
    Một mùa hè nọ, một khách hàng báo rằng IPTV của họ bị ngắt vào ban ngày suốt gần một tháng, Internet thỉnh thoảng cũng chậm như băng trôi. Đo đạc cho thấy họ ở rất xa tổng đài điện thoại gần nhất, và chúng tôi kết luận rằng vào ban ngày nóng bức, đường dây giãn nở, khiến khoảng cách hơi vượt quá giới hạn và trở nên bất ổn
    Gần như không có cách nào giúp được, và tôi không nhớ nhung gì mạng dây đồng cả

    • Nếu cách điện tốt hơn cho đoạn dây từ cột điện vào nhà thì sao nhỉ?
  • Khoảng 15–20 năm trước, khi làm ở một tiệm sửa chữa, có người mang TV đến vì cứ đúng 5 giờ chiều mỗi ngày TV lại chuyển sang tiếng Tây Ban Nha
    Họ đang xem truyền hình mặt đất, và trong phần cài đặt TV chỉ có ngôn ngữ menu, nhưng đúng là vào 5 giờ chiều, âm thanh TV chuyển sang tiếng Tây Ban Nha. Xem thêm vài kênh thì thấy ngoại trừ một, hai kênh, tất cả đều là tiếng Tây Ban Nha
    Hóa ra một số đài phát âm thanh bằng nhiều ngôn ngữ, và một số TV cho phép thay đổi ngôn ngữ ưu tiên. Tiếc là chiếc TV cũ mà người đó mua lại là sản phẩm đến từ một quốc gia nói tiếng Tây Ban Nha, nên không có cách nào đổi thiết lập ưu tiên đó

    • Loa Bluetooth của tôi sau vài năm dùng thì chuyển sang tiếng Trung. Tôi không biết chuyện đó xảy ra thế nào, cũng không biết đổi lại ra sao, và hướng dẫn sử dụng cũng không nói
      Vài ngày trước, tôi mang về nhà một robot hút bụi được sản xuất và mua ở Trung Quốc; ngay khi bật lần đầu, nó lao vào máy chủ và rút phích cắm điện
      Vì vậy cũng không thể loại trừ khả năng là một cuộc tấn công mạng do nhà nước hậu thuẫn
    • Nguyên nhân khiến nó đổi lúc 5 giờ chiều là gì nhỉ?
  • Đây đúng là ví dụ mẹ của mọi trừu tượng bị rò rỉ
    Ngay khoảnh khắc định gửi email, giao thức truyền tải tầng dưới thực sự của vũ trụ tương đối tính đã lộ ra

  • Trưa nay tôi vừa nói chuyện về Sendmail, và tôi dám chắc đó là chuyện khá hiếm
    Tôi nhớ lại lần đầu cấu hình Sendmail vào năm 1991 hoặc 1992; nhìn cuốn bat book và gần như vò đầu bứt tóc suốt một tuần mới cấu hình thành công lần đầu
    Về sau tôi hiểu cấu hình m4 và phần nào công nhận nó, nhưng từ khi chuyển sang qmail và postfix vào giữa thập niên 90 thì chưa bao giờ ngoái lại

  • Có lẽ bài kiểu này nên được ghi là 1997 chứ không phải 2002. Tuy nhiên có vẻ chính Trey cũng không nhớ rõ: https://www.ibiblio.org/harris/500milemail-faq.html

  • Các bài liên quan. Còn bài nào nữa không?
    The case of the 500-mile email (2002) - https://news.ycombinator.com/item?id=29213064 - tháng 11/2021 (93 bình luận)
    We can't send email more than 500 miles (2002) - https://news.ycombinator.com/item?id=23775404 - tháng 7/2020 (135 bình luận)
    500 miles (2002) - https://news.ycombinator.com/item?id=18675375 - tháng 12/2018 (32 bình luận)
    The case of the 500-mile email (2002) - https://news.ycombinator.com/item?id=14676835 - tháng 7/2017 (56 bình luận)
    The 500-mile email (2002) - https://news.ycombinator.com/item?id=9338708 - tháng 4/2015 (139 bình luận)
    The case of the 500-mile email - https://news.ycombinator.com/item?id=2701063 - tháng 6/2011 (18 bình luận)
    The case of the 500-mile email - https://news.ycombinator.com/item?id=1293652 - tháng 4/2010 (24 bình luận)
    The case of the 500-mile email - https://news.ycombinator.com/item?id=385068 - tháng 12/2008 (28 bình luận)
    The case of the 500-mile email - https://news.ycombinator.com/item?id=123489 - tháng 2/2008 (7 bình luận)

    • Có phải các bài gửi cùng một liên kết sau khoảng 1 năm sẽ không còn được “liên kết” với nhau nữa không?
    • script nào làm thay việc này không?