ডুয়াল-স্ট্যাক ওএসগুলিতে :: এবং 0.0.0.0 এর শব্দার্থবিজ্ঞান


10

কেবলমাত্র আইপিভি 4-র দিনগুলিতে, netstatশোনার মতো প্রদর্শিত লিস্টন সংযোগ 0.0.0.0সিস্টেমের যে কোনও আইপিভি 4 ইন্টারফেসের সংযোগগুলিতে প্রতিক্রিয়া জানায়।

আমি এটি বুঝতে পেরেছি, নতুন আইপিভি 6 আইডিয়ম ::সমস্ত উপলব্ধ আইপিভি 6 এবং আইপিভি 4 ইন্টারফেসে শুনবে । এটি কি সব ওএসের জন্য (ইউনিক্স, উইন্ডোজ, ম্যাক) সঠিক? কেবল আইপিভি 6 ইন্টারফেসে শুনতে কোনও প্রতিমা আছে?

উত্তর:


17

দুর্ভাগ্যক্রমে, আপনি কোন অপারেটিং সিস্টেমটি ব্যবহার করছেন তার উপর নির্ভর করে এটি পৃথক হয়।

মাইক্রোসফ্ট উইন্ডোজে, সকেটকে ::কেবল আইপিভি 6 পোর্টের সাথে সংযুক্ত করে বাঁধাই । সুতরাং IPv4 এবং IPv6 উভয় ক্ষেত্রেই সমস্ত ঠিকানা শোনার জন্য আপনাকে 0.0.0.0পাশাপাশি বাঁধতে হবে ::। নিম্নলিখিত নিষ্কাশন একটি ভিস্তার বাক্স থেকে:

C:\>netstat -an | find "445"
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
  TCP    [::]:445               [::]:0                 LISTENING

উদাহরণটি আমি দিচ্ছি 445 বন্দরটি, যখন নেটবিআইওএস ব্যবহার না করা হয় এসএমবি ট্র্যাফিকের জন্য ব্যবহৃত হয়। যেমন আপনি দেখতে পাচ্ছেন, এটি উভয়কেই বাধ্যতামূলক 0.0.0.0এবং ::যথাক্রমে, আইপিভি 4 এবং আইপিভি 6 ক্লায়েন্ট উভয়ই কাজ করে।

লিনাক্সে, ::IPv4- সামঞ্জস্যপূর্ণ ঠিকানাগুলি অন্তর্ভুক্ত, আপনি যেমন সঠিকভাবে অনুমান করেছেন, তাই 0.0.0.0পাশাপাশি বাঁধাই অপ্রয়োজনীয়। আমি একটি সাধারণ পাইথন প্রোগ্রাম লিখেছিলাম যা কেবল একটি AF_INET6সকেটের সাথে আবদ্ধ ::। যদিও আমি কোনও AF_INET(আইপিভি 4) সকেটের সাথেও আবদ্ধ না হই , তবুও এটি আইপিভি 4 ক্লায়েন্টের সংযোগ গ্রহণ করে। যদি 10.1.1.3এটির সাথে সংযোগ স্থাপন করা হয় তবে এটি থেকে সংযোগ হিসাবে প্রদর্শিত হবে ::ffff:10.1.1.3

