লোড করা strongSwan প্রোফাইল কোনো সক্রিয় টানেল নয়
strongSwan সংজ্ঞাগুলো লোড করে এবং তারপর IKE ও CHILD SA নিয়ে আলোচনা করে। প্রোফাইল লোড হওয়া এ কথা বলে না যে কোনো টানেল আছে বা কে এটি শুরু করে।
strongSwan কনফিগারেশনে একটি সংযোগ তালিকাভুক্ত করা কেবল প্রমাণ করে যে একটি সংজ্ঞা লোড হয়েছে। এর অর্থ এই নয় যে সহকর্মীর সঙ্গে যোগাযোগ করা হয়েছে, কোনো IKE SA আছে বা কোনো ট্রাফিক সুরক্ষিত আছে। ডিমন সংজ্ঞা ও জীবিত অ্যাসোসিয়েশনকে আলাদা বস্তু হিসেবে দেখে, এবং তাদের মধ্যবর্তী দূরত্ব একটি সচেতন নকশা সিদ্ধান্ত। কোন বস্তু আপনি পরীক্ষা করছেন তা জানা একটি অস্পষ্ট ব্যর্থতাকে পরবর্তী নির্দিষ্ট কমান্ডে বদলে দেয়।
লোড করা মানে সংযুক্ত হওয়া নয়
লোড করা সংযোগ হলো পরবর্তীতে কী নিয়ে আলোচনা হতে পারে তার একটি বিবৃতি: সহকর্মীর ঠিকানা, পরিচয়পত্র, প্রস্তাব এবং ট্রাফিক নির্বাচক। এই বিবৃতিতে কিছুই ডিমনের কাউকে ফোন করার দাবি করে না। গেটওয়ে অন্য পক্ষের জন্য অপেক্ষা করতে পারে, শুরুতে নিজে উদ্যোগ নিতে পারে বা উপযুক্ত ট্রাফিকের জাগানোর অপেক্ষা করতে পারে। তিনটিই বৈধ, এবং তিনটিই কনফিগারেশন ফাইলে শুরু নীতি না পড়া পর্যন্ত একই রকম দেখায়।
অপারেটররা সংজ্ঞার তালিকাকে অবস্থার তালিকা ভেবে পড়ে সমস্যায় পড়েন। প্রোফাইল আছে, তাই টানেল সক্রিয় ধরে নেওয়া হয়, এবং পরের ঘণ্টা এমন একটি অ্যাসোসিয়েশনের রুট ডিবাগ করতে চলে যায় যা কখনো তৈরি হয়নি।
উল্টো ভুলটিও সমান সাধারণ। অনুপস্থিত প্রোফাইল মানুষকে নেটওয়ার্ক ব্যর্থতা খুঁজতে পাঠায় যখন কনফিগারেশন কখনো লোড হয়নি। বস্তুর নাম দিন, তারপর যে কমান্ড সেটি পর্যবেক্ষণ করে তা চালান।
তিনটি বস্তু, তিনটি পর্যবেক্ষণ
strongSwan একটি লোড করা সংজ্ঞা, একটি IKE SA এবং একটি CHILD SA রাখে। প্রথমটি কনফিগারেশন, দ্বিতীয়টি প্রমাণিত নিয়ন্ত্রণ সম্পর্ক এবং তৃতীয়টি নির্বাচিত ট্রাফিকের জন্য আলোচিত সুরক্ষা। এমনকি তাদের আলাদা নামও আছে, তাই hq নামের প্রোফাইলের hq-lan নামের child থাকতে পারে।
সারণিটি প্রতিটি স্তরকে সেই কমান্ডের সঙ্গে যুক্ত করে যা এটি দেখায়। লগ পড়ার আগে সারিটি পড়ুন।
| Layer | What it contains | Command |
|---|---|---|
| Definition | Peer addresses, credentials, proposals, and traffic selectors | swanctl --list-conns |
| IKE SA | One authenticated control channel to the peer | swanctl --list-sas |
| CHILD SA | Keys and selectors for the traffic being protected | Child rows under the IKE SA |
child অনুরোধ করা প্রথমে তার মূল IKE SA তৈরি করে যখন কোনোটি থাকে না। শুধু IKE SA অনুরোধ করা অন্য একটি কল। সঠিকভাবে প্রমাণিত হওয়া নিয়ন্ত্রণ চ্যানেল অনুরোধ করা child-এর নিশ্চয়তা দেয় না।
এই পার্থক্য আংশিক ব্যর্থতার সময় গুরুত্বপূর্ণ। IKE SA সুস্থ থাকতে পারে যখন child নির্বাচকের অমিল বা সহকর্মী যে প্রস্তাব গ্রহণ করে না তার কারণে ব্যর্থ হয়। দুটি বস্তু ভিন্ন কারণে ব্যর্থ হয়, তাই তারা আলাদা পর্যবেক্ষণের যোগ্য।
শুরুর কাজটি সচেতনভাবে বেছে নিন
swanctl.conf-এ child-এর start_action লোড হওয়ার পরের আচরণ নির্ধারণ করে। ডিফল্ট none সংজ্ঞাটি হাতে শুরু বা responder হিসেবে ব্যবহারের জন্য রেখে দেয়। start এটি ডায়াল করে, অন্যদিকে trap এমন নীতি রেখে দেয় যা উপযুক্ত ট্রাফিক দেখা মাত্রই আলোচনা করে।
তাই «লোড করা কখনো টানেল শুরু করে না» এবং «লোড করা সবসময় একটি শুরু করে» দুটিই ভুল। কাজটি প্রোফাইলের অংশ এবং এটি সহকর্মীর ভূমিকার সঙ্গে মিলতে হবে। দুটি গেটওয়ে যদি দুটিই অন্য পক্ষের অপেক্ষা করে, তবে নীরবতা তৈরি হয়, টানেল নয়।
trap-এর সঙ্গে ট্রাফিককে নির্বাচকদের সঙ্গে মিলতে হয়, তাই অসম্পর্কিত ping কিছু জাগায় না। start-এর সঙ্গে সহকর্মীর ঠিকানা ব্যবহারযোগ্য হতে হবে এবং দুই পক্ষকে প্রমাণীকরণ ও প্রস্তাবে একমত হতে হবে। দুটি কাজের কোনোটিই এই শর্তগুলো যাচাইয়ের বিকল্প নয়।
পুনরুদ্ধার একটি আলাদা নীতি
শুরু কোনো keepalive নয়। মৃত সহকর্মী শনাক্তকরণ, সহকর্মীর স্পষ্ট বন্ধ, কী নবায়ন এবং প্রক্রিয়ার পুনরারম্ভ জীবনের চক্রের ভিন্ন ঘটনা যাদের নিজস্ব সেটিং আছে। প্রত্যেকটি সচেতনভাবে কনফিগার করুন, প্রাথমিক শুরু সবকিছু ঢাকবে এমন প্রত্যাশা না রেখে।
বুটে ওঠে এবং এক ঘণ্টা পরে মরে যায় এমন টানেল পুনরুদ্ধারের প্রশ্ন। শুরুর নীতিটি তার কাজ করেছিল এবং তারপর গুরুত্বপূর্ণ থাকা বন্ধ করে দিয়েছিল। প্রাথমিক আলোচনাকে দোষ দেওয়ার আগে DPD ও কী নবায়নের সেটিং দেখুন।
লোড করা সংজ্ঞা বদলানো একটি স্বতন্ত্র কাজ। অ-ডিফল্ট শুরুর নীতিগুলোর নথিভুক্ত বিপরীত কাজ থাকে, এবং পুনরায় লোড করা একটি পরিচালনগত পরিবর্তন, প্রতিটি অ্যাসোসিয়েশন জায়গায় হালনাগাদ হয়েছে এমন অনুমান নয়। পুনরায় লোড ধাপে ধাপে করুন, যেখানে পুনরায় সংযুক্ত হওয়া গ্রহণযোগ্য। নতুনটি প্রমাণিত না হওয়া পর্যন্ত পুরোনো কনফিগারেশন রাখুন।
রাউটিং ডিবাগ করার আগে কী আছে তা যাচাই করুন
তিনটি পর্যবেক্ষণ ক্রমে করুন: লোড করা সংজ্ঞা, সক্রিয় IKE SA এবং child এন্ট্রি। প্রতিটি উত্তর পরের প্রশ্নটি সংকুচিত করে। একটি ধাপ বাদ দিলে শেষে আপনি এমন একটি স্তর ডিবাগ করবেন যা কখনো তৈরি হয়নি।
যা লোড আছে এবং যা সত্যিই প্রতিষ্ঠিত তা দিয়ে শুরু করুন:
swanctl --list-conns
swanctl --list-sas
প্রোফাইল সঠিক থাকলেও child অনুপস্থিত থাকলে, এটি নাম দিয়ে শুরু করুন এবং কী হয় দেখুন। আউটপুট সাধারণত বলে মূলটি আগে উঠেছিল কি না।
swanctl --initiate --child hq-lan
সক্রিয় CHILD SA শেষ রেখা নয়। ফরওয়ার্ডিং নিয়ম, রুট এবং অ্যাপ্লিকেশনের নিজস্ব অনুমোদন এখনো মিলতে হবে। জীবনচক্র বলে কী নিয়ে আলোচনা হয়েছে; এটি ঠিক করতে পারে না কে সেবাটি ব্যবহার করতে পারে।