নেতিবাচক ডিএনএস ক্যাচিং সাধারণত কত দিন স্থায়ী হয়?


44

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


উত্তর:


60

নেতিবাচক ক্যাশিংয়ের জন্য টিটিএল স্বেচ্ছাসেবী নয়। এটি জোনটির শীর্ষে এসওএ রেকর্ড থেকে নেওয়া হয়েছে যেখানে অনুরোধ করা রেকর্ডটি থাকতে পারে, যদি এটি বিদ্যমান থাকে। উদাহরণ স্বরূপ:

example.org.    IN      SOA     master-ns1.example.org. Hostmaster.example.org. (
            2012091201 43200 1800 1209600 86400 )

এসওএ রেকর্ডের সর্বশেষ মান ("86400") ক্লায়েন্টকে নেতিবাচক ফলাফলগুলি ক্যাশ করতে বলা সময়ের পরিমাণ example.org.

যদি কোনও ক্লায়েন্ট অনুরোধ করে তবে doesnotexist.example.org.এটি 86400 সেকেন্ডের জন্য ফলাফলটি ক্যাশে করবে।


1
@ মার্কাসএডামস ... এবং একটি ক্লায়েন্ট সার্ভারে কোনও রেকর্ড নেতিবাচক ক্যাশে করবে না। এসওএ রেকর্ডে থাকা টিটিএলটি আসলে নেতিবাচক ক্যাচিংয়ের জন্য ব্যবহৃত হয়। এজন্য এসএএএ রেকর্ডটি এনএক্সডিওভার উত্তরগুলিতে উত্পাদিত হয়।
সেলেদা

3
@ মার্কাসএডামস সঠিক আপনি যদি সার্ভারটি পান তবে আপনি এসওএ বা টিটিএল পাবেন না। নেতিবাচক-ক্যাশে আপনার কোনও উত্তর নেই। যদি এর পরিবর্তে আপনি একটি NXDOMAIN পেতে আপনার চেয়ে না একটি TTL এর সাথে, একটি এসওএ যুগ্মভাবে পেতে। আপনি টিটিএল-এর সময়কালের জন্য সেই প্রতিক্রিয়াটিকে নেতিবাচক-ক্যাশে করবেন।
সেলেদা

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


12

এটি আপনার "নেতিবাচক ক্যোয়ারী" এর সঠিক সংজ্ঞাটির উপর নির্ভর করে, তবে উভয় ক্ষেত্রেই, এটি rfc2308 D DNS কোয়েরিজের নেতিবাচক ক্যাচিং (ডিএনএস এনসিএসিইই) docu :


NXDOMAIN

  • যদি রেজুলেশনটি সফল হয় এবং ফলাফল হয় NXDOMAIN, প্রতিক্রিয়াটি একটি SOAরেকর্ড নিয়ে আসবে , এতে NXDOMAINটিটিএল থাকবে (traditionতিহ্যগতভাবে MINIMUMক্ষেত্র হিসাবে পরিচিত )। rfc2308#section-4

