iPhone Always On VPN: يمكن لنفقين مشاركة عنوان IP افتراضي واحد
أنفاق Always On لكل واجهة ليست rekey فاشلة. قارن بين SA على الخادم، ثم قرر ما إذا كان بإمكان هوية واحدة الاحتفاظ بعنوانين داخليين.
على iPhone خاضع للإشراف وله ملف تعريف Always On مُدار، يحتفظ الهاتف بنفق لكل واجهة IP نشطة، لذا تحصل الشبكة الخلوية وWi-Fi على نفق لكل منهما. ثم يسرد الخادم ارتباطين أمنيين من IKE لجهاز واحد، غالبًا مع مشاركة عنوان افتراضي واحد، وأول رد فعل هو تسمية ذلك بحلقة rekey والبدء في تغيير المؤقتات. ذلك الرد عادةً خاطئ. اتبع الخطوات أدناه بالترتيب الذي تظهر به الأدلة على الخادم، واترك إعدادات الهاتف دون تغيير حتى يخبرك الخادم أي حالة لديك.
ابدأ بالسطرين اللذين يملكهما الخادم بالفعل
اسرد الارتباطات باستخدام swanctl --list-sas واقرأ أربعة حقول في كلا الإدخالين: العنوان البعيد، والهوية الموثقة، وعنوان IP الافتراضي المخصص، ووقت الإنشاء. عنوانان خارجيان مختلفان مع هوية واحدة وعنوان IP افتراضي واحد هو الشكل الذي بدأ هذا السؤال، ويستحق تدوينه قبل أي تغيير. ثم افحص الارتباطات التابعة المرتبطة بكل منهما، لأن محددات حركة المرور تحدد ما إذا كان البحث عن الوجهة قد يميز بين النفقين يومًا ما. الزوج الذي يظهر ويختفي في ثوانٍ هو كائن آخر غير الزوج الذي يعيش كلاهما ساعات.
قبل استخلاص نتيجة، رتب القائمة حسب وقت الإنشاء. الجوار في المخرجات لا يعني شيئًا، والقائمة الجدولية تدعو إلى هذا الخطأ تحديدًا.
حدد أي تداخل تنظر إليه
ينشئ rekey في IKEv2 وإعادة المصادقة make-before-break تداخلًا قصيرًا عن قصد، بإقامة الارتباط الجديد قبل حذف القديم. تحسم الطوابع الزمنية الحالة، لأن SA القديم الذي يختفي بعد ثانية أو ثانيتين من ظهور الجديد هو تجديد يقوم بعمله. أنفاق الواجهات المستقلة لا تبدو هكذا أبدًا، لأن كلًا منها يستمر ما دامت واجهته قائمة، وحذف أحدهما لا ينشأ عن إنشاء الآخر.
سلوك Always On المُدار من Apple يكون لكل واجهة، ولهذا قد يبدو الجهاز الخاضع للإشراف مشغولًا أكثر من ملف تعريف أُعد يدويًا، وذلك بشكل مشروع. مفتاح الاتصال التلقائي في تطبيق مزود لا يعني الشيء نفسه، ولا قاعدة on-demand العادية كذلك. يصف نظرة Apple العامة على النشر النموذج لكل واجهة؛ قارن سطريك به قبل افتراض وجود حلقة. كلا الشكلين يستقيان من التجمع نفسه على الخادم، لذا فإن التداخل هو إشارتك المبكرة الوحيدة.
اعرف لماذا يكسر عنوان افتراضي واحد لنفقين الردود
يُوجَّه الرد إلى الهاتف إلى العنوان الداخلي، وتختار النواة نفق الخروج حسب الوجهة والسياسة، لا حسب الواجهة التي استخدمها الهاتف. ارتباطان متزامنان يحتفظان بعنوان IP الافتراضي نفسه مع سياسات متطابقة يتركان قرار التوجيه بلا طريقة للقول إلى أي جلسة ينتمي الرد. بعض الردود تسلك النفق الخطأ، فيُظهر الهاتف اتصالًا يعمل في اتجاه واحد أو يموت عند ظهور Wi-Fi. مخرجات أمرين تثبت الحالة: swanctl --list-sas يُظهر عنوان IP الافتراضي نفسه على كلا الارتباطين، و ip xfrm policy يُظهر محددين متطابقين.
هذا الزوج من المخرجات هو ما تلصقه في سجل التغيير. لا أحد منهما مقنع بمفرده، لأن كلًا منهما قد يبدو معقولًا منفردًا.
هذه عنونة وسياسة على جانب الخادم، وليست سلوكًا خاطئًا من الهاتف، ولا يوجد إعداد عميل يفصل بين عنوانين داخليين متطابقين. سلّم التجمع القيمة نفسها مرتين وقبِلها مثبّت السياسة. اقرأ النتيجة من جانب الخادم قبل لوم العميل.
غيّر التجمع أو نموذج التزامن، لا مؤقت rekey
في إعداد swanctl، التفرد سياسة صريحة على الاتصال: unique = replace يزيل اتصالًا أقدم عند إنشاء اتصال جديد، و unique = keep يرفض الوافد الجديد. تعمل القيمتان عند إعداد الاتصال، لا على الارتباطات التابعة داخله.
connections {
ios-alwayson {
unique = replace
}
}
لا قيمة محايدة بالنسبة لعميل يعمل لكل واجهة. keep يستعيد شاشة حالة مرتبة برفض النفق الثاني ويكسر التصميم المُدار، بينما replace يهدم النفق الأقدم وهو التنازل نفسه في الاتجاه المعاكس. إذا كان النفقان مطلوبين فعلًا، فيجب على خلفية التجمع إصدار تأجيرات مختلفة لهوية واحدة، ويجب أن يميز مفتاح التأجير الخاص بها الطلبات. ستعيد جدولية ثابتة للهوية إلى العنوان العنوان نفسه مرتين وستعيد إنتاج المشكلة الأصلية بإعداد أكثر. تحقق من كيفية توليد الخلفية لمفاتيح التأجير قبل إضافة تعيين ثابت ثانٍ.
اختبر الانتقالات التي تنشرها فعلًا
اخرج من نطاق Wi-Fi وجلسة نشطة، ثم عد إلى الداخل، وتأكد من وصول الردود في الاتجاهين. افعل ذلك مرتين، لأن الانتقال الثاني هو حيث تظهر عادةً سياسة قديمة. اختبر بخدمة ترد على الاتصال الذي فتحته، وكرر الخروج بينما ينقل النفق حركة مرور بدلًا من أن يبقى خاملًا. الهاتف الذي يستطيع الإرسال ولا يستطيع الاستقبال يبدو سليمًا في سجل handshake ومكسورًا في المتصفح.
شاشة حالة اختُزلت إلى سطر واحد ليست دليلًا على تصميم يعمل، بل دليل على أن نفقًا واحدًا اختفى. يجب أن يعمل الاتجاهان قبل أن ينجح الانتقال. دوّن ما لاحظته، إلى جانب مخرجي فحص التداخل، كي يستطيع المهندس التالي المقارنة بدلًا من تكرار الجولة.