দুই iPhone-এ একই IKEv2 পরিচয়? তারা পালাক্রমে সংযোগ করে
একটি প্রোফাইল দুই ডিভাইসে কপি করলে গেটওয়ে দুইটির বদলে একটি peer পায়। peer টেবিল পূর্ণ ও খালি হওয়া দেখুন, তারপর প্রতি ডিভাইসে একটি মান দিন।
দুটি ফোন, একটি প্রোফাইল, আর এমন এক ধাঁচ যা কেউ গেটওয়ে না দেখা পর্যন্ত অতিপ্রাকৃত মনে হয়। একটি ডিভাইস টানেল ধরে রাখে, দ্বিতীয়টি সংযোগ করে, আর প্রথমটি কয়েক সেকেন্ডেই তা হারায়। প্রথমটি আবার সংযোগ করে, দ্বিতীয়টি কেটে যায়। ব্যাটারি সাশ্রয়, Wi-Fi রোমিং ও ক্যারিয়ার NAT-কে দোষ দেওয়া হয়, অথচ আসল কারণ একটি টেক্সট ফিল্ডে বসে আছে যা বাকি সবকিছুর সঙ্গে কপি হয়েছে। IKEv2 একটি peer-কে নাম দিয়ে চেনে, আর দুই ফোনই একই নাম উপস্থাপন করছে।
পরিচয় হলো সেই চাবি যার অধীনে সার্ভার আপনাকে রাখে
একটি IKEv2 বিনিময়ের ভিতরে প্রতিটি পক্ষ বলে সে কে: সূচনাকারী একটি স্থানীয় শনাক্তকারী পাঠায়, উত্তরদাতা নিজেরটি দিয়ে উত্তর দেয়, এবং সূচনাকারীর দাবি করা পরিচয় নীতির বিরুদ্ধে যাচাইও করে। গেটওয়ে তার অবস্থা ডিভাইস অনুযায়ী নয়, পরিচয় অনুযায়ী রাখে, কারণ ডিভাইস তার দেখার মতো কিছু নয়। তাই একই শনাক্তকারীর দুই ফোন একটি peer হিসেবে আসে, আর দ্বিতীয় বিনিময়কে প্রথমটির উপরে লিখতে হয়। সমস্যা কেবল তখনই দেখা যায় যখন দুটিই ব্যবহৃত হয়, তাই এক-ফোনের পরীক্ষা এটি কখনো পুনরুৎপাদন করে না।
এর কোনোটিই ক্লায়েন্টের বাগ নয়। প্রোফাইল তাকে যা পাঠাতে বলেছে, ক্লায়েন্ট ঠিক তা-ই পাঠিয়েছে।
গেটওয়ে থেকে সংঘর্ষটি কেমন দেখায়
দুই ফোন জাগ্রত ও ব্যবহৃত অবস্থায় peer তালিকা দেখুন। সংঘর্ষ একটি একক এন্ট্রি দেখায় যার ঠিকানা ফোন দুটি বদলালে বদলে যায়, আর সক্রিয় সেশনগুলোর কাউন্টার কখনো দুই-তে পৌঁছায় না। চাহিদা অনুযায়ী বিচ্ছেদ ভিন্ন দেখায়, আর এদের আলাদা করতে তত্ত্ব নয়, একটি পর্যবেক্ষণই লাগে।
| Observation | Shared identity | Idle teardown |
|---|---|---|
| Peer entries while both are awake | One, with a changing address | One per phone, or none |
| What triggers the drop | The other device connecting | Time without traffic |
| What restores it | The other device disconnecting | Any app needing the tunnel |
ঘটনাটি ঘটার সময়েই দুটি ঘটনা টাইমস্ট্যাম্পসহ লিখে রাখুন। অন্য হ্যান্ডসেট সংযোগ করার সঙ্গে মিলে যাওয়া বিচ্ছেদ শনাক্তকারীর দিকে ইঙ্গিত করে, আর শেষ প্যাকেটের এক নিষ্ক্রিয় ব্যবধানের পর আসা বিচ্ছেদ টাইমারের দিকে ইঙ্গিত করে।
নকলগুলো কোথা থেকে আসে
একটি কার্যকর কনফিগারেশন রপ্তানি করে কেবল সার্ভার ঠিকানা সম্পাদনা করলে প্রথম ফাইলের পরিচয় এখনো ভেতরে থাকা একটি দ্বিতীয় ফাইল তৈরি হয়। এটাই এই ব্যর্থতার সাধারণ পথ, আর সাধারণত তাড়াহুড়োয় ছোট একটি দল অনবোর্ড করার সময় ঘটে।
ফিল্ডের নামগুলো এটি মিস করা সহজ করে তোলে। দূরবর্তী শনাক্তকারী ফোন যে গেটওয়ে প্রত্যাশা করে তার নাম দেয়, আর এটি কপি করা সঠিক। স্থানীয় শনাক্তকারী এই হ্যান্ডসেটকে গেটওয়ের কাছে নাম দেয়, আর সেই মানটি কপি করাই পুরো সমস্যা।
প্রতি ডিভাইসে একটি মান দিন
হ্যান্ডসেটের জন্য অনন্য এবং তার জীবনকালে স্থির এমন কিছু ব্যবহার করুন, যেমন ইনভেন্টরি থেকে ডিভাইস শনাক্তকারী বা আপনার ব্যবস্থাপনা সিস্টেম প্রতিটি নথিভুক্তির জন্য তৈরি করা মান। বিভাগের লেবেল, ভাগ করা পরিষেবা অ্যাকাউন্টের নাম বা ব্যবহারকারীর ইমেইল ঠিকানা—সেই ব্যক্তির দ্বিতীয় ডিভাইস থাকলেই সবই সংঘর্ষ করে।
একটি ফাইল বিতরণ না করে প্রতি ডিভাইসে পেলোড তৈরি করুন। কোন মান কোন হ্যান্ডসেটের তা লিখে রাখুন, যাতে প্রতিস্থাপন পুরোনো প্রোফাইল পুনরুদ্ধার করে নতুন ফোনকে আবার একই সংঘর্ষে না ফেলে।
সার্ভারের দিকটাও যাচাই করুন। যে গেটওয়ে পরিচয়কে একটি নির্দিষ্ট টানেল ঠিকানায় ম্যাপ করে, দুটি ভিন্ন শনাক্তকারী একই বরাদ্দ পেলে তা এখনো সংঘর্ষ করতে পারে, তাই নিশ্চিত করুন পুলে জায়গা আছে এবং বরাদ্দগুলো ব্যবহারকারী অনুযায়ী পিন করা নয়।
দুই ফোন জাগ্রত রেখে যাচাই করুন
প্রথমটি সংযোগ করুন, একটি ব্যক্তিগত রিসোর্সে পৌঁছান, তারপর দ্বিতীয়টি সংযোগ করুন এবং দুটিকেই এক মিনিট নিষ্ক্রিয় রাখুন। দুই সেশনই টিকে থাকা উচিত এবং peer তালিকায় দুইটি পরিচয় দেখা উচিত। তারপর প্রতিটি ফোন লক ও আনলক করে নিশ্চিত করুন নিষ্ক্রিয়তার ক্ষেত্রটি এখনো ঠিক আচরণ করে।
যদি একটি সেশন এখনো দিনে একবার কেটে যায় আর অন্য কিছু সংযোগ না করে, তবে পরিচয় আর সন্দেহভাজন নয়। প্রোফাইল আবার সম্পাদনার বদলে নিষ্ক্রিয় টাইমার ও সার্ভার সেশন সীমার দিকে যান।