Terowong utama kekal aktif, pengguna terus bekerja, dan litar ISP kedua dibiarkan terbiar tidak kira apa yang anda ubah. Anda telah menerbitkan alamat untuk litar sandaran, mengarahkan nama kepadanya, mungkin menambah entri sandaran pada klien, dan klien sama ada tidak pernah mencubanya atau mengesahkan identiti lalu mati. Dalam kes yang saya jejaki, ciri failover biasanya baik; yang hilang ialah salah satu daripada lima perkara yang menjadikan sesuatu entri boleh digunakan. Sesuatu nama boleh diselesaikan kepada alamat sandaran sedangkan tiada apa-apa mendengar pada antara muka itu, dan pendengar boleh menerima sambungan sedangkan balasan keluar melalui yang utama. Anggap setiap WAN sebagai entri berasingan dengan kontraknya sendiri dan kegagalan itu tidak lagi kelihatan seperti pepijat klien.

Setiap WAN memerlukan kontrak entri sendiri

Catat lima medan bagi setiap WAN: nama dan alamat awam, pengangkutan dan port, antara muka atau konteks yang menamatkannya, identiti rakan yang patut dibentangkan, dan tempat balasan keluar. Dua litar bermaksud dua set lengkap. Jika set kedua tiada antara muka penamat atau tiada laluan pulang, anda tidak mempunyai entri sandaran; anda mempunyai rekod DNS yang menerangkan sesuatu niat.

Perkakas dan versi keluarnya juga mesti menyokong susunan ini. Rekod DNS tidak boleh membuka perkhidmatan pada antara muka lain, dan pada banyak platform pendengar dikonfigurasikan mengikut alamat dan bukan mengikut peranti. IPsec berasaskan antara muka pada ASA mengikat peta kripto dan kumpulan terowong pada antara muka luaran, jadi pautan naik kedua memerlukan dasar yang dipasang di tempat paket itu benar-benar tiba. Reka bentuk berasaskan laluan berkelakuan berbeza: pendengar mungkin mengikat pada setiap alamat atau pada satu alamat bernama, dan pilihan itu menentukan sama ada ISP B boleh menjawab sama sekali.

Pastikan WAN kedua benar-benar menjawab

Uji dari luar kedua-dua litar, bukan dari mesin di belakang gateway, dan uji nama tepat yang digunakan oleh profil klien. Bagi pendengar TLS, semakan pantas ialah openssl s_client -connect ADDRESS:443 -servername vpn.example.com -showcerts dijalankan dari hos di luar rangkaian anda. Anda mahukan jabat tangan yang selesai dan rantaiannya sepadan dengan nama dalam profil, bukan sekadar port TCP yang menerima sambungan.

RFC 9525 menerangkan apa yang klien semak: identiti yang ingin dicapai, dibandingkan dengan sijil yang dibentangkan oleh perkhidmatan. Entri kedua yang memulangkan sijil entri utama, atau sijil lalai yang tidak menyenaraikan mana-mana nama, gagal ujian ini walaupun port terbuka dan firewall membenarkannya.

Dua corak menerangkan kebanyakan kegagalan di sini. Sambungan yang tergantung biasanya bermaksud tiada pendengar pada antara muka itu, peraturan akses yang hanya membenarkan subnet utama, atau peranti pembawa di hadapan litar kedua menggugurkan port itu. Jabat tangan yang selesai dengan identiti salah biasanya bermaksud titik kepercayaan yang berbeza, hos maya lalai, atau konfigurasi yang disalin daripada yang utama tanpa menyesuaikan identiti.

Ikuti balasan, bukan hanya permintaan

WAN kedua biasanya rosak dalam perjalanan pulang. Permintaan tiba melalui ISP B, perkakas menjawab, dan balasan keluar melalui laluan lalai pada ISP A dengan alamat sumber yang tidak pernah diminta oleh klien. Terjemahan stateful menjadikannya lebih teruk: jika pemetaan dibina untuk antara muka utama, paket yang kembali terlepas terjemahan itu atau membawa sumber yang dibuang oleh firewall klien. Pembekal juga menggugurkan alamat sumber yang bukan milik litar yang diberikan kepada anda, sebab itulah ini kelihatan seperti lubang hitam sehala dan bukan ralat protokol yang bersih.

