مدیریت خطای DNS درون یک قاعده PAC
به یک جستوجوی DNS ناموفق در PAC شاخه سیاست جداگانهای بدهید، نه اینکه آن را نشانی تأییدشده بیرون از شبکه محلی بدانید.
جستوجوی ناموفق ثابت نمیکند که مقصد بیرون از شبکه خصوصی شماست. فقط ثابت میکند که این ارزیابی PAC نشانی مورد نیاز خود را به دست نیاورده است.
این تفاوت زمانی مهم است که dnsResolve() خوراک قاعده isInNet() را تأمین میکند. پیادهسازی PAC در Chromium هنگام شکست تبدیل، null برمیگرداند. شاخه خطا را بر پایه این خاطره که نتیجه همیشه رشته خالی است نسازید.
function FindProxyForURL(url, host) {
var address = dnsResolve(host);
if (!address) {
return "PROXY proxy.example:8080";
}
if (isInNet(address, "10.40.0.0", "255.255.0.0")) {
return "DIRECT";
}
return "PROXY proxy.example:8080";
}
این نمونه نامهای حلنشده را به پروکسی میفرستد. این یک انتخاب سیاستی است، نه پیشفرض امن جهانی. زمانی میتواند سودمند باشد که پروکسی حلکننده یا دید شبکهای دارد که کلاینت ندارد. شبکهای که به حل محلی نیاز دارد نتیجه صریح دیگری میخواهد.
یک بار حل کنید و نتیجه را دوباره به کار ببرید. این کار تصمیم را به یک مقدار گره میزند و از تکرار فراخوانیهای کمکی که ممکن است کند باشند جلوگیری میکند.
مصرفکننده واقعی PAC را هم بررسی کنید. توابع کمکی قدیمی IPv4 و کمکیهای گسترده IPv6 قراردادهای متفاوتی دارند. قاعدهای که با پیادهسازی یک مرورگر آزموده شده، پشتیبانی در همه برنامههایی که همان نشانی PAC را به کار میبرند ثابت نمیکند.
اگر نیاز فقط مسیریابی یک پسوند شرکتی شناختهشده است، قاعده نام میزبان میتواند جستوجو را کاملاً دور بزند. وقتی نشانی اطلاعاتی است که سیاست واقعاً به آن نیاز دارد، به دستهبندی بر پایه نشانی روی آورید.