Điểm:1

Postfix - Khắc phục sự cố hết thời gian chờ kết nối cho tất cả các máy chủ trừ một máy chủ

lá cờ lr
Cos

Tôi đã kế thừa một máy chủ postfix chạy trên RedHat. Đây là một bản dựng không có giấy tờ, nhưng rất quan trọng đối với hoạt động kinh doanh (Không phải tất cả chúng ta đều thích chúng sao?)

Nó đã phát triển các vấn đề với việc gửi thư bị chậm trễ và tồn đọng. Các sự cố được báo cáo lần đầu cách đây vài tuần nhưng có thể xảy ra sau một khoảng thời gian không xác định.

Trải nghiệm *nix của tôi không được tốt, nhưng tôi đã có thể khám phá hệ thống đủ để xác định rằng khi máy chủ gặp phải tình trạng tồn đọng, nó sẽ báo cáo thời gian chờ kết nối tới các chuyển tiếp SMTP ngược dòng tại tổ chức của tôi.

Lỗi Ví dụ:

*3D27412A016
4187 Thứ ba ngày 19 tháng 4 17:04:26
[email protected]

(tạm ngừng truyền: kết nối với UpstreamRelayA4.doi.net[10.xx.xx.206]:25: Đã hết thời gian kết nối)

Người dù[email protected]*

Tuy nhiên, chủ sở hữu chuyển tiếp ngược dòng báo cáo rằng họ không có lỗi phù hợp trong nhật ký của họ từ máy chủ SMTP này. Đối với tổ chức của tôi, chỉ có một bản ghi MX với 4 máy chủ chuyển tiếp. Có thể truy cập tất cả 4 từ máy chủ SMTP của tôi qua telnet trên cổng 25, tuy nhiên, 3 trong số 4 đã hết thời gian trong nhật ký hậu tố.

Bất kỳ mẹo nào về cách theo dõi lý do tại sao postfix cho rằng chúng đã hết thời gian?

Đã thêm 20/4/22 - đầu ra postconf -n

    [USERNAME@mailer ~]$ postconf -n

alias_database = hash:/etc/aliases

alias_maps = hash:/etc/aliases

bị hỏng_sasl_auth_clients = có

thư mục lệnh = /usr/sbin

config_directory = /etc/postfix

daemon_directory = /usr/libexec/postfix

debug_peer_level = 2

debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin xxgdb
 
$daemon_directory/$ process_name $ process_id & ngủ 5

disable_vrfy_command = có

html_directory = không

inet_interfaces = tất cả

inet_protocols = ipv4

local_recipient_maps =

mail_owner = hậu tố

mail_spool_directory = /var/mail

hộp thư_size_limit = 0

mailq_path = /usr/bin/mailq.postfix

manpage_directory = /usr/share/man

maximal_queue_lifetime = 1d

message_size_limit = 30720000

mydestination = $myhostname, localhost.$mydomain, localhost

myhostname = mailer.domain.org.com

mạng của tôi = 

127.0.0.0/8,165.83.0.0/16,10.0.0.0/8,64.241.25.0/24,172.16.0.0/12

nguồn gốc của tôi = $ tên miền của tôi

newaliases_path = /usr/bin/newaliases.postfix

queue_directory = /var/spool/postfix

readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES

relayhost = relayLOCATION.parentorg.com

sample_directory = /usr/share/doc/postfix-2.10.1/samples

sendmail_path = /usr/sbin/sendmail.postfix

setgid_group = postdrop

smtp_tls_note_starttls_offer = có

smtp_use_tls = có

smtpd_delay_reject = có

smtpd_helo_required = có

smtpd_helo_restrictions= 
permit_mynetworks,reject_non_fqdn_helo_hostname,reject_invalid_helo_hostname,permit

smtpd_policy_service_max_idle = 5s

smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination

smtpd_sasl_auth_enable = có

smtpd_sasl_authenticated_header = có

smtpd_sasl_local_domain =

smtpd_sasl_security_options = vô danh

