Cisco ASA টানেলড ডিফল্ট রুট: আসলে কখন প্রযোজ্য
ডিক্রিপ্ট করা VPN ট্রাফিক যখন আপনার স্ট্যাটিক ডিফল্ট উপেক্ষা করে, তখন সাধারণত tunneled কীওয়ার্ডটিই থাকে না; আর সমাধানটির সঙ্গে নাম যা বোঝায় তার চেয়ে বেশি বিধিনিষেধ জড়িত।
রিমোট-অ্যাক্সেস ব্যবহারকারী ASA-র ওপারে কিছুই পৌঁছাতে পারে না, অথচ একই সার্ভার ভেতরের LAN থেকে পিংয়ের উত্তর দেয়। টানেল উঠে আসে, ক্লায়েন্ট পুল থেকে একটি ঠিকানা পায়, তবু প্যাকেটটি ইন্টারনেট ডিফল্ট দিয়েই বেরিয়ে যায় বা উধাও হয়ে যায়। এই ধরনটি সাধারণত বোঝায় যে ডিক্রিপ্ট করা ট্রাফিক নিজের কোনো রুট পায়নি এবং সাধারণ ডিফল্টে গিয়ে পড়েছে। সমাধান আরেকটি NAT রুল নয়; সমাধান হলো টানেলড ডিফল্ট।
কনফিগ নয়, শুরু করুন উপসর্গ দিয়ে
প্যাকেট কোথায় যাচ্ছে তা দেখুন, আপনি কোথায় যাবে আশা করেছিলেন তা নয়। ব্যর্থ সেশনের সময় আউটসাইড ইন্টারফেসে একটি ক্যাপচার দেখায় ডিক্রিপ্ট করা প্যাকেটটি ISP গেটওয়ের দিকে যাচ্ছে আর পুলের ঠিকানা এখনো অক্ষত, অথবা কিছুই দেখায় না কারণ লুকআপ ব্যর্থ হয়েছে। দুই ক্ষেত্রেই টানেল সমস্যা নয়।
show vpn-sessiondb-তে টানেল সুস্থ দেখায়, আর ঠিক এ কারণেই মানুষ IKE ডিবাগ করতে থাকে।
ACL ড্রপ থেকে এটিকে আলাদা করে দিক। ACL ড্রপ লগ হয় ও গণনা হয়, কিন্তু অনুপস্থিত রুট লুকআপ ব্যর্থতা তৈরি করে যেখানে কোনো মিলে যাওয়া এন্ট্রি নেই। ক্লায়েন্টের গন্তব্যের জন্য show route চালান এবং ASA আসলে কী বেছে নিয়েছে তা পড়ুন, ডিফল্ট বেছে নেওয়া হয়েছে কি না এবং কোনটি সেটিও।
টানেলড লুকআপ কীভাবে আলাদা
Cisco-র ASA 9.23 স্ট্যাটিক-রাউটিং গাইড-এ ডিক্রিপ্ট করা VPN ট্রাফিকের জন্য একটি পৃথক ডিফল্টের কথা লেখা আছে, যার কোনো স্ট্যাটিক বা শেখা রুট নেই। tunneled কীওয়ার্ডটি সেই রুটটিকে চিহ্নিত করে, তাই একটি ডিক্রিপ্ট করা প্যাকেট ASA নিজের ট্রান্সপোর্টের জন্য যে নেক্সট হপ ব্যবহার করে তার চেয়ে ভিন্ন একটিতে ফিরে যেতে পারে। আরও নির্দিষ্ট রুট এখনও জেতে, এ কারণেই একটি ক্লায়েন্ট অভ্যন্তরীণ গেটওয়ের মাধ্যমে 10.0.0.0/8 পর্যন্ত পৌঁছাতে পারে আর বাকি সব হারায়।
সর্বনিম্ন বিন্যাসে ভিন্ন নেক্সট হপ সহ দুটি ডিফল্ট থাকে। একটি ASA-র নিজের ট্রাফিক বহন করে, অন্যটি ডিক্রিপ্ট করা ট্রাফিক বহন করে যার আর কোনো ভালো রুট নেই। দুটি নেক্সট হপকেই আপনি যে ইন্টারফেসে যুক্ত করছেন সেখান থেকে পৌঁছানো যায় এমন হতে হবে।
route outside 0.0.0.0 0.0.0.0 198.51.100.1
route outside 0.0.0.0 0.0.0.0 10.20.30.1 tunneled
যদি দুটি ডিফল্টই একই নেক্সট হপের দিকে নির্দেশ করে, কীওয়ার্ডটি কিছুই বদলায় না এবং উপসর্গও নড়বে না।
যেসব বিধিনিষেধ ঠিক করে এটি কাজ করবে কি না
একই গাইডে কেবল একটি টানেলড ডিফল্টের অনুমতি আছে এবং বলা আছে এর জন্য ECMP সমর্থিত নয়, তাই আপনি সেই পথে লোড-শেয়ার করতে পারবেন না। এতে রুট ট্র্যাকিং, রিভার্স-পাথ ভেরিফিকেশন এবং কিছু ইনস্পেকশন ও ম্যানেজমেন্ট ফ্লো সংক্রান্ত বিধিনিষেধও তালিকাভুক্ত আছে। ফিচারটিকে ঘিরে ডিজাইন করার আগে আপনার ইনস্টল করা রিলিজের সঙ্গে সেগুলো মিলিয়ে পড়ুন। এগুলো উপেক্ষা করা ডিজাইন সাধারণত সর্বত্র নয়, বরং একটি নির্দিষ্ট জায়গায় ব্যর্থ হয়, এ কারণেই উপসর্গটি অনিয়মিত মনে হয়।
অসামঞ্জস্যপূর্ণ ডিজাইনে রিভার্স-পাথ ভেরিফিকেশনই সবচেয়ে বেশি কামড়ায়। যদি উত্তরটি ASA যে ইন্টারফেস আশা করে তার চেয়ে ভিন্ন কোনো ইন্টারফেস দিয়ে আসে, প্যাকেটটি রাউটিংয়ের আগেই ফেলে দেওয়া হয়। ভেরিফিকেশন বন্ধ করে জোর করে একটি নেক্সট হপ বানানোর বদলে টপোলজি বা রিটার্ন পাথ ঠিক করুন।
রুট ট্র্যাকিং আলাদা একটি ফাঁদ: ট্র্যাক করা অবজেক্ট সাধারণত সাধারণ ডিফল্টটিকে পাহারা দেয়, টানেলডটিকে নয়।
কীওয়ার্ডটি যা করে না
এটি ASA IKE গড়তে যে সোর্স ঠিকানা ব্যবহার করে তা বেছে নেয় না। বাইরের টানেল এন্ডপয়েন্ট প্ল্যাটফর্মের নিজস্ব ইন্টারফেস ও সোর্স নির্বাচন অনুসরণ করে, আর টানেলড ডিফল্টের সেই সিদ্ধান্তে কোনো ভূমিকা নেই। এটি বদলালে ভুল ঠিকানা থেকে উৎস নেওয়া phase 1 সারবে না।
এটি নেক্সট হপকে প্রক্সিতেও বদলায় না। যদি গন্তব্য HTTP CONNECT বিনিময় আশা করে, প্রক্সি হোস্টে কাঁচা IP প্যাকেট পাঠালে আপনি কেবল এমন একটি হোস্ট পান যা সেগুলো রাউট করছে না। বরং ক্লায়েন্টের সমর্থিত প্রক্সি ব্যবস্থাটি কনফিগার করুন।
আর এটি ডাউনস্ট্রিম ফরওয়ার্ডিংও তৈরি করে না। আপনি যে গেটওয়ের দিকে নির্দেশ করছেন তার এখনও VPN পুলে ফেরার রুট দরকার, সাথে ডিজাইনে যেখানে দরকার সেখানে সোর্স ট্রান্সলেশন।
পথটি শুরু থেকে শেষ পর্যন্ত যাচাই করুন
রুট বসানোর পর পরপর চারটি জিনিস দেখুন: পুলের দরকার এমন একটি গন্তব্যের জন্য show route, নতুন নেক্সট হপের দিকের ইন্টারফেসে একটি ক্যাপচার, গেটওয়ের নিজের উপর একটি ক্যাপচার, এবং সেই গেটওয়ে থেকে পুলের ঠিকানায় ফেরার পথ। প্রথম দুটি প্রমাণ করে ASA পথটি বেছেছে, শেষ দুটি প্রমাণ করে সেখানে কেউ উত্তর দিচ্ছে।
যদি গেটওয়ে উত্তর দেয় কিন্তু ক্লায়েন্ট কখনো উত্তর দেখে না, রুট টেবিল আবার ধরার আগে সোর্স ট্রান্সলেশন ও রিপ্লাই রুট দেখুন।
আপনি যে রিলিজে যাচাই করেছেন তা লিখে রাখুন, কারণ বিধিনিষেধের তালিকাটি সংস্করণ-নির্দিষ্ট এবং যে ডিজাইন একটি ট্রেনে কাজ করে তার অন্য ট্রেনে ভিন্ন পথ লাগতে পারে। সেই নোটটি কনফিগ স্নিপেটের চেয়ে বেশি দিন টেকে।