SERVFAIL

  • যদি রেজোলিউশনটি সফল না হয় এবং সময়সীমা ( SERVFAIL) এর ফলাফল হয় , তবে এটি সম্ভবত একেবারে ক্যাশে করা যায় না এবং সব পরিস্থিতিতে 5 মিনিটের বেশি সময় ধরে ক্যাশে রাখা উচিত নয়। rfc2308#section-7.1

    মনে রাখবেন যে অনুশীলনে, সম্পূর্ণ অনুমোদনযোগ্য 5 মিনিটের জন্য এই জাতীয় ফলাফলগুলি ক্যাচ করা কোনও ক্লায়েন্টের অভিজ্ঞতা হ্রাস করার একটি দুর্দান্ত উপায় হ'ল তাদের ক্যাশে সার্ভারটি মাঝে মাঝে সংক্ষিপ্ত সংযোগের সমস্যায় ভুগতে হবে (এবং কার্যকরভাবে এটি একটি অস্বীকৃত-পরিষেবা প্রশস্তকরণের পক্ষে সহজেই ঝুঁকিপূর্ণ হয়ে ওঠে, যেখানে কয়েক সেকেন্ড ডাউনটাইমের ফলস্বরূপ ডিএনএসের নির্দিষ্ট অংশগুলি পাঁচটি পুরো মিনিটের জন্য ডাউন থাকবে)।

    BIND 9.9.6-S1 এর আগে (2014 সালে প্রকাশিত) দৃশ্যত, SERVFAILএকেবারে ক্যাশে করা হয়নি। a878301(2014-09-04)

    উদাহরণস্বরূপ, আপনার প্রশ্নের সময় এবং 2014 এর আগে প্রকাশিত BIND এর সমস্ত সংস্করণে, BIND পুনরাবৃত্তাকারী সমাধানকারী SERVFAILআদৌ ক্যাশে নেই , যদি উপরের প্রতিশ্রুতি দেয় এবং 9.9.6-এস 1 এর প্রথম ভূমিকা সম্পর্কে নথি বিশ্বাস করা হয় ।

    সর্বশেষ বিআইএনএনডিতে, ডিফল্টটি servfail-ttlহ'ল 1sএবং সেটিংটি 30s(এর আরএফসি-বাধ্যতামূলক সিলিংয়ের জায়গায়) একটি সিলিংয়ে হার্ডকোড করা হয় 300s90174e6(2015-10-17)

    তদ্ব্যতীত, নীচে এই বিষয়ে কয়েকটি উল্লেখযোগ্য উদ্ধৃতি দেওয়া হল:

    সার্ভারের প্রতিক্রিয়াগুলি ক্যাশে করার ফলাফলটিতে এমন কিছু পরিস্থিতি অন্তর্ভুক্ত করা হয়েছে যেখানে এটি ক্লায়েন্টের অভিজ্ঞতার পক্ষে ক্ষতিকারক বলে দেখা গিয়েছিল, বিশেষত যখন সার্ভারের ক্লায়েন্টের কাছে উপস্থাপিত হওয়ার কারণগুলি ক্ষণস্থায়ী ছিল এবং এমন পরিস্থিতি থেকে যেখানে তাত্ক্ষণিকভাবে জিজ্ঞাসার পুনরায় চেষ্টা করা হবে আরও উপযুক্ত কর্ম।

    দ্বিতীয় কৌশলটি দাবি করা হয় যে সমস্ত ডিএনএস সার্ভারে পৌঁছাতে না পারলে বিস্তৃত ডিএনএস ক্লায়েন্টরা বিশেষত এভিল কিছু করবে। এই যুক্তি সহ সমস্যাটি দাবিটি মিথ্যা। এই জাতীয় কোনও ক্লায়েন্ট স্পষ্টভাবে বগিযুক্ত, এবং বাজারে টিকে থাকতে অক্ষম হবে: ক্লায়েন্টের রাউটারগুলি সংক্ষিপ্তভাবে নামলে, বা ক্লায়েন্টের নেটওয়ার্ক অস্থায়ীভাবে প্লাবিত হয়ে থাকলে কী ঘটে তা বিবেচনা করুন।


সংক্ষেপে, একটি NXDOMAINপ্রতিক্রিয়া SOAপ্রযোজ্য জোনের ক্ষেত্রে নির্দিষ্ট হিসাবে ক্যাশে হবে , যেখানে SERVFAILক্যাশে হওয়ার সম্ভাবনা নেই, বা যদি ক্যাশে করা হয় তবে এটি সেকেন্ডের সর্বাধিক দ্বিগুণ সংখ্যা হবে।


1

এই বিষয়টিতে উত্সর্গীকৃত একটি আরএফসি রয়েছে: আরএফসি 2308 - ডিএনএস কোয়েরি (ডিএনএস এনসিএসিএইচ) এর নেতিবাচক ক্যাচিং

পড়ার জন্য প্রাসঙ্গিক বিভাগটি 5 - নেতিবাচক উত্তরগুলি ক্যাচিংয়ে লিখিত হয়েছে:

সাধারণ উত্তরের মতো নেতিবাচক উত্তরগুলির বেঁচে থাকার সময় থাকে (টিটিএল)। যে উত্তর বিভাগে এই টিটিএল প্রয়োগ করা যেতে পারে তার কোনও রেকর্ড নেই বলেই টিটিএলকে অন্য পদ্ধতিতে বহন করতে হবে। উত্তরের কর্তৃত্ব বিভাগে অঞ্চল থেকে এসওএ রেকর্ডটি অন্তর্ভুক্ত করে এটি করা হয়। যখন অনুমোদনশীল সার্ভার এই রেকর্ডটি তৈরি করে তখন এর টিটিএল সর্বনিম্ন SOA.MINIMUM ক্ষেত্র এবং SOA এর টিটিএল থেকে নেওয়া হয়। এই টিটিএল হ'ল সাধারণ ক্যাশেড উত্তরের অনুরূপভাবে এবং শূন্যের (0) পৌঁছানোর পরে ক্যাশেড নেতিবাচক উত্তরটি আবার ব্যবহার করা উচিত নয়।

প্রথমে SOA.MINIMUMআরএফসিতে বর্ণিত এবং এসওএ টিটিএল সনাক্ত করতে দিন । টিটিএল হল রেকর্ড টাইপের আগের নম্বর IN( 900নীচের উদাহরণে সেকেন্ড)। যদিও সর্বনিম্ন রেকর্ডের সর্বশেষ ক্ষেত্র ( 86400নীচের উদাহরণে সেকেন্ড)।

$ dig serverfault.com soa @ns-1135.awsdns-13.org +noall +answer +multiline

; <<>> DiG 9.11.3-1ubuntu1.8-Ubuntu <<>> serverfault.com soa @ns-1135.awsdns-13.org +noall +answer +multiline
;; global options: +cmd
serverfault.com.    900 IN SOA ns-1135.awsdns-13.org. awsdns-hostmaster.amazon.com. (
                1          ; serial
                7200       ; refresh (2 hours)
                900        ; retry (15 minutes)
                1209600    ; expire (2 weeks)
                86400      ; minimum (1 day)
                )

এখন কয়েকটি উদাহরণ দেখে নেওয়া যাক, serverfault.comজোনটি বর্ণনামূলক কারণ এটিতে দুটি পৃথক সরবরাহকারীর পক্ষ থেকে অনুমোদনযোগ্য সার্ভার রয়েছে যা আলাদাভাবে কনফিগার করা হয়েছে।

serverfault.comঅঞ্চলটির জন্য অনুমোদনযোগ্য নেমসার্ভারগুলি সন্ধান করুন :

$ host -t ns serverfault.com
serverfault.com name server ns-860.awsdns-43.net.
serverfault.com name server ns-1135.awsdns-13.org.
serverfault.com name server ns-cloud-c1.googledomains.com.
serverfault.com name server ns-cloud-c2.googledomains.com.

তারপরে একটি অ্যাউস নেমসারভার ব্যবহার করে এসওএ রেকর্ডটি পরীক্ষা করুন:

$ dig serverfault.com soa @ns-1135.awsdns-13.org | grep 'ANSWER SECTION' -A 1
;; ANSWER SECTION:
serverfault.com.    900 IN  SOA ns-1135.awsdns-13.org. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400

এর থেকে আমরা দেখতে পাচ্ছি যে এসওএ রেকর্ডের 900টিটিএল সেকেন্ডে এবং নেতিবাচক টিটিএল মান 86400সেকেন্ড। এর SOA টিটিএল মান 900কম তাই আমরা আশা করি এই মানটি ব্যবহার করা হবে।

এখন যদি আমরা অস্তিত্বহীন ডোমেনের জন্য কোনও অনুমোদিত সার্ভারকে জিজ্ঞাসা করি তবে আমাদের কোনও উত্তর ছাড়াই এবং কর্তৃত্ব বিভাগে এসওএ রেকর্ড সহ একটি প্রতিক্রিয়া পাওয়া উচিত:

$ dig nxdomain.serverfault.com @ns-1135.awsdns-13.org

; <<>> DiG 9.11.3-1ubuntu1.8-Ubuntu <<>> nxdomain.serverfault.com @ns-1135.awsdns-13.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 51948
;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;nxdomain.serverfault.com.  IN  A

;; AUTHORITY SECTION:
serverfault.com.    900 IN  SOA ns-1135.awsdns-13.org. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400

;; Query time: 125 msec
;; SERVER: 205.251.196.111#53(205.251.196.111)
;; WHEN: Tue Aug 20 15:49:47 NZST 2019
;; MSG SIZE  rcvd: 135

