Hook betiği tetiklenir, ppp0 okur ve o anda bu adı taşıyan her arayüze rotalar uygular. Bazen amaçladığınız tüneldir; bazen bir dakika önce bağlanmış bir oturumdur. Sonraki yeniden bağlanma numarayı kaydırır ve aynı betik sessizce yanlış bağlantıyı yapılandırır. Çözüm, arayüzü az önce çalışan çağrıdan almak ve amaçlanan profili onun yanında taşımaktır.

Bir oturumu seçeneklerden hook'a kadar izleyin

Oturumun oluşturulduğu yerden başlayın. xl2tpd, pppd'yi o tünelin pppoptfile tarafından adlandırılan seçenek dosyasıyla başlatır; bu nedenle eklenti, birim numarası ve herhangi bir profil işaretçisi genel bir dosyada değil orada belirlenir. Bir bağlantı yöneticisi kendi seçeneklerini üretebilir; bu da /etc/ppp/options dosyasını düzenlemenin, önemsediğiniz tünelin değiştiğinin kanıtı olmadığı anlamına gelir. Bağlantı yükseldiğinde pppd, dağıtımın göndericisinden bildirim betiklerini çalıştırır. Bu betikler arayüz adını birinci bağımsız değişken, profil işaretçisini altıncı bağımsız değişken olarak alır.

Ortam aynı gerçekleri IFNAME ve PPP_IPPARAM gibi adlar altında taşır, ancak kullanılabilirlikleri kurulu göndericiye bağlıdır. Bir değişkene güvenmeden önce göndericiyi okuyun: bazı dağıtımlar upstream bağımsız değişken sırasını korur, diğerleri betiğinizi çağırmadan önce ortamı filtreler. Yalnızca $1 ve altıncı bağımsız değişkeni kullanan bir betik her iki düzenlemede de çalışır.

Arayüzü çağrıdan okuyun

Geleneksel hook arayüzü ilk alır. Bu konumsal değer, betiği tetikleyen oturumu tanımlayan arayüz tanımlayıcısıdır. Onu üstte bir değişkende saklayın, sonra o değişkeni rotalar, güvenlik duvarı kuralları ve sökme için kullanın.

ipparam office-vpn

Profil işaretçisini seçeneklerin tanımlandığı yere ekleyin, betiğe değil. Tünelin seçenek dosyasında bu satır varsa, o dosyadan oluşturulan her oturum altıncı bağımsız değişken olarak office-vpn taşır. Betik işaretçiye göre dallanabilir ve yine de gerçek arayüz üzerinde işlem yapar. İkisini kodda ayrı tutun, çünkü işaretçi kararlıdır ve arayüz her oturum için atanır.

Yalnızca ret doğru olduğunda ad isteyin

Sabit ad, bağımsız değişkenleri okumaktan daha basit görünür ama başarısızlık davranışını değiştirir. unit seçeneği giden bağlantı için bir numara ister ve o birim zaten meşgulse pppd dinamik atamaya geri döner. Bu sonuçta hiçbir şey ppp0'ı profiliniz için ayırmaz.

ifname ppp-office

ifname seçeneği farklı davranır: istenen ad zaten kullanımdaysa veya atanamıyorsa, pppd başka bir tane seçmek yerine çıkar. Bu bir politika seçimidir, kozmetik bir yeniden adlandırma değil. Aynı profilin ikinci eşzamanlı örneğinin reddedilmesi gerektiğinde kullanın ve kurulu pppd ile bağlantı yöneticinizin seçeneği ilettiğini doğrulayın.

Her durumda, betiğin gördüğü ad üzerinde işlem yapılması gereken addır. Yapılandırılmış bir ad, çağrıyı okuma gereğini ortadan kaldırmaz, çünkü yeniden başlatılan bir oturum öncekinden farklı bir ad sunabilir.

Sökmeyi yapılandırdığınız oturumla eşleştirin

Rotalar ve güvenlik duvarı kuralları, onları oluşturan betikten daha uzun yaşar; bu nedenle sökme, oturumun sahip olduğu nesneleri tam olarak kaldırmalıdır. Kuralları hem arayüzle hem de profil işaretçisiyle etiketleyin ve o etikete göre silin. İki tünel aynı anda açık olabiliyorsa, ppp'den söz eden her şeyi silmek, bir bağlantı kesintisinin diğer bağlantıyı bozma yoludur.

Hatayı ortaya çıkaran durumu test edin: birincisi hâlâ bağlıyken ikinci PPP oturumunu kaldırın, sonra birinciyi yeniden bağlayın ve hook'un hangi arayüzü bildirdiğini izleyin. Tek oturumla başarılı bir çalışma, ad ataması hakkında hiçbir şey kanıtlamaz. VPN durdurulmuşken tekrarlayın ve sökmenin eski bir rota bırakmadığını doğrulayın.

İşaretçiyi, arayüzü ve hook yolunu dağıtım notlarında tutun. Yeniden başlatmadan sonra numara değiştiğinde, bu üç değer betiğin herhangi bir yapılandırma düzenlemesi olmadan neden farklı davrandığını açıklar.

İlgili makaleler