Score:1

วิธีกำหนดค่าระเบียน DNS SPF สำหรับโดเมนย่อยจำนวนมาก

ธง cn

ฉันมีชื่อโดเมน เช่น example.com และเซิร์ฟเวอร์จำนวนมาก (อาจเป็นหลายร้อย) โดยแต่ละเซิร์ฟเวอร์มี IP สาธารณะและโดเมนย่อย (sub1.example.com, sub2.example.com เป็นต้น) แต่ละเซิร์ฟเวอร์โฮสต์การติดตั้ง Postfix เป้าหมายที่นี่คือสามารถส่งอีเมลจากเซิร์ฟเวอร์ใดก็ได้ (ไม่รับอีเมล) อย่างไรก็ตาม ไม่มีเซิร์ฟเวอร์อีเมลที่เชื่อมต่อกับโดเมนหลัก (example.com)

ตอนนี้ฉันกำลังพยายามตั้งค่ารายการ SPF ใน DNS แต่ฉันติดขัดนิดหน่อย ฉันได้ลองใช้ชุดค่าผสมต่างๆ มากมาย แต่มักจะจบลงด้วยค่า SPF SOFTFAIL เมื่อพยายามส่งอีเมลไปที่ gmail นอกจากนี้ วิธีแก้ปัญหาข้อจำกัดเกี่ยวกับความยาวของระเบียน SPF ที่มีเซิร์ฟเวอร์/IP จำนวนมากนั้นยังไม่ชัดเจนสำหรับฉัน

เพิ่มบริบทเพิ่มเติม (แม้ว่าฉันจะยอมรับคำตอบของ Bob แล้วก็ตาม)

แนวคิดคือการมีสถาปัตยกรรมที่ซ้ำซ้อนมาก ซึ่งเซิร์ฟเวอร์ใด ๆ ก็สามารถล้มเหลวได้ และระบบโดยรวมจะทำงานต่อไป (อย่างน้อยก็สำหรับการส่งอีเมล)ฉันไม่สามารถควบคุมช่วงของที่อยู่ IP ได้: เซิร์ฟเวอร์จะถูกจัดเตรียมในหลายประเทศและกับผู้ให้บริการหลายราย ฉันได้ลองกำหนดรายการ SPF สำหรับชื่อโดเมนหลักเท่านั้น

                     600 IN TXT "v=spf1 mx ~ทั้งหมด"

เมื่อส่งไปยัง Gmail ฉันได้รับข้อผิดพลาด SOFTFAIL สำหรับการตรวจสอบความถูกต้องของ SPF อีเมลที่ส่งมาจากโดเมนย่อย (เช่น sub1.domain.com)

ฉันพยายามเพิ่มที่อยู่ IP ของผู้ส่งในบันทึก:

                      600 IN TXT "v=spf1 mx ip4:server_ip ~ทั้งหมด"

แต่ฉันลงเอยด้วยข้อผิดพลาด SOFTFAIL เดียวกัน พยายามเพิ่มรายการ SPF อื่นสำหรับโดเมนย่อยด้วย แต่เท่าที่ฉันเข้าใจ ควรสร้างรายการ SPF เพียงรายการเดียว :-/ ฉันพยายามรวม: ชื่อโดเมนด้วยผลลัพธ์เดียวกัน

ความช่วยเหลือหรือคำแนะนำใด ๆ ที่จะได้รับการชื่นชม :-)

anx avatar
fr flag
anx
"ลองใช้ชุดค่าผสมหลายชุด" -- โปรด [แก้ไข] คำถามของคุณให้เจาะจงเกี่ยวกับสิ่งที่คุณต้องการทำให้สำเร็จ สิ่งที่คุณพยายาม และเหตุใดการระบุบล็อก IP ของคุณจึงเกินข้อจำกัด
Score:2
ธง td
bob

ขึ้นอยู่กับว่าเป้าหมายของคุณคืออะไร และปัญหาใดที่คุณเผชิญ