চুলকানি হয়ে যায় তা বাদে । যদি /proc/sys/net/ipv6/bindv6onlyসেট করা থাকে তবে উপরেরটি লিনাক্সের ক্ষেত্রে প্রযোজ্য নয় 1, এক্ষেত্রে আচরণটি উইন্ডোজের মতো হ'ল - বাধ্যতামূলক ::শুধুমাত্র আইপিভি 6 অনুরোধের জন্য শুনবে। আপনি যদি আইপিভি 4 অনুরোধগুলিও শুনতে চান তবে আপনার একটি AF_INETসকেট তৈরি করতে হবে এবং এটিও শুনতে হবে 0.0.0.0। সৌভাগ্যক্রমে, এর জন্য ডিফল্ট bindv6onlyহ'ল 0, সুতরাং এর জন্য আপনাকে খুব ঝুঁকির সুযোগ দিতে হবে (আপনি যদি ডিবিয়ান ব্যবহার করেন তবে, যা আসলেই খেলাপি bindv6only = 1

কোনও পরিষেবা আইপিভি 6-সক্ষম হয়েছে কিনা তা পরীক্ষা করাতে, এবং এটি আইপিভি 4-সক্ষম হয়েছে কিনা তা যাচাই করার পক্ষে এই সমস্ত কিছুই কার্যকর। এখানে আমার এসএসএইচ সার্ভারটি রয়েছে:

$ netstat -64ln | grep 22
tcp6    0    0 :::22    :::*    LISTEN

যেমন আপনি দেখতে পাচ্ছেন, এসএসএইচ কেবল ::পোর্ট ২২ এ শুনছেন । তবে এটি কেবল আইপিভি clients ক্লায়েন্টের জন্যই শোনা যাচ্ছে না - এটি আইপিভি 4-সামঞ্জস্যপূর্ণ বাধ্যবাধকতার কারণে আইপিভি 4 ক্লায়েন্টদের কাছ থেকে সূক্ষ্মভাবে কাজ করে। এটি প্রমাণ করার জন্য, আপনি যদি এটি দেখেন:

$ cat /proc/sys/net/ipv6/bindv6only 
0

bindv6onlyঅক্ষম করা হয়েছে (ডিফল্ট)। যদি এটি সেট করা থাকে 1, তবে আমাকে এসএসএইচটিকে 0.0.0.0পাশাপাশি (বা পরিবর্তে) শুনতে উত্সাহিত করতে হবে।

ম্যাক ওএস এক্স বিষয়গুলির কোনও তথ্য না থাকার জন্য ক্ষমা প্রার্থনা করছি। আমি এটি অতীতে ব্যবহার করেছি তবে আমি জিনোমের নন্দনতত্বকে প্রাধান্য দিয়েছি, তাই আমি এটি খুব দীর্ঘ সময়ে ব্যবহার করি নি। তবে, আমি অনুমান করব যে আচরণটি লিনাক্সের মতো।

আশাকরি এটা সাহায্য করবে.


4

এটি সম্ভব নয়, কারণ আইপিভি address ঠিকানা জায়গার একটি অংশটি আইপিভি space স্পেসের সমান, তাই আপনি যদি কোনওভাবে আইপিভি 4 সকেট অক্ষম করতে পারেন তবে আপনি এখনও আইভিভি 4 পকেট আইপিভি 6 সকেটে প্রেরণ করতে সক্ষম হবেন। আইপিভি 4 উইকিপিডিয়া পৃষ্ঠায় আইপিভি 4 রূপান্তর বিভাগটি দেখুন ।

সম্পাদনা: আহ, আরও কিছুটা নিচে এটি বলে:

কিছু সাধারণ আইপিভি 6 স্ট্যাক আইপিভি 4 ম্যাপযুক্ত ঠিকানা বৈশিষ্ট্য সমর্থন করে না, কারণ আইপিভি 6 এবং আইপিভি 4 স্ট্যাকগুলি পৃথক বাস্তবায়ন (ভিস্টা / লংহর্নের পূর্বে মাইক্রোসফ্ট উইন্ডোজ: যেমন এক্সপি / 2003), বা সুরক্ষা উদ্বেগের কারণে (ওপেনবিএসডি) D এই অপারেটিং সিস্টেমগুলিতে, প্রতিটি আইপি প্রোটোকলের জন্য একটি পৃথক সকেট খোলার প্রয়োজন যা সমর্থনযোগ্য। কিছু সিস্টেমে (যেমন, লিনাক্স, নেটবিএসডি, ফ্রিবিএসডি) আরএফসি 3493-তে উল্লিখিত সকেট বিকল্প আইপিভি 6_ভি 6আনলি দ্বারা এই বৈশিষ্ট্যটি নিয়ন্ত্রণ করা হয়

-1

আপনি সম্ভবত এটি আপনার নেটওয়ার্ক আইডি, এএএএ: বিবিবিবি: সিসিসিসি: ডিডিডিডি :: বা এটি আপনার পক্ষে যা কিছু করতে পারেন। এটি গ্যারান্টি দেয় যে কেবল আইপিভি 6 ইন্টারফেসই এটি গ্রহণ করবে। আমি মনে করি. আমি কোনও আইপিভি 6 মাস্টার নই।

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