smtpd_sender_restrictions = permit_mynetworks,reject_non_fqdn_sender,permit

smtpd_tls_CAfile = /etc/postfix/ssl/mailer_DOMAIN_ORG_COM.pem

smtpd_tls_auth_only = không

smtpd_tls_cert_file = /etc/postfix/ssl/mailer_DOMAIN_ORG_COM.crt

smtpd_tls_key_file = /etc/postfix/ssl/mailer_DOMAIN_ORG_COM.key

smtpd_tls_loglevel = 1

smtpd_tls_security_level = có thể

smtpd_use_tls = có

tls_random_source = dev:/dev/urandom

transport_maps = hash:/etc/postfix/transport

[USERNAME@mailer ~]$

Đã thêm 20/4/22 - đầu ra postconf -M

[USERNAME@mailer ~]$ postconf -M
smtp inet n - n - - smtpd
xe bán tải fifo n - n 60 1 xe bán tải
dọn dẹp unix n - n - 0 dọn dẹp
qmgr fifo n - n 300 1 qmgr
tlsmgr unix - - n 1000? 1 tlsmgr
viết lại unix - - n - - viết lại tầm thường
thoát unix - - n - 0 thoát
trì hoãn unix - - n - 0 thoát
dấu vết unix - - n - 0 bị trả lại
xác minh unix - - n - 1 xác minh
tuôn ra unix n - n 1000? 0 tuôn ra
proxymap unix - - n - - proxymap
smtp unix - - n - - smtp
chuyển tiếp unix - - n - - smtp -o fallback_relay=
showq unix n - n - - showq
lỗi unix - - n - - lỗi
loại bỏ unix - - n - - loại bỏ
unix cục bộ - n n - - cục bộ
unix ảo - n n - - ảo
lmtp unix - - n - - lmtp
đe unix - - n - 1 đe
scache unix - - n - 1 scache
maildrop unix - n n - - pipe flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}
old-cyrus unix - n n - - pipe flags=R user=cyrus argv=/usr/lib/cyrus-imapd/deliver -e -m ${extension} ${user}
cyrus unix - n n - - pipe user=cyrus argv=/usr/lib/cyrus-imapd/deliver -e -r ${sender} -m ${extension} ${user}
uucp unix - n n - - pipe flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($người nhận)
ifmail unix - n n - - pipe flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($người nhận)
bsmtp unix - n n - - cờ ống = Fq. user=foo argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient
thử lại unix - - n - - lỗi
proxywrite unix - - n - 1 proxymap
[USERNAME@mailer ~]$

Đã thêm 20/4/22 - Thiết bị giữa các chuyển tiếp thư

Chúng tôi không có khả năng hiển thị mạng hoặc thiết bị bảo mật giữa các rơle. Traceroute chỉ biểu thị 3 bước nhảy, tất cả đều có khả năng là bộ định tuyến tiêu chuẩn dựa trên địa chỉ IP của chúng trong bố cục mạng của chúng tôi.

Đã thêm 20/4/22 - Phiên bản Postfix

Postfix dường như là phiên bản 2.10.1, phiên bản này sẽ cài đặt vào khoảng năm 2013 trên trang Bản phát hành Postfix

Đã thêm 22/4/22 - openssl Kiểm tra kết nối

[USERNAME@mailer ~]$ openssl s_client -connect UPSTREAM_RELAY.ORG.net:25 -starttls smtp -crlf
ĐÃ KẾT NỐI(00000003)
độ sâu=1 DC = mạng, DC = ORG, CN = CA_Server
xác minh lỗi:num=20:không thể lấy chứng chỉ nhà phát hành địa phương
---
Chuỗi chứng chỉ
 0 s:/C=US/ST=STATE/L=CITY/O=PARENT_ORG/OU=PARENT_ORG/CN=UPSTREAM_RELAY.ORG.net
   i:/DC=net/DC=ORG/CN=CA_Server
 1 giây:/DC=net/DC=ORG/CN=CA_Server
   i:/CN=ORGRootCA2
---
Chứng chỉ máy chủ
-----BẮT ĐẦU GIẤY CHỨNG NHẬN----

[Nội dung chứng chỉ đã bị xóa]

-----GIẤY CHỨNG NHẬN KẾT THÚC-----
chủ đề=/C=US/ST=STATEA/L=CITY/O=PARENT_ORG/OU=PARENT_ORG/CN=UPSTREAM_RELAY.ORG.net
nhà phát hành=/DC=net/DC=ORG/CN=CA_Server
---
Không có tên CA chứng chỉ ứng dụng khách nào được gửi
Thông báo ký ngang hàng: SHA1
Khóa tạm thời máy chủ: ECDH, P-384, 384 bit
---
Bắt tay SSL đã đọc 5841 byte và ghi 538 byte
---
Mới, TLSv1/SSLv3, Mật mã là ECDHE-RSA-AES256-SHA384
Khóa công khai của máy chủ là 2048 bit
Đàm phán lại an toàn IS được hỗ trợ
Nén: KHÔNG CÓ
Mở rộng: KHÔNG CÓ
Không có ALPN nào được thương lượng
Phiên SSL:
    Giao thức: TLSv1.2
    Mã: ECDHE-RSA-AES256-SHA384
    ID phiên: [ĐÃ XÓA]
    Phiên-ID-ctx:
    Khóa chính: [ĐÃ LOẠI BỎ]
    Key-Arg : Không có
    Hiệu trưởng Krb5: Không
    Danh tính PSK: Không có
    Gợi ý nhận dạng PSK: Không có
    Thời gian bắt đầu: 1650649689
    Thời gian chờ: 300 (giây)
    Xác minh mã trả về: 20 (không thể lấy chứng chỉ của tổ chức phát hành địa phương)
---
250 XSHADOWREQUEST
 (Bảng điều khiển chức năng sau này)

Đã thêm 22/4/22 - Maillog grep cho máy chủ không hoạt động

[TÊN NGƯỜI DÙNG@mailer ~]$ sudo mailq | grep UPSTREAM_RELAY_103.ORG.net

(việc gửi tạm thời bị đình chỉ: hội thoại với UPSTREAM_RELAY_103.ORG.net[10.x.x.125] đã hết thời gian trong khi gửi hết dữ liệu -- thư có thể được gửi nhiều lần)

(cuộc trò chuyện với UPSTREAM_RELAY_103.ORG.net[10.x.x.125] đã hết thời gian khi gửi hết dữ liệu -- tin nhắn có thể được gửi nhiều lần)

[Đã xóa trùng lặp, Tất cả các mục nhập cho máy chủ đó đều giống hệt nhau]

Chỉnh sửa lần cuối 27/4/2022

Trong quá trình khắc phục sự cố vào tuần trước, chúng tôi đã phát hiện ra rằng /etc/resolv.conf có một máy chủ tên không còn tồn tại. Sau khi loại bỏ điều này và khởi động lại postfix, chúng tôi dường như không còn nhận được thời gian chờ trong nhật ký nữa và thư sẽ chuyển đi nhanh chóng.

Như @anx đã đề cập trong các nhận xét, điều này không có ý nghĩa gì liên quan đến thời gian chờ kết nối, nhưng ngay sau khi nó được sửa và postfix được khởi động lại, tốc độ gửi đi của chúng tôi đã tăng lên đáng kể và chúng tôi không có bất kỳ sự cố trì hoãn kể từ đó, mặc dù đã thêm hơn 20.000 email thử nghiệm gửi đi mỗi ngày (Tăng khoảng 30% so với lượng thư thông thường).

