যেহেতু এটি হেয়ারপিন নাটকে ন্যাশনাল প্রশ্ন হিসাবে উন্নীত করা হয়েছে , আমি ভেবেছিলাম এটির একটি উত্তর সম্ভবত হওয়া উচিত যা বর্তমানে স্বীকৃত উত্তরটির চেয়ে সাধারণভাবে বৈধ ছিল, যা (যদিও দুর্দান্ত) বিশেষত ফ্রিবিএসডি-র সাথে সম্পর্কিত।
এই প্রশ্নটি আরএফসি 1918-সম্বোধিত আইপিভি 4 নেটওয়ার্কগুলিতে সার্ভারের সরবরাহিত পরিষেবার ক্ষেত্রে প্রযোজ্য, যা গেটওয়েতে গন্তব্য NAT (DNAT) প্রবর্তন করে বাহ্যিক ব্যবহারকারীদের জন্য উপলব্ধ করা হয়েছে। অভ্যন্তরীণ ব্যবহারকারীরা তখন বাহ্যিক ঠিকানার মাধ্যমে সেগুলি অ্যাক্সেস করার চেষ্টা করেন। তাদের প্যাকেট ক্লায়েন্ট থেকে গেটওয়ে ডিভাইসে চলে যায়, যা গন্তব্য ঠিকানাটি আবার লিখে দেয় এবং তাৎক্ষণিকভাবে এটিকে আবার অভ্যন্তরীণ নেটওয়ার্কে ইনজেক্ট করে। এটা তোলে গেটওয়ে যে নাম বৃদ্ধি দেয় এ প্যাকেট তোলে সম্পর্কে-টার্ন এই ধারালো হয় মাথার কাঁটা ন্যাট সঙ্গে, উপমা দ্বারা মাথার কাঁটা পালা ।
সমস্যা দেখা দেয় যখন গেটওয়ে ডিভাইসটি গন্তব্যের ঠিকানাটি আবার লিখে দেয় তবে উত্স ঠিকানাটি নয়। এর পরে সার্ভারটি একটি অভ্যন্তরীণ গন্তব্য ঠিকানা (নিজস্ব) এবং একটি অভ্যন্তরীণ উত্স ঠিকানা (ক্লায়েন্টের) সহ একটি প্যাকেট গ্রহণ করে; এটি জানে যে এটি সরাসরি এই জাতীয় ঠিকানার জবাব দিতে পারে, তাই এটি করে। যেহেতু উত্তরটি প্রত্যক্ষ, এটি গেটওয়ে দিয়ে যায় না, ফলে রিটার্ন প্যাকেটের উত্সের ঠিকানাটি পুনরায় লিখে প্রাথমিক প্যাকেটে অভ্যন্তরীণ গন্তব্য NAT এর প্রভাব ভারসাম্য বজায় রাখার সুযোগ কখনই পায় না।
ক্লায়েন্ট এইভাবে একটি বাহ্যিক আইপি ঠিকানায় একটি প্যাকেট প্রেরণ করে , তবে একটি অভ্যন্তরীণ আইপি ঠিকানা থেকে উত্তর পেয়েছে । এটির কোনও ধারণা নেই যে দুটি প্যাকেট একই কথোপকথনের অংশ, সুতরাং কোনও কথোপকথন ঘটে না।
সমাধানটি হ'ল এমন প্যাকেটের জন্য যা এই জাতীয় গন্তব্য NAT এর প্রয়োজন হয় এবং যা অভ্যন্তরীণ নেটওয়ার্ক থেকে গেটওয়েতে পৌঁছায়, অভ্যন্তরীণ প্যাকেটে সোর্স NAT (এসএনএটি) সঞ্চালনের জন্য সাধারণত প্রবেশদ্বারটির উত্স ঠিকানাটি পুনরায় লিখে by সার্ভারটি তখন ক্লায়েন্টকে নিজেই প্রবেশদ্বার বলে মনে করে এবং সরাসরি এটিতে জবাব দেয়। ফলস্বরূপ গেটওয়েটি ফেরত প্যাকেটে উত্স এবং গন্তব্য ঠিকানা উভয়ই আবার লিখে ইনবাউন্ড প্যাকেটে ডিএনএটি এবং এসএনএটি উভয়ের প্রভাবগুলিকে ভারসাম্য বজায় রাখার সুযোগ দেয়।
ক্লায়েন্ট মনে করে যে এটি কোনও বাহ্যিক সার্ভারের সাথে কথা বলছে। সার্ভারটি মনে করে এটি গেটওয়ে ডিভাইসে কথা বলছে। সব দলই খুশি। একটি চিত্র এখানে এ ক্ষেত্রে সহায়ক হতে পারে:
কিছু গ্রাহক গেটওয়ে ডিভাইসগুলি সেই প্যাকেটগুলি সনাক্ত করতে যথেষ্ট উজ্জ্বল, যার জন্য দ্বিতীয় NAT পদক্ষেপের প্রয়োজন হয় এবং সেগুলি সম্ভবত হেয়ারপিন নাট দৃশ্যে বাক্সের বাইরে কাজ করবে। অন্যেরা তা নয়, তাই করবে না এবং তাদের কাজ করা যায় এমন সম্ভাবনাও কম। সার্ভার ফল্টের জন্য কোন গ্রাহক-গ্রেড ডিভাইসগুলি অফ-টপিক তা নিয়ে আলোচনা।
যথাযথ নেটওয়ার্কিং ডিভাইসগুলিকে সাধারণত কাজ করতে বলা যেতে পারে, তবে - কারণ তারা তাদের প্রশাসকদের দ্বিতীয় অনুমানের ব্যবসায়ের মধ্যে নেই - তাদের এটি করতে বলা হবে। লিনাক্স iptables
এইভাবে ডিএনএটি করতে ব্যবহার করে:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.3.11
যা HTTP পোর্টের জন্য একটি অভ্যন্তরীণ সার্ভারে সহজ ডিএনএটি সক্ষম করবে 192.168.3.11
। তবে হেয়ারপিন নাটকে সক্ষম করার জন্য একটি নিয়মেরও প্রয়োজন যেমন:
iptables -t nat -A POSTROUTING -d 192.168.3.11 -p tcp --dport 80 -j MASQUERADE
মনে রাখবেন যে সঠিকভাবে কাজ করার জন্য এই নিয়মগুলি প্রাসঙ্গিক চেইনে সঠিক স্থানে থাকা দরকার এবং filter
চেইনের সেটিংসের উপর নির্ভর করে নেটেড ট্র্যাফিক প্রবাহিত করার জন্য অতিরিক্ত নিয়মের প্রয়োজন হতে পারে। এই জাতীয় সমস্ত আলোচনা এই উত্তরের বাইরে নয়।
তবে অন্যেরা যেমন বলেছে, সঠিকভাবে হেয়ারপিন নাটকে সক্ষম করে তোলা সমস্যাটি পরিচালনা করার সেরা উপায় নয়। সেরাটি হল স্প্লিট-দিগন্ত ডিএনএস , যেখানে অনুরোধের ক্লায়েন্ট যেখানে রয়েছে তার উপর নির্ভর করে আপনার সংস্থাটি মূল দেখার জন্য বিভিন্ন উত্তর দেয়, হয় অভ্যন্তরীণ বনাম বহিরাগত ব্যবহারকারীর জন্য বিভিন্ন শারীরিক সার্ভার রেখে বা ডিএনএস সার্ভারকে ভিন্নভাবে সাড়া দেওয়ার জন্য কনফিগার করে অনুরোধ ক্লায়েন্টের ঠিকানা।