আইপি এলিয়াস করার সময় ওএস কীভাবে নির্ধারণ করে যে আউটবাউন্ড টিসিপি / আইপি সংযোগগুলির জন্য কোন আইপি ঠিকানাটি উত্স হিসাবে ব্যবহৃত হবে?


15

আমার একটি সার্ভার রয়েছে যা একটি সিএনসি-তে চারটি আইপি অ্যাড্রেসযুক্ত উবুন্টু সার্ভার চালাচ্ছে।

eth0       192.168.1.100
eth0:0     192.168.1.101
eth0:1     192.168.1.102
eth0:2     192.168.1.103

(উদাহরণস্বরূপ 192.168.xx ব্যবহার করে, ধরে নিন যে এগুলি বেশ কয়েকটি সার্বজনীন আইপি ঠিকানার এনএটি-এড)

আমাদের ক্লায়েন্টগুলির মধ্যে একটি এফটিপি এর মাধ্যমে তাদের তালিকা প্রকাশ করে, তাই আমরা তাদের সার্ভার থেকে একটি বৃহত ফাইল ডাউনলোড করতে রাতের বেলা লগ ইন করি। তাদের ফায়ারওয়ালটি আশা করে যে আমাদের (প্যাসিভ) এফটিপি সংযোগটি 192.168.1.100 থেকে তৈরি হবে।

আমার সার্ভারটির যৌক্তিকভাবে একটি একক অ্যাডাপ্টারে চারটি আইপি ঠিকানা রয়েছে, অপারেটিং সিস্টেমটি কীভাবে নির্ধারণ করবে যে কোন আইপি ঠিকানা আউটবাউন্ড টিসিপি / আইপি সংযোগের জন্য উত্স হিসাবে ব্যবহৃত হয়?

ধরা যাক আমি 192.168.1.101 এ আমার সার্ভারে প্রবেশ করলাম এবং ইন্টারফেসিয়ালি এফটিপি চালাব। আউটবাউন্ড টিসিপি / আইপি সংযোগটি 192.168.1.101 ব্যবহার করবে কারণ ওএস জানে যে ইন্টারফেসটি আমার শেলটি সংযুক্ত?

যদি কোনও শেল নেই এমন ক্রোন জবের মাধ্যমে যদি FTP টাস্কটি অ-ইন্টারেক্টিভভাবে চালিত হয় তবে কী হবে?

আপনি যেমন বলতে পারেন, এটি আমাকে বেশ বিভ্রান্ত করেছে, তাই আমি আশা করি আমার প্রশ্নগুলি অন্তত অর্থে তৈরি হয়েছে।

সম্পাদন করা

আমি কেন জিজ্ঞাসা করছি তা স্পষ্ট করার জন্য - আমি রাউটিং টেবিলটিতে কোনও পরিবর্তন আনি নি এবং এটি আসলে 'eth0' কে 0.01.0 রুটের আইফিসি হিসাবে তালিকাভুক্ত করে। যাইহোক, সমস্ত ইঙ্গিতগুলি হ'ল এটি উত্স হিসাবে প্রকৃতপক্ষে eth0: 0 ব্যবহার করছে।

Destination    Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0        192.168.1.1     0.0.0.0         UG    100    0        0 eth0

আমি রাউটিং টেবিলটি নিয়ে বেড়াতে পারি বা আমার ক্লায়েন্টকে আমার প্রয়োজনীয় আচরণটি পেতে তাদের ফায়ারওয়াল নিয়মগুলি পরিবর্তন করতে পারি, তবে ওএস-এ কোনও ত্রুটি আছে কিনা তা সম্পর্কে কীভাবে এটি কাজ করতে পারে তা সম্পর্কে একটু অন্তর্দৃষ্টি অর্জন করার চেষ্টা করছি বা কেবল আমার নির্বোধ বুঝতে পারি সমস্ত টুকরা একসাথে ফিট কিভাবে।

ধন্যবাদ

উত্তর:


12

