কীভাবে dnsmasq যুক্ত করবেন এবং সিস্টেমেড-রেজোলিউড রাখবেন (18.04)


10

আমি dnsmasq দিয়ে দ্রুত dns রেজোলিউশন পেতে এবং ডিফল্ট সিস্টেম-সংশোধন করতে চাই।

এটি করার জন্য একটি মার্জিত উপায় খুঁজছেন


আপনি কি বুঝতে পেরেছেন যে সিস্টেমযুক্ত-সমাধান করা ডিএনএস লুকআপগুলিকেও ক্যাশে করে? Systemd- সমাধানযুক্ত সিস্টেমে আপনার dnsmasq দরকার নেই। আপনার পড়া উচিত সিস্টেমেড-রেজোলিউশন কি কার্যকর?
আইয়ুন

আমি জানি - তবে এখানে একটি অত্যন্ত তাত্পর্যপূর্ণ 'বিশদ' আছে ... - একটি বিশাল ডিএনএস ক্যাশে হিসাবে ডিএনএসমাস্ক - সিস্টেমড-রেজোলিউডের ডিএনএস ক্যাশে খুব ছোট এবং টিউন করা যায় না - বিশাল ক্যাশে হিসাবে ডিএনএস রেজোলিউশন গতি অত্যন্ত উন্নত হয় dnsmasq অনুরোধ দ্বারা পূরণ করা হয়েছে।
cmak.fr

Systemd- সমাধানের মধ্যে ডিফল্ট অ-কনফিগার্ড ক্যাশে dnsmasq থেকে
আইয়ুন

প্রকৃতপক্ষে, dnsmasq systemd- সমাধানের চেয়ে অনেক বেশি কাজ করে; নামটি দেখতে gist.github.com/jult/4eba88bdd34a57cc79d6#gistcomment-1706666 এবং gist.github.com/jult/4eba88bdd34a57cc79d6#file-hostsupdater-sh নাম লিখুন তবে কয়েকটি ..
জুলিয়াস

@ আইয়াউন: সিস্টেম-সমাধানিত উত্স কোডটি পড়ে আপনি দেখতে পারেন যে ডিএনএস ক্যাশে সীমা 4096 বাইট, এন্ট্রি নয়। dnsmasq এর বৃহত্তর এবং কনফিগারযোগ্য- dns ক্যাশে আকার রয়েছে।
cmak.fr

উত্তর:


10

আমি dnsmasq- এর সাথে দ্রুত ডিএনএস রেজোলিউশন পেতে এবং ভবিষ্যতের ব্যবহারের জন্য ডিফল্ট সিস্টেমড-রেজুলেশন / নেটওয়ার্ক ম্যানেজার সেটআপটি অচ্ছুত রাখতে চেয়েছিলাম। হ্যাঁ ডিএনএসমাস্কের বিশাল ডিএনএস ক্যাচিং ব্রাউজিংয়ের গতি উন্নত করতে পারে। হ্যাঁ লক্ষ্য ছিল 18.04 এর ডিফল্ট বৈশিষ্ট্যযুক্ত ডিএনএস সেটআপ রাখা

  1. Dnmasq ইনস্টল করুন
  2. এটি কনফিগার করুন (শোনার ঠিকানা এবং ডিএনএস সার্ভার)
  3. ম্যানুয়াল ডিএনএস সার্ভার ঠিকানার জন্য নেটওয়র্কম্যানেজারটি কনফিগার করুন
  4. যাচাই করে দেখুন

1 - sudo সঙ্গে

apt-get -y install dnsmasq

2 - sudo সঙ্গে

tee -a /etc/dnsmasq.conf << ENDdm
interface=lo
bind-interfaces
listen-address=127.0.0.1
# DNS server from OpenDns. Use yours...
server=208.67.222.222
server=208.67.220.220
ENDdm

systemctl restart dnsmasq
systemctl enable dnsmasq

3 - USER এর সাথে, নেটওয়ার্ক ম্যানেজারটি কনফিগার করুন

