VM-টি IP ফরওয়ার্ডিং ছাড়াই তৈরি হয়েছিল, এটি ইতিমধ্যে VPN সফটওয়্যার চালায়, এবং স্বাভাবিক প্রবণতা হলো ফ্ল্যাগ সেট করে টেমপ্লেট থেকে এটি পুনর্গঠন করা। সেই পুনর্গঠন অপ্রয়োজনীয়। Compute Engine canIpForward-কে একটি হালনাগাদযোগ্য বৈশিষ্ট্য হিসেবে প্রকাশ করে, এবং নথিভুক্ত হালনাগাদ পথটি তা রিস্টার্টের বদলে refresh দিয়ে প্রয়োগ করে। ফ্ল্যাগটি আসলে যা নিয়ন্ত্রণ করে তা সংকীর্ণ: এটি ছাড়া প্ল্যাটফর্ম এমন প্যাকেট ফেলে দেয় যা ইনস্ট্যান্সে পৌঁছায় কিন্তু ইনস্ট্যান্সের নিজের ঠিকানায় ঠিকানা করা নয়। অন্য মেশিনের ট্রাফিক ফরওয়ার্ড করা গেটওয়ে ঠিক তাই করে, তাই ফ্ল্যাগটি চালু থাকতে হবে। এর পরে সবকিছু গেস্ট কনফিগারেশন ও রাউটিং, যা ফ্ল্যাগ স্পর্শ করে না।

ফ্ল্যাগ কী অনুমতি দেয়, আর কী দেয় না

ফরওয়ার্ডিং নিষ্ক্রিয় থাকলে প্ল্যাটফর্ম ইনস্ট্যান্সটিকে একটি প্রান্তবিন্দু হিসেবে গণ্য করে। যে প্যাকেটের গন্তব্য ইনস্ট্যান্সের নিজের ঠিকানা, সেগুলো পৌঁছে দেওয়া হয়; যে প্যাকেট ইনস্ট্যান্সের অন্য কারও পক্ষে এগিয়ে পাঠানোর কথা, সেগুলো নয়।

ফরওয়ার্ডিং সক্রিয় থাকলে ইনস্ট্যান্সটি একটি VPC রুটের পরবর্তী হপ হিসেবে কাজ করতে পারে, যা একটি VPN অ্যাপ্লায়েন্সের প্রয়োজনীয় ভূমিকা। ফ্ল্যাগটি ফায়ারওয়াল, গেস্ট রাউটিং, টানেল কনফিগারেশন বা রিটার্ন পাথ নিয়ে কিছুই বলে না, এবং ভাঙা গেটওয়েতে true মান এখনও ভাঙা গেটওয়ে।

বর্তমান বৈশিষ্ট্যটি পড়ুন

কিছু বদলানোর আগে সেটিংটি পরীক্ষা করুন, লক্ষ্য ইনস্ট্যান্স, প্রকল্প ও জোনের বিরুদ্ধে শুধু-পাঠের describe ব্যবহার করে:

gcloud compute instances describe VM_NAME --project PROJECT_ID --zone ZONE --format='value(canIpForward)'

false মান কেবল তখনই গুরুত্বপূর্ণ যখন এই VM-টির পরবর্তী হপ হওয়ার কথা। যদি তাই হয়, পথের বাকি অংশটি এখনও আলাদাভাবে যাচাই করতে হবে, কারণ বৈশিষ্ট্যটি দীর্ঘতর শৃঙ্খলের একটি লাইন মাত্র।

বিদ্যমান ইনস্ট্যান্স হালনাগাদ করুন

Google-এর ইনস্ট্যান্স-বৈশিষ্ট্য হালনাগাদের পদ্ধতি বর্তমান রিসোর্সটি এক্সপোর্ট করে, বৈশিষ্ট্যটি পরিবর্তন করে এবং ফলাফল জমা দেয়। এটি তৈরি-সময়ের --can-ip-forward ফ্ল্যাগ থেকে ভিন্ন একটি কর্মপ্রবাহ, এবং চলমান VM-এ কাজ করে এই পদ্ধতিটিই।

প্রথমে সংজ্ঞাটি একটি স্থানীয় ফাইলে এক্সপোর্ট করুন, এবং তুলনার জন্য একটি অপরিবর্তিত অনুলিপি রেখে দিন:

gcloud compute instances export VM_NAME --project PROJECT_ID --zone ZONE --destination=instance.yaml

সেই এক্সপোর্ট করা ফাইলে বৈশিষ্ট্যটি সেট করুন এবং আর কিছু বদলাবেন না:

canIpForward: true

পুরো রিসোর্সটি, তার ফিঙ্গারপ্রিন্টসহ, ধরে রাখুন। ফাইলটিকে এক-লাইনের YAML নথি দিয়ে প্রতিস্থাপন করা, বা অসংশ্লিষ্ট মেশিন-টাইপ, ডিস্ক বা ইন্টারফেস সম্পাদনা একই জমার সঙ্গে জুড়ে দেওয়া, এভাবেই একটি বৈশিষ্ট্য পরিবর্তন বিভ্রাটে পরিণত হয়।

কোনো কার্যকর পরিবর্তন অনুমোদনের আগে হালনাগাদ ব্যবস্থাটিকে ফাইলটি যাচাই করতে এবং এটি কী প্রয়োজন হবে তা জানাতে বলুন:

gcloud compute instances update-from-file VM_NAME --project PROJECT_ID --zone ZONE --source=instance.yaml --most-disruptive-allowed-action=NO_EFFECT

সেই যাচাই চালানো ফরওয়ার্ডিং সক্রিয় করে না। প্রতিক্রিয়াটি অবৈধ বৈশিষ্ট্য এবং কোন পদক্ষেপ প্রয়োজন বলা হচ্ছে তা পড়ুন। এই বিচ্ছিন্ন পরিবর্তনের জন্য নথিভুক্ত পদক্ষেপ REFRESH। যদি ফলাফল রিস্টার্ট চায়, ফাইলটিতে আপনার বদলাতে চাওয়া বৈশিষ্ট্যের চেয়ে বেশি কিছু আছে, তাই রিস্টার্ট দেওয়ার বদলে এটি পরীক্ষা করুন।

পর্যালোচিত ফাইলটি refresh সীমা দিয়ে প্রয়োগ করুন:

gcloud compute instances update-from-file VM_NAME --project PROJECT_ID --zone ZONE --source=instance.yaml --most-disruptive-allowed-action=REFRESH

অপারেশনটি সম্পন্ন হয়েছে কিনা দেখুন এবং describe কমান্ডটি আবার চালান। যদি ফিঙ্গারপ্রিন্ট আর মেলে না, আপনি সম্পাদনা করার সময় অন্য কেউ ইনস্ট্যান্সটি বদলেছে, তাই আপনার পুরোনো ফাইল জোর করে পাঠানোর বদলে নতুন অনুলিপি এক্সপোর্ট করুন এবং পরিবর্তনটি আবার পর্যালোচনা করুন।

গেস্টকে এখনও প্যাকেটটি রাউট করতে হবে

ক্লাউড অনুমতি অ্যাপ্লায়েন্সকে রাউটার করে না। নিশ্চিত করুন যে একটি VPC রুট গন্তব্য প্রিফিক্সের জন্য এই VM-কে পরবর্তী হপ হিসেবে বেছে নেয়, এবং গেস্ট তার নিজের ফরওয়ার্ডিং নীতি সক্রিয় রেখে টানেল ও সঠিক ইন্টারফেসের মধ্যে রাউট করে।

ফায়ারওয়াল নীতিকে ভেতরের প্রবাহ এবং বাইরের লিসেনার, দুটোই অনুমতি দিতে হবে। শুধু VPN পোর্ট খোলা এনক্রিপ্টেড ট্রান্সপোর্ট বর্ণনা করে এবং এর ভেতরের অ্যাপ্লিকেশন বিনিময় নিয়ে কিছু বলে না।

সবশেষে, গন্তব্যের ক্লায়েন্ট পুলে ফেরার পথ দরকার, নয়তো নকশাকে সচেতনভাবে সোর্স অনুবাদ করতে হবে। গন্তব্য যদি অনূদিত ট্রাফিক দেখে, অনূদিত সোর্স পরীক্ষা করুন; নকশা যদি পুল সংরক্ষণ করে, ফেরার রুট ও অ্যাক্সেস নিয়মে সেই পুল পরীক্ষা করুন। কোন নকশা চান তা ঠিক করার আগে NAT যোগ করা একটি অনুপস্থিত রুট লুকায় এবং গন্তব্য যে নীতি দেখে তা বদলে দেয়।

Linux গেটওয়েতে কার্নেল ফরওয়ার্ডিং গেস্ট কনফিগারেশনের অংশ। pfSense অ্যাপ্লায়েন্সের নিজস্ব সমতুল্য আছে, এবং তাতে Linux sysctl কমান্ড কপি করা মিলিয়ে দেওয়ার পদক্ষেপ নয়।

যে ক্লায়েন্টের অ্যাক্সেস দরকার সেখান থেকে যাচাই করুন

গেটওয়ে থেকেই নয়, একটি VPN ক্লায়েন্ট থেকে একটি লক্ষ্য সেবায় পরীক্ষা করুন। গেটওয়েতে শুরু করা সংযোগ ভিন্ন সোর্স ব্যবহার করে এবং আপনি এইমাত্র সক্রিয় করা ফরওয়ার্ডিং নিয়ম কখনও প্রয়োগ করে না।

যা-ই অ্যাপ্লায়েন্স পরিচালনা করুক, সেখানে বৈশিষ্ট্যটি লিখে রাখুন। হাতে সংশোধিত VM পরবর্তী প্রতিস্থাপন পর্যন্ত কাজ করে, যে প্রতিস্থাপন নিঃশব্দে মূল সেটিংটি ফিরিয়ে আনে, এবং সেই ব্যর্থতা VPN সফটওয়্যারের অবনতি বলে মনে হবে।

কাজের ক্রম: বৈশিষ্ট্যটি পড়ুন, এক্সপোর্ট করে একটি লাইন সম্পাদনা করুন, NO_EFFECT দিয়ে যাচাই করুন, REFRESH দিয়ে প্রয়োগ করুন, গেস্ট ফরওয়ার্ড করছে কিনা নিশ্চিত করুন, তারপর একটি ক্লায়েন্ট থেকে পরীক্ষা করুন।

সম্পর্কিত নিবন্ধ