ডিফল্টরূপে, লিনাক্সে, যদি কোনও ইন্টারফেসের একাধিক ঠিকানা থাকে যা বিভিন্ন সাবনেটগুলিতে থাকে, তবে সংশ্লিষ্ট সাবনেটগুলির জন্য নির্দিষ্ট ট্র্যাফিকের সঠিক উত্স আইপি থাকবে। এটি হ'ল, যদি eth0 এর দুটি ঠিকানা 192.168.1.1/24 এবং 10.1.1.1/8 থাকে, তবে 10.0.0.0 সাবনেটে যেকোনো কিছুতে ট্র্যাফিকের উত্স থাকবে 10.1.1.1, এবং 192.168.1.0 সাবনেটে যে কোনও কিছুতে ট্র্যাফিকের উত্স থাকবে 192.168.1.1। আপনি "আইপি রুটে" "src 1.2.3.4" বিকল্পটি ব্যবহার করে এক্ষেত্রে সুস্পষ্টভাবে উত্স ঠিকানাগুলিও অর্পণ করতে পারেন।

আপনার ক্ষেত্রে যদিও, আপনার সমস্ত ঠিকানা একই সাবনেটে রয়েছে, সুতরাং "প্রাথমিক" একটি ("আইপি অ্যাড্রেসার তালিকা দেব এথ0" দ্বারা প্রকাশিত) সেই ইন্টারফেসে ট্র্যাফিকের জন্য উত্স আইপি হিসাবে ব্যবহৃত হয়। আমি মনে করি এই ক্ষেত্রে কেবলমাত্র "আইপি রুট" ব্যবহার করে সোর্স আইপিগুলি নিয়ন্ত্রণ করা সম্ভব তবে আমি আগ্রহের ট্র্যাফিকের জন্য উত্সের ঠিকানাগুলি পুনরায় লেখার জন্য আইপটিবলগুলি ব্যবহার করা আরও সহজ পেয়েছি।

আপনি যদি নির্দিষ্ট গন্তব্যের জন্য নির্দিষ্ট উত্সের ঠিকানাটি ব্যবহার করতে বাধ্য করতে চান তবে আপনি এটি এসএনএটি বিধি দিয়ে করতে পারেন:

iptables -t nat -I POSTROUTING -o eth0 -d dest-IP-or-net/mask -s primary-IP-of-eth0 -j SNAT --to-source desired-source-IP

সুতরাং আপনার "প্রাথমিক" এথ0 আইপি যদি 192.168.100.1 হয় তবে আপনি ট্রাফিকটি 1.2.3.4 এ 192.168.100.2 এর উত্স পেতে চান তবে এটি করুন:

iptables -t nat -I POSTROUTING -o eth0 -d 1.2.3.4/0 -s 192.168.100.1 -j SNAT --to-source 192.168.100.2

নোট করুন যে "-s 192.168.100.1" গুরুত্বপূর্ণ: এটি ফরোয়ার্ড ট্র্যাফিকের উত্স ঠিকানাগুলি এই নিয়ম দ্বারা পুনরায় লিখিত হওয়া রোধ করে।

আপনি যদি লিনাক্সে জটিল নেটওয়ার্ক কনফিগারেশন প্রয়োগ করতে চলেছেন তবে আপনার লিনাক্স অ্যাডভান্সড রাউটিং এবং ট্র্যাফিক কন্ট্রোল ডকুমেন্টেশন পড়তে হবে, http://lartc.org


নমুনায়, হতে পারে "-d 1.2.3.4/332" বা "-d 1.2.3.4"
খ্রিস্ট

5

আমি আপনার উদাহরণে দেখতে পাচ্ছি যে সমস্ত আইপিএস একই নেটওয়ার্কে না থাকার খুব কাছে

আপনি কি নিশ্চিত যে আপনি আসলে মাল্টহোমিং এবং কেবল 4 আইপি এলিয়াস নেই?

যদি পরবর্তী ঘটনাটি হয় তবে আপনি এর অনুরূপ কিছু সহ কোনও রুটে উত্স আইপ সেট করতে পারেন

/ sbin / ip রুট শো 192.168.222.0/24 ডিভ Eth0 প্রোটো কার্নেল স্কোপ লিঙ্ক src 192.168.222.178 169.254.0.0/16 ডিভ এথ0 স্কোপ লিঙ্ক ডিফল্ট 192.168.222.1 দেব এথ0 এর মাধ্যমে

sudo / sbin / ip রুটটি 192.168.222.1 src 192.168.222.178 এর মাধ্যমে ডিফল্ট প্রতিস্থাপন করে

/ sbin / ip রুট শো
192.168.222.0/24 ডিভ Eth0 প্রোটো কার্নেল স্কোপ লিঙ্ক src 192.168.222.178 169.254.0.0/16 dev eth0 স্কোপ লিঙ্ক ডিফল্ট 192.168.222.1 দেব eth0 src 192.168.222.178 এর মাধ্যমে