มีกลไก SPF หลายอย่างในการจับคู่คลาสของโฮสต์โดยไม่ต้องระบุโฮสต์ทั้งหมดในเรคคอร์ด SPF โดยตรง ตัวอย่างเช่น:

  • เดอะ ไอพี4 กลไกและเทียบเท่า IP6 กลไกในการจับคู่ซับเน็ตเมื่อเซิร์ฟเวอร์ทั้งหมดของคุณอยู่ในช่วงที่อยู่ IP อย่างน้อยหนึ่งช่วงที่เป็นของคุณโดยเฉพาะ:

    ip4:<ip4-network>/<คำนำหน้า-ความยาว>
    ip6:<ip6-network>/<คำนำหน้า-ความยาว>
    
  • คุณสามารถสร้างระเบียน A เดียวได้ (ตัวอย่างเช่น bob.example.com) ที่มีบันทึก IPv4 A และ/หรือ IPv6 AAAA ทั้งหมดของเซิร์ฟเวอร์ที่คุณต้องการอนุญาตให้ส่งอีเมลโดยตรงผ่านการตอบสนอง IPv4 IPv6 และอ้างถึงในบันทึก SPF ของคุณ:

    âv=spf1 a:bob.example.com ~ทั้งหมดâ
    
    bob.example.com ใน 10.0.0.1
    bob.example.com ใน 192.168.0.1
    bob.example.com ใน 172.16.0.2
    bob.example.com ใน AAAA 2001:db8:ffff:ffff:ffff:ffff:ffff:fff1 
    
  • เดอะ รวม คำหลักสามารถใช้เมื่อระเบียน SPF ของคุณยาวเกินกว่าที่จะใส่ในระเบียน DNS เดียวได้ ตัวอย่างเช่น บันทึก SPF ของ Gmail/Google ปัจจุบันไม่ได้รวมช่วง IP ใดๆ โดยตรง แต่รวมช่วงจากบันทึกเพิ่มเติมสามรายการ:

    _spf.google.com 300 IN TXT "v=spf1 include:_netblocks.google.com include:_netblocks2.google.com include:_netblocks3.google.com ~all"
    
    _netblocks.google.com 300 IN TXT "v=spf1 ip4:35.190.247.0/24 ip4:64.233.160.0/19 ip4:66.102.0.0/20 ip4:66.249.80.0/20 ip4:72.14.192.0/18 ip4:74.125.0.0/16 ip4 :108.177.8.0/21 ip4:173.194.0.0/16 ip4:209.85.128.0/17 ip4:216.58.192.0/19 ip4:216.239.32.0/19 ~ทั้งหมด"
    
    _netblocks2.google.com. 300 IN TXT "v=spf1 ip6:2001:4860:4000::/36 ip6:2404:6800:4000::/36 ip6:2607:f8b0:4000::/36 ip6:2800:3f0:4000::/ 36 ip6:2a00:1450:4000::/36 ip6:2c0f:fb50:4000::/36 ~ทั้งหมด"
    
    _netblocks3.google.com. 300 IN TXT "v=spf1 ip4:172.217.0.0/19 ip4:172.217.32.0/20 ip4:172.217.128.0/19 ip4:172.217.160.0/20 ip4:172.217.192.0/19 ip4:172.253.56. :172.253.112.0/20 ip4:108.177.96.0/19 ip4:35.191.0.0/16 ip4:130.211.0.0/22 ​​~ทั้งหมด"
    

อีกทางเลือกหนึ่งคือไม่อนุญาตให้โฮสต์ทั้งหมดของคุณส่งอีเมลโดยตรง ตั้งค่าเซิร์ฟเวอร์ตั้งแต่หนึ่งเซิร์ฟเวอร์ขึ้นไปเป็นเมลรีเลย์เฉพาะ และอนุญาตเฉพาะเซิร์ฟเวอร์ที่อยู่ใน SPF ของคุณ เซิร์ฟเวอร์อื่นๆ ทั้งหมดที่คุณกำหนดค่าให้ใช้โฮสต์รีเลย์เหล่านั้น

