คุณจะทดสอบเซิร์ฟเวอร์ MX สำรอง / รองได้อย่างไร


10

ฉันต้องการตั้งค่าเซิร์ฟเวอร์ MX รองโดยใช้ Postfix แต่ฉันสงสัยว่าวิธีที่ดีที่สุดในการทดสอบนี้ก่อนการผลิต (โดยเพิ่มรายการ MX) คืออะไร

วิธีหนึ่งที่เป็นไปได้คือการทดสอบด้วยชื่อโดเมนที่แตกต่างกันโดยสิ้นเชิงเช่นซื้อโดเมนเช่น "fake-test-domain.com" และตั้งค่าโซน DNS ด้วยเซิร์ฟเวอร์ MX สำรองนี้เท่านั้น

วิธีใดที่ง่ายกว่าที่ฉันสามารถบังคับให้เซิร์ฟเวอร์เมลส่งข้อความไปยังเซิร์ฟเวอร์นี้ก่อนที่จะแสดงรายการใน DNS

ฉันไม่คิดว่าฉันสามารถใช้ไฟล์โฮสต์ในระบบส่งได้เพราะนั่นจะไม่เลียนแบบเรคคอร์ด MX ใช่ไหม


2
คุณสามารถเปิดใช้งาน MX รองได้ ตราบใดที่มีพรีโอที่ต่ำกว่าในระเบียน MX จะไม่ทำการส่งมอบให้และคุณสามารถทดสอบตามที่ @EEAA ระบุไว้ BTW: ระวังว่า fallback mailservers เป็นกับดักสแปม และหากคุณไม่ได้ตั้งค่าการยืนยันผู้รับคุณจะได้รับข้อความตีกลับจำนวนมากจากผู้ส่งสแปมที่อยู่ที่ใช้ คุณอาจต้องการตั้งค่าระบบด้วยตนเองหรือโดยอัตโนมัติที่ควบคุมกฎ iptables สำหรับการเข้าถึงพอร์ต 25 เซิร์ฟเวอร์ส่งส่วนใหญ่มีเวลาเลื่อนการทำงานสามวันดังนั้นจึงง่ายต่อการเปิดพอร์ต MX fallback 25 ด้วยตนเองเมื่อจำเป็นเท่านั้น
Halfgaar

ฉันจะถามว่าทำไมคุณคิดว่าคุณต้องมี MX ตัวที่สอง
joeqwerty

@Halfgaar หากเซิร์ฟเวอร์ MX รองได้รับการกำหนดค่าผิดพลาดอาจทำให้จดหมายสูญหายในกรณีที่ผู้ส่งไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ MX หลักได้ไม่ว่าด้วยเหตุผลใดก็ตาม (รวมถึงปัญหาการเชื่อมต่อที่จุดสิ้นสุด) อย่างน้อยถ้ามันยังไม่ถูกเพิ่มไปยัง DNS ปัญหาชั่วคราวที่เกิดขึ้นกับหลักจะไม่ทำให้จดหมายสูญหาย - ผู้ส่งจะรอคิวอีเมลแล้วลองอีกครั้งในภายหลัง
thomasrutter

@joeqwerty ฉันคิดว่าจะย้ายเซิร์ฟเวอร์อีเมลไปยังเครื่องอื่นซึ่งจะเกี่ยวข้องกับการตั้งค่าเซิร์ฟเวอร์เก่าเพื่อถ่ายทอดไปยังเซิร์ฟเวอร์ใหม่ในช่วงการแพร่กระจาย DNS (แม้จะมีค่า TTL ต่ำผู้แก้ปัญหาบางคนจะแคชเป็นเวลา 30 นาทีหรือมากกว่า) . เนื่องจากฉันจะต้องใช้ความพยายามเพื่อให้การถ่ายทอดนี้ทำงานอย่างถูกต้องแล้วฉันคิดว่าฉันอาจสร้างการกำหนดค่าเซิร์ฟเวอร์ MX สำรอง และมันจะเป็นประสบการณ์การเรียนรู้ นี่เป็นเพียงเพื่อให้พื้นหลังเล็กน้อยเกี่ยวกับสาเหตุ
thomasrutter

คำตอบ:


20

เพียงใช้เซสชัน telnetเพื่อทดสอบการส่งอีเมล ตัวอย่างเช่น,

# telnet host.domain 25
Trying host.domain...
Connected to host.domain.
Escape character is '^]'.
220  ESMTP
HELO example.com
250
MAIL FROM:<user@example.com>
250 ok
RCPT TO:<user2@example.com>
250 ok
DATA

To: user2@example.com
From: user@example.com
Subject: a test message

Test message body.
.
250 ok

13
+1 - ใครก็ตามที่ดูแลเซิร์ฟเวอร์ SMTP แต่ไม่สามารถเรียกใช้โปรโตคอล "ด้วยมือ" ใน TELNET ไม่มีธุรกิจที่ดูแลเซิร์ฟเวอร์ SMTP
Evan Anderson

1
@EvanAnderson นี่เป็นหลักการทั่วไปที่ดีจนกว่าจะมีการทดสอบ STARTTLS หรือ AUTH อื่นที่ไม่ใช่ PLAIN แต่ใช่ในกรณีนี้คุณพูดถูก
thomasrutter

2
@thomasrutter ผมประจำการทดสอบด้วยมือโดยใช้STARTTLS openssl s_client -starttls smtp -connect ...แต่ฉันเห็นด้วยกับวิธีการตรวจสอบที่ไม่ได้เป็นแบบธรรมดาที่เป็นปัญหา
MadHatter

2

เมื่อ telnet ไม่เพียงพอหรือน่าเบื่อเกินไปฉันใช้SWAKS

เช่น:

 cat email-content.txt | 
 swaks --body - --helo localhost.localhomain --server mail.example.com:25 \
  --auth-user fred --auth-password flintst1 -tls \
  --h-Subject Pebbles  --to wilma@example.org
  --from 'fred@example.biz'

sudo apt install swaksทำงานบน Ubuntu
Donn Lee
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.