পুনরায় বুট করার মধ্যে কীভাবে এটি অবিচ্ছিন্ন করা যায় সে সম্পর্কে ম্যান ইন্টারফেস দেখুন


আপনি সঠিক. সম্ভবত আমি মাল্টি-হোমিং শব্দটি ব্যবহার করছি। আমাদের ডেটা সেন্টার আমাদের একই সাবনেটে চারটি আইপি অ্যাড্রেস দেয়।
জো হোলোয়

আপনি জানেন যে আপনি আপনার প্রশ্ন সম্পাদনা করতে পারেন, তাই না?
হাইয়ালকি

5

এটি রাউটিং টেবিলের যে কোনও ডিফল্ট গেটওয়ে যা আছে তা ব্যবহার করে, যদি না কোনও নির্দিষ্ট রুট অন্যটিকে ব্যবহার করার কথা বলে থাকে: route -n

সম্পাদনা: আমি আপনার প্রশ্নটি খুব দ্রুত পড়েছি বলে মনে হচ্ছে ...

যেহেতু আপনি প্যাসিভ মোড ব্যবহার করছেন এবং ক্লায়েন্ট সর্বদা সংযোগটি শুরু করবেন, আমি মনে করি আইপি শিরোনামে src আইপি ফিল্ডটি সর্বদা ক্লায়েন্টের সাথে সংযুক্ত আইপি হিসাবে উপস্থিত হবে। যদি এটি সক্রিয় মোড হয় সার্ভারটি সংযোগটি শুরু করছিল, আমি মনে করি এটি সর্বদা 'প্রাথমিক' আইপি হবে। যদি আপনার ঠিকানাগুলি একই সাবনেটে থাকে তবে লিনাক্স আপনার প্রথম ঠিকানাটি 'প্রাথমিক' এবং অন্যদেরকে গৌণ হিসাবে যুক্ত করবে।

যদিও আমি পুরোপুরি নিশ্চিত নই, আমি tcpdump -n চালাবো এবং এটি src আইপি হিসাবে দেখবে তা দেখতে পাবো।

সম্পাদনা 2: ঠিক আছে, আমি উপরোক্ত দিক থেকে লিখেছি যে আপনি সার্ভারটি চালাচ্ছেন, সুতরাং যেহেতু আপনি ক্লায়েন্ট এবং সংযোগের সূচনা করছেন, আমি মনে করি এটি সর্বদা প্রাথমিক আইপি ঠিকানা থেকে উপস্থিত হবে, তবে আবার চেষ্টা করুন এবং দেখুন tcpdump সহ।


রাউটিং টেবিলটি কেবলমাত্র ডিফল্ট এবং এখানে কেবল একটি সাবনেট রয়েছে। অন্য একটি পোস্টার ইঙ্গিত দিয়েছে যে আমি মাল্টিহোমিং শব্দটি ব্যবহার করেছি। যাইহোক, আমি এখনও এটি E00 উপন্যাসটি ব্যবহার করার আশা করব। আমি whatsmyip.net ডাউনলোড করতে উইজেট ব্যবহার করেছি এবং এটি আমাকে দেখায় যে আমি এর পরিবর্তে কোনওভাবে eth0: 0 ব্যবহার করছি।
জো হোলোয়

এটি আমার কাছে সত্যিকার অর্থে আসে না, whatsmyip.net আপনার জনসাধারণের আইপি প্রদর্শন করা উচিত ...
কাইল ব্র্যান্ড্ট

আরও স্পষ্ট করে বলতে গেলে, এটি জনসাধারণের আইপি ঠিকানাটি এথ0: 0 এর সাথে সম্পর্কিত বেসরকারী আইপি-তে NAT-ed হয়, যেখানে আমি এটির প্রত্যাশা করবো যে এটি জনসাধারণের আইপি ঠিকানাটি এথ0 এর সাথে সম্পর্কিত ব্যক্তিগত আইপি-তে NAT-ed প্রদর্শিত হবে
জো হোলোয় 26'09

1
এখানে এই উত্তরটি অত্যধিক উন্নত এবং এতে অনেকগুলি সম্পাদনা রয়েছে এবং অনেকগুলি বিভ্রান্ত করে এবং সহায়তা করে না। Tbman এবং jknapka এর উত্তরগুলি দুর্দান্ত এবং আমাকে খুব সাহায্য করেছে।
খ্রিস্টান

4

