কীভাবে সিস্টেমেড-সলভড এবং ডিএনএসকে স্ক্রিন দিয়ে ডিএনএস সমাধান করবেন?


32

উবুন্টু 16.10+ systemd-resolvedডিএনএস রেজলভার হিসাবে ব্যবহার করে।

আমি সমাধানটিকে 16.04 ব্যবহারগুলি, রেজোলভার dnsmasqহিসাবে পছন্দ করি ।

আমি কীভাবে 16.10+, বিশেষত 17.04 এ পারি?


হতে পারে এটি সাহায্য করতে পারে: Askubuntu.com
প্রশ্নগুলি

উত্তর:


35

dnsmasq প্যাকেজগুলি এখনও 16.10 এবং 17.04 এ উপলব্ধ।

  1. dnsmasqঅক্ষম করার আগেsystemd-resolved ইনস্টল করুন এবং নির্ভরতা (বা তাদের প্যাকেজগুলি অন্তত ডাউনলোড করুন) :

    sudo apt-get install dnsmasq
    
  2. অক্ষম করুন systemd-resolvedএবং যাচাইকরণ dnsmasqচলছে:

    sudo systemctl stop systemd-resolved
    sudo systemctl disable systemd-resolved
    
    systemctl status dnsmasq
    
  3. dnsmasqস্বাদ মরসুম । আপনার সেটিংস প্রয়োগ করার পরে, পুনরায় চালু করুন dnsmasq:

    sudo systemctl stop dnsmasq
    sudo systemctl start dnsmasq
    

পদক্ষেপ 2 এর পরে ধাপ 3 সম্পূর্ণ না হওয়া পর্যন্ত আপনি কোনও ওয়ার্কিং সিস্টেমের সমাধানের ব্যবস্থা ছাড়াই থাকতে পারেন। আপনাকে dnsmasqডিফল্ট কনফিগারেশনের সাথে কাজ করতে নেটওয়ার্কিং সাবসিস্টেমটি পুনরায় চালু করতে (বা কেবল পুনরায় বুট করতে হবে) প্রয়োজন হতে পারে। আমার পরীক্ষায় এটিতে একটি পরিচিত ডিএনএস সার্ভার যুক্ত করা /etc/dnsmasq.confএবং পুনরায় চালু dnsmasqকরা এটি লাইভসিডি পরিবেশে কাজ করার জন্য যথেষ্ট ছিল।


দুর্দান্ত উত্তর এবং আপাতদৃষ্টিতে একমাত্র সমাধান যখন নেটওয়ার্কম্যানেজারটি অক্ষম করা যায় তখন তা গ্রহণযোগ্য নয়!
বগল

3
আমার জন্য, এটি দুর্দান্ত উত্তর ছিল তবে dns=dnsmasqকনফিগারেশনে কনফিগারেশন যুক্ত করে @ ব্লেব্লার উত্তর থেকে অতিরিক্ত পদক্ষেপের প্রয়োজন ছিল/etc/NetworkManager/NetworkManager.conf
রবার্তো টাইলি

একই অবস্থা. সিস্টেমেড-রেজোলিউড এবং আনবাউন্ড স্যুইচিংয়ের সাথে লড়াই করার পরে ডিএনএমস্কায় স্যুইচ করা উবুন্টু 17.10 এ কৌশলটি করেছিল। যদিও আমি ব্লেব্লার সংযোজনগুলি ব্যবহার করতে পারি না।
আলবার্তো এল বনফিগলিও

17

@ কুইকসোটিকের উত্তর ছাড়াও:

আপনার /etc/ নেটওয়ার্ক ম্যানেজার / নেট ওয়ার্ক ম্যানেজার.কম এ আছে তা নিশ্চিত করুন:

[main]
dns=dnsmasq

আপনার যদি এটি যুক্ত করার প্রয়োজন হয় তবে নেটওয়ার্ক ম্যানেজারটি এটি পুনরায় চালু করুন:

sudo systemctl restart NetworkManager

