Menahan mel dalam baris gilir sehingga VPN naik ialah masalah penjadualan, dan penyelesaian biasa ialah menghentikan Postfix, menukar main.cf dan memulakannya semula. Itu berkesan, dan itulah bentuk yang salah, kerana ia mencampurkan dua keperluan: bila penghantaran patut dicuba, dan laluan rangkaian mana yang boleh membawanya. Yang kedua ialah keputusan firewall, dan tiada direktif Postfix boleh membuatnya. Setelah kedua-duanya dipisahkan, setiap satu mempunyai jawapan kecil dan boleh diuji.

Kekalkan destinasi relay stabil, sekat penghantaran terus di sempadan rangkaian, dan biarkan baris gilir melakukan penantian.

Dua keperluan yang orang gabungkan menjadi satu

Relay memberitahu Postfix ke mana mel perlu diserahkan; relayhost = [smtp.corp.example]:587 menamakan hos dan port, dengan kurungan yang menekan pemilihan berasaskan MX untuk hop seterusnya itu. Laluan memberitahu kernel ke mana paket boleh pergi. relayhost yang betul tanpa sekatan laluan masih membenarkan Postfix mencapai internet secara terus apabila jadual penghalaan membenarkannya, dan firewall yang betul dengan relayhost yang salah menghantar mel ke tempat yang salah. Kedua-duanya tidak saling mengandaikan.

Peta pengangkutan, penggantian setiap penghantar dan relay sandaran masing-masing layak dibaca dengan cara yang sama. relayhost yang stabil bukan bukti bahawa setiap laluan penghantaran yang dikonfigurasikan menggunakannya, dan laluan sandaran yang memintas relay ialah kegagalan yang sama dengan penyamaran yang lebih baik.

Apa yang sebenarnya defer_transports lakukan

defer_transports menahan mesej untuk pengangkutan yang dinamakan supaya tiada percubaan penghantaran dibuat sehingga satu putaran baris gilir menyentuhnya. Itu kawalan penjadualan, dan pengosongan baris gilir mengatasinya; itu reka bentuk dan bukan kecacatan. Gunakan nama pengangkutan sebenar daripada master.cf, kerana pengangkutan tersuai atau pengangkutan relay yang dinamakan berasingan tidak dilindungi hanya kerana programnya juga bertutur SMTP. Percubaan semula biasa ialah mekanisme lain: dengan laluan fail-closed, percubaan penghantaran hanya gagal dan kekal dalam baris gilir, tanpa sebarang direktif penangguhan.

Kegagalan kekal tidak menunggu dengan sopan. Penerima buruk atau kelayakan yang ditolak melantun atau tersangkut sebagai ralat keras daripada duduk sehingga terowong muncul, jadi baris gilir penuh dengan mel tertangguh bukan secara automatik baris gilir yang selamat.

Kuatkuasakan laluan pada lapisan rangkaian

Sekatan itu terletak pada sempadan output tempatan atau di dalam ruang nama rangkaian terpencil. Ia mesti meliputi alamat sebenar relay, pengangkutan dan port, termasuk IPv6 jika didayakan, kerana peraturan yang menyekat TCP 25 tidak melakukan apa-apa untuk relay pada 587 atau 465. Kekalkan loopback dan laluan penyerahan tempatan berasingan supaya baris gilir itu sendiri terus berfungsi. Dasar harus kekal tertutup apabila laluan terowong hilang atau muncul semula di bawah nama antara muka yang lain.

Peristiwa antara muka naik tidak membuktikan relay boleh dicapai melaluinya. Itulah sebabnya cangkuk yang memeriksa pautan dan kemudian mengosongkan baris gilir ialah kemudahan dan bukan jaminan: pautan boleh berubah antara pemeriksaan dan percubaan penghantaran.

Buktikan dengan satu mesej tidak berbahaya

Hantar satu mesej tidak berbahaya semasa VPN turun, kemudian periksa postqueue -p untuk sebab penangguhan dan ID baris gilir. Pulihkan laluan yang dimaksudkan dan minta putaran baris gilir terkawal, sambil memerhati sama ada mesej keluar melalui relay dan bukan di tempat lain. Kemudian putuskan laluan semula di tengah penerbangan dan sahkan mesej kembali ke baris gilir. Semak maximal_queue_lifetime sebelum memutuskan berapa lama gangguan boleh berlaku, kerana nilai sifar bermaksud satu percubaan dan bukan penyimpanan tanpa had.

Pantau usia baris gilir dan penggunaan cakera. Dasar yang menunggu VPN menjadi gangguan mel jika tiada siapa perasan baris gilir bertambah sejak Jumaat.

Catat relay, pengangkutan, peraturan firewall dan jangka hayat bersama-sama. Keempat-empat itu menerangkan susunan; mana-mana satu daripadanya sahaja menerangkan tekaan.

Artikel berkaitan