কীভাবে নামগুলি সমাধান করে?


11

স্ক্রিপ্ট লেখার সময়, আমি যে কম্পিউটারটি দিয়েছিলাম তার নাম দিয়ে একটি মেশিনটি উল্লেখ করতে চেয়েছিলাম (যেমন "সেলেনিয়াম-আরসি")। আমি "সেলেনিয়াম-আরসি" ব্যবহার করে এটি পিং করতে পারিনি, তাই নামটি স্বীকৃত কিনা তা দেখার জন্য আমি নীচের কমান্ডগুলি চেষ্টা করেছিলাম।

> traceroute 192.168.235.41
traceroute to 192.168.235.41 (192.168.235.41), 64 hops max, 52 byte packets
 1  selenium-rc (192.168.235.41)  0.545 ms  0.241 ms  0.124 ms

ঠিক আছে, ট্রেস্রোয়েট নামটি খুঁজে পেয়েছে। কিভাবে? পরবর্তী ...

> traceroute selenium-rc
traceroute: unknown host selenium-rc

হুম ... এখানে লুকিংয়ের ব্যবস্থা অবশ্যই আলাদা হতে হবে কারণ হোস্টটি অচেতন। আমি ধরে নিচ্ছি এটি একটি সিস্টেমের নাম রেজোলিউশন প্রক্রিয়া ব্যবহার করছে যখন প্রথম উদাহরণটি ট্রেস্রোটিতে নির্দিষ্ট একটি প্রক্রিয়া ব্যবহার করছে। সঠিক?

তারপরে যখন আমি কিছুক্ষণ পরে ফিরে এসেছি ...

> traceroute 192.168.235.41
traceroute to 192.168.235.41 (192.168.235.41), 64 hops max, 52 byte packets
 1  minint-q4e8i52.mycorp.net (192.168.235.41)  0.509 ms  0.206 ms  0.136 ms

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

কেউ কি ফলাফল ব্যাখ্যা করতে পারেন?

উত্তর:


9

সাধারণত, লিনাক্স এবং ইউনিক্সে ট্রেস্রোয়েট এবং পিং উভয়ই সিস্টেমের নাম অনুসন্ধান করার জন্য গেথস্টবাইনেমে () কল করতে পারেন। জেথোস্টবাইনেম () পরিবর্তে সিস্টেম কনফিগারেশন ফাইলগুলিকে নামকরণ ডাটাবেসগুলি, যেমন: / ইত্যাদি / হোস্ট, এবং ডিএনএসের ক্যোয়ারী নির্ধারণ করতে ব্যবহার করে।

লিনাক্সে, ডিএনএসকে জিজ্ঞাসা করার জন্য ডিফল্ট ক্রিয়াটি (বা সম্ভবত ব্যবহৃত হতে পারে), এবং তারপরে / ইত্যাদি / হোস্ট হয়। /Etc/host.conf এ পছন্দসই অর্ডার সেট করে এটি পরিবর্তন বা আপডেট করা যেতে পারে।

ডিএনএসের আগে / ইত্যাদি / হোস্টগুলি অনুসন্ধান করতে, /etc/host.conf এ নিম্নলিখিত ক্রমটি সেট করুন:

order hosts,bind

সোলারিসে, হোস্টের ডাটাবেসের জন্য এন্ট্রিতে, একই আদেশটি /etc/nsswitch.conf ফাইলের মাধ্যমে নিয়ন্ত্রণ করা হয়।

হোস্ট: ফাইল ডিএনএস

ডিএনএস অনুসন্ধানের আগে / ইত্যাদি / হোস্টগুলিতে সন্ধানের আদেশটি সেট করে।

ট্রেস্রয়েট এবং পিং উভয়ই এই পদ্ধতিগুলি সমস্ত কনফিগার করা নামকরণ ডাটাবেস অনুসন্ধান করতে ব্যবহার করবে। hostএবং nslookupউভয় ব্যবহার কমান্ড শুধুমাত্র ডিএনএস, তাই তারা অগত্যা আপাতদৃষ্টিতে সঙ্গতিহীন ফলাফল তুমি চক্ষুষ্মান প্রতিলিপি করা হবে না।

সোলারিসের একটি দেখার সরঞ্জাম রয়েছে, getentযা অনুসন্ধানের জন্য নামকরণের ডেটাবেসগুলির কনফিগার করা সেট অনুসরণ করে - হোস্ট বা ঠিকানাগুলি একইভাবে সনাক্তকরণ এবং পিং-এর মতো ব্যবহার করতে ব্যবহার করা যেতে পারে।

getent hosts <hostname>

হোস্টের জন্য /etc/nsswitch.conf এ ডাটাবেসগুলির তালিকাভুক্ত যা যা অনুসন্ধান করবে।

So. আপনার ক্ষেত্রে, ধারাবাহিক ফলাফল অর্জনের জন্য, নিম্নলিখিতগুলিতে / ইত্যাদি / হোস্টগুলিতে যুক্ত করুন

192.168.235.41 selenium-rc

এবং, নিশ্চিত করুন /etc/host.conf রয়েছে:

order hosts,bind

অথবা, নিশ্চিত করুন যে /etc/nsswitch.conf রয়েছে:

hosts: files dns

এটি হয়ে গেলে, আপনার পিং এবং ট্রেস্রোয়েট, পাশাপাশি এসএসএস, টেলনেট, কার্ল, উইজেট ইত্যাদির মতো আরও কমান্ডের আরও সুসংগত ফলাফল দেখতে হবে both


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

2

দেখে মনে হচ্ছে আপনার ঠিক মতো বিপরীত লুকআপ সেট আপ হয়েছে তবে এগিয়ে নেই।

আপনার সিস্টেমটি 192.168.235.41 আইপি ঠিকানাটি সন্ধান করতে পারে এবং এটি সনাক্ত করতে পারে selenium-rcতবে এটি যখন চেষ্টা করার চেষ্টা করে selenium-rcএটি ব্যর্থ হয়।

আমি আপনাকে পরীক্ষা /etc/hostsএবং সুপারিশ /etc/resolv.conf; getaddrinfoসিস্টেম কলের আচরণটি পরবর্তীকালের দ্বারা নির্ধারিত হয় এবং প্রাক্তনটির উল্লেখ করে।


1

আমার অনুমান: traceroute 192.168.235.41অনুরোধ করার কারণে একটি ডিএনএস অনুরোধটি আইপি ঠিকানার সাথে 192.168.235.41 নামের নামটি খুঁজে বের করতে পারে to traceroute -n 192.168.235.41এটি খুঁজে পাওয়া প্রতিটি আইপি ঠিকানায় ডিএনএস লুকআপ না করে ট্রেস্রোয়েট শুরু করার উপায়। ডিএনএস সিস্টেমটি অপেক্ষা করতে চেয়ে ডিএনএস সার্ভারটি সাড়া দিতে বেশি সময় নিয়েছে, তাই প্রথমে ট্রেস্রোয়েটে 192.168.235.41 এর জন্য হোস্টনাম দেয় নি। ট্রেস্রোয়েট 192.168.235.41 থেকে প্যাকেটগুলি প্রেরণ করে এবং গ্রহণ করার সময় পর্যন্ত আপনার ডিএনএস সার্ভার সাড়া ফেলেছে, সুতরাং এটির জন্য ট্রেস্রোয়েট একটি হোস্টনাম দিতে পারে।

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

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