এবং এর /etc/resolv.confএকটি সিমিলিংক হওয়া দরকার /var/run/NetworkManager/resolv.conf। এইভাবে করা যেতে পারে

sudo rm /etc/resolv.conf; sudo ln -s /var/run/NetworkManager/resolv.conf /etc/resolv.conf

আসলে আমি এটি সেট করে রেখেছি dns=defaultএবং এটি সূক্ষ্মভাবে কাজ করে কারণ আমার কাছে নেমসার্ভারগুলি তখন ডিএনএসমাস্কে সংজ্ঞায়িত না করে নেটওয়ার্ক ম্যানেজার দ্বারা সংজ্ঞায়িত করা হয়েছে; এটি আমার জন্য কাজ করে - এনএম সিস্টেম ট্রে এর মাধ্যমে কেডিএর এনএম কনফিগারেশনে তৈরি সেটিংস থেকে নেমসার্ভারগুলি পেয়ে যায়। আমি আমার হোম নেটওয়ার্ক FWIW এ স্থির আইপি ব্যবহার করি।
পিবিএইচজে

1
এই পদক্ষেপটি আমার জন্য @ কুইক্সোটিকের উত্তরের একটি প্রয়োজনীয় সংযোজন ছিল (উবুন্টু 17.04, সম্পূর্ণ ইনস্টলেশন, লাইভসিডি নয়)।
রবার্তো টাইলি

0

সিস্টেমড-রেজোলিউডের ম্যানুয়াল অনুসারে , সিস্টেমড-রেজুলিউড তিনটি পৃথক ইন্টারফেসের মাধ্যমে নাম রেজোলিউশন পরিষেবা সরবরাহ করে:

  1. "পুরোপুরি বৈশিষ্ট্যযুক্ত এপিআই সিস্টেম-সমাধান করা বাসে প্রকাশ করে"
  2. "স্থানীয় লুপব্যাক ইন্টারফেসে আইপি ঠিকানায় 127.0.0.53 এ একটি স্থানীয় ডিএনএস স্টাব শ্রোতা"
  3. আরএফসি 3493 দ্বারা সংজ্ঞায়িত গ্লিবিসি গেটাড্রিনফো (3) এপিআই এবং জেথোস্টবাইনেম (3) সহ এর সাথে সম্পর্কিত রেজোলভার ফাংশন। এই API টি লিনাক্স প্ল্যাটফর্মের বাইরেও বহুলাংশে সমর্থিত। এটির বর্তমান আকারে এটি DNSSEC বৈধকরণের স্থিতির তথ্যটি প্রকাশ করে না এবং এটি কেবল সিঙ্ক্রোনাস। এই API টি glibc নেম পরিষেবা স্যুইচ (এনএসএস (5)) দ্বারা সমর্থিত back গ্লিবিবির এনএসএস রিসলভার ফাংশনকে সিস্টেমড-রেজোলিউডের মাধ্যমে হোস্টের নামগুলি সমাধান করার জন্য গ্লাবসি এনএসএস মডিউল এনএসএস-রেজোলিউশন (8) এর ব্যবহার প্রয়োজন।

দেখে মনে হচ্ছে প্রথম দুটি ইন্টারফেস স্বাভাবিক ডিএনএস রেজোলিউশনে হস্তক্ষেপ করবে না এবং আমার পক্ষে সমস্যাটি তৃতীয়টিতে থাকার সম্ভাবনা রয়েছে।

এনএসএস-সমাধানের ম্যানুয়ালটিতে :

এনএসএস মডিউলটি সক্রিয় করতে, /etc/nsswitch.conf এ "হোস্টগুলি:" দিয়ে শুরু করা লাইনে "সংকল্প" যুক্ত করুন। বিশেষত, /etc/nsswitch.conf এর "হোস্টগুলি:" লাইন (তবে "ফাইলগুলি" বা "মাইমাচাইনস" এন্ট্রিগুলির পরে) এর "ঠিকঠাক" স্থাপন করার প্রস্তাব দেওয়া হয়, "ডিএনএস" এন্ট্রি উপস্থিত থাকলে তার ঠিক পরে "[! UNAVAIL = রিটার্ন]", ডিএনএস অনুসন্ধানগুলি সর্বদা সিস্টেমড-সলিউড (8) এর মাধ্যমে চলতে থাকে তবে এই পরিষেবাটি উপলভ্য না হলে এনএসএস-ডিএনএস-এ চালিত হয় তা নিশ্চিত করতে rou