# Get NM first active profile name
NetManProfile=$(nmcli -t  connection show --active | cut -f 01 -d ':')
# remove, if exists, current dns servers
nmcli con mod "$NetManProfile" ipv4.dns ""
# set 'manual' dns server
nmcli con mod "$NetManProfile" ipv4.ignore-auto-dns yes
# set dnsmasq as manually set dns server
nmcli con mod "$NetManProfile" ipv4.dns 127.0.0.1
# i also disabled ip6, do what u want
nmcli con mod "$NetManProfile" ipv6.method ignore
# reconnect to take effect
nmcli connection down "$NetManProfile"
nmcli connection up "$NetManProfile"

4 - যাচাই করে দেখুন

  • systemd- সমাধান শোন ডিফল্ট হিসাবে 127.0.0.53
  • dnsmasq 127.0.0.1 এ / etc / dnsmasq এ সেট হিসাবে শুনুন
  • সিস্টেমেড-রেজোলিউড নেটওয়ার্ক ম্যানেজার থেকে 127.0.0.1 নিয়েছে
netstat -antup
Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat       PID/Program name    
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      1036/dnsmasq        
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      766/systemd-resolve
cat /run/systemd/resolve/resolv.conf 
nameserver 127.0.0.1

1

আমি একটি যুক্তিসঙ্গত সমাধান সন্ধান করার চেষ্টা করেছি এবং দেখে মনে হচ্ছে যে বিভিন্ন পদ্ধতির রয়েছে।

সমস্ত ব্যবসায়ের প্রয়োজনীয়তা পূরণ করে আমি বিতরণ বিন্যাসের মধ্যে সর্বাধিক থাকতে চাই। এটিই আমি সংগ্রহ করেছি এবং পরিষ্কার উবুন্টু 18.04 এবং কে.ডি. নিওনের গন্ধে কাজ করার জন্য পরীক্ষা করেছি:

# Install required package and reconfigure service plans (i.e. disablesystemd-resolved, enable dnsmasq
sudo apt-get install dnsmasq
sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved
sudo systemctl enable dnsmasq

# These two lines should work on most environments, but .. :-) - so I kept them commented out for less experienced users
# Just add or change 'dns=dnsmasq' to your NetworkManager.conf to the section [main]
# and yes, the sed expression can be better :-)

#sudo cp /etc/NetworkManager/NetworkManager.conf /etc/NetworkManager/NetworkManager.conf.backup
#sudo bash -c 'cat /etc/NetworkManager/NetworkManager.conf.backup |sed -e "s/^dns=.*//"| sed -e "s/\[main\]/\[main\]\ndns=dnsmasq/" >/etc/NetworkManager/NetworkManager.conf'

# Restart NetworkManager to make the change above applied
sudo systemctl restart NetworkManager

# This removes the systemd resolv.conf link only if it has NetworkManager replacement :-)
ls /var/run/NetworkManager/resolv.conf && sudo rm /etc/resolv.conf

# And add NetworkManager's resolv.conf available for the system resolver
sudo ln -s /var/run/NetworkManager/resolv.conf /etc/resolv.conf

