ترتیب رکوردهای resolvconf در Debian: رکورد VPN را اول بگذارید
سرور نام VPN پیوسته زیر سرور نام LAN میافتد چون resolvconf نام رکوردها را مرتب میکند. interface-order را ویرایش کنید، دوباره تولید کنید و دو جستوجو را بررسی کنید.
سرور نام VPN پیوسته زیر سرور نام LAN میافتد و ویرایش /etc/resolv.conf آن را برای چند دقیقه درست میکند. آن فایل تولید میشود، پس این اصلاح هرگز نمیماند. در resolvconf روی Debian ورودی ترتیب /etc/resolvconf/interface-order است و این فایل نام رکوردها را مرتب میکند نه نشانیهای DNS. پیش از دست زدن به هر یک از این دو فایل تأیید کنید که کدام پشتهی resolver واقعاً مسئول است.
تأیید کنید که خروجی در اختیار resolvconf است
با این پرسش شروع کنید که فایل کنونی را چه چیزی نوشته و چه چیزی دوباره آن را خواهد نوشت. بستهی resolvconf خود را چارچوبی برای پیکربندی پویای resolver میشناساند، و میزبانی که systemd-resolved یا resolver تحت مدیریت NetworkManager را اجرا میکند میتواند از بیرون شبیه باشد ولی سیاستی کاملاً متفاوت داشته باشد.
readlink -f /etc/resolv.conf
dpkg -l resolvconf 2>/dev/null | tail -n 1
اگر مسیر حلشده به پوشهی زمان اجرای resolvconf نمیرسد، همینجا متوقف شوید: این راهنما به پشتهی دیگری تعلق دارد.
تنها پس از این بررسی است که فهرست کردن رکوردهایی که resolvconf اکنون نگه میدارد ارزش دارد.
پیش از نوشتن الگوها رکوردها را بخوانید
interface-order با نام رکوردهای تأمینکننده مطابقت دارد، نه با نشانیها و نه با نام رابطهای هسته. فهرست کنید چه چیزی ثبت شده تا الگوهای شما به مدخلهای موجود ارجاع دهند.
ls /run/resolvconf/interfaces
cat /etc/resolvconf/interface-order
نام رکورد معمولاً پسوندی دارد که تأمینکنندهی آن را مشخص میکند، بنابراین یک رکورد تونل و یک رکورد DHCP میتوانند پیشوند رابط مشترک داشته باشند و با این حال متفاوت مرتب شوند. نامهای دقیق را از فهرست پوشه کپی کنید. نام را از نام رابط استنتاج نکنید، چون این یکپارچهسازی کلاینت تصمیم میگیرد چه چیزی ثبت شود. نامی که از خود درآورید هرگز مطابقت نمیکند و رکورد بدون هیچ پیام خطایی به الگوی گیرندهی همهچیز میافتد.
ترتیب را بهصورت الگوهای نخستین تطابق بنویسید
فایل فهرستی از الگوهای shell glob است، یک الگو در هر خط. رکورد جایگاه نخستین الگویی را میگیرد که با آن مطابقت دارد، پس الگوی گستردهای بالاتر از الگویی مشخص، آن خط مشخص را غیرقابل دسترس میکند.
# /etc/resolvconf/interface-order
lo*
tun_work.*
enp*
*
الگوی مشخص تونل را بالاتر از الگوی گیرندهی همهچیز و بالاتر از الگوی رابط فیزیکی بگذارید.
خطوط دیگری را که فایل از پیش داشت نگه دارید. جایگزین کردن کل سیاست با یک نمونه همان کاری است که باعث جابهجایی خاموش تأمینکنندگان بیربط میشود؛ یک خط را تغییر دهید، دوباره تولید کنید و مقایسه کنید. الگوها نمیتوانند فاصله، اسلش یا نقطه یا تیلد آغازین داشته باشند و خطوط خالی و توضیحات هش نادیده گرفته میشوند.
دوباره تولید کنید و نتیجه را بررسی کنید
ترتیب هنگامی اعمال میشود که اسکریپتهای بهروزرسانی فایل را بازسازی کنند. مسیر بهروزرسانی پشتیبانیشده را اجرا کنید نه ویرایش خروجی تولیدشده، سپس بخوانید که resolver واقعاً چه دریافت کرده است.
resolvconf -u
cat /etc/resolv.conf
دو جستوجو را بررسی کنید نه یکی: نامی خصوصی که باید از طریق تونل حل شود، و یک نام کنترلی عمومی. اگر نام خصوصی هنوز شکست میخورد در حالی که ترتیب درست به نظر میرسد، مشکل مسیریابی فضای نام است نه اولویت رکورد، و هیچ بازچینشی آن را درست نمیکند. هر پاسخ را با سروری که آن را برگردانده مقایسه کنید، نه فقط با موفقیت. نام خصوصیای که resolver اشتباه پاسخ داده باز هم شکست است و برای کاربر مانند قطعی DNS به نظر میرسد.
رکورد کهنه را بازنشسته کنید نه اینکه رتبهاش را پایین بیاورید
رکورد VPN کهنهای که پس از قطع اتصال دوباره ظاهر میشود یک باگ چرخهی عمر در یکپارچهسازی کلاینت است. جابهجا کردن آن به انتهای فهرست نشانه را پنهان میکند و یک resolver مرده در فهرست باقی میگذارد.
آن را از طریق مؤلفهای که ثبتش میکند بازنشسته کنید، سپس تأیید کنید که پوشهی رکوردها دیگر آن را فهرست نمیکند.
نام تأمینکننده، الگویی که تغییر دادید و دو جستوجویی که اجرا کردید را ثبت کنید. نفر بعد به این نامها بیش از داستان نیاز دارد.