সুতরাং যা প্রয়োজন তা হ'ল /etc/nsswitch.conf এর "হোস্ট:" লাইনটিতে "ডিএনএস" পূর্ববর্তীগুলি "সমাধান" করা । এবং তারপরে getaddrinfoকেবল /etc/resolv.conf মেনে চলতে হবে ।

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

(লিনাক্সের অধীনে নাম রেজ্যুলেশন কীভাবে কাজ করে তার সাথে আমি মোটামুটি পরিচিত নই এবং এই ম্যানুয়ালগুলি থেকে আমি কী বুঝলাম সে সম্পর্কেও অনিশ্চিত P


0

(এক্স) উবুন্টু 18.04 এর জন্য (স্ট্যাকেক্সচেঞ্জে আমার উত্তর দেখুন )।

এখানে এর অনুলিপি দেওয়া আছে (আমি কি একটি অনুলিপি তৈরি করব?)

(এক্স) উবুন্টু 18.04 বায়োনিকের সমাধান এখানে রয়েছে।

Dnsmasq ইনস্টল করুন

sudo apt install dnsmasq

53 পোর্টে সিস্টেম-সমাধান করা শ্রোতা অক্ষম করুন (/etc/systemd/resolve.conf স্পর্শ করবেন না, কারণ এটি আপগ্রেডে ওভাররাইট করা যেতে পারে):

$ cat /etc/systemd/resolved.conf.d/noresolved.conf 
[Resolve]
DNSStubListener=no

এবং এটি আবার চালু করুন

$ sudo systemctl restart systemd-resolved

(বিকল্পভাবে এটি সম্পূর্ণরূপে অক্ষম করুন $ sudo systemctl disable systemd-resolved.service)

/Etc/resolv.conf মুছুন এবং আবার তৈরি করুন। এটি গুরুত্বপূর্ণ, কারণ ডিফল্টরূপে resolv.conf /run/systemd/resolve/stub-resolv.conf এর প্রতীকী লিঙ্ক। আপনি যদি প্রতীকী লিঙ্কটি মুছবেন না, ফাইলটি পুনরায় বুট করার সময় সিস্টেমড দ্বারা ওভাররাইট করা হবে (যদিও আমরা সিস্টেমড-রেজোলিউশন অক্ষম করেছি!)। এছাড়াও সিস্টেম-মীমাংসিত কনফিগারেশন সনাক্ত করার জন্য নেটওয়ার্ক ম্যানেজার (এনএম) এটি প্রতীকী লিঙ্ক কিনা তা পরীক্ষা করে।

$ sudo rm /etc/resolv.conf
$ sudo touch /etc/resolv.conf

এনএম দ্বারা /etc/resolv.conf ওভাররাইটিং অক্ষম করুন (একটি বিকল্প আরসি-ম্যানেজার এছাড়াও রয়েছে, তবে এটি একটি ম্যানুয়ালে বর্ণিত সত্ত্বেও এটি কাজ করে না):

$ cat /etc/NetworkManager/conf.d/disableresolv.conf 
[main]
dns=none

এবং এটি পুনরায় চালু করুন:

$ sudo systemctl restart NetworkManager

এনএম থেকে রেজোলভকনফ ব্যবহার করতে ড্যানমাস্ককে বলুন:

$ cat /etc/dnsmasq.d/nmresolv.conf 
resolv-file=/var/run/NetworkManager/resolv.conf

এবং এটি পুনরায় চালু করুন:

$ sudo systemctl restart dnsmasq

সমাধানের জন্য dnsmasq ব্যবহার করুন:

$ cat /etc/resolv.conf 
# Use local dnsmasq for resolving
nameserver 127.0.0.1
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.