(দয়া করে নোট করুন যে উপরের উত্তরগুলির সাথে একমাত্র সাধারণ পার্থক্য হ'ল নেটওয়ার্ক ম্যানেজারটি dnsmasq DNS সার্ভারের কার্যাদি স্বয়ংক্রিয়ভাবে পরিচালনা করে


কাজ করে তবে কী হবে যখন নেটওয়াল ম্যানেজারটি অ্যাপ-গেট
cmak.fr

সত্যি বলতে কি জানি না। এটি নির্ভর করে উবুন্টু 18.04 এর রক্ষণাবেক্ষণকারী কী সিদ্ধান্ত নেয়। যদি তিনি সিস্টেম-সংশোধিত পরিষেবাটি অক্ষম রাখেন এবং নেটওয়ার্ক-ম্যানেজার.কোনফকে সংশোধন না করেন (যা সংঘাতের ক্ষেত্রে ইন্টারফেসের সাথে ডিফল্টরূপে সমাধান করা হয়), তবে উবুন্টু ২০.০৪ অবধি এটি বেঁচে থাকতে পারে যেখানে আশা করা যায় এটি স্থির হয়ে যাবে।
ভেনকা বি স্প্যাম

0

আপনি যেমন জানেন, ডকার হোস্ট /etc/resolv.conf ফাইলটি ধারকগুলিতে অনুলিপি করে তবে কোনও স্থানীয় নেমসারভার অপসারণ করে।

এই সমস্যার আমার সলিউশন ব্যবহার রাখা systemd-resolvd এবং NetworkManager দ্বারা কিন্তু যোগ dnsmasq এবং "ফরোয়ার্ড" করার জন্য এটি ব্যবহার Docker পাত্রে ডিএনএস শব্দতে systemd-resolvd

ধাপে ধাপে গাইড:

  • করুন /etc/resolv.conf একটি "বাস্তব" ফাইল sudo rm /etc/resolv.conf sudo touch /etc/resolv.conf
  • নেটওয়ার্ক ম্যানেজারকে systemd-resolvd অবহিত করতে জানাতে কিন্তু /etc/resolv.conf স্পর্শ না করার জন্য ফাইল /etc/NetworkManager/conf.d/systemd-resolve-for-docker.conf ফাইল তৈরি করুন [main] # NetworkManager will push the DNS configuration to systemd-resolved dns=systemd-resolved # NetworkManager won’t ever write anything to /etc/resolv.conf rc-manager=unmanaged
  • Dnsmasq ইনস্টল করুন sudo apt-get -y install dnsmasq
  • কনফিগার dnsmasq মধ্যে /etc/dnsmasq.conf শোনার জন্য ডিএনএস থেকে আসতেছে প্রশ্নের Docker এবং ব্যবহার systemd হল-resolvd নাম সার্ভার # Use interface docker0 interface=docker0 # Explicitly specify the address to listen on listen-address=172.17.0.1 # Looks like docker0 interface is not available when dnsmasq service starts so it fails. This option makes dynamically created interfaces work in the same way as the default. bind-dynamic # Set systemd-resolved DNS server server=127.0.0.53
  • সম্পাদনা করুন /etc/resolv.conf ব্যবহারের systemd-resolvd নেমসার্ভারটি (127.0.0.53) এবং হোস্ট আইপি মধ্যে (172.17.0.1) Docker নেটওয়ার্কের # systemd-resolvd name server nameserver 127.0.0.53 # docker host ip nameserver 172.17.0.1
  • পরিষেবাগুলি পুনরায় চালু করুন sudo service network-manager restart sudo service dnsmasq restart sudo service docker restart

আরও তথ্যের জন্য আমার পোস্টটি দেখুন (স্প্যানিশ ভাষায়) https://rubensa.wordpress.com/2020/02/07/docker-no-usa-los-mismos-dns-que-el-host/


-1

উবুন্টু 18.10

আইএমএইচও, আপনার যদি ডিএনএসএমএস্ক চলতে থাকে তবে আপনার আইপি ঠিকানাটি ডিএইচসিপি থেকে পাওয়ার পরিবর্তে আপনার স্থিরভাবে দেওয়া উচিত। এইভাবে আপনি কেবল সিস্টেম-সমাধানগুলি একসাথে অক্ষম করতে পারেন।

  1. sudo অ্যাপ্লিকেশন ইনস্টল Dnsmasq

  2. sudo systemctl অক্ষম systemd- সমাধান

  3. sudo systemctl স্টপ systemd- সমাধান

  4. ম্যানুয়ালি আপনার আইপি ঠিকানা, গেটওয়ে নির্ধারণ করুন এবং আপনার মেশিনে আইপি ঠিকানা ডিএনএস হিসাবে নির্ধারণ করুন।

  5. /etc/dnsmasq.conf কনফিগার করুন (সত্যিই ... আরটিএফএম -> ম্যান dnsmasq.conf)

  6. sudo systemctl dnsmasq সক্ষম করুন

  7. পুনরায় বুট করার
  8. sudo systemctl স্থিতি dnsmasq

  9. আপনার dhcp সার্ভারে আপনার চকচকে নতুন dnsmasq সার্ভারে বিন্দু ডিএইচসিপি (..আইফ ইউম্প্টো)


আপনি যা বর্ণনা করেছেন তা আমি বাস্তবায়ন করব না। আমি ভবিষ্যতে নেটওয়ার্কম্যানেজারের ব্যবহারের জন্য ডিফল্ট সিস্টেমে-সমাধানিত অচ্ছুত থাকতে চাই।
cmak.fr
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.