ppp0 atau ppp1? Menamakan sesi VPN PPP untuk skrip
pppd memberi setiap sesi nama antara muka dan penanda profil. Baca kedua-duanya daripada hook, bukan daripada ppp0. Simpan nama tetap hanya apabila penolakan memang disengajakan.
Skrip hook tercetus, membaca ppp0 dan menggunakan laluan pada mana-mana antara muka yang memiliki nama itu pada saat itu. Kadangkala ia terowong yang anda maksudkan; kadangkala ia sesi yang bersambung seminit lebih awal. Sambungan semula seterusnya menggerakkan nombor itu, dan skrip yang sama diam-diam mengkonfigurasi pautan yang salah. Pembetulannya ialah mengambil antara muka daripada seruan yang baru berjalan, dan membawa profil yang dimaksudkan bersamanya.
Ikuti satu sesi daripada pilihan hingga ke hook
Mulakan di tempat sesi dicipta. xl2tpd melancarkan pppd dengan fail pilihan yang dinamakan oleh pppoptfile terowong itu, jadi pemalam, nombor unit dan sebarang penanda profil ditentukan di sana dan bukan dalam fail global. Pengurus sambungan mungkin menjana pilihannya sendiri, bermakna menyunting /etc/ppp/options bukan bukti bahawa terowong yang anda pedulikan telah berubah. Apabila pautan naik, pppd menjalankan skrip pemberitahuan daripada penghantar pengedaran. Skrip itu menerima nama antara muka sebagai argumen pertama, dan penanda profil sebagai yang keenam.
Persekitaran membawa fakta yang sama di bawah nama seperti IFNAME dan PPP_IPPARAM, tetapi ketersediaannya bergantung pada penghantar yang dipasang. Baca penghantar sebelum bergantung pada pemboleh ubah: sesetengah pengedaran mengekalkan susunan argumen upstream, yang lain menapis persekitaran sebelum memanggil skrip anda. Skrip yang hanya menggunakan $1 dan argumen keenam berfungsi dalam kedua-dua susunan.
Baca antara muka daripada seruan
Hook tradisional menerima antara muka dahulu. Nilai kedudukan itu ialah pengecam antara muka yang menerangkan sesi yang mencetuskan skrip. Simpan dalam pemboleh ubah di atas, kemudian gunakan pemboleh ubah itu untuk laluan, peraturan tembok api dan pembongkaran.
ipparam office-vpn
Lampirkan penanda profil di tempat pilihan ditakrifkan, bukan dalam skrip. Dengan baris itu dalam fail pilihan terowong, setiap sesi yang dicipta daripada fail itu membawa office-vpn sebagai argumen keenamnya. Skrip boleh bercabang pada penanda sambil masih bertindak pada antara muka sebenar. Simpan kedua-duanya berasingan dalam kod, kerana penanda itu stabil dan antara muka diperuntukkan bagi setiap sesi.
Minta nama hanya apabila penolakan itu betul
Nama tetap kelihatan lebih mudah daripada membaca argumen, tetapi ia mengubah tingkah laku kegagalan. Pilihan unit meminta nombor untuk sambungan keluar, dan pppd beralih kepada peruntukan dinamik apabila unit itu sudah sibuk. Tiada apa pun dalam hasil itu menyimpan ppp0 untuk profil anda.
ifname ppp-office
Pilihan ifname berkelakuan berbeza: jika nama yang diminta sudah digunakan atau tidak boleh diberikan, pppd keluar daripada memilih yang lain. Itu pilihan dasar, bukan penamaan semula kosmetik. Gunakannya apabila contoh kedua serentak bagi profil yang sama harus ditolak, dan pastikan pppd yang dipasang serta pengurus sambungan anda menyalurkan pilihan itu.
Walau apa pun, nama yang dilihat oleh skrip itulah yang perlu diambil tindakan. Nama yang dikonfigurasi tidak menghapuskan keperluan membaca seruan, kerana sesi yang dimulakan semula masih boleh membentangkan nama berbeza daripada yang sebelumnya.
Padankan pembongkaran dengan sesi yang anda konfigurasikan
Laluan dan peraturan tembok api hidup lebih lama daripada skrip yang menciptanya, jadi pembongkaran mesti membuang tepat objek yang dimiliki oleh sesi itu. Tandai peraturan dengan penanda profil serta antara muka, dan hapuskan mengikut tanda itu. Jika dua terowong boleh naik serentak, menghapuskan semua yang menyebut ppp ialah cara satu pemutusan merosakkan sambungan yang lain.
Uji kes yang mendedahkan pepijat: naikkan sesi PPP kedua semasa yang pertama masih bersambung, kemudian sambung semula yang pertama dan perhatikan antara muka mana yang dilaporkan oleh hook. Larian berjaya dengan satu sesi tidak membuktikan apa-apa tentang peruntukan nama. Ulangi dengan VPN dihentikan untuk mengesahkan pembongkaran tidak meninggalkan laluan lapuk.
Simpan penanda, antara muka dan laluan hook dalam nota penggunaan. Apabila nombor berubah selepas but semula, ketiga-tiga nilai itu menjelaskan mengapa skrip berkelakuan berbeza tanpa sebarang suntingan konfigurasi.