Pascal Ognibene avatar
cn flag
สวัสดี Bob ขอบคุณสำหรับคำตอบของคุณ สิ่งนี้ทำให้เข้าใจถึงวิธีแก้ปัญหาที่เป็นไปได้เนื่องจากในที่สุดฉันสามารถมีเซิร์ฟเวอร์ได้มากถึง 200 เซิร์ฟเวอร์ ดูเหมือนว่าทางเลือกที่ดีที่สุดคือเซิร์ฟเวอร์สุดท้าย : ไม่อนุญาตให้เซิร์ฟเวอร์ทั้งหมดส่งอีเมลโดยตรง - มิฉะนั้น ฉันอาจจะต้องจบลงด้วยข้อจำกัดเกี่ยวกับขนาดของระเบียน SPF แม้ว่า เมื่อใช้บันทึกเพิ่มเติม ขอบคุณอีกครั้ง สิ่งนี้มีประโยชน์มากที่สุด ปาสคาล
Score:1
ธง us

คำอธิบายกรณีการใช้งานของคุณไม่ครบถ้วนเพียงพอ แต่ถ้าเป้าหมายของคุณคือการส่งอีเมลจาก *@example.com จากเซิร์ฟเวอร์ใดๆ เหล่านั้น จากนั้นจึงเลือก SPF พีทีอาร์ กลไกได้รับการออกแบบอย่างแม่นยำสำหรับกรณีการใช้งานนี้

คุณจะต้องตั้งค่า DNS ย้อนกลับ 1.2.3.4 â sub1.example.com â 1.2.3.4 ที่เหมาะสมสำหรับแต่ละเซิร์ฟเวอร์โดเมนย่อย

จากนั้น คุณจะติดตั้งระเบียน SPF ต่อไปนี้ที่โดเมนหลัก example.com:

v=spf1 ptr -ทั้งหมด

นั้นคือทั้งหมด.

ข้อดีของวิธีนี้เหนือวิธีอื่นๆ คือตั้งค่าได้ง่าย ไม่จำกัดการค้นหา และปรับขนาดตามจำนวนโฮสต์ของโดเมนย่อยได้ตามอำเภอใจ

ข้อเสียคือค่อนข้างขัดแย้งกับข้อกำหนดของ SPF RFC: RFC 7208 ไม่สนับสนุนการใช้ พีทีอาร์ กลไก. อย่างไรก็ตาม อาจมีข้อโต้แย้งว่าถ้อยคำในนั้นรุนแรงเกินไป และให้กรณีการใช้งานของคุณเป็น พีทีอาร์ เป็นที่ยอมรับ ดูคำถามของฉันด้วย 1063826.

Pascal Ognibene avatar
cn flag
เป้าหมายของฉันคือสามารถส่งอีเมลจากเซิร์ฟเวอร์ใดๆ ที่เชื่อมต่อกับโดเมนย่อย เช่น sub1.example.com, sub2.example.com อย่างไรก็ตาม ผู้รับอีเมลควรเห็นเฉพาะ example.com เป็นผู้ส่ง (แม้ว่าจะเห็นผู้ส่งจริงในอีเมลดิบก็ตาม) ฉันกำหนดค่า DNS ย้อนกลับทั้งสำหรับ ipv4 และ ipv6 และเพิ่มรายการ A และ AAAA ใน DNS สำหรับโดเมนย่อยของฉัน (ขอเรียกว่า sub1.example.com) ฉันลองใช้คำแนะนำของคุณกับ ``` v=spf1 ptr -ทั้งหมด ``` และแน่นอนว่าตอนนี้ฉันผ่านการตรวจสอบ SPF บน Gmail :-)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา