ক্রোমিয়াম কেন এক মিনিটেরও বেশি সময় ডিএনএসকে ক্যাশে করে না?


27

আমি ক্রোমিয়াম ব্যবহার করি এবং আমার প্রত্যাশা করা সময়ের জন্য ডিএনএস ক্যাশে না হওয়াতে সমস্যা রয়েছে। উদাহরণ ডটকম ডোমেন নিন। ডিএনএস সেটিংস অনুসারে, এই ডোমেনটি আরও 26151 সেকেন্ডের জন্য ক্যাশে করা উচিত:

$ dig example.com

;; ANSWER SECTION:
example.com.        26151   IN  A   93.184.216.34

যাইহোক, আমি যখন ক্রোমিয়ামে উদাহরণ.কম খুলি এবং আমি ক্রোম খুলি: // নেট-ইন্টারনালস / # ডিএনএস তখন আইপি এক মিনিটের মধ্যে ভুলে যায়!

এখানে চিত্র বর্ণনা লিখুন

ক্রোমিয়াম ডোমেনের ডিএনএস সেটিংয়ের টিটিএল মেনে চলে না কেন? ডিএনএস ডেটার মেয়াদ শেষ না হওয়া পর্যন্ত আমি কীভাবে এটিকে বাধ্য করতে পারি?


4
"... এই ডোমেনটিকে আরও 26151 সেকেন্ডের জন্য ক্যাশে করা উচিত ..." - না, ডোমেনটি 26151 সেকেন্ডের জন্য ক্যাশে করা যেতে পারে। ডিএনএস ক্যাচিং বাধ্যতামূলক নয়।
মার্সেলেম

উত্তর:


33

ক্রোমিয়াম / ক্রোম ডিএনএস অনুরোধকে এক মিনিটেরও বেশি সময় ধরে ক্যাশে করে না।

আকর্ষণীয়ভাবে যথেষ্ট, বাগ-ক্রোমিয়াম থেকে - ইস্যু 164026 - ডিএনএস টিটিএল 21 এপ্রিল ২০১১ থেকে সম্মানিত হয়নি

সিস্টেমে একমাত্র ডিএনএস ক্যাশে ক্রোম রয়েছে এবং এটি টিটিএলকে সম্মান করে না। আমাদেরকে হয় ক্রোম ঠিক করতে এবং / অথবা একটি মধ্যবর্তী ক্যাশে যুক্ত করতে হবে যা টিটিএলকে সঠিকভাবে পরিচালনা করে না।

ডিসেম্বর 4 2012 এর টিকিটে উত্তর:

হোস্টকচে বর্তমানে সমস্ত ইতিবাচক ফলাফলের জন্য টিটিএল = 60 এর দশক ধরেছে। অ্যাসিঙ্ক্রোনাস ডিএনএস রিসলভার সহ, আমরা টিটিএল = সর্বোচ্চ (60s, সার্ভার_রেপোর্ট_এইচটিএল), অর্থাৎ কমপক্ষে 60 এর ব্যবহার করার পরিকল্পনা করছি। যুক্তি হ'ল ক্যাশে কর্মক্ষমতা উন্নত করা। (যখন কোনও সিডিএন এনএস টিটিএল = 10-20 সেকেন্ড সরবরাহ করে এবং সমস্ত সাবসোর্সগুলি আনতে 30 ++ লাগে, আমাদের প্রায়শই একই পৃষ্ঠার লোডের সময় একই হোস্টনামটির পুনরায় জিজ্ঞাসা করতে হয়))

টিকিট 10 অক্টোবর 2013 এ বন্ধ ছিল:

ক্রোস-এ ক্রোম অ্যাসিনক্রোনাস ডিএনএস রিসলভার ব্যবহার করে যা টিটিএল = সর্বোচ্চ (s০ এর দশকে,> সার্ভার_পরিবর্তিত_এইচটিএল) সম্মান করে

আমি এটি ওন্টফিক্স হিসাবে বন্ধ করছি (অপ্রচলিত / উদ্দেশ্য হিসাবে কাজ করে)।

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

ব্যবহারকারীরা বছরের পর বছর ধরে অনুরোধ করে আসছে, সেই ডিফল্ট আচরণটি পরিবর্তন করার জন্য একটি বৈশিষ্ট্য এবং গুগল কখনই এটি তৈরি করেনি।

অতীতে, আপনি অভ্যন্তরীণ ডিএনএস রেজলভারটি অক্ষম করতে পারতেন chrome://flags, আজকাল যে কার্যকরীভাবে আর প্রকাশিত হয় না।

সুতরাং এটি সংক্ষেপে এটি একটি বৈশিষ্ট্য, যেমন এটি নকশা দ্বারা এটি করে।

(আমি প্রথম দিকে লিখেছিলাম এটি কখনই পরিবর্তন করা যায় নি, যা স্পষ্টতই সত্য নয় A সত্যিকার অর্থে নির্ধারিত ব্যক্তি ক্রোমিয়াম পুনরায় সংকলন করতে পারে বা ক্রোম বাইনারিগুলি হ্যাক করতে পারে))।

সুতরাং, অ্যাডেন্ডা হিসাবে: প্রচুর নথিভুক্ত প্রমাণ রয়েছে যে গুগল ইঞ্জিনিয়াররা ক্রোম / আইওমে প্রাপ্ত ডিএনএস উত্তরগুলিতে ডিফল্ট টিটিএলকে সম্মান জানাতে চান না।

ডিএনএস প্রশ্নগুলির নেতিবাচক ক্যাচিং থেকে (ডিএনএস এনসিএসিইই)

ইতিবাচক প্রতিক্রিয়াগুলির ক্যাচিংয়ের মতো এটি কোনও রিসোলভারের পক্ষে এটি কতটা নেতিবাচক প্রতিক্রিয়া ক্যাশে করবে তা সীমাবদ্ধ করা বুদ্ধিমানের ...

যখন এটি সংক্রামিত হয় তখন কোনও সমাধানকারী ডিএনএস উত্তর ক্যাশে দেওয়ার ক্ষেত্রে সর্বাধিক সীমা চাপিয়ে দিতে পারে / উচিত, গুগল ক্রোমে 1-মিনিটের সীমাটি খুব কম হতে পারে।

পিএস আমি আসলে এমন কিছুর উত্তর খুঁজে পেয়েছি যা বছরের পর বছর ধরে আমাকে ক্রুদ্ধ করে চলেছে এই প্রশ্নের উত্তর দেওয়ার জন্য ক্রোম স্ট্যাটাসগুলি: ক্রোম: ডিএনএস র্যান্ডম ডিএনএস নামের অনুরোধ: ম্যালওয়্যার?

পিপিএস কোড বেলো থেকে, এটি স্পষ্টত নেতিবাচক উত্তরগুলি ক্যাশে করা হয় না (টিটিএল = 0)।

Https://chromium.googlesource.com/chromium/src/net/dns/host_resolver_impl.cc থেকে

  99 // Default TTL for successful resolutions with ProcTask.
 100 const unsigned kCacheEntryTTLSeconds = 60;
 101 
 102 // Default TTL for unsuccessful resolutions with ProcTask.
 103 const unsigned kNegativeCacheEntryTTLSeconds = 0;
 104 
 105 // Minimum TTL for successful resolutions with DnsTask.
 106 const unsigned kMinimumTTLSeconds = kCacheEntryTTLSeconds;

1518   // Called by ProcTask when it completes.
1519   void OnProcTaskComplete(base::TimeTicks start_time,
1520                           int net_error,
1521                           const AddressList& addr_list) {
1522     DCHECK(is_proc_running());
1523 
1524     if (dns_task_error_ != OK) {
1525       base::TimeDelta duration = base::TimeTicks::Now() - start_time;
1526       if (net_error == OK) {
1527         UMA_HISTOGRAM_LONG_TIMES_100("AsyncDNS.FallbackSuccess", duration);
1528         if ((dns_task_error_ == ERR_NAME_NOT_RESOLVED) &&
1529             ResemblesNetBIOSName(key_.hostname)) {
1530           UmaAsyncDnsResolveStatus(RESOLVE_STATUS_SUSPECT_NETBIOS);
1531         } else {
1532           UmaAsyncDnsResolveStatus(RESOLVE_STATUS_PROC_SUCCESS);
1533         }
1534         base::UmaHistogramSparse("Net.DNS.DnsTask.Errors",
1535                                  std::abs(dns_task_error_));
1536         resolver_->OnDnsTaskResolve(dns_task_error_);
1537       } else {
1538         UMA_HISTOGRAM_LONG_TIMES_100("AsyncDNS.FallbackFail", duration);
1539         UmaAsyncDnsResolveStatus(RESOLVE_STATUS_FAIL);
1540       }
1541     }
1542 
1543     if (ContainsIcannNameCollisionIp(addr_list))
1544       net_error = ERR_ICANN_NAME_COLLISION;
1545 
1546     base::TimeDelta ttl =
                                              # always  0 seconds
1547         base::TimeDelta::FromSeconds(kNegativeCacheEntryTTLSeconds);
1548     if (net_error == OK)
                                              # always 60 seconds 
1549       ttl = base::TimeDelta::FromSeconds(kCacheEntryTTLSeconds);  
1550 
1551     // Source unknown because the system resolver could have gotten it from a
1552     // hosts file, its own cache, a DNS lookup or somewhere else.
1553     // Don't store the |ttl| in cache since it's not obtained from the server.
1554     CompleteRequests(
1555         MakeCacheEntry(net_error, addr_list, HostCache::Entry::SOURCE_UNKNOWN),
1556         ttl);
1557   }

4
আমার জন্য আকর্ষণীয়ভাবে, ক্রোম কিছু ডোমেনের জন্য টিটিএল ভিত্তিক ডিএনএস লুকআপগুলি ক্যাশে করছে, উদাহরণস্বরূপ এই ডোমেনটি dougblack.ioযাতে পুরো নিয়মগুলি কিছুটা জটিল হয়। তবে একশত ডোমেনের মধ্যে 99 টি আপনার বর্ণনা অনুসারে আচরণ করে।
the_velour_fog

2
ক্রোম এলোমেলোভাবে দেখা ডিএনএস অনুরোধগুলি এমন কোনও নেটওয়ার্কে রয়েছে যা সমস্ত ডিএনএস অনুরোধকে হাইজ্যাক করে (কিছু প্রদত্ত বেতার অ্যাক্সেস পয়েন্টের মতো) তা নির্ধারণ করার জন্য অনুরোধ করে। এছাড়াও, আমি কনফিগারেশনে আপনি যে "টাইমআউট" মানটি দেখছেন তা হ'ল ডিএনএস সার্ভারের 1 মিনিটের টিটিএল নয়, প্রতিক্রিয়া জানাতে 1 সেকেন্ডের সময়সীমা।
সন্ধ্যা uff

5
এটি দুঃখজনক যে ক্রোমিয়ামটি মোটেও ডিএনএস ক্যাশে করে। আমি যখনই আমার এনএসে দ্রুত পরিবর্তন করি এবং ডিএনএস ক্যাশে ফ্লাশ করি তখনই আমাকে সর্বদা মনে রাখা উচিত ক্রোম এটি নিজের দ্বারা করে।
ওলে কে

1
@ ওলেক: হ্যাঁ, ক্রোমের নিজস্ব ডিএনএস ক্যাশে রয়েছে এমন আমার ধারণা ছিল না। এটিকে নির্দেশ করার জন্য এই পৃষ্ঠাকে ধন্যবাদ ...
মেহরদাদ

2
@ ওলেক - আমি সম্মত, তবে একই সাথে আমি দেখতে পাচ্ছি যেখানে একটি সংক্ষিপ্ত ... বলতে গেলে, 60 সেকেন্ড বা তার বেশি :), ক্যাশে একটি ভাল ধারণা (কিছুটা নেটওয়ার্ক ট্র্যাফিক বাঁচাতে) এবং এখনও রাউন্ড রবিনের মতো জিনিসকে মঞ্জুরি দেয়
ডিএনএস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.