Cos avatar
lá cờ lr
Cos
@anx Thông tin được thêm vào bài đăng. Tốt nhất là chúng tôi có thể nói, độ phân giải tên là ok. Gần đây không có bất kỳ thay đổi nào được ghi lại và chúng tôi có thể truy cập tất cả 4 rơle gửi đi qua telnet trên cổng 25 bằng tên máy chủ và IP mà không gặp vấn đề gì. Chúng tôi có một số bản ghi số lượng thư gửi đi. Không có thay đổi gần đây về khối lượng. Chúng tôi gửi đi trung bình 50.000-70.000 lượt gửi đi mỗi ngày và vẫn nằm trong phạm vi đó nếu bạn hủy các lượt gửi hàng loạt của tôi được thiết kế để cố tình tạo ra công việc tồn đọng để khắc phục sự cố. Khởi động lại postfix không cung cấp các lỗi có thể nhìn thấy, nhưng nếu có nhật ký\dài dòng để kiểm tra, tôi rất sẵn lòng thử.
anx avatar
lá cờ fr
anx
(n.b. kiểm tra đầu ra `mailq` không tương đương với nhật ký tìm kiếm: mailq liệt kê lý do của *lần thử cuối cùng* trên mỗi tệp hàng đợi, nhưng không nhất thiết chứa các dấu hiệu bổ sung có thể đã được ghi trong nhật ký cho các lần gửi *trước đó* của cùng một thông điệp.)
Cos avatar
lá cờ lr
Cos
@anx Chúng tôi có thể đã tìm ra điều này. Trong /etc/resolv.conf, chúng tôi có một máy chủ tên không còn tồn tại. Sau khi loại bỏ điều này, chúng tôi không còn thấy thời gian chờ trong nhật ký nữa. Tôi sẽ kiểm tra lại vào tuần tới để xem vấn đề đã được giải quyết hoàn toàn chưa. Hướng dẫn của bạn để kiểm tra nhật ký cũ là mẹo mà chúng tôi cần. Tôi đã quay lại và kiểm tra kho lưu trữ maillog lịch sử. Họ chỉ ra rằng vấn đề đã bắt đầu từ nhiều năm trước, nhưng dường như không ai giám sát máy chủ đủ để nhận thấy. Điều đó có khả năng phù hợp với việc máy chủ DNS cũ sẽ ngoại tuyến, nhưng không ai ở đây đủ lâu để nhớ.
anx avatar
lá cờ fr
anx
Cảm ơn các cập nhật.Ngay cả khi nó giải quyết được vấn đề trước mắt của bạn (vui lòng đặt chi tiết trong câu trả lời!) Tuy nhiên, dường như vẫn còn thiếu điều gì đó ở đây: Làm thế nào mà sự cố DNS có thể - dẫn đến lỗi sau khi bỏ cuộc sau vài *giây* - dẫn đến máy chủ không phản hồi (ít nhất là với "thử lại sau") trong khoảng thời gian chờ vài *phút*?
Cos avatar
lá cờ lr
Cos
@anx Bản cập nhật cuối cùng đã được thêm vào bài đăng. Chúng tôi vẫn không thể hiểu tại sao điều này không thành công, nhưng chúng tôi có thể tái tạo sự cố ngay lập tức bằng cách thêm bất kỳ IP máy chủ tên không hợp lệ nào vào /etc/resolv.conf . Nếu đây là một bản dựng hiện đại, có lẽ tôi sẽ cố gắng báo cáo nó là một lỗi và xem liệu có ai có kiến ​​thức về tình hình của nhà phát triển có thể theo dõi nó hay không, nhưng với độ tuổi của phiên bản đã cài đặt và bản dựng hệ điều hành, chúng tôi sẽ xây dựng một bản dựng hiện đại. thay thế từ đầu bằng một phiên bản postfix mới. Cảm ơn tất cả sự giúp đỡ của bạn.
Điểm:1
lá cờ lr
Cos

Theo những gì chúng tôi có thể tìm ra, sự cố này là do có mục nhập DNS không hợp lệ trong /etc/resolv.conf . Khi mục nhập xấu đã bị xóa, chúng tôi không còn gặp sự cố trong nhật ký và thư trở lại hoạt động bình thường với độ trễ gửi đi tối thiểu.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.