যখন কোনও পুনরাবৃত্ত (ক্যাশিং) সমাধানকারী এই উত্তরটি গ্রহণ করে এটি এসওএ রেকর্ডটিকে পার্স করবে AUTHORITY SECTIONএবং এই রেকর্ডটির টিটিএল ব্যবহার করবে এটি নির্ধারণ করতে হবে যে এটি কতক্ষণ নেতিবাচক ফলাফলকে ক্যাশে করতে হবে (এই ক্ষেত্রে 900সেকেন্ডে)।

এখন গুগল নেমসারভারের সাহায্যে একই পদ্ধতিটি অনুসরণ করা যাক:

$ dig serverfault.com soa @ns-cloud-c2.googledomains.com | grep 'ANSWER SECTION' -A 1
;; ANSWER SECTION:
serverfault.com.    21600   IN  SOA ns-cloud-c1.googledomains.com. cloud-dns-hostmaster.google.com. 1 21600 3600 259200 300

আপনি দেখতে পারেন যে গুগল নেমসার্ভারের এসওএ টিটিএল এবং নেতিবাচক টিটিএল মান উভয়ের জন্য আলাদা আলাদা মান রয়েছে। এই ক্ষেত্রে নেতিবাচক TTL এর 300এর এসওএ যুগ্মভাবে TTL এর চেয়ে কম 21600। সুতরাং AUTHORITY SECTIONকোনও NXDOMAINপ্রতিক্রিয়া ফিরিয়ে দেওয়ার সময় গুগল সার্ভারের এসওএ রেকর্ডের মধ্যে নিম্ন মানের ব্যবহার করা উচিত :

$ dig nxdomain.serverfault.com @ns-cloud-c2.googledomains.com

; <<>> DiG 9.11.3-1ubuntu1.8-Ubuntu <<>> nxdomain.serverfault.com @ns-cloud-c2.googledomains.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 25920
;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;nxdomain.serverfault.com.  IN  A

;; AUTHORITY SECTION:
serverfault.com.    300 IN  SOA ns-cloud-c1.googledomains.com. cloud-dns-hostmaster.google.com. 1 21600 3600 259200 300

;; Query time: 130 msec
;; SERVER: 216.239.34.108#53(216.239.34.108)
;; WHEN: Tue Aug 20 16:05:24 NZST 2019
;; MSG SIZE  rcvd: 143

প্রত্যাশিত হিসাবে এসওএ যুগ্মভাবে রেকর্ড TTL এর NXDOMAINপ্রতিক্রিয়া 300সেকেন্ড।

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

আমার পরীক্ষায় আমি আরও লক্ষ্য করেছি যে কিছু পুনরাবৃত্ত (ক্যাশিং) সমাধানকারীরা AUTHORITY SECTIONপরবর্তী অনুরোধগুলির জন্য হ্রাসমান টিটিএল সহ এসওএ রেকর্ড সহ কোনও ফেরত দেয় না অন্যরা তা করে।

উদাহরণস্বরূপ ক্লাউডফ্লেয়ার রিসলভার দেয় (হ্রাসমান টিটিএল মানটি নোট করুন):

$ dig nxdomain.serverfault.com @1.1.1.1 | grep 'AUTHORITY SECTION' -A 1
;; AUTHORITY SECTION:
serverfault.com.    674 IN  SOA ns-1135.awsdns-13.org. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400
$ dig nxdomain.serverfault.com @1.1.1.1 | grep 'AUTHORITY SECTION' -A 1
;; AUTHORITY SECTION:
serverfault.com.    668 IN  SOA ns-1135.awsdns-13.org. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400

যখন কোনও এডাব্লুএস ভিপিসিতে ডিফল্ট সমাধানকারী কেবল প্রথম অনুরোধে একটি কর্তৃপক্ষের বিভাগে সাড়া দেবে:

$ dig nxdomain.serverfault.com @169.254.169.253 | grep 'AUTHORITY SECTION' -A 1
;; AUTHORITY SECTION:
serverfault.com.    300 IN  SOA ns-cloud-c1.googledomains.com. cloud-dns-hostmaster.google.com. 1 21600 3600 259200 300
$ dig nxdomain.serverfault.com @169.254.169.253 | grep 'AUTHORITY SECTION' -A 1 | wc -l
0

দ্রষ্টব্য: এই উত্তরটি উত্তরের আচরণকে চিহ্নিত করে NXDOMAIN

শব্দকোষ:

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