Semak keputusan penghalaan bagi trafik yang bersumber daripada entri kedua. Balasan itu harus keluar melalui antara muka tempat permintaan tiba, atau sekurang-kurangnya membawa alamat yang diterima oleh pihak jauh sebagai milik laluan itu. Pada platform penghalaan dasar, itu bermakna peraturan yang dikunci pada antara muka masuk atau sumber terjemahan, ditambah pernyataan terjemahan yang terikat pada setiap antara muka luar. Tangkap pada kedua-dua antara muka serentak semasa klien menyambung; SYN yang tiba melalui ISP B dengan SYN-ACK yang keluar melalui ISP A menyelesaikan soalan itu dalam satu larian.

Berikan klien cara untuk mengetahui entri kedua

Failover ialah keputusan di pihak klien, dan setiap keluarga klien mempelajari alternatif dengan cara berbeza. Pada ASA, senarai pelayan sandaran dihantar melalui atribut webvpn dasar kumpulan, manakala klien lain menjangkakan senarai di dalam profil atau profil kedua manual yang dipilih pengguna. Panduan dasar sambungan Cisco menerangkan kedua-dua maklumat sandaran yang dikonfigurasikan klien dan yang disediakan gateway, dan butiran khusus protokol itu tidak patut digeneralisasikan kepada setiap klien atau mod terowong. Sahkan mekanisme mana yang dilaksanakan oleh klien yang digunakan sebelum anda membina entri kedua berdasarkan yang salah.

Walau apa pun mekanismenya, klien mesti dapat menyelesaikan nama alternatif sebelum ia kehilangan laluan utama. Kebergantungan itulah yang orang terlepas: jika nama sandaran dijawab oleh penyelesai yang boleh dicapai hanya melalui terowong yang baru gagal, sandaran itu tidak boleh bermula. Terbitkan nama kedua dalam penyelesai yang menjawab secara setempat atau melalui internet. Jangkakan pengesahan baharu dan sesi aplikasi baharu selepas peralihan, kerana failover klien bukan failover stateful dan sesi panjang tidak dapat bertahan.

Satu alamat pada dua pembekal ialah produk berbeza

Menjaga satu alamat awam boleh dicapai melalui kedua-dua litar ialah perkhidmatan penghalaan, bukan kotak semak pada VPN. Ia memerlukan ruang alamat yang sanggup dibawa oleh kedua-dua pembekal, diumumkan dengan cara yang diterima rangkaian mereka, iaitu apa yang diberikan oleh multihoming dengan ruang bebas pembekal dan BGP. Menetapkan alamat ISP A pada antara muka ISP B tidak membawa anda ke sana; paket itu tiba di rangkaian yang tidak pernah mengumumkan awalan tersebut dan digugurkan di hulu.

Anda tidak memerlukan semua itu untuk menerbitkan dua entri. Jika klien boleh memegang dua nama dan beralih antara keduanya, dua entri bebas sudah cukup, dan anda mengelakkan nombor AS, susunan peering, dan awalan yang mesti diterima di mana-mana. Pertimbangkan pilihan alamat mudah alih hanya apabila anda benar-benar memerlukan satu titik masuk stabil yang tidak boleh diganti semula oleh klien, atau apabila failover berasaskan DNS dengan kelewatan TTL terlalu lambat untuk gangguan yang anda rancang.

Apa yang perlu disemak seterusnya

Bergerak ke luar daripada entri yang gagal mengikut urutan ini: adakah alamat kedua menjawab dari luar, adakah ia membentangkan identiti yang dijangka klien, adakah balasan keluar melalui jalan permintaan tiba, dan bolehkah klien mengetahui nama itu sebelum ia memerlukannya. Di mana jawapannya tidak, betulkan lapisan itu dan uji semula dengan profil yang digunakan dan bukan hos ujian, kerana jabat tangan dari makmal membuktikan kurang daripada sambungan selesai daripada klien sebenar.

Simpan rekod ringkas bagi setiap WAN, dengan alamat, port, antara muka penamat, nama sijil, laluan pulang dan peraturan terjemahan, dan semak semula setiap kali litar, peranti NAT atau versi klien berubah. Laluan sandaran yang terbiar mereput secara senyap: tiada apa memberi amaran tentang entri yang tiada siapa guna sehingga hari semua orang bergantung kepadanya.

Artikel berkaitan