আপনার এফটিপি জবের সংযোগের জন্য ইন্টারফেসটি নির্দিষ্ট করার উপায় না থাকলে আমি বিশ্বাস করি এটি সম্পর্কিত সাবনেটের প্রথম শারীরিক ইন্টারফেসের (এই ক্ষেত্রে এথ0) ডিফল্ট হবে। আপনার যদি বিভিন্ন সাবনেটগুলিতে দুটি এনআইসি সহ একটি সার্ভার থাকে, তবে রাউটিং টেবিলের উপর ভিত্তি করে কোন ইন্টারফেসটি ব্যবহার করতে হবে তা খুঁজে বের করতে পারবেন।

একই সাবনেটে সিস্টেমে (eth0) এবং চারটি ভার্চুয়াল / এলিয়াস (eth0: 0 এর মাধ্যমে eth0: 2) কেবলমাত্র একটি একক শারীরিক ইন্টারফেস রয়েছে, তবে অ্যাপ্লিকেশন যথেষ্ট স্মার্ট না হলে আউটবাউন্ড ট্র্যাফিক এথ0 আইপি ঠিকানাটিকে উত্স হিসাবে ব্যবহার করবে আউটবাউন্ড ইন্টারফেস ঘোষণা করতে।


2
এটি আমার অনুমান ছিল, তবে আমার সমস্ত পরীক্ষাগুলি ইঙ্গিত করে যে এটি উত্স হিসাবে eth0: 0 ব্যবহার করছে।
জো হোলোয়

তারপরে সম্ভবত এথ 0: 0 ইন্টারফেসটি ব্যবহার করতে ডিফল্ট রুটটি কনফিগার করা হয়েছে। আমার একটি ইনস্টল রয়েছে যা ইথারনেট ব্রিজ ব্যবহার করে এবং এটি ডিফল্ট রুটের জন্য ভার্চুয়াল ব্রিজ ইন্টারফেসটি ব্যবহার করার জন্য কনফিগার করা হয়েছিল।
sysadmin1138

আমি অন্য একটি মেশিনে একটি তুচ্ছ প্রোগ্রাম সেট আপ করেছি যে আইপিটি থেকে এটি সংযোগ পেয়েছে মুদ্রণ করতে। এর সাথে nc -s <ip of eth0:2>বা সর্বদা উত্সের ঠিকানাটি যা দেখায় তার সাথে সংযুক্ত করা আসলে নীতি 0: 0 এর আইপ, যদিও নেটক্যাট এর bind(2)আগেও করেছিল connect(2)। সুতরাং মনে হচ্ছে এলিয়াসগুলি কোনও মেশিনকে একাধিক উত্স ঠিকানা থেকে সংযোগ তৈরি করার ক্ষমতা দেওয়ার জন্য কাজ করে না।
পিটার কর্ডেস

4

নীচের মত আইপি রুট কমান্ড দ্বারা কোন ডিভাইস এবং এসসিআর আইপি ঠিকানা ব্যবহার করা হবে তা আপনি দেখতে পেয়েছেন:

$ /sbin/ip route get 1.1.1.1
1.1.1.1 via 2.2.2.2 dev eth0  src 2.2.2.2 
    cache  mtu 1500 advmss 1460 hoplimit 64

আমি বিকল্পযুক্ত পরিবেশে এটি চেষ্টা করি নি, তবে আশা করি এটি সাহায্য করবে।


1

আউটবাউন্ড সংযোগ স্থাপন করার সময়, আপনার চারটি ইন্টারফেসের মধ্যে কোনটি ব্যবহার করবেন তা নির্ধারণ করতে আপনার সার্ভারটি তার রাউটিং টেবিলটি দেখবে; আপনার টিসিপি সংযোগগুলিতে আপনার প্রস্থান ইন্টারফেসের উত্স আইপি থাকবে।

netstat -rn

আপনাকে আপনার রাউটিং টেবিলের আউটপুট দেবে; আপনি যে ক্লায়েন্টের সাথে সংযোগ দেওয়ার চেষ্টা করছেন তার সাথে মিলছে এমন কোনও নির্দিষ্ট এন্ট্রি সন্ধান করুন। যদি কোনওটির অস্তিত্ব না থাকে তবে আপনি একটি ডিফল্ট রুট (0.0.0.0, মাস্ক 0.0.0.0) ব্যবহার করবেন। আপনার যদি একাধিক ডিফল্ট রুট থাকে তবে সর্বনিম্ন ব্যয় সহ একটি ব্যবহার করা হবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.