আমি iptables নতুন এবং আমি কিভাবে iptables nat কাজ করছে বুঝতে চাই। আমি একটি LXC ধারক সঙ্গে একটি linux মেশিন আছে। মেশিন নেটওয়ার্ক কনফিগারেশনটি নিম্নরূপ: eth0 ইন্টারফেস যা মেশিনটিকে ইন্টারনেটে সংযুক্ত করে (এটি IPv4 ঠিকানা 10.9.63.173) এবং lxc ধারক জন্য একটি veth-1 ইন্টারফেস (192.168.2.1)। এলএক্সসি কন্টেইনারে একটি eth0 ইন্টারফেস (192.168.2.2) veth-1 এর সাথে সংযুক্ত রয়েছে।
লিনাক্স মেশিনে আমি দুটি iptables নিয়ম যুক্ত করেছি:
1) iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 10.9.63.173
2) iptables -t nat -A PREROUTING -d 10.9.63.173 -j DNAT --to-destination 192.168.2.2
যদি আমি লিংক কন্টেইনার থেকে একটি পিং 8.8.8.8 করি তবে সবকিছু কাজ করছে (সোর্স আইপিটি 10.9.63.173 তে অনুবাদ করলে লিনাক্স মেশিনটি ছেড়ে দেওয়া হবে)। কিন্তু দ্বিতীয় নিয়মটি পিং ইকো উত্তরগুলির সাথে মেলে না। আমি tcpdump ব্যবহার করে eth0 (10.9.63.173) এ ইনকামিং প্যাকেটগুলি দেখেছি এবং আউটপুটটি নিম্নরূপ:
23:34:33.151565 IP google-public-dns-a.google.com > host.local: ICMP echo reply, id 536, seq 174, length 64
অতএব, 10.9.63.173 গন্তব্যের প্যাকেট eth0 ইন্টারফেসে পৌঁছে।
আমার তিনটি প্রশ্ন আছে:
1) কেন প্রজনন নিয়ম মেলা হয় না?
2) কিভাবে iptables কীভাবে জবাবগুলি সংশোধন করতে পারে যেমন তাদের 19২.168.2.2 এ পাঠানো?
3) SNAT লক্ষ্যটি সোর্স পোর্টকে সংশোধন করতে পারে (স্পষ্টভাবে একটি নির্দিষ্ট পোর্টে অনুবাদ করতে বলার অপেক্ষা রাখে না)